<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>KRKeegan - Programming</title>
    <link>http://www.krkeegan.com/</link>
    <description>I'm lost and confused</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.1.2 - http://www.s9y.org/</generator>
    
    

<item>
    <title>PHP: Get date for nth occurrence of weekday</title>
    <link>http://www.krkeegan.com/archives/92-PHP-Get-date-for-nth-occurrence-of-weekday.html</link>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/92-PHP-Get-date-for-nth-occurrence-of-weekday.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=92</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=92</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;p&gt;I looked quickly and did not see any code out there to determine the nth occurrence of a specific day of the week in a month.  For example Thanksgiving is the 4th Thursday in November.  So I designed the following&lt;/p&gt;&lt;pre&gt;&amp;lt;?php&lt;br /&gt;$year = 2012; //Pick your year&lt;br /&gt;$interval = 4; //Week number, in this case the 4th week&lt;br /&gt;$dayofweek = 4; //Day of week 0=Sun, 1=Mon. . .&lt;br /&gt;$month = 11; //Month 1=Jan, 2=Feb&lt;br /&gt;&lt;br /&gt;$firstday = jddayofweek(gregoriantojd($month, 1, $year), 0);&lt;br /&gt;if($firstday &amp;lt;= $dayofweek){&lt;br /&gt;  $date = (($interval * 7)-6) + ($dayofweek - $firstday);&lt;br /&gt;}&lt;br /&gt;else{&lt;br /&gt;  $date = (($interval * 7)-1) + (6 - $firstday);&lt;br /&gt;}&lt;br /&gt;echo date(&amp;quot;n/j/Y&amp;quot;, mktime(0, 0, 0, $month, $date, $year));&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;p&gt;It looks a little messy, but it works perfectly&lt;/p&gt;&lt;pre&gt;&lt;p /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/92-PHP-Get-date-for-nth-occurrence-of-weekday.html#extended&quot;&gt;Continue reading &quot;PHP: Get date for nth occurrence of weekday&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 29 Sep 2008 20:09:00 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/92-guid.html</guid>
    
</item>
<item>
    <title>Integrating Google Talk with Roundcube</title>
    <link>http://www.krkeegan.com/archives/91-Integrating-Google-Talk-with-Roundcube.html</link>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/91-Integrating-Google-Talk-with-Roundcube.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=91</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=91</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    &lt;p&gt;&lt;div style=&quot;width: 110px;&quot; class=&quot;serendipity_imageComment_left&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a href=&quot;http://www.krkeegan.com/uploads/roundcubewithgtalk.JPG&quot; class=&quot;serendipity_image_link&quot;&gt;&lt;!-- s9ymdb:98 --&gt;&lt;img height=&quot;86&quot; width=&quot;110&quot; src=&quot;http://www.krkeegan.com/uploads/roundcubewithgtalk.serendipityThumb.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;Sorry I don&#039;t have much time at the moment to write up a whole entry about this, but I am very excited about this.&lt;/p&gt;&lt;p&gt;I am a big fan of roundcube but I have always wanted the ability to integrate some instant messaging into it.  Well google finally released a gtalk gadget that allows you to integrate gtalk/gchat into any page you want.  Although, google has done a very poor job of announcing this and I don&#039;t think most people know about it.&lt;/p&gt;&lt;p&gt;Anyways, it is a very simple single line &amp;lt;iframe&amp;gt; code.  I just quickly added it to the roundcube template and made a few changes to the CSS code and it works perfectly.&lt;/p&gt;&lt;p&gt;Click the image above to see a larger screen shot.  I will write up the code for this later when I have some free time.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Mon, 15 Sep 2008 21:23:00 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/91-guid.html</guid>
    
