Monthly Archives: April 2009

Cleaning my Apple Mighty Mouse Ball's

I have a couple of Apple Mac’s and with each of them, I have a Mighty Mouse.
I have one I carry with my with my Mac Book Pro, this is getting quite old now, It was the first release of the Wireless model, I pre-ordered it as soon as they were announced and have used it on almost a daily basis since.

I also have one on my iMac which gets a daily use also.

These mice are Great ! there are 5 buttons, the 5th is the 360 degree scroll ball. The wired model is very light and agile, while the wireless model is slightly heavier due to the batteries, but if you only use one AA rather than two, it is only ever so slightly heavier than the wired, and still not as heavy as most.

The only Issue I with these mice are the Ball’s get dirty from your finger being rolled over them on a continuous basis. Apple have an article and QT Movie on how to clean them, and plenty of discussions on the Apple forums, but the simple method is rolling it on paper.

Roll to Clean your Balls !

A way to clean the mighty mouse ball that I have always used, is turn it off ( or un-plug ), and get a clean sheet of paper, and upside down, and firmly roll the mouse around on the ball.

Cleaning the Mighty's Balls

Cleaning the Mighty's Balls

Changing the RSS refresh rate in Apple Mail

I use Apple’s Mail App as my primary mail client on both my personal and work mac’s, and for both machines I have various RSS Feeds subscribed.
I use apple mail as an RSS Client for a couple of reasons,

1) I just like how it works
2) its not just one more application I have to have open.

Recently though, I have found that none of the 30 or so feeds I am subscribed to were pulling any new posts.
I found this Odd, espically I know that multiple of them update daily. I did a bit of digging around, and have found a simple terminal command to alter the refresh rate that Mail will check for feed updates.

The default time is 30 minutes, admin the preferences you can set it to manually, 30 minutes, hourly or daily.

Apple Mail RSS Refresh Rate

Apple Mail RSS Refresh Rate

I changed these around then back to 30 minutes, and waiting an hour, but still NO feeds were updating.

After a little more digging, I found a terminal command that you can specify and refresh rate.

Specify the Refresh rate in Terminal !

  1. Quit Mail
  2. Open Terminal – /Applications/Utilities/Terminal.app
  3. Type:
    defaults write com.apple.mail RSSPollTime xx

    ** Replace the ‘nn’ with minutes, EG:

    defaults write com.apple.mail RSSPollTime 20
  4. Open Mail

This worked for me, and within the next 20 mintues, I had all the posts that I was missing for the last week that I didn’t get any.

Pretty lucky, as I was missing out some some pretty good stuff!

Facebook Pirate Style

With the Millions of users on Facebook, there is a need for lots of different langauges, but did you know that you can view your facebook in Pirate English! It will change the whole site in to Pirate English, even the notification emails you receive.

Facebook in Pirate English

Facebook in Pirate English

It is Easy to turn on, and easy to turn off once the novelty has worn out.

Enable Pirate English on your Facebook Profile

Log in to your Facebook account, Click the Settings Link in the top Right, Click the Langauge tab, and from the drop down select English (Pirate) Button.

Add me to your Facebook !

Non-Ascii charactors in my AJAX responses !?

A while ago, I co-wrote a large site with Ryan while I was working at Zipline Interactive, this site uses Mootools 0.98 as we found to be getting a lot of �������� all through the JAX requested response code.

For the life of US, we couldn’t figure out why? it’s not in the output if we called the data via a normal http request, so I looked for a fix.

  1. Upgrade the Mootools to version 1.2.2
  2. Add an enc type to the AJAX functions
    	new Request.HTML({
    		method: 'get',
    		url: '/examples/ajax.php',
    		data: { 'example': 'ajax-ascii' },
    		encoding: 'iso-8859-1',
    		onRequest: function() {
    			$('calendarMainEvent').empty().removeClass('calendarClosed');
    			$('calendarMainEvent').set('html', 'Loading');
    		},
    		onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript) {
    			$('calendarMainEvent').empty().set('html', responseHTML);
    			$('calendarMainEvent').setProperty('class','calendarOpen');
    		},
    		onFailure: function() {
    			$('calendarMainEvent').empty().removeClass('calendarClosed');
    		}
    	}).send();
    
  3. Specifying the charset in the PHP that is outputting the AJAX response!

    < ?php
    
    if($_GET['ajax_request']) {
    
    header('Content-Type: text/html; charset=iso-8859-1');
    echo('

    Success'); /* More output code */ }

Matching the Character set

It didn’t occur to me right away that I need to specify the charset more than just in the <head> section of the page, but that was all it took.

Of course you want to match your PHP header, Javascript encoding and xHTML charsets all to the same with it is iso-xxx or utf-xx

Controlling Input with Mootools Javascript

On a project that I was recently working on, I had a series of text input boxes that I wanted to be numeric only fields. I have my PHP form validation to check that the data is numeric before entering any information in to the database, and I always use mysql_real_escape_string() on the data I am saving. But to save loat time and page refreshed, I decided to add some extra validation with the Mootools javascript library which I am using trough out the site already.

View Example

Update to Numbers Array

I have updated the Numbers array to include the number pad on full size keyboards.

Allowing Numbers:

Because I have a bunch of inputs that I need validated, I decided that I would assign each input with a matching class, then Scan the page for that class with my Javascript, then only allow specific key codes to be entered.

Your Age...

Inside of my DOM Ready state, I run this simple code.

window.addEvent('domready', function() {
	var numbers = [8, 48,49, 50, 51,52,53,54,55,56,96,97,98,99,100,101,102,103,104,105];
	$$('.numeric').each(function(item) {
		item.addEvent('keydown', function(key) {
			for (i = 0; i < numbers.length; i++) {
				if(numbers[i] == key.code) {
					return true;
				}
			}
			return false;
		});
	});
});

If you can see the line I have specified only the Key Codes that are allows, I have allowed for numeric numbers and the Delete Key.

	var numbers = [8, 48,49, 50, 51,52,53,54,55,56,96,97,98,99,100,101,102,103,104,105];

Other Uses:

You could disallow any key entry, This isnt a great idea, but could be used when maybe using an overlay, or special effect.

window.addEvent('domready', function() {
	window.addEvent('keydown', function() {  return false; });
});

Dissallowing Keys:

You could simply reverse this function, to block a small amount of keys rather than just allowing some, it would be as simple as changing the locations of your return true/false statements.

This example would allow anything except numbers.

window.addEvent('domready', function() {
	var numbers = [48,49, 50, 51,52,53,54,55,56,96,97,98,99,100,101,102,103,104,105];
	$$('.numeric').each(function(item) {
		item.addEvent('keydown', function(key) {
			for (i = 0; i < numbers.length; i++) {
				if(numbers[i] == key.code) {
					return false;
				}
			}
			return true;
		});
	});
});