Arrow

Posts on this site are never sponsored.

One-day delay for transfers between PC Financial Interest Plus account and No-Fee chequing account

I’ve discovered that, somewhat surprisingly, you must wait one business day to make a transfer from a PC Financial Interest Plus account to a No-Fee account, even though they are “internal transfers” between two accounts for the same customer.

You must select tomorrow's date for transfers from the PC Financial Savings account

I find it really handy to pair a high interest savings account with a no-fee chequing account from the same institution. That way, if you need cash fast, you can quickly transfer money from the savings account so that it’s accessible from the chequing account. But you need to plan a bit more ahead if you do this at PC Financial :(

I’ve been used to Citizens Bank, where all transfers within the bank are instant. You set up the transfer online and poof — it happens.

You can find my full reviews of PC Financial and Citizens Bank on my Canadian high interest savings accounts site.

Find out what other sites are on your shared web host

I’ve always been curious as to what other sites are hosted on my budget host. Because I use shared hosting instead of dedicated hosting, the responsiveness of my website and the health of the server it sits on also depends on what other sites are on the server. In addition to theblog.ca, there are probably hundreds of sites stored on one server.

I discovered myIPneighbors.com, which somehow — I don’t know what database it looks up — generates a list of what other sites are hosted on a particular website’s server. For example, if you type in “facebook.com”, you’ll see that only Facebook sites are on the same server (logical since it’s currently ranked somewhere around #6 on the list of most visited websites in the USA). But type in my site or another small blog and you’ll see that a whole ton of weird and wacky sites are listed.

You can use this information to assess whether a prospective or current host might be cramming too many sites onto one server, or to find out whether you’re on the same server as a porn site or a similar sketchy operation (screaming moral or security issues).

One tip, though — if you’re trying to assess prospective web host, you should type in the address of one of its client sites, and not the web host’s site itself. Often, web hosts will host their own website on a different, more reliable server in order to make themselves out to be better than they really are.

mp3 audio files representing A through Z in the alphabet and numbers 0 through 10

When I was making the newest version of my anti-spam plugin, I needed individual sound files representing each of the letters of the alphabet (A through Z) and the numbers 0 through 9 (the story is explained here). Unfortunately, my Google search came up empty, so I had to create some audio files myself. Yes, it felt nerdy, but what’s done is done and hopefully I can save someone the time to record such files (whatever your purpose). You can download a zip file of a.mp3 through z.mp3 and 0.mp3 through 10.mp3 (recently added the number ten) that say the following:

A for apple
B for baseball
C for clock
D for donkey
E for elephant
F for father
G for grandmother
H for hungry
I for Internet
J for justice
K for kangaroo
L for London
M for money
N for Norway
O for overtime
P for pillow
Q for question
R for rabbit
S for superman
T for telephone
U for underwear
V for vaccinate
W for World Wide Web
X for xylophone
Y for yogurt
Z for zebra

Zero
One
Two
Three
Four
Five
Six
Seven
Eight
Nine
Ten

Download the mp3 files

Download only the letters

This has been used in:

How to merge / concatenate mp3s with PHP

One of the new features of my anti-spam plugin is the ability to create auto-generated mp3 files. The plugin concatenates individual mp3 files representing the sound of each letter in the alphabet, in order to build a word.

Of course, I have no idea how to code something that merges mp3 files, so I had to do some searching and eventually found this site with some working code: http://www.sourcerally.net/Scripts/20-PHP-MP3-Class.

Here is my modified version, with some simplified functionality (I removed the code that added ID3 tags) and an added feature that I modified from FPDF (a script that creates PDFs in PHP) in order to output (to the browser) the merged mp3 file, prompting users to open or save it. This code is compatible with both PHP 4 and PHP 5.

<?php
// This is the class to generate mp3 files based on the anti-spam words
// Based on the PHP mp3 class at http://www.sourcerally.net/Scripts/20-PHP-MP3-Class
// Output code based on the FPDF class at http://www.fpdf.org
class mp3
  {
  	var $str;
  	var $time;
  	var $frames;
  
  	// Create a new mp3
  	function mp3($path="")
  	{
  	if($path!="")
  		{
  		$this->str = file_get_contents($path);
  		}
  	}
  
  // Put an mp3 behind the first mp3
  function mergeBehind($mp3)
  {
  $this->str .= $mp3->str;
  }
  
  // Calculate where's the end of the sound file
  function getIdvEnd()
  {
  $strlen = strlen($this->str);
  $str = substr($this->str,($strlen-128));
  $str1 = substr($str,0,3);
  if(strtolower($str1) == strtolower('TAG'))
  {
  return $str;
  }
  else
  {
  return false;
  }
  }
  
  // Calculate where's the beginning of the sound file
  function getStart()
  {
  $strlen = strlen($this->str);
  for($i=0;$i<$strlen;$i++)
  {
  $v = substr($this->str,$i,1);
  $value = ord($v);
  if($value == 255)
  {
  return $i;
  }
  }
  }
  
  // Remove the ID3 tags
  function striptags()
  {
  //Remove start stuff...
  $newStr = '';
  $s = $start = $this->getStart();
  if($s===false)
  {
  return false;
  }
  else
  {
  $this->str = substr($this->str,$start);
  }
  //Remove end tag stuff
  $end = $this->getIdvEnd();
  if($end!==false)
  {
  $this->str = substr($this->str,0,(strlen($this->str)-129));
  }
  }
  
  // Display an error
  function error($msg)
  {
  //Fatal error
  die('<strong>audio file error: </strong>'.$msg);
  }

// Send the new mp3 to the browser function output($path) { //Output mp3 //Send to standard output if(ob_get_contents()) $this->error('Some data has already been output, can\'t send mp3 file'); if(php_sapi_name()!='cli') { //We send to a browser header('Content-Type: audio/mpeg3'); if(headers_sent()) $this->error('Some data has already been output to browser, can\'t send mp3 file'); header('Content-Length: '.strlen($this->str)); header('Content-Disposition: attachment; filename="'.$path.'"'); } echo $this->str; return ''; } } ?>

Here’s how I used the class to generate an mp3 file from individual files (in a “sounds” folder) representing each letter. You can, of course, use the above code to concatenate mp3 files for any purpose.

// Specify the word 
$petersword = "testword";

$word_count = strlen($petersword);

 // Set up the first file
  if ($word_count > 0) {
  $mp3 = new mp3($cas_fontpath . 'sounds/' . substr($petersword, 0, 1) . '.mp3');
  $mp3->striptags();
  }

// Generate the mp3 file from each letter in the word 
  for ($i = 1; $i < $word_count; ++$i) {
  $cas_character = $cas_fontpath . 'sounds/' . substr($petersword, $i, 1);
  $cas_mp3equivalent = new mp3($cas_character . '.mp3');
  $mp3->mergeBehind($cas_mp3equivalent);
  $mp3->striptags();
  }
  
  // Spit out the audio file!  
$mp3->output('word.mp3');

Note: if you need some support using any of the code, I suggest that you visit the original source of the mp3 concatenation code.

Block those MFA (Made for AdSense) sites from showing in your Google ads

Have you ever stumbled upon a site that contains nothing but ads? They help to… dampen the usefulness of the Internet. One of the ways that they drive traffic to themselves is by placing ads, which, believe it or not, can be quite profitable in the grand scheme of things. The money that they earn when people click on ads on the MFA sites is more than the MFA sites pay to place their cheap ads on other sites.

I have Google ads on my site, and when someone clicks on one of the ads, I want the destination site to be of value. I’m all about the useful crap, but with a definite emphasis on the useful. I discovered AdsBlackList.com, which is a database of MFA sites.

At AdsBlackList.com, you enter some keywords that pertain to your site, and it will generate a list of MFA websites that target those keywords. You can then copy and paste those sites into Google AdSense’s Competitive Ad Filter (under the AdSense Setup tab) and never worry about seeing those crappy sites on your ads again.

Now someone just needs to come up with a database of MFA sites for Google AdWords (where people place Google ads) so that we can prevent the MFA sites from displaying ads of any relevance. That way, almost nobody will visit those sites; when they do, there will be nothing to click on.