</item>
<item>
    <title>How to Resurrect Procmail and Spamassassin on Dreamhost</title>
    <link>http://www.krkeegan.com/archives/89-How-to-Resurrect-Procmail-and-Spamassassin-on-Dreamhost.html</link>
            <category>Dreamhost</category>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/89-How-to-Resurrect-Procmail-and-Spamassassin-on-Dreamhost.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=89</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=89</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;!----&gt;&lt;a class=&quot;serendipity_image_link&quot; href=&quot;http://www.krkeegan.com/uploads/dreamhost_procmail.gif&quot;&gt;&lt;!-- s9ymdb:95 --&gt;&lt;img width=&quot;78&quot; height=&quot;110&quot; style=&quot;border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://www.krkeegan.com/uploads/dreamhost_procmail.serendipityThumb.gif&quot; /&gt;&lt;/a&gt;Admittedly I have been very annoyed with Dreamhost since &lt;a href=&quot;http://krkeegan.com/archives/84-Dreamhost-Removes-Procmail.html&quot;&gt;they announced&lt;/a&gt; that users would no longer be able to use procmail.  I still feel that my complaints are valid.  Dreamhost handled the removal of this feature in a very poor manner.  For a while, it did not seem like they recognized how serious this actually was.  Notably, Josh in a blog entry joked that &lt;a href=&quot;http://blog.dreamhost.com/2008/05/23/what-web-hosting-is-for/&quot;&gt;Dreamhost no longer wanted to host email&lt;/a&gt;.&lt;p&gt;&lt;br /&gt;After that post, a firestorm among clients ensued with over 100 comments.  And it seems like they may have taken a few steps back and reconsidered their position.  A later comment by Dallas seems to suggest that Dreamhost is trying to quickly remedy the absence of procmail.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Sidenote&lt;/b&gt;&lt;/p&gt;&lt;p&gt;As a side note, we seem to have been given a slight glimpse into the balance of personalities at the core of Dreamhost.  Josh has always been the more vocal of the two.  But, Josh has also been very &lt;a href=&quot;http://blog.dreamhost.com/2008/05/23/what-web-hosting-is-for/#comment-95720&quot;&gt;unprofessional at times&lt;/a&gt;.  In this most recent post, it seems likely that while Josh may be more vocal, Dallas is the professional face of Dreamhost and &lt;a href=&quot;http://blog.dreamhost.com/2008/05/23/what-web-hosting-is-for/#comment-95733&quot;&gt;the person truley in charge&lt;/a&gt;.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;How to get procmail Back&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Back to the point of this article, after reading the most recent entry I realized that it is possible to still use both procmail and spamassassin.  However, this solution is not elegant.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/89-How-to-Resurrect-Procmail-and-Spamassassin-on-Dreamhost.html#extended&quot;&gt;Continue reading &quot;How to Resurrect Procmail and Spamassassin on Dreamhost&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 28 Jun 2008 14:39:18 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/89-guid.html</guid>
    
</item>
<item>
    <title>Bug in BlackBerry Repeat Rule, MONTH_OF_YEAR Deincrements 1 Month</title>
    <link>http://www.krkeegan.com/archives/86-Bug-in-BlackBerry-Repeat-Rule,-MONTH_OF_YEAR-Deincrements-1-Month.html</link>
            <category>Blackberry</category>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/86-Bug-in-BlackBerry-Repeat-Rule,-MONTH_OF_YEAR-Deincrements-1-Month.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=86</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=86</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;p&gt;&lt;!-- s9ymdb:94 --&gt;&lt;img width=&quot;110&quot; height=&quot;21&quot; src=&quot;http://www.krkeegan.com/uploads/Blackberry_logo.serendipityThumb.gif&quot; style=&quot;border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;&quot; /&gt;I have noticed a bug in &lt;font size=&quot;-1&quot; face=&quot;arial,sans-serif&quot; color=&quot;#000000&quot;&gt;javax.microedition.pim.RepeatRule&lt;/font&gt;, when I tried to set a an event to repeat every second sunday of may I would get an event that repeated every second sunday of april.  I determined that this was being caused by MONTH_OF_YEAR being deincremented by 1 month after the event was committed.  &lt;/p&gt;&lt;p&gt;I worked around the problem by setting the value one month forward.  However obviously, this does not work for december.  I tried increasing the value of the MONTH_OF_YEAR setting, however java balks at any unknown value.  Currently I am unable to set an event to occur on the second sunday in december.  If anyone figures out a work around I would be greatful. &lt;/p&gt;&lt;p&gt;RIM has recognized that this is a bug, but who knows when the bug will be fixed.  I attached a copy of the email I received from RIM:&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/86-Bug-in-BlackBerry-Repeat-Rule,-MONTH_OF_YEAR-Deincrements-1-Month.html#extended&quot;&gt;Continue reading &quot;Bug in BlackBerry Repeat Rule, MONTH_OF_YEAR Deincrements 1 Month&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 24 Apr 2008 09:22:15 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/86-guid.html</guid>
    
