BufferedReader

I was writing a program and needed a Java class that would read some text a line at a time but also tell you what the last line seperator was, whether a line feed, carriage return or both. It was written very quickly, and may not be perfect, and it requires a java.io.Reader in the constructor that returns true for markSupported()

You can download it here: SmartBufferedReader.java

YouTubeApp.com

Been helping Janakan a bit with his great new app found at www.youtubeapp.com. Its awesome and you can really should check it out.

Things I love:

  • Seeing everyone’s libraries, you get to find great videos AND its really interesting seeing how it reflects different things about someone’s personality.
  • Auto playing next video, this is great, because you can use a search or setup a playlist and it just keeps going.
  • Facebook integration, this is great because facebook is where I go to find out what my friends are doing. I don’t have most of them added as friends on youtube as well.
  • Drag and drop, just rocks

Post ToDo

Post ToDo is a modification of Our ToDo list with the ability to attach a to do list to a post or page and some additional options.

http://wordpress.org/extend/plugins/post-todo/

Installation
1. Download post-todo and place in wp-content/plugins/post-todo
It must be in exactly that place to work:
wp-content/plugins/post-todo/post-todo.php
2. Log into your WordPress admin panel
3. Go to Plugins and “Activate” the plugin
4. Add a todo list to a post by just inserting the tag [post_todo]
5. You must be logged in to edit
6. Display all todos from all posts using [post_todo_all]

Todos for Post ToDo
[post_todo]

3rd Party Authentication

