<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
	<channel>
<title>Guillaume Boudreau  - My Online Life</title><link>http://www.pommepause.com/index.html</link><description>Guillaume Boudreau  - My Online Life</description><dc:language>en</dc:language><dc:creator>gb.online@danslereseau.com</dc:creator><dc:rights>Copyright 2007 Guillaume Boudreau</dc:rights><dc:date>2007-12-02T20:59:47-05:00</dc:date><admin:generatorAgent rdf:resource="http://www.realmacsoftware.com/" />
<admin:errorReportsTo rdf:resource="mailto:gb.online@danslereseau.com" /><sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<lastBuildDate>Thu, 05 Jun 2008 19:46:26 -0400</lastBuildDate><item><title>Review of CrashPlan: Multi-platform backup solution for everyone</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Review</category><dc:date>2007-12-02T20:59:47-05:00</dc:date><link>http://www.pommepause.com/online_files/crash_plan.html#unique-entry-id-13</link><guid isPermaLink="true">http://www.pommepause.com/online_files/crash_plan.html#unique-entry-id-13</guid><content:encoded><![CDATA[<br /><strong><a href="http://www.crashplan.com/" rel="self">CrashPlan</a></strong><strong>, it's a remote backup solution for (almost) everyone.</strong><br /><br />The principle is easy enough: install the software client (available for Windows, Mac OS X or Linux), change the default selection of files that will be backed up (if you want to) and you're on your way to never loose a file again!<br /><br /><h3>Where are your backup stored? You have the choice.</h3><ul class="disc"><li>One option is to pay CrashPlan developers (the company is called Code 42) a <strong>small fee each month for them to store your backup</strong>: this is what they call <strong>CrashPlan Central</strong>. Pricing and details from <a href="http://www.crashplan.com/support/faq.vtl#pricing" rel="self">their FAQ</a>: 50GB of storage for 5$/month, 0.10$ per additional GB.</li><li>The second option is to <strong>backup to other computer(s) you own</strong>. Just install the client on any another computer, re-use the same email address & password that you used to create your account on your personal computer, and you'll be able to select those computers as a backup destination.</li><li>The third option is to <strong>backup to </strong><strong><em>friends</em></strong>. Friends are anyone who installed CrashPlan, and allowed you to use their computer as a backup destination. <strong>This is probably the best option for most people.</strong> Especially if you use it in both directions: allow your friends to backup to your computer(s), so that you'll store their backup on your hard drive, and they'll store your backup on theirs. Everyone wins! Note that <strong>backups are encrypted</strong> <em>before</em> they are sent to remote destinations, so your friends won't be able to see the data you're storing on their hard drive. Only you will be able to restore the data to it's original usable state.</li></ul><br /><h3>How do I use CrashPlan</h3><ul class="disc"><li>I have a Windows-based PC that I use as my file server at home, so I'm using it as a backup destination.</li><li>I was already paying (50$ US per month) for a dedicated Linux server in a data center in California. I'm using this computer as a backup destination too.</li><li>I installed CrashPlan on my parent's computer, and added them as my friends. I allowed them to backup to my home file server.</li></ul><br /><h3>Costs</h3><ul class="disc"><li><strong>To backup</strong> to others, you'll need to pay a <strong>one time fee of 20$ US</strong> (or 60$ US for the PRO version which offers a couple of added features), after the usual <strong>30 days trial</strong>.</li><li>It costs nothing to run the client in <em>backup destination mode</em>; i.e. if you install CrashPlan on a computer <strong>only to use it as a backup destination, it doesn't cost anything</strong>. You only have to buy licenses for computers which you want to backup.</li></ul><br /><h3>Support</h3>I almost always received answers within 24h to emails sent to Code 42 support. <strong>In all cases, they were able to help me</strong>, or if I asked for a new feature or fix, it was always implemented or fixed in a subsequent version of the client (which auto-update itself by the way). Very good support.<br /><br /><h3>Recommendation</h3><strong>Get it!</strong> It just works, and it's an easy way to backup all your family's / friend's data.<br /><br /><h3>Links</h3><a href="http://www.crashplan.com/" rel="self">CrashPlan</a> website: They have a nice <a href="http://www.crashplan.com/tour/take_a_tour.vtl" rel="self">video tour</a> (screencast), <a href="http://www.crashplan.com/features/compare.vtl" rel="self">features matrix</a>, and <a href="http://www.crashplan.com/support/faq.vtl" rel="self">FAQ</a>.<br />]]></content:encoded></item><item><title>Clavier Mac canadien fran&#xe7;ais sous Windows XP (Parallels&#x2c; VMWare&#x2c; Bootcamp...)</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Mac OS X</category><dc:date>2007-10-25T21:12:08-04:00</dc:date><link>http://www.pommepause.com/online_files/windows_xp_fr_ca_mac_keyboard_layout.html#unique-entry-id-12</link><guid isPermaLink="true">http://www.pommepause.com/online_files/windows_xp_fr_ca_mac_keyboard_layout.html#unique-entry-id-12</guid><content:encoded><![CDATA[<em><br />(I usually write in english in here, but this one will be in French. It's about a Windows XP keyboard layout for Canadian French Mac keyboards. So, move along, english-only-speaking-people!)<br /></em><br />Installer Windows XP sur un Mac, que &ccedil;a soit dans Parallels Desktop, WMWare Fusion ou avec Bootcamp, c'est parfois bien pratique. Ce qui n'est pas pratique par contre, c'est d'essayer d'utiliser un clavier Mac canadien fran&ccedil;ais dans Windows! Plusieurs touches sont diff&eacute;rentes, dont les accents, plusieurs Shift-Chiffres, etc.<br /><br />La solution: installer un <em>layout</em> de clavier 'Mac' dans Windows XP.<br /><br />Et comment en fait &ccedil;a ? Simple: on t&eacute;l&eacute;charge <a href="online_assets/Windows-XP-fr_CA_Mac-Keyboard.zip" rel="self" title="Layour de clavier canadien français pour Windows XP">ceci</a>, et on l'installe (en utilisant <em>setup.exe</em>). C'est tout. :)<br /><br />Pour les curieux: ce layout de clavier pour Windows XP a &eacute;t&eacute; cr&eacute;&eacute; gr&acirc;ce au logiciel <em>Microsoft Keyboard Layour Creator</em>, disponible sur microsoft.com. Le fichier ci-dessus contient aussi les fichiers n&eacute;cessaires pour modifier le <em>layout</em> avec &agrave; ce logiciel.<br />]]></content:encoded></item><item><title>Mac Widget: Vid&#xe9;otron Internet Usage Monitor</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Mac OS X</category><dc:date>2007-08-19T13:13:02-04:00</dc:date><link>http://www.pommepause.com/online_files/videotron_usage_monitor_widget.html#unique-entry-id-11</link><guid isPermaLink="true">http://www.pommepause.com/online_files/videotron_usage_monitor_widget.html#unique-entry-id-11</guid><content:encoded><![CDATA[<em><br />Do you want to skip all this text and just get the widget?<br />Then click </em><em><a href="#videotronwidgetdownload" rel="self">here</a></em><em>.<br /></em><br />Having received earlier this week a letter from Vid&eacute;otron, my ISP, about my account getting capped at 100GB monthly in the upcoming months, I decided I needed an easy way to monitor my monthly bandwidth usage. A Dashboard widget was a good fit.<br /><br />I downloaded a couple of widget samples from Apple.com, and started a new widget from there.<br /><br />The end result:<br /><br /><img class="imageStyle" alt="page21_blog_entry11_1" src="http://www.pommepause.com/online_files//page21_blog_entry11_1.png" width="400" height="180"/><br /><br />A nice little widget, sitting on my Dashboard, that can tell me how much of my monthly quota I've used so far.<br />Preferences are: Vid&eacute;otron username (something that looks like vlxxxxxx), and the upload and download quotas applied to your account. At this time, those quotas can be separate for upload and download, or combined into just one quota.<br /><br />Note: I had to data-scrape an HTML page to fetch the information from Vid&eacute;otron website, and decided it was much easier to do that in PHP, and keep it on my own web server, than to do it in JavaScript and have to release a new version of my widget each time Vid&eacute;otron would change their web page.<br />So if you install this, and see an outgoing connection to dataproxy.pommepause.com, that's normal.<br />(BTW, I posted the source of the PHP script this widget is using <a href="http://dataproxy.pommepause.com/videotron_usage.phps" rel="self">here</a>.)<br /><br />Enjoy, fellow Vid&eacute;otron users.<br /><br /><a name="videotronwidgetdownload"></a>You can download the latest version of the Vid&eacute;otron Internet Usage Monitor widget for Mac OS X <a href="/index_assets/Videotron_Internet_Usage_Monitor.wdgt.zip" rel="self">here</a>, or on <a href="http://www.apple.com/downloads/dashboard/networking_security/videotroninternetusagemonitor.html" rel="self">Apple</a>, or on <a href="http://osx.iusethis.com/app/videotroninternetusagemonitorw" rel="self">i use this</a>, or on <a href="http://www.macupdate.com/info.php/id/25623" rel="self">MacUpdate</a>, or on <a href="http://www.dashboardwidgets.com/showcase/details.php?wid=2153" rel="self">DashboardWidgets</a>, or on <a href="http://www.versiontracker.com/dyn/moreinfo/macosx/33030" rel="self">Version Tracker</a>.<br /><br />Changelog:<br />1.1.6 - Better handling for wrong username; people entering anything else than their VLXXXXXX Vid&eacute;otron username will now get a relevant error message.<br />1.1.5 - Fetch new data less often; was previously checking for new data every 15 minutes when the Dashboard was open; changed that to once a day.<br />1.1.4 - Added small arrows on meters to show the current date. If the meter is higher than the arrow, it means you've transferred too much in regard to the current date versus the date you're invoiced. Red arrow = bad; green arrow = good.<br />1.1.3 - Beta for 1.1.4<br />1.1.2 - Small visual changes: loading animated GIF, numbers formatted as <strong>0.xx</strong> instead of <strong>.xx</strong>.<br />1.1.1 - New French localization option; new minimal look option; fixed incorrect dates (all dates were one month early).<br />1.0.1 - Fixed missing percentage when using combined quota.<br />1.0 - First version.<br />]]></content:encoded></item><item><title>Facebook application: Import Gallery pictures into Facebook</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Open Source</category><dc:date>2007-06-22T13:04:08-04:00</dc:date><link>http://www.pommepause.com/online_files/gb_gallery_import.html#unique-entry-id-10</link><guid isPermaLink="true">http://www.pommepause.com/online_files/gb_gallery_import.html#unique-entry-id-10</guid><content:encoded><![CDATA[<span style="font-size:15px; font-weight:bold; "><br /></span>I have a <a href="http://gallery.danslereseau.com/" rel="self">Gallery</a> where all our family pictures can be seen. My mom, dad and brother all frequently upload pictures on this site, which makes it a central point for all our family's digital photography sharing & archiving needs.<br />Encouraged by the fast growth of the Facebook social-networking site, I wanted to be able to easily transfer pictures from my Gallery into Facebook photo albums so that my Facebook friends could see my little guy.<br /><br />Someone of the <a href="http://gallery.menalto.com/" rel="self">Gallery</a> forums <a href="http://gallery.menalto.com/node/65135" rel="self">had already showed interest</a> in such an application, so I started there and created a new <a href="http://www.facebook.com/apps/application.php?id=2390304162" rel="self">Facebook application</a> that could be used to import pictures.<br />Not that difficult; just a simple PHP application with forms and a session to gather the user's Gallery URL, which album and photos he wants to import, and then call the <a href="http://developers.facebook.com/" rel="self">Facebook API (Platform)</a> repeatedly to upload each picture one at a time.<br /><br />Challenges I faced:<br />- Uploading too many pictures at once caused timeouts. Facebook isn't very patient when waiting for an external application (web page) to complete. I had to upload one picture per page, and repeatedly reload this page until all pictures have been uploaded.<br />- Facebook limits photo albums to 60 pictures max. I had to code something that would create a new album each time the current album would be filled with pictures.<br />- eAccelerator (0.9.5) has a known bug where try...catch blocks in PHP code are ignored, and Uncaught Exception errors are generated instead. This caused the code that handled expired session to fail until I disabled eAccelerator Optimizer (<em>php_flag eaccelerator.optimizer 0</em> in a .htaccess file).<br />- Watermarked pictures that can be found in a Gallery are fetched differently than normal pictures, so I had to modify the helper script to look for watermarked pictures, and use that if any are found.<br />- Multisite Gallery installation requires modifications so that the helper script would work correctly.<br /><br />The result is now a nice Facebook application which seems to work just fine for most people who tried it:<br /><a href="http://www.facebook.com/apps/application.php?id=2390304162" rel="self">Gallery Import application on Facebook</a><br /><br />Now when I want to import Gallery pictures into Facebook, I'm just a few clicks away!<br />]]></content:encoded></item><item><title>Review of Netgear HDX101 Powerline HD Ethernet Adapters</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Review</category><dc:date>2007-06-22T00:00:00-04:00</dc:date><link>http://www.pommepause.com/online_files/hdx101.html#unique-entry-id-0</link><guid isPermaLink="true">http://www.pommepause.com/online_files/hdx101.html#unique-entry-id-0</guid><content:encoded><![CDATA[<span style="font-size:15px; font-weight:bold; "><br /></span><em>Why should you not buy the Netgear HDX101 Powerline HD Ethernet Adapters (or any other Powerline network adapters for that matter)?</em><br />Offering 200 mbps of network bandwidth, those adapters looks like a very good replacement for a slow wireless network you might have. No long cable required; you simply need to plug one adapter in room A, another adapter in room B, and attach both to the respective room's LAN / network appliance to create a instant long-range LAN in your house. Does that look too good to be true? I'd say it is.<br /><br />I bought those things 2 months ago (the HDXB101 package includes two HDX101 adapters). 160$ US + shipping on <a href="http://www.buy.com" rel="self">buy.com</a>.<br />Since then, I had time to:<br /><ul><li>Be happy to receive them and thrilled to try them.</li><li>Be happy about how easy they were to install.</li><li>Be disappointed about the performance I got on the first try (600 KBps).</li><li>Loose a considerable amount of time upgrading their firmware, testing them in different configuration, with different devices.</li><li>Loose what seems like a colossal amount of time with Netgear's technical support to finally be told I should return the units back through RMA to get new ones.</li><li>Loose my patience too many times to count while talking to an indian technical support representative, trying to explain I was told to get an RMA number in the online case #XYZ, and try to spell my address countless times (and he still got it wrong!)</li><li>Send back the adapters at my expense.</li><li>Open a new technical support case online to give in writing my complete address so they would change what the guy I spoke to wrote in my file!</li><li>Wait 3 weeks for nothing to happen, loose patience and open a new technical support case online asking why I wasn't getting my new adapters back.</li><li>Wait 1 week to receive Netgear's package.</li><li>Be called by DHL support to ask me what my real address was, because the address the Indian technical support guy wrote something incomprehensible, even if another technical support technician assured me that my address had now been corrected according to my last tech support online case.</li><li>Be somewhat happy to finally receive it at work, and impatient to try them out again at home that night, even if I was pretty sure it wouldn't change anything.</li><li>Be very angry when I opened the package at home, and found only one HDX101 adapter in the box they sent me.</li><li>Open another tech support case online to tell them they didn't send me the right product back! I also mentioned they didn't send it at the right address, and added a reference to the other tech support online case I had previously opened for that.</li><li>Wait another week to receive Netgear's package.</li><li>Be called by DHL support again to ask me what my real address was, because they sent it once more to the unintelligible address!</li><li>Finally receive the second HDX101 adapter.</li><li>Test the new adapters once more in many configuration, and with many devices.</li><li>Open another tech support online case mentioning all the tests I did and the crappy performance I was getting.</li><li>Get a message back saying they would (finally!) escalate my problem to a level 2 engineer.</li><li>Receive a nice message from the level 2 engineer, basically telling me that the adapters would never work at 200 mbps except in lab conditions.</li></ul><br />Here's parts of his last message to me:<br /><br /><blockquote><p>When opting to use powerline networking, it is important to understand that currently, no standards exist regarding data communications over electrical lines.</p></blockquote><br /><blockquote><p>I have the HDXB101 myself, and I do not get the 200 Mbps speed. Most of the time it is between 60 and 90 Mbps, and on rare occasions I will see a little over 100. My brother wanted to test the kit in his own home which was built around 3 years ago. He could not even get a sync between the 2 devices.<br/><br/>It may very well be that your home's electrical environment is not favorable for powerline networking. It is clear that this is not a hardware problem since replacing the device yielded the same results. At some point there will be universal standards for data communications over electrical wiring. However, until that time, the results will vary from location to location.</p></blockquote><br />Nice!<br /><br />So bottom line, if you want to try those new things, make sure you <strong>buy them at a retailer that will take them back</strong> if you're not satisfied. Or wait for the future to arrive, since this seems to be the best advice Mr. 2nd level had for me.<br />And if you want good technical support, <strong>don't deal with Netgear</strong>!<br /><br />Ref: <a href="http://www.netgear.com/Products/PowerlineNetworking/PowerlineEthernetAdapters/HDX101.aspx" rel="self">HDX101 product page</a><br /><br />Update: I just found out that <a href="http://techdigs.net/" rel="self">TechDigs.net</a> seems to have had similar results while <a href="http://techdigs.net/content/view/74/46/" rel="self">testing their HDXB101</a>.<br />]]></content:encoded></item><item><title>How to fix non-working Folder Action on an external hard disk</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Mac OS X</category><dc:date>2007-06-21T00:00:00-04:00</dc:date><link>http://www.pommepause.com/online_files/fa_external_hdd_fix.html#unique-entry-id-1</link><guid isPermaLink="true">http://www.pommepause.com/online_files/fa_external_hdd_fix.html#unique-entry-id-1</guid><content:encoded><![CDATA[<span style="font-size:15px; font-weight:bold; "><br /></span>I had a problem with <a href="http://www.apple.com/applescript/folderactions/" rel="self" title="Folder Actions">Folder Actions</a>: they always stopped working after a while! Quite annoying. After some digging on Google, I found one post on <a href="http://www.macosxhints.com" rel="self">MacOSXHints</a> forums where a user mentioned that a FA attached to a folder on an external HDD would always stop working after un-mounting / re-mounting the hard disk; exactly what was happening to me! So I started fiddling with AppleScript, and found a way to detach then re-attach a FA associated with a folder. Next, to automatize the execution of this fix, I needed a way to execute it when my external HDD was mounted. Another FA to the rescue, this one attached to the /Volumes folder. Each time a new folder would appear in /Volumes (like my USB drive for example), my FA script would be executed, and it would detach then re-attach the original FA script.<br /><br /><code><pre>on adding folder items to target_folder after receiving added_items<br/>    set volumeName to "USBDrive1" -- This is the display name of your external HDD volume; any of them if you have more than one.<br/>    repeat with added_item in added_items<br/>        if the displayed name of (info for added_item) is equal to volumeName then<br/>            volumeMounted()<br/>            exit repeat<br/>        end if<br/>    end repeat<br/>    quit application "System Events"<br/>end adding folder items to<br/><br/>on volumeMounted()<br/>    tell application "System Events"<br/>        -- Detach Folder Action<br/>        try<br/>            delete folder action "TV Shows" -- This should match the name of the folder you'll attach the FA to; i.e. to attach a FA to "USBDrive1:Music:TV Shows", use "TV Shows" here.<br/>        end try<br/>        <br/>        -- Re-Attach Folder Action<br/>        attach action to folder "USBDrive1:Music:TV Shows" using "Mac Mini HD:Users:me:Library:Scripts:Folder Action Scripts:Import TV shows into iTunes.scpt" -- First parameter is the folder you want to attach to, the second is the scpt file you want to execute as a FA for that folder.<br/>    end tell<br/>end volumeMounted</pre></code><br />To use this script: Attach this FA script to the /Volumes folder and it should fix this problem.<br />To attach a FA to /Volumes, hit <strong>Cmd-Shift-G</strong> after clicking the + in the folder column of <em>Folder Actions Setup.app</em>, and enter "/Volumes" then click Go, then Open.<br />]]></content:encoded></item><item><title>GobbleRSS - PDA-friendly web-based RSS reader</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Open Source</category><dc:date>2007-06-20T00:00:00-04:00</dc:date><link>http://www.pommepause.com/online_files/gobblerss.html#unique-entry-id-2</link><guid isPermaLink="true">http://www.pommepause.com/online_files/gobblerss.html#unique-entry-id-2</guid><content:encoded><![CDATA[<span style="font-size:15px; font-weight:bold; "><br /></span>(Visit the <a href="http://GobbleRSS.pommepause.com/" rel="self">GobbleRSS</a> website for more details about the application itself.)<br /><br />After I finished reading <a href="http://www.amazon.ca/exec/obidos/ASIN/055358202X" rel="self">my latest book</a>, which is what I usually do during my daily commuting to and from work, I started looking for a way to read my RSS feeds on a Palm device during that time. First, a <a href="http://www.maximeg.com/" rel="self">friend of mine</a> lent me his Palm Zire 31 (thanks!). Next, I started looking for a way to get unread RSS items from Google Reader into the Palm device. I was pretty happy with Google Reader itself, since I could read news at home, or at work (and soon enough, between the two) and not have to deal with duplicates etc. Using a desktop client would have been much more complicated, especially since I use a Mac at home, and a Windows PC at work. So, after looking for a while for a Google Reader API, or some other ways to <em>download</em> unread RSS items from Google Reader, I gave up.<br /><br />I then started to implement my own Google Reader, which I dubbed GRC - <em>Google Reader Clone</em>.<br /><br />If you think a little, it's quite simple to implement. You need to save subscriptions (RSS feeds' URLs basically) in a DB table, and at regular intervals, download all of those URLs, parse it, and save the result in another DB table. I started with a simple PHP page which did just that, and used a cron job to call that PHP script every 6 hours. That way, all RSS articles will be saved in the DB, waiting to be read. I then added a couple of flags to each RSS article (starred, unread, new) to be able to sort them, show only one type of items, or star / keep unread specific articles; a-la Google Reader indeed. I then created a pretty simple PHP web page which listed unread articles title, and when I clicked one of them, used AJAX to download the article from the DB and show it in the right-hand panel. Again, very Googlesque! And finally, I created a PHP web page which would load a predetermined number of unread items, show all of them in a very simple layout, and mark all of them as <em>read</em> automatically. This is the web page I  download when I sync my Palm. That way, I have RSS articles on the Palm which I can read whenever, and they are all marked as read in the DB already, so I won't have to go over all of them when reading other articles at home or work.<br /><br />All this left me with a very usable web-based RSS reader, missing a couple of details, all of which I added at some point:<br /><ul><li>a subscriptions management page<img class="imageStyle" alt="1" src="http://www.pommepause.com/online_files//1.png" width="20" height="20"/></li><li>a RSS feed of my starred items to be able to share them with my friends<img class="imageStyle" alt="2" src="http://www.pommepause.com/online_files//2.png" width="20" height="20"/></li><li>a link to trigger the download of all RSS feeds manually from the reading page<img class="imageStyle" alt="3" src="http://www.pommepause.com/online_files//3.png" width="20" height="20"/></li><li>a search functionality (which was really missing from Google Reader! Not sure if the new version has it - I stopped using Google Reader just before they made their last big update)<img class="imageStyle" alt="4" src="http://www.pommepause.com/online_files//4.png" width="20" height="20"/></li><li>a way to lock down the application so that I would be the only one able to use it - I used htaccess IP address Allow rules, mixed with password authentication for when I'm not at home;</li><li>keyboard shortcuts to allow easy reading with a minimum of efforts<img class="imageStyle" alt="5" src="http://www.pommepause.com/online_files//5.png" width="20" height="20"/></li><li>and a way to mark articles on the PDA for later reviewing<img class="imageStyle" alt="6" src="http://www.pommepause.com/online_files//6.png" width="20" height="20"/></li></ul><br />I solved that last problem by writing the article numbers next to their title on the PDA page. This allowed me to note down article numbers on the PDA while I was travelling, and when I got home, I would enter those numbers on a special field on the reading page to review all of them. Easy enough.<br /><br /><img class="imageStyle" alt="Screenshot" src="http://www.pommepause.com/online_files//screenshot.png" width="696" height="602"/><br /><br />So this is how I created <strong>GobbleRSS</strong>, which is now available under LGPL at <a href="http://GobbleRSS.pommepause.com/" rel="self">http://gobblerss.pommepause.com</a><br />]]></content:encoded></item><item><title>Blowfish encryption plugin for Colloquy</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Mac OS X</category><dc:date>2007-06-19T00:00:00-04:00</dc:date><link>http://www.pommepause.com/online_files/colloquy_blowfish.html#unique-entry-id-3</link><guid isPermaLink="true">http://www.pommepause.com/online_files/colloquy_blowfish.html#unique-entry-id-3</guid><content:encoded><![CDATA[<span style="font-size:15px; font-weight:bold; "><br /></span><em>Do you want to skip all this text and just get the Colloquy Blowfish Plugin?<br />Then click </em><em><a href="#colloblowdownload" rel="self">here</a></em><em>.<br /></em><br />Lately, IRC channels where I hang started using Blowfish encryption for all messages sent to the channel. mIRC and eggdrop support Blowfish pretty easily, but there was nothing for <a href="http://www.colloquy.info/" rel="self">Colloquy</a> (the IRC client I use - Mac OS X only) to encrypt & decrypt Blowfish encrypted messages.<br /><br />So I started looking for a way to encrypt & decrypt Blowfish messages using a Colloquy plugin. Colloquy allows all sort of plugins: AppleScript, Python, Obj-C, etc. I tried to use the Python template plugin, but it wouldn't even load on Colloquy, spitting some error on load. So I downloaded existing plugins to see how they worked. Most of them seems to use the AppleScript API, and it seems easy enough for my purpose.<br /><br />Now I needed code to encrypt & decrypt Blowfish messages. Google suggested a Java class that allowed easy encryption & decryption. Adding a simple main method in it, I was able to encrypt & decrypt messages via the command line by passing the key & message as arguments. While this worked just fine, launching the JVM each time I received a message or I sent a message was quite resource-consuming, even with my dual G5.<br /><br />So I started looking for C or C++ code that would do the same thing. After trying many implementation, I decided to try to compile the <a href="http://www.eggheads.org/cgi-bin/viewcvs.cgi/eggdrop1.7/src/mod/blowfish.mod/blowfish.c?rev=1.3&content-type=text/vnd.viewcvs-markup" rel="self">eggdrop Blowfish module</a> by itself. I had to change a couple of things to make the blowfish.c file compile alone, but I made it. I also added a new main function to be able to use the encrypt & decrypt functions from the command-line, which worked just fine, and was much faster than the previous Java implementation I used.<br /><br />Note to Java haters: The Java implementation I used was slower because I had to start the JVM each time I wanted to encrypt or decrypt a message. If I had the JVM already running, and a service that would listen for encrypt & decrypt commands on a socket or something, it would very probably have been almost as fast as the C implementation I currently use. I just wanted to go with the more minimalist approach I could find, so I opted for the C program.<br /><br />So now, I was receiving encrypted messages in Colloquy, my AppleScript plugin was called for each message, and I was able to change the received message into it's unencrypted form by calling my Blowfish command-line program. Sent messages followed a similar path: Colloquy > AppleScript plugin > command-line encryption > IRC server.<br /><br />The only problem I had now was special characters. Bold, underline & colors IRC characters were not correctly handled by the AppleScript plugin. So I took the HTML-ized version of the message to be sent and translated all the HTML tags I found into IRC characters. For received message, I did the reverse: I translated IRC characters into HTML tags and passed that new string to Colloquy for display.<br /><br />Limitations: For sent messages, I only translate specific colors into standard IRC colors; I used the quick picks at the bottom of the "Show Colors" panel in Colloquy. So the colors that will be sent correctly when encrypted are: #FF0000 (red), #44B958 (green), #0013FF (blue), and #EBB51B (orange). All others colors will be replaced with black when sent.<br />Received message don't have this limitation, so colors in received messages should pretty much always look OK.<br />Also, my plugin doesn't support background colors, so messages containing those might look weird when decrypted.<br /><br />Tha's it. I now have working Blowfish in my Colloquy, and so can you.<br /><br /><a name="colloblowdownload"></a>You can download the latest version of the Colloquy Blowfish Plugin (version 04) for <a href="/index_assets/Colloquy%20Blowfish%20Plugin%20for%20PowerPC%2004.zip" rel="self">PowerPC</a> or <a href="/index_assets/Colloquy%20Blowfish%20Plugin%20for%20Intel%2004.zip" rel="self">Intel</a>.<br />Changelog:<br />Version 02 fixes a small problem with messages containing colors > 9 (IRC color codes 10 to 15). Those messages would not be shown in Colloquy because of this problem.<br />Version 03 allows to send or receive unencrypted messages in normally encrypted channel or private messages for messages that start with +p.<br />Version 04 fixes a problem with % in sent messages, and adds support for multiple channels using just one plugin.<br />]]></content:encoded></item><item><title>FrontRow Enabler for 10.4.8</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Mac OS X</category><dc:date>2007-06-18T00:00:00-04:00</dc:date><link>http://www.pommepause.com/online_files/frontrow_1048.html#unique-entry-id-4</link><guid isPermaLink="true">http://www.pommepause.com/online_files/frontrow_1048.html#unique-entry-id-4</guid><content:encoded><![CDATA[<span style="font-size:15px; font-weight:bold; "><br /></span><em>Do you want to skip all this text and just get the new FrontRow Enabler for 10.4.8?<br />Then click </em><em><a href="#frontrowenabler131" rel="self">here</a></em><em>.<br /></em><br />Ok. So I wanted to install FrontRow 1.3 on my <em>old</em> PowerMac G5... Downloaded <a href="http://andrewescobar.com/frontrow" rel="self">FrontRow Enabler</a> 1.3, followed instructions, rebooted... And <strong>bam</strong>, no more login screen. How fun. Checking the comments on <a href="http://andrewescobar.com/frontrow" rel="self">Andrew Escobar's page</a>, I realized 10.4.8 wasn't supported just yet. So I used my trusty FireWire cable to fix my PowerMac (see how in the comments of Andrew's page), and started to look for a way to patch FrontRow Enabler 1.3 to make it compatible with Mac OS X 10.4.8.<br /><br />Here's what I did.<br /><br />Mount Andrew Escobar' FrontRow Enabled DMG, and open<br /><strong>/Volumes/Enabler_1.3/Enabler.app/Contents/Resources/Scripts/main.scpt<br /></strong>This is the script executed when you execute Enabler.app<br /><br />main.scpt told me I needed those two patch files:<br /><strong>/Volumes/Enabler_1.3/.frameworkpatch<br /></strong>and<br /><strong>/Volumes/Enabler_1.3/.pluginpatch<br /></strong><br />Download the <a href="http://www.apple.com/support/downloads/macosxupdate1047comboppc.html" rel="self">Mac OS X Update 10.4.7 Combo PPC</a> from Apple.<br /><br />Use Pacifist to extract<br /><strong>/System/Library/PrivateFrameworks/BezelServices.framework/Versions/A/BezelServices<br /></strong>and<br /><strong>/System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/MacOS/BezelServices<br /></strong>from <strong>MacOSXUpdCombo10.4.7PPC.pkg</strong><br /><br />Those are the two files that FrontRow Enabler is patching when you click the 'Enable FrontRow' button; I found this info in <strong>main.scpt</strong><br /><br />Patch both files using FrontRow Enabler patches:<br /><code>cd ~/Desktop/10.4.7-BezelServices.loginPlugin/Contents/MacOS<br/>cp BezelServices BezelServices.bak<br/>bspatch BezelServices BezelServices.patched ~/Desktop/pluginpatch<br/><br/>cd ~/Desktop/10.4.7-BezelServices.framework/Versions/A/<br/>cp BezelServices BezelServices.bak<br/>bspatch BezelServices BezelServices.patched ~/Desktop/frameworkpatch</code><br />Use hexdump to be able to see the binary data of each file in clear text:<br /><code>cd ~/Desktop/10.4.7-BezelServices.loginPlugin/Contents/MacOS<br/>hexdump BezelServices>BezelServices.hex<br/>hexdump BezelServices.patched>BezelServices.patched.hex<br/><br/>cd ~/Desktop/10.4.7-BezelServices.framework/Versions/A/<br/>hexdump BezelServices>BezelServices.hex<br/>hexdump BezelServices.patched>BezelServices.patched.hex</code><br />diff the original and patched files to see what the patches changed:<br /><code>cd ~/Desktop/10.4.7-BezelServices.loginPlugin/Contents/MacOS<br/>diff BezelServices.hex BezelServices.patched.hex<br/><br/>3770c3770<br/>&lt; 000fb60 4bff fed1 2f83 0000 419e 0020 8001 0058<br/>---<br/>&gt; 000fb60 4bff fed1 2f83 0001 419e 0020 8001 0058<br/><br/>cd ~/Desktop/10.4.7-BezelServices.framework/Versions/A/<br/>diff BezelServices.hex BezelServices.patched.hex<br/><br/>512c512<br/>&lt; 00026f0 4800 01d1 8101 0058 3821 0050 7f83 e378<br/>---<br/>&gt; 00026f0 4800 01d1 8101 0058 3821 0050 3860 0003</code><br />Ok, so now I know what bytes needed to be changed in 10.4.7 to enable FrontRow.<br />Now I just need to find the same bytes in the new 10.4.8 files, and create patches for those files.<br /><br /><code>cd ~/Desktop/10.4.8-BezelServices.loginPlugin/Contents/MacOS<br/>hexdump BezelServices>BezelServices.hex<br/>grep -B 1 "2f83 0000 419e" BezelServices.hex<br/>...<br/>--<br/>000faf0 bfc1 fff8 9001 0008 9421 ffb0 4bff febd<br/>000fb00 2f83 0000 419e 0020 8001 0058 3821 0050<br/>--<br/>...</code><br />Close enough... Ok, so BezelServices.loginPlugin/Contents/MacOS/BezelServices needs to get it's 000fb03 byte changed from 00 to 01.<br /><br /><code>cd ~/Desktop/10.4.8-BezelServices.framework/Versions/A/<br/>hexdump BezelServices>BezelServices.hex<br/>grep "0050 7f83 e378" BezelServices.hex<br/><br/>00026f0 4800 01d1 8101 0058 3821 0050 7f83 e378</code><br />Well, what do you know... Exact match. And at the exact same location (00026f0) than the 10.4.7 file; I guess this patch doesn't have to be changed after all.<br /><br />Close to a solution now; just need to create a new .pluginpatch that will patch the correct byte, and it should work fine.<br /><br /><code>sudo port install bsdiff<br/>cp BezelServices BezelServices.patched</code><br />Now to patch the correct byte, I need an hex editor.<br />Seems <a href="http://www.apple.com/downloads/macosx/development_tools/0xed.html" rel="self">0xed</a> would do fine.<br /><br />To verify my patch:<br /><code>hexdump BezelServices.patched>BezelServices.patched.hex<br/>diff BezelServices.hex BezelServices.patched.hex<br/><br/>3804c3804<br/>&lt; 000fb00 2f83 0000 419e 0020 8001 0058 3821 0050<br/>---<br/>&gt; 000fb00 2f83 0001 419e 0020 8001 0058 3821 0050</code><br />Perfect.<br /><br /><code>bsdiff BezelServices BezelServices.patched .pluginpatch1048</code><br />Now let's repackage FrontRow Enabler with this new patch.<br />And done!<br /><br /><a name="frontrowenabler131"></a>You can grab the new <strong>Enabler1.3.1.dmg</strong> <a href="http://www.savefile.com/files/122543" rel="self">here</a>.<br /><span style="color:#ff0000; font-weight:bold; ">Warning: Don't install that on anything else than 10.4.8! You'll break your OS X install!<br /></span>]]></content:encoded></item><item><title>Adding EPG for Canada to EyeTV software</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>EyeTV</category><dc:date>2007-06-17T00:00:00-04:00</dc:date><link>http://www.pommepause.com/online_files/eyetv_epg.html#unique-entry-id-5</link><guid isPermaLink="true">http://www.pommepause.com/online_files/eyetv_epg.html#unique-entry-id-5</guid><content:encoded><![CDATA[<span style="font-size:15px; font-weight:bold; "><br /></span><em>[Note] </em><em><a href="http://eep.pommepause.com/" rel="self">EyeTV EPG Proxy</a></em><em> now has it's own website. Check it out for more details.<br /></em><span style="font-size:14px; font-weight:bold; "><br /></span>I own a Mac-based DVR for quite some time now; a Miglia EvolutionTV. Since I bought it, I switched from the packaged EvolutionTV software to the more mature <a href="http://www.elgato.com/index.php?file=products_eyetvmain" rel="self">EyeTV</a> software package (non free).<br />Recently, EyeTV added a full screen interface which integrates beautifully with Front Row. The actual full screen interface for EyeTV is actually quite the same as the Front Row interface, and one can launch Front Row from a menu item in there.<br />This made using the EyeTV for more than just recording an actual option.<br />The only problem I had left with the EyeTV software was the EPG (Electronic Program Guide); there is no EPG support for canadian users!<br />This was a fact of life I lived with ever since I bought the EvolutionTV hardware, until I gave up waiting for Elgato to release an EPG for Canada.<br />Taking the matter into my own hands, I created a <a href="http://www.titantv.com/" rel="self">TitanTV</a> (US-only EPG) account, configured EyeTV to download TitanTV data, and sniffed the HTTP packets exchanged between my computer and TitanTV's server. Luckily, nothing was encrypted. I was able to intercept the provider lookup from a zip code, the channels lineup lookup using the chosen provider, and finally the EPG data download using the chosen lineup.<br />I then added an entry to my own web server in my Mac's /etc/hosts file, and started to create PHP scripts on my server that would answer EyeTV's requests for EPG data.<br />Faking the provider list and the channels lineup was easy enough; a simple XML format was used.<br />For the EPG data, I first had to find valid canadian EPG data. A big thanks to <a href="http://www.zap2it.com/" rel="self">Zap2It</a> for that! :) They provide EPG data using a web service (SOAP), free of charge for personal use.<br />I then fiddled with PHP's SOAP capability, and Zap2It web service, until I was able to successfully pull the correct data from their server (compressed, to lower the amount of data transferred between both servers).<br />To make sure I didn't try to download EPG data from Zap2It for no reason, I added a one day disk cache (PHP's un/serialize functions) for this data.<br />Half the work was done. The only thing left was converting the actual EPG data into TitanTV XML format.<br />I struggled for some time with timestamps conversion (TitanTV use a base-time value, and schedule's timestamps are relative to that base-time) and program IDs (EyeTV doesn't support alpha-numeric IDs - I had to convert Zap2It IDs into pure numbers) but I was finally able to completely simulate TitanTV data from my own server.<br /><br />The result :<br /><a href="/index_assets/EyeTV%20EPG%20for%20Canada.png" rel="self"><img class="imageStyle" alt="page2_1" src="http://www.pommepause.com/online_files//page21_blog_entry5_1.png" width="300" height="170"/></a><br /><br />I'm very satisfied with the results. I can now schedule recordings using valid EPG data for my provider, and browse the currently playing shows easily, all from the full screen interface of EyeTV. :)<br /><br /><em>[New] </em>I added support for XMLTV data source, instead of Zap2It. This should allow people from Europe to use it by using the XMLTV grabber that fits their need. For Canadian users, there's really no need to use XMLTV, since the XMLTV support for North America comes from Zap2It anyway, so it's better to just use Zap2It Web Service directly.<br />]]></content:encoded></item><item><title>Compiling PHP 5 on Mac OS X</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Mac OS X</category><dc:date>2007-06-16T00:00:00-04:00</dc:date><link>http://www.pommepause.com/online_files/compile_php5_mac.html#unique-entry-id-6</link><guid isPermaLink="true">http://www.pommepause.com/online_files/compile_php5_mac.html#unique-entry-id-6</guid><content:encoded><![CDATA[<span style="font-size:15px; font-weight:bold; "><br /></span>Not that easy...<br /><br /><em>Note that the following will only work on Tiger, not on Panther nor Leopard!</em><br /><br />1. Install <a href="http://developer.apple.com/tools/download/" rel="self">Xcode</a>; latest (currently 2.4) is always a good idea.<br /><br />2. Install <a href="http://fink.sourceforge.net/" rel="self">fink</a>.<br /><br />3. Install needed packages using fink:<br /><code>sudo fink selfupdate<br/>sudo fink install libjpeg libtiff libpng3 libxml t1lib5 uw-imap-c-client-ssl libmcrypt libmhash ming mysql15-dev postgresql80-ssl-dev</code><br />Note: Continue with the other steps while this process. It will take a while!<br />For step 7, wait for this to complete.<br /><br />4. Download <a href="http://www.frontbase.com/cgi-bin/WebObjects/FrontBaseLicense.woa/wa/download?ident=1000014" rel="self">FrontBase for Mac OS X</a>.<br />It comes in DMG/Installer form. Install it.<br />Note: You can customize the installation, and deselect everything except <em>FBDeveloperLibraries</em>.<br /><br />5. Install FreeTDS:<br /><code>curl -O http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz<br/>tar zxf freetds-stable.tgz<br/>rm freetds-stable.tgz<br/>cd freetds-0.64/<br/>./configure && make && sudo make install<br/>cd ..</code><br />6. Download <a href="http://www.php.net/downloads.php" rel="self">latest PHP source</a>; currently 5.2.5<br />Extract it.<br /><br />7. Compile PHP<br /><code>cd ~/Desktop/php-5.2.5<br/>./configure --prefix=/usr/local/php5 --with-apxs --with-config-file-scan-dir=/usr/local/php5/php.d --with-iconv --with-openssl=/usr --with-zlib=/usr --with-gd --enable-gd-native-ttf --with-libjpeg=/sw --with-libtiff=/sw --with-libpng=/sw --with-jpeg-dir=/sw --with-png-dir=/sw --with-zlib-dir=/usr --with-ldap --with-xmlrpc --with-iconv-dir=/usr --with-snmp=/usr --enable-exif --enable-wddx --enable-soap --enable-sqlite-utf8 --enable-ftp --enable-sockets --enable-dbx --enable-dbase --enable-mbstring --enable-calendar --enable-bcmath --with-bz2=/usr --with-curl --with-kerberos=/usr  --with-imap=/sw/share/c-client/ --with-imap-ssl=/sw/share/c-client/ --with-iodbc=shared,/usr --with-json=shared --enable-memcache --with-libxml --with-xsl --with-pgsql=/sw --with-pdo-pgsql=/sw --with-pdflib --with-t1lib=/sw --with-gettext --with-ming=/sw --with-mcrypt=/sw --with-mhash=/sw --with-mssql=/usr/local --with-mysql=/sw --with-mysqli --with-pdo-mysql=/sw --with-fbsql<br/>OPTIM=-O2<br/>make<br/>sudo make install</code><br />8. Edit your /etc/httpd/httpd.conf: Change <br /><code>&lt;IfModule mod_php4.c></code>to<br /><code>&lt;IfModule mod_php5.c></code><br />9. Restart Apache:<br /><code>sudo apachectl stop<br/>sudo apachectl start</code><br />You can verify that your new php executable works fine by doing:<br /><code>/usr/local/php5/bin/php -i | grep "Build Date"</code><br />Done.<br />]]></content:encoded></item><item><title>Canadian Holidays in iCal</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Mac OS X</category><dc:date>2007-06-15T00:00:00-04:00</dc:date><link>http://www.pommepause.com/online_files/canadian_holidays_ical.html#unique-entry-id-7</link><guid isPermaLink="true">http://www.pommepause.com/online_files/canadian_holidays_ical.html#unique-entry-id-7</guid><content:encoded><![CDATA[<span style="font-size:15px; font-weight:bold; "><br /></span>I publish and maintain a calendar of all the Canadian Holidays.<br />I started it in iCal.app (on my Mac) and I was publishing it using WebDAV on my web server, but I now imported it in Google Calendar, where I maintain and share it.<br /><br />Here's the link to get it in <a href="http://www.google.com/calendar/ical/f72sbvvkblj0jdkpfsmqmvvap0%40group.calendar.google.com/public/basic.ics" rel="self">iCal format</a><br />or add it directly to your <a target="_blank" href="http://www.google.com/calendar/render?cid=f72sbvvkblj0jdkpfsmqmvvap0@group.calendar.google.com"><img src="http://www.google.com/calendar/images/ext/gc_button1.gif" border=0></a><br />]]></content:encoded></item><item><title>Activism: RapidWeaver Contact Form vulnerability</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Mac OS X</category><dc:date>2007-06-14T00:00:00-04:00</dc:date><link>http://www.pommepause.com/online_files/rapidweaver_activism.html#unique-entry-id-8</link><guid isPermaLink="true">http://www.pommepause.com/online_files/rapidweaver_activism.html#unique-entry-id-8</guid><content:encoded><![CDATA[<span style="font-size:15px; font-weight:bold; "><br /></span>RapidWeaver is a nice software for Mac OS X that allows people with no knowledge of HTML/CSS whatsoever to create very nice websites. (This website was created with RapidWeaver.) It comes with themes, page templates, etc. One of those page template is a PHP Contact Form. It has come to my attention (from the RealmacSoftware support forums) that the PHP code generated by RapidWeaver (version 3.2.1 or less) is vulnerable to mail header injection attacks. I created web pages in both <a href="http://www.danslereseau.com/rw-contact-fix/" rel="self">french</a> and <a href="http://www.danslereseau.com/rw-contact-fix/en/" rel="self">english</a> on how to temporarily fix this vulnerability until RealmacSoftware release RapidWeaver 3.5 which is supposed to close this issue. I also did a quick search on Google to find RW-created contact forms, and I tried to exploit them. Each successful exploit was then logged and a warning email was sent to the webmaster with links to RMS forums and to the above page on how to fix this vulnerability. I received a couple of negative answers about this, but I received much, much more positive replies, thanking me for the warning or asking me for help to implement the fix.<br /><br />Why did I do this: I feel like when you have the resources and know-how needed to help people and make the Internet a better place, it's never a bad idea to use them and act. That is, when time permit..!<br /><br />References: Jelly & Custard, <a href="http://www.jellyandcustard.com/2006/02/24/email-header-injection-in-php/" rel="self">Email Header Injection in PHP</a>, explains php mail() header injections, and why it's uncool to *not* fix this.<br /><br />*update: RMS have finally published a fix for RW users: <a href="http://www.realmacsoftware.com/support/viewtopic.php?id=7761" rel="self">here</a>'s the forum post that discuss the new version of the Contact Form plugin (available for RW 3.2.1).<br />]]></content:encoded></item><item><title>ioFTPD</title><dc:creator>gb.online@danslereseau.com</dc:creator><category>Open Source</category><dc:date>2007-06-13T00:00:00-04:00</dc:date><link>http://www.pommepause.com/online_files/ioftpd.html#unique-entry-id-9</link><guid isPermaLink="true">http://www.pommepause.com/online_files/ioftpd.html#unique-entry-id-9</guid><content:encoded><![CDATA[<span style="font-size:14px; font-weight:bold; "><br /></span>Started to check that out in December 2002. Since then, I created a number of scripts for the FTP daemon for Windows. Many of which not many people still use, but I still use some of them. I'm currently re-writing my main script in Java. Much more fun to code than the last version, which was C coded with Visual C++. ioBanana was my most popular script. Funny name comes from a suggestion in the IRC channel #ioFTPD. I wanted to call it ioB, since there was already an existing script ioA, which almost everybody used (and still use) and my ioB was complementing it. But ioA' developer thought it was too confusing, so ioBanana it became.<br />When I started that script, I did it for myself. I wanted a script to do everything I needed without having to install X different scripts. The features implemented were the ones I needed, not much more. The script was freely available to anyone then, but other than bug reports, I didn't do much in regards to new features.<br />After a time, I started to add features I personally didn't need, and I also started to make the script donation-ware. A donation of any amount (above 2$!) gave you a key to unlock the full version of the script. I was using some clever public/private key scheme to lock my executable. Sadly, one day, I moved files around on my system, and the scripts that were supposed to automatically encrypt the executables I was distributing stopped doing it's job. Some time after that happened, ioBanana, the non-free version, was released as a 0day (warez). Soon after that happened, I officially dropped public releases of ioBanana and offered the source code to any developer who would want to continue my work. Harm volunteered. Since he took the project, he released two 'minor' versions (based on my C code) and one major version, completely rewritten in TCL, but kept the name.<br />I continued to improve my personal version of ioBanana, and as of today (now that I can't compile it anymore!), the script has 13,713 LOC (only counting lines I wrote myself), includes libraries like ZipArchive, mysql++, cmp3info, re_lib and minidumper, but still has some known bugs. Thats why I started a new one in Java. Using OO is so much easier on a programmer's mind!<br /><br /><a href="http://code.google.com/p/iobanana1/" rel="self">ioBanana source code</a> can be found on Google Code under GPL.<br /><br />Apart from scripting, I also took time to answer many support questions in the forums. Even after being pretty much inactive for a couple of months now, I'm still the top poster on ioFTPD forums. I still read the forums once in a while, and might reply to a thread when no one else did, but I pretty much lost interest.<br /><br />I also got paid by iniCom (the company that now owns ioFTPD rights) for various work; mainly web-related developments. I stopped that relation with iniCom in January 2005, when I decided to stop pretty much all paid contracts I had outside my current job.<br />]]></content:encoded></item></channel>
</rss>