</item>
<item>
    <title>Improved Funambol Blackberry Plugin</title>
    <link>http://www.krkeegan.com/archives/85-Improved-Funambol-Blackberry-Plugin.html</link>
            <category>Blackberry</category>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/85-Improved-Funambol-Blackberry-Plugin.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=85</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=85</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;!-- s9ymdb:93 --&gt;&lt;img width=&quot;80&quot; height=&quot;100&quot; src=&quot;http://www.krkeegan.com/uploads/logo1.serendipityThumb.png&quot; style=&quot;border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;&quot; /&gt;&lt;p&gt;As promised I made significant improvements to the Funambol Blackberry Client, while the improvements are geared towards better functionality with ScheduleWorld.com, they should benefit individuals who use other SyncML servers as well.&lt;/p&gt;&lt;p&gt;The Improvements in 3.0.8.4 include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;Ignore milliseconds in date, fixes duplication on 
slowsync&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;Properly display entities such as quotes and ampersands&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;Allday events now show up on week and month view&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;Multiday Allday events are no longer short one day&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;All day events no longer duplicate on SlowSync&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt; Accept basic ISO 8061 dates&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;Fixed error message that popped up whenever sending an email&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;Removed configuration section relating to email since Schedule World does not support email&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;Altered default settings in configuration to match Schedule World settings&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;Added AutoSync Feature - The client will query the server for changes every X hours.&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/85-Improved-Funambol-Blackberry-Plugin.html#extended&quot;&gt;Continue reading &quot;Improved Funambol Blackberry Plugin&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 17 Apr 2008 17:39:15 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/85-guid.html</guid>
    
</item>
<item>
    <title>Fix for Sending Email with Funambol and Schedule World </title>
    <link>http://www.krkeegan.com/archives/83-Fix-for-Sending-Email-with-Funambol-and-Schedule-World.html</link>
            <category>Blackberry</category>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/83-Fix-for-Sending-Email-with-Funambol-and-Schedule-World.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=83</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=83</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;!-- s9ymdb:92 --&gt;&lt;img width=&quot;55&quot; height=&quot;110&quot; style=&quot;border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://www.krkeegan.com/uploads/8100.serendipityThumb.jpg&quot; /&gt;&lt;p&gt;Those of us without a Blackberry Enterprise Server cannot automatically synchronize our calendar and contacts with our PC without directly pluging the Blackberry directly into the PC with a USB cable.  This is where Funambol and ScheduleWorld come in.  ScheduleWorld is a SyncML server, basically a Calendar and Contacts server.  Funambol is an open source SyncML client for the blackberry.  By using both of these programs you can sync your calendar and contacts to your PC over the air, without directly connecting your Blackberry to your PC.  There are numerous tutorials for how to set this sytem up so I won&#039;t waste your time discussing it here.&lt;/p&gt;&lt;p&gt;However, the Funambol ScheduleWorld setup has had one main issue for over a year.  The problem stems from  the fact that Funambol also allows for the synchronization of email while ScheduleWorld does not. Funambol allows users to unselect mail from synchronization.  But even with mail unchecked Funambol still does some check of the mail which causes an error.  Currently users will get the following error when sending an email:  &lt;/p&gt;&lt;p&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;pre&gt;Sorry you can&#039;t synchronize &amp;quot;mail&amp;quot;, because the name of &lt;br /&gt;the Remote Mail in the Funambol configuration panel &lt;br /&gt;mismatches the corresponding name on the server.&lt;/pre&gt;&lt;/span&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Users then had to select &amp;quot;resend&amp;quot; to force their email to send.  Needless to say the whole process was very annoying.  Funambol is an open source project so I decided to take a look.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/83-Fix-for-Sending-Email-with-Funambol-and-Schedule-World.html#extended&quot;&gt;Continue reading &quot;Fix for Sending Email with Funambol and Schedule World &quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 07 Apr 2008 23:06:26 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/83-guid.html</guid>
    