3rd Party Authentication is a wordpress plugin that allows wordpress to authenticate against other authentication systems. These include:

  • Gmail / Google Apps
  • Any generic POP/IMAP email service
  • http://wordpress.org/extend/plugins/3rd-party-authentication/

    Known Issues
    There is a known issue related to the google login, sometimes it requires the user to enter a captcha (one of those pattern of fuzzy letters), especially if a user types the wrong password. At the moment the plugin doesn’t handle this, and may stop the user using this service. You can fix this by going here: https://www.google.com/accounts/DisplayUnlockCaptcha

    Change log
    0.2.3
    Fix so auto creating users populates email field allowing more than on user to be created! Thanks Cody!
    0.2.2
    Added text on login page to indicated regular logins work
    0.2.1
    Bug fix for when using default port
    0.2.0
    Remove blank from the list in 0.1.7
    0.1.9
    Fix for if wp_authenticate already declared
    0.1.8
    Added google apps domains to the list
    0.1.7
    Shows a list of domains that can be logged in using
    0.1.6
    Can now auto create users

    Google Spreadsheet to iCal

    At church and youth we have several rosters in excel for keeping track of who’s doing what and when. I’ve wanted for a while to make a rostering app that would automatically create a roster, assigning a set of users to different tasks at different frequencies for a set period of time. Additionally having it online could be people could automatically be notified of changes and provide an iCal feed.

    In the end though I realised that after uploading an excel spreadsheet to Google Spreadsheet, a program could be written to produce an iCal feed for iCal / Outlook / Google Calendar / Thunderbird (via Lightning) / Sunbird, and it would save a lot of time. So that’s what I’ve done an you can download it here.

    Installation:
    1) Setup you spreadsheet in Google Docs
    2) unzip ical.zip and upload it to your webserver
    3) Edit config.php and add your username, password named range / event start times and spreadsheet key
    4) Subscribe to your calendar!

    Demo:
    There is a demo calendar set up based on this spreadsheet. Click the link, or copy and paste the URL into your calendar application, especially if you’re using Google Calendar. The single entry configuration is available here:
    http://jameslow.com/content/software/ical/?sheet=TestSheet
    And an entry that produces multiple iCal events per spreadsheet row here:
    http://jameslow.com/content/software/ical/?sheet=MultiEntry

    Help
    Help and version information is avaliable here: http://jameslow.com/content/software/ical/?help

    Item query
    You can query for calendar events from just a specific user or item name listed in the spreadsheet by specifying this on the URL: http://jameslow.com/content/software/ical/?sheet=MultiEntry&item=James

    Multiple sheets
    You can query multiple sheets by using the [ALL] tag: http://jameslow.com/content/software/ical/?sheet=[ALL] or doing a comma separated list of sheets: http://jameslow.com/content/software/ical/?sheet=TestSheet,MultiEntry. These values can also be used in the $DEFAULT_SHEET param in the config, to make these the default available at the root URL.

    Test
    You can run a test on any sheet by suffixing test to the URL. This will not redirect to an iCal file, so you can see any errors in your setup. It will echo the number of iCal events created if successful. http://jameslow.com/content/software/ical/?sheet=MultiEntry&test=1

    Username
    The username / password used to access the spreadsheet can be left out of the config file (global and sheet) and specified in the URL so that the data is not public: http://jameslow.com/content/software/ical/?sheet=MultiEntry&[email protected]&password=password

    Notes:
    Uses the Google GData PHP client: http://code.google.com/apis/gdata/articles/php_client_lib.html
    And Flaimo’s PHP iCal library: http://www.phpclasses.org/browse/package/873.htm

    FAQ:
    1) Named Ranges
    – Sometimes google doesn’t return data from named ranges correctly, its recommended to use a specific ranage eg. A1:C20
    2) Outlook / Windows support
    – Outlook 2007 natively supports subscribing to iCal feeds. For windows you can download Windows Live! Mail. For outlook 2003 you can use the free Remote Calendars add-in and for Outlook 2000/XP this commerical add-in.

    Change Log:
    1.4
    – Query all spreadsheets and multiple spreadsheets using [ALL] or comma separated list of sheets
    1.3.1
    – Add some explanation to config file
    1.3
    – Add calendar title
    1.2
    – Group similar items
    – Link back to spreadsheet
    – Fix to show all dates
    1.1
    – Fix for PHP on some systems
    1.0
    – Initial version

    Limegreen Released

    Most of the desktop applications I’m working on are based around a crossplatform java template that I’m writing, that basically makes java applications feel as native to the user as possible. It also has a sophisticated Ant build build file that provides automation for a lot of tasks including creating of exe or app files and uploading to google code and sourceforge.

    I’ve released the first version of the the template over at google code.

    Podpress and WordPress 2.6 fix with revisions

    Haha, two ‘work’ posts in a row!

    As some of you may know, wordpress 2.6 broke podpress, the great podcasting plugin for wordpress. There were several ‘fixes’ that people found after, but basically all of them involved disabling revisions in the new version of wordpress. I then discovered this forum topic that showed how wordpress called the ‘save_post’ hook in the new revisioning system. The solution I came up with allows you to keep the revisioning system turned on, but still allow podpress to work.

    Instructions (Podpress 8.8)
    1) Download this file.
    2) Rename to podpress_admin_class.php and copy it to your /wp-content/plugins/podpress directory, replacing the existing file.
    3) Create a post and check it works

    Instructions (Other versions)
    The above file might work with other versions of podpress, but it might not. It would be better to edit your own podpress_admin_class.php file to ensure things work.
    1) Edit /wp-content/plugins/podpress/podpress_admin_class.php
    2) Replace the line function post_edit($post_id) with the following:

    function post_edit($post_id) {
    if(wp_is_post_revision($post_id) || wp_is_post_autosave($post_id)) {
    return $post_id;
    } else {

    3) Scroll down to just above the function edit_category_form($input) {
    4) Insert another } above it to close off the condition statement.

    Things that should be noted:

  • This worked for me, and its given here that it might work for you, but I’m not responsible for any damaged caused to your website or computer through the user of this plugin.
  • While the podpress information is saved for each revision, if you restore revisions, it currently won’t restore the podpress information from that revision. That requires using the wp_restore_post_revision hook, which I haven’t got round to doing yet.
  • I use wordpress 2.6 on all of the blogs I maintain now. I love it, I love the new file uploads that were introduced in 2.5, and the post revisions from 2.6. I use wordpress on some intranet pages along with allow categries and private files to control access to sensitive information. The new revisions work great because in a world of non-techsavy users, if we need to go back and fix something that someone broke we can, or for writing online documentation, it means you get a complete version history.