</item>
<item>
    <title>Blackberry IMAP Proxy - Working Sent and Trash Folders</title>
    <link>http://www.krkeegan.com/archives/82-Blackberry-IMAP-Proxy-Working-Sent-and-Trash-Folders.html</link>
            <category>Blackberry</category>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/82-Blackberry-IMAP-Proxy-Working-Sent-and-Trash-Folders.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=82</wfw:comment>

    <slash:comments>10</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=82</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;!-- s9ymdb:90 --&gt;&lt;img width=&quot;61&quot; height=&quot;110&quot; style=&quot;border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://www.krkeegan.com/uploads/blackberry_pearl.serendipityThumb.jpg&quot; /&gt;&lt;p&gt;RIM has never fully supported IMAP servers in their Blackberry Internet Service(BIS) formerly Blackberry Web Client(BWC).  Notably BIS does not recognize the NAMESPACE command from IMAP servers.  The vast majority of IMAP servers place all user folders in a single parent folder(usually INBOX) therefore the Sent and Trash folders are actually INBOX.Sent and INBOX.Trash.  Unfortunately BIS only recognizes Sent and Trash in the base directory.&lt;/p&gt;&lt;p&gt;This script sits between the BIS and your IMAP server.  The proxy then makes INBOX.Sent and INBOX.Trash appear to be Sent and Trash.  This enables BIS to save a copy of your sent emails into INBOX.Sent properly and a copy of deleted emails into INBOX.Trash properly. &lt;/p&gt;&lt;p&gt;Additionally this script allows you to use a non standard folder as your inbox as well.&lt;br /&gt; &lt;/p&gt;  &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/82-Blackberry-IMAP-Proxy-Working-Sent-and-Trash-Folders.html#extended&quot;&gt;Continue reading &quot;Blackberry IMAP Proxy - Working Sent and Trash Folders&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 18 Dec 2007 13:18:02 -0800</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/82-guid.html</guid>
    
</item>
<item>
    <title>TiVo Central for Mobile Devices</title>
    <link>http://www.krkeegan.com/archives/81-TiVo-Central-for-Mobile-Devices.html</link>
            <category>Programming</category>
            <category>TiVo</category>
    
    <comments>http://www.krkeegan.com/archives/81-TiVo-Central-for-Mobile-Devices.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=81</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=81</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;!-- s9ymdb:52 --&gt;&lt;img width=&quot;110&quot; height=&quot;92&quot; src=&quot;http://www.krkeegan.com/uploads/tivo_logo.serendipityThumb.gif&quot; style=&quot;border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;&quot; /&gt;TiVo Central Online is pretty cool, it allows you to program your TiVo to record an upcoming show or season pass from the interent.  I wanted to be able to access TiVo Central anywhere I went, unfortunately TiVo Central is not available for Mobile devices.  So I decided to whip up a quick PHP script to parse TCO and repaginate it into a mobile friendly html site.  This is all accomplished in 480 lines of php code.  The script allows for searching of upcoming shows by title, description, or cast members.   After searching you can select the specific showing and record it using a one time or season pass recording.  Additionally the script allows access to all advanced recording options and will send you an email to confirm the recording. &lt;!-- s9ymdb:52 --&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/81-TiVo-Central-for-Mobile-Devices.html#extended&quot;&gt;Continue reading &quot;TiVo Central for Mobile Devices&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 29 Oct 2007 22:05:53 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/81-guid.html</guid>
    
</item>
<item>
    <title>Gallery2 Picasa XML Import Hack</title>
    <link>http://www.krkeegan.com/archives/80-Gallery2-Picasa-XML-Import-Hack.html</link>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/80-Gallery2-Picasa-XML-Import-Hack.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=80</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=80</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;!-- s9ymdb:89 --&gt;&lt;img width=&quot;110&quot; height=&quot;44&quot; src=&quot;http://www.krkeegan.com/uploads/logo.serendipityThumb.png&quot; style=&quot;border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;&quot; /&gt;&lt;!-- s9ymdb:89 --&gt;I have always been a fan of the Gallery program.  You can see my pictures &lt;a href=&quot;http://gallery.krkeegan.com&quot;&gt;here&lt;/a&gt;&lt;p&gt;. I have also sporadically used Picasa2 from Google. While I thought Picasa2 was a nice free product, I never really had much use for it.  However recently a few new features in Picasa2 have gotten my attention.&lt;/p&gt;&lt;p&gt;Notably Picasa2 allows for an XML export of an album, this export can even be directly uploaded by FTP to a web server. (Tools-&amp;gt;Expiremental-&amp;gt;Publish via FTP . . . then select XML as the page type).  Then I found out that one of the modules available for gallery2 allows for a direct import of Picasa2 XML pages.  &lt;a href=&quot;http://codex.gallery2.org/Gallery2:Modules:picasa&quot;&gt;Picasa Module.&lt;/a&gt;  I tried it out and it worked as promised.&lt;/p&gt;&lt;p&gt;However, I found one error. If you do not enter a caption Picassa will automatically copy the
itemName into the itemCaption field. Personally if I don&#039;t enter a
caption on a photo, I would prefer it remain un-captioned. So I hacked the module to fix this issue.&lt;/p&gt;&lt;p /&gt; &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/80-Gallery2-Picasa-XML-Import-Hack.html#extended&quot;&gt;Continue reading &quot;Gallery2 Picasa XML Import Hack&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 07 Oct 2007 15:35:49 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/80-guid.html</guid>
    
</item>
<item>
    <title>pyTivo - Aspect Ratio</title>
    <link>http://www.krkeegan.com/archives/77-pyTivo-Aspect-Ratio.html</link>
            <category>Programming</category>
            <category>TiVo</category>
    
    <comments>http://www.krkeegan.com/archives/77-pyTivo-Aspect-Ratio.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=77</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=77</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;p id=&quot;HowpyTivohandlesaspectratios&quot;&gt;&lt;img width=&quot;100&quot; height=&quot;100&quot; src=&quot;http://www.krkeegan.com/uploads/pytivo.gif&quot; style=&quot;border: 0px none ; padding-right: 5px; padding-left: 5px; float: left;&quot; /&gt;&lt;/p&gt;&lt;p&gt;I have received a number of questions about how pyTivo handles aspect ratios.  Aspect ratios are a very convoluted subject as you will see.  I make no attempt to explain everything, at the end of this page you will see a link to a much longer page that does a better explanation than me.&lt;/p&gt;&lt;p&gt;This is meant to be a quick and dirty explanation of how pyTivo handles Aspect Ratios. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Quick Tutorial on Aspect Ratios&lt;/strong&gt; By no means is any of this guaranteed to be accurate. This only represents what I believe to be true, if I am making a mistake that causes an error in pyTivo please point it out to me.&lt;/p&gt;&lt;p&gt;There are two types of aspect ratios:&lt;br /&gt;&lt;span class=&quot;underline&quot;&gt;Frame Aspect Ratio&lt;/span&gt;&lt;br /&gt;This is simply the ratio of what the file looks like when it plays on your TV which can be determined by:&lt;br /&gt;Width displayed on TV: Height displayed on TV. TiVo accepts files in 16:9 or 4:3 format. &lt;/p&gt;&lt;p&gt;&lt;span class=&quot;underline&quot;&gt;Pixel Aspect Ratio&lt;/span&gt;&lt;br /&gt;This is the annoying one. This refers to the shape of the pixels themselves. For example a 1:1 pixel aspect ratio means a perfect square pixel. &lt;/p&gt;&lt;p&gt;Most computer files are saved in 1:1 Pixel Aspect Ratio(PAR) however that is where it ends.  TV, DVD, Film is all distorted to some other PAR.  Infortunately there is no way for us to know when pyTivo opens a file what the PAR is.  For the most part since pyTivo is using computer files it assumes that most files are 1:1.  And then if the file fits an exact dimension of a known non 1:1 PAR pyTivo will use that dimension.&lt;/p&gt;&lt;p&gt;Oh but we are not done. . .&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/77-pyTivo-Aspect-Ratio.html#extended&quot;&gt;Continue reading &quot;pyTivo - Aspect Ratio&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 25 Feb 2007 21:45:00 -0800</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/77-guid.html</guid>
    
</item>
<item>
    <title>pyTivo - End Transfer</title>
    <link>http://www.krkeegan.com/archives/76-pyTivo-End-Transfer.html</link>
            <category>Programming</category>
            <category>TiVo</category>
    
    <comments>http://www.krkeegan.com/archives/76-pyTivo-End-Transfer.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=76</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=76</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;p&gt;&lt;img width=&quot;100&quot; height=&quot;100&quot; src=&quot;http://www.krkeegan.com/uploads/pytivo.gif&quot; style=&quot;border: 0px none ; padding-right: 5px; padding-left: 5px; float: left;&quot; /&gt;Both pyTivo and TiVoDotNet suffer the same problem with transfers.  The result is that files which are transfered but not watched are deleted instantly as soon as they finish.  The problem is caused by how we transfer files.  &lt;/p&gt;&lt;p&gt;When TiVo asks for a XviD file from pyTivo TiVo asks for the file size of the file before it starts transfering.  This of course raises an issue, since pyTivo is transcoding the file realtime pyTivo has no idea how large he file will be when the transcoding is done.  I have tried numerous settings and I can&#039;t figure out a command to force FFMpeg to an &lt;strong&gt;exact&lt;/strong&gt; bit rate.  So we usually estimate the file size.&lt;/p&gt;&lt;p&gt;There is also an additional problem with file size estimation.  Estimating the file size too small will cause files to be clipped at the end.  Estimating the file to large may cause TiVo to unnecessarily delete other videos to make room for a file that is not that large.  Also, when a user reached the end of the video TiVo would display an error stating that the transfer had unexpectedly ended even though we have reached the end of the video.&lt;/p&gt;&lt;p&gt;However if pyTivo estimates the file even 1 bit too large(pyTivo never gets it exact, we always have a 2% buffer to prevent the under size issue) TiVo will continue asking for bytes that dont exist.  This really messes with TiVo.  So our temporary hack was to return a 404 error when TiVo asked for the overage of the file.  However this doesn&#039;t appear to be perfect, most of us suffer the early deletion problem discussed above.&lt;/p&gt;&lt;p&gt;So I spent a weekend on this and solved the issue!!&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/76-pyTivo-End-Transfer.html#extended&quot;&gt;Continue reading &quot;pyTivo - End Transfer&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 08 Feb 2007 21:14:00 -0800</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/76-guid.html</guid>
    
</item>
<item>
    <title>pyTivo - Play any type of video on TiVo</title>
    <link>http://www.krkeegan.com/archives/75-pyTivo-Play-any-type-of-video-on-TiVo.html</link>
            <category>Programming</category>
            <category>TiVo</category>
    
    <comments>http://www.krkeegan.com/archives/75-pyTivo-Play-any-type-of-video-on-TiVo.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=75</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=75</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    
&lt;p&gt;&lt;img width=&quot;100&quot; height=&quot;100&quot; src=&quot;http://www.krkeegan.com/uploads/pytivo.serendipityThumb.gif&quot; style=&quot;border: 0px none ; padding-right: 5px; padding-left: 5px; float: left;&quot; /&gt;?All I can say is wow, this is one of the coolest pieces of software.? Let me explain what it is. TiVo has long since allowed you to transfer previously recorded TiVo shows back to TiVo.? They also allow you to transfer non-TiVo shows as long as they are in TiVo format.? However, TiVo format is MPEG2 and has specific size and fps requirements.? Unfortunately no one stores videos on their home computer in MPEG2, mostly because they take up 5-10 times the space of a XviD video.&lt;/p&gt;&lt;p&gt;While I was browsing around the &lt;a href=&quot;http://www.tivocommunity.com&quot;&gt;TiVo Community forum&lt;/a&gt;?i discovered &lt;a href=&quot;http://www.tivocommunity.com/tivo-vb/showthread.php?t=337822&quot;&gt;TiVo.net&lt;/a&gt;.? This program ingeniously takes just about any video and transcodes it to MPEG2 on the fly and serves it up to TiVo.? Now I run a linux box as my server and TiVo.net is written in C#, however they recommended a program called mono, that will enable a linux machine to run C#.? It worked, but I kinda found TiVo.net to be a little bulky and prone to crashing.? Not the type of program that I can just put on a headless linux box and forget about.&lt;/p&gt;&lt;p&gt;So I kept looking for a better solution.? What I found was amazing.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.krkeegan.com/archives/75-pyTivo-Play-any-type-of-video-on-TiVo.html#extended&quot;&gt;Continue reading &quot;pyTivo - Play any type of video on TiVo&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 08 Jan 2007 09:25:00 -0800</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/75-guid.html</guid>
    
</item>
<item>
    <title>CSS with Google Cache shows up Black</title>
    <link>http://www.krkeegan.com/archives/41-CSS-with-Google-Cache-shows-up-Black.html</link>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/41-CSS-with-Google-Cache-shows-up-Black.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=41</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=41</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;http://www.google.com/&quot;&gt;&lt;img height=&quot;44&quot; hspace=&quot;5&quot; src=&quot;http://www.krkeegan.com/uploads/google.serendipityThumb.gif&quot; width=&quot;110&quot; align=&quot;left&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;I have had issues with Google&#039;s cache of my site since I switched to CSS. After some searching I discovered that it is not google as much as it is Microsoft Internet Explorer. For some reason if you have html before the head tag it will cause errors with the background color tag in CSS.&lt;/p&gt;&lt;p&gt;Since I did not need the background color changed I removed the attribute from the CSS file and it cleared the color problem in Google&#039;s cache immediatly. There are still some issues with div positions but I can live with that.&lt;/p&gt;&lt;p&gt;I have also added Google Adsense ads to the page. It required a slight page modification but nothing that I think looks to bad. In turn it will help me pay for the overhead while I have no income.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 07 Jul 2005 22:57:36 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/41-guid.html</guid>
    
</item>
<item>
    <title>Tk804 and TableMatrix 1.2 Works!</title>
    <link>http://www.krkeegan.com/archives/40-Tk804-and-TableMatrix-1.2-Works!.html</link>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/40-Tk804-and-TableMatrix-1.2-Works!.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=40</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=40</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;http://www.krkeegan.com/uploads/perl_camel.gif&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.krkeegan.com/uploads/perl_camel.gif&quot;&gt;&lt;img height=&quot;85&quot; hspace=&quot;5&quot; src=&quot;http://www.krkeegan.com/uploads/perl_camel.serendipityThumb.gif&quot; width=&quot;85&quot; align=&quot;left&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;To celebrate I decided it was time for a new perl image. &lt;/p&gt;&lt;p&gt;I listened to John?Cerney and I went to the &lt;a href=&quot;http://theoryx5.uwinnipeg.ca/&quot;&gt;Univ of Winnipeg repository&lt;/a&gt; and downloaded Tk804.026 and TableMatrix 1.2 and it works perfectly. I am still running perl 5.8.3 because I saw no need to tempt fate with another update that could cause a different error.&lt;/p&gt;&lt;p&gt;I think the solution is that the &lt;a href=&quot;http://theoryx5.uwinnipeg.ca/&quot;&gt;Univ of Winnipeg&lt;/a&gt; site compiled TableMatrix 1.2 with Tk804, so you should only need to download TableMatrix but I got Tk804 from them as weel just to be sure. Hopefully this will solve other people problems out there.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 06 Jul 2005 20:37:11 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/40-guid.html</guid>
    
</item>
<item>
    <title>TableMatrix and Tk804 still Unresolved</title>
    <link>http://www.krkeegan.com/archives/39-TableMatrix-and-Tk804-still-Unresolved.html</link>
            <category>Programming</category>
    
    <comments>http://www.krkeegan.com/archives/39-TableMatrix-and-Tk804-still-Unresolved.html#comments</comments>
    <wfw:comment>http://www.krkeegan.com/wfwcomment.php?cid=39</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.krkeegan.com/rss.php?version=2.0&amp;type=comments&amp;cid=39</wfw:commentRss>
    

    <author>nospam@example.com (Kevin Keegan)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;http://www.krkeegan.com/uploads/perl.gif&quot;&gt;&lt;img height=&quot;110&quot; hspace=&quot;5&quot; src=&quot;http://www.krkeegan.com/uploads/perl.serendipityThumb.gif&quot; width=&quot;106&quot; align=&quot;left&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;I got a response back from John Cerney, who is the creator of the TableMatrix module, this morning. He says that TableMatrix has been compatible with Tk804 since TableMatrix v1.1. &lt;/p&gt;&lt;p&gt;However he did say that TableMatrix has to be recompiled with Tk804 in order for it to work with Tk804 so my thought is that maybe ActiveState is not compiling TableMatrix correctly with Tk804 and is reusing a compile version from Tk800. I am going to see if other repositories have versions that work.&lt;/p&gt;&lt;p&gt;The rub is that now I have to have two parrallel versions of perl running on my machine. Version 1 with Tk800 that works for continued development. And Version 2 with Tk804 to test different versions of TableMatrix 1.2.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 06 Jul 2005 09:28:57 -0700</pubDate>
    <guid isPermaLink="false">http://www.krkeegan.com/archives/39-guid.html</guid>
    
</item>

</channel>
</rss>