Craigslist: Externally-hosted images (IMG tag) will soon be disallowed in for-sale ads.

Craigslist says:

> Externally-hosted images (IMG tag) will soon be disallowed in for-sale ads. Please use CL image upload.

Advantages of this:

– Reduces scams
– Ensures images load for all users
– Images show up in grid view

Disadvantages:

– Can only use small images
– Image quality is low

Posted in Tech Opinion | Tagged | Leave a comment

PayPal: Confirm Address [solved]

PayPal: Confirm Address [solved]PayPal has an abundance of help pages – may which are out of date. While looking for an option to confirm an address I saw several different (outdated) instruction sets that didn’t help me get to the place where I could request a letter be mailed to an address as a means of confirmation.

After some searching for “Alternate Address Confirmation” and “Address Confirmation by Mail” I found the following link which helped me actually confirm the address:

[https://www.paypal.com/us/cgi-bin/?cmd=_account-aac&fli=true](https://www.paypal.com/us/cgi-bin/?cmd=_account-aac&fli=true)

Good Luck!

Posted in Tech Tips | Tagged | Leave a comment

FireFox Start Page Artwork

FireFox Start Page Artwork

Posted in Design | Tagged , | Leave a comment

“gform_load_form_settings” is deprecated on this page since version 1.7

Recently after upgrading GravityForms I started seeing the message:

> Gravity Forms API warning: The jQuery event “gform_load_form_settings” is deprecated on this page since version 1.7

“gform_load_form_settings” is deprecated on this page since version 1.7

The following are Form Settings related hooks that have been deprecated:

  • gform_properties_settings: You should now use gform_form_settings.
  • gform_advanced_settings: You should now use gform_form_settings.
  • gform_confirmation_settings: You should now use gform_confirmation_ui_settings.
  • gform_load_form_settings JS: This jQuery hook has been deprecated when used on the Form Editor as Form Settings are no longer located there. If you rely on this hook on the Form Editor you should use the gform_load_field_settings jQuery hook instead. When using this hook on the Form Settings page, the hook is still valid.
  • gform_before_update JS: You should now use thegform_pre_form_settings_save hook to handle updates on the new Form Settings page or gform_pre_form_editor_save jQuery hook to handle updates on the Form Editor page.

For more deprecated functions check out the dev notes.

Posted in Tech Tips, Web Development | Tagged | Leave a comment

portal.microsoftonline.com iPhone Instructions

portal.microsoftonline.com iPhone Instructions

If you log into `portal.microsoftonline.com` with your browser, you can also setup the account on your iPhone, iPad, or iPod Touch.

  1. If this is the first email account on your iPhone, tap Mail. Otherwise, tap Settings > Mail, Contacts, Calendars > Add Account.
  2. Tap Settings > Mail, Contacts, Calendars > Add Account.
  3. Tap Microsoft Exchange.
  4. You don’t need to type anything in the Domain box. Type the information requested in the Email, Username, and Password boxes. You need to type your full email address in the Email and Username boxes (for example, [email protected]).
  5. Tap Next on the upper-right corner of the screen. Your mail program will try to find the settings it needs to set up your account. Go to step 8 if your mail program finds your settings.
  6. If your iPhone can’t find your settings, you’ll need to manually look up your Exchange ActiveSync Feature name for process that allows connectivity and synchronization between mobile devices and Exchange Servers. server name. If you’re connecting to your Office 365 email, use outlook.office365.com for your server name. If you are not using Office 365, see Find your ActiveSync server name later in this article.
  7. In the Server box, enter your server name, and then tap Next.
  8. Choose the type of information you want to synchronize between your account and your device, and then touch Save. By default, Mail, Contacts, and Calendar information are synchronized.
  9. If you’re prompted to create a passcode, tap Continue and type a numeric passcode. If you don’t set up a passcode, you can’t view your email account on your iPhone. You can set up a passcode later your iPhone settings.

Find your Exchange ActiveSync server name

If your email program is not able to automatically find your Exchange ActiveSync server name, you may need to look it up.

If you’re connecting to your Office 365 email, use outlook.office365.com as your Exchange ActiveSync server name. The Exchange ActiveSync server name outlook.office365.comcan be used if you are using the latest version of Office 365.

If you’re not using Office 365 or if you aren’t sure if you are using the latest version of Office 365, follow these steps to look up your Exchange ActiveSync server name. Follow these steps to determine your Exchange ActiveSync server name.

  1. Sign in to your account using Outlook Web App. For help signing in, see Sign in to Outlook Web App.
  2. In Outlook Web App, on the toolbar, click Settings settings > Options > Account > My account > Settings for POP and IMAP access.

NOTE    Although you’re not setting up a POP3 account, you’ll use this value to determine your Exchange ActiveSync server name.

  1. Under POP setting, look at the value for Server name.
  • If the Server name shows outlook.office365.com, your Office 365 account is on the latest version of Office 365, and you can use outlook.office365.com as your Exchange ActiveSync server name.
  • If the Server name value is in the format podxxxxx.outlook.com, your Office 365 or other Exchange Online account is not yet on the latest version of Office 365, and you can usem.outlook.com as your Exchange ActiveSync server name.
  • If the Server name value includes your organization’s name, for example, pop.contoso.com, then your Exchange ActiveSync server name is contained in address bar in your browser when you are signed in to Outlook Web app – -but without the leadinghttps:// and without the trailing /owa. For example, if the address you use to access Outlook Web App is https://mail.contoso.com/owa, your Exchange ActiveSync server name is mail.contoso.com.
Posted in Tech Tips | Tagged | Leave a comment

Webmaster Tools: New and Improved Navigation

As of July 2013 Google Webmaster tools has a “new and improved” navigation. They alert you when you login.

Webmaster Tools: New and Improved Navigation

A new and improved navigation!

Features are now organized according to the stages of search: crawling, indexing, and serving. The settings have moved to the gear icon in the top right corner.

Click the help icon to open the new Search Appearance section and learn what changes you can make on your site to influence how it appears in the search results.

One of the main features is “Search Appearance” which has information about the data highlighter, rich snippets, and microformats. More info about those at https://support.google.com/webmasters/answer/3187759

Posted in Tech Tips, Web Development | Tagged , | Leave a comment

Change WooCommerce Shop Column Count

Change WooCommerce Shop Column CountThere is no administrative option to change the column count in WooCommerce, but you can easily accomplish it by adding the following `PHP` code into your theme’s `functions.php` file:

class ThemeFilters
{

function __construct()
{
add_filter(‘loop_shop_columns’,array($this,’loop_shop_columns’));
}

function loop_shop_columns($cols)
{
return 3;
}

}

new ThemeFilters();

In this demonstration the columns are set to 3 but you can change it to 2 columns, 2 columns, or any number of columsn you desire. Change the return value `return 3` above to meet you needs.

Posted in Tech Tips, Web Development | Leave a comment

ssv3_probe.php

What is `ssv3_probe.php` ? It is a PHP script that is designed to output a huge amount of information about your hosting environment, and then delete itself. There is a counterpart file called `ssv3_directory.php` which is used for similar things.

Who is the author of this file? I have no clue. I have seen it used on a lot of `bluehost` hosted sites.

Here are the contents of the file. Notice the final line `@unlink(__FILE__);` is designed to delete the file after it has finished executing.

< ?php error_reporting(0); @ini_set('cgi.fix_pathinfo', 1); /** * PHP MKDIR * * Check the directory and it's parent to see if we can mkdir() on the server. * - removed the 777 check on the parent directory. Breaking EIG Windows Brands * * The process is to define a temporary directory name, make the directory, then * remove the directory. */ $phpMkDir = 0; $ssTempDirectory = @dirname(__FILE__) . DIRECTORY_SEPARATOR . @uniqid('ss_tmp_'); @mkdir($ssTempDirectory, 0755); if (@is_dir($ssTempDirectory)) { $phpMkDir = 1; @rmdir($ssTempDirectory); } /** * Check the PHP SAPI * * We need to check the type of Server API PHP is using on the remote server. This * will process the PHP_SAPI variable and return what the server is running. */ $sapi = PHP_SAPI; // apache if (substr(PHP_SAPI, 0, 6) == 'apache') { $sapi = 'apache'; } //cgi / fast-cgi if (substr(PHP_SAPI, 0, 3) == 'cgi') { $sapi = 'cgi'; if (empty($_SERVER['FCGI_ROLE']) && empty($_ENV['FCGI_ROLE'])) { $sapi = 'fast_cgi'; } } // phpinfo @ob_start(); @phpinfo(INFO_GENERAL); $phpInfo = @ob_get_contents(); @ob_end_clean(); // ionCube Loader name $threadSafe = false; $osCode = @strtolower(@substr(PHP_OS, 0, 3)); $version = @substr(PHP_VERSION, 0, 3); foreach (@explode("\n", $phpInfo) as $line) { if (@preg_match('/thread safety.*(enabled|yes)/Ui', $line)) { $threadSafe = true; } } $ioncubeFirst = 'ioncube_loader_' . $osCode . '_' . $version; $ioncube = $ioncubeFirst . ((true === $threadSafe) ? '_ts' : '') . (($osCode == 'win') ? '.dll' : '.so'); $domain = @explode('.', @php_uname('n')); $optimizer = (preg_match('#Zend(?:\s| )+Optimizer(?:\s| )+v(\d+\.\d+\.\d+)#si', $phpInfo, $m)) ? $m[1] : 0; $mysqlVersion = (extension_loaded('mysql') && function_exists('mysql_get_client_info')) ? mysql_get_client_info() : ''; $settings = array( 'status' => ‘200’,
‘passthrough’ => 0,
‘tar’ => 0,
‘panel’ => ‘other’,
‘whoami’ => ”,
‘cwd’ => @getcwd(),
‘server’ => array(
‘os’ => strtolower(PHP_OS),
‘type’ => php_uname(‘m’),
),
‘mysql’ => array(
‘version’ => $mysqlVersion,
),
/*
‘pgsql’ => array(
‘version’ => ((extension_loaded(‘pgsql’) && function_exists(‘pg_version’)) ? pg_version() : ”),
),
*/
‘host’ => $domain[count($domain) – 2],
‘docroot’ => dirname(__FILE__),
‘timezone’ => date(“T”),
‘diskfree’ => intval(@disk_free_space(__DIR__)),
‘php’ => array(
‘version’ => PHP_VERSION,
‘sapi’ => $sapi,
‘PHP_SAPI’ => PHP_SAPI,
‘passthru’ => ((function_exists(‘passthru’)) ? 1 : 0),
‘ioncube_loader’ => $ioncube,
‘zend’ => array(
‘optimizer’ => $optimizer,
‘extensions’ => get_loaded_extensions(‘true’),
‘engine_version’ => @zend_version()
),
/**
* If you want to change any INI settings, this defines how they can be changed based on the
* access value in the ini_get_all() array:
* @see http://ca.php.net/manual/en/configuration.changes.modes.php
*
* 1: PHP_INI_USER: Entry can be set in user scripts (like with ini_set()) or in the Windows registry
* 4: PHP_INI_SYSTEM: Entry can be set in php.ini or httpd.conf
* 6: PHP_INI_PERDIR: Entry can be set in php.ini, .htaccess or httpd.conf
* 7: PHP_INI_ALL: Entry can be set anywhere
*/
‘ini’ => ini_get_all(),
‘extensions’ => get_loaded_extensions(),
‘functions’ => get_defined_functions(),
),
‘perl’ => array(
‘version’ => 0,
‘path’ => ”,
),
);
foreach ($settings[‘php’][‘functions’][‘internal’] as $i => $func) {
if (!preg_match(‘/^[\w_]*$/’, $func)) {
unset( $settings[‘php’][‘functions’][‘internal’][$i] );
}
}

/**
* Process the Passthru Variables
*
* We want to use some other commands to check other system settings
*/
ob_start();
passthru(“date”);
$date = ob_get_contents();
ob_end_clean();
$settings[‘passthru’] = (false === empty($date)) ? 1 : 0;

// For non-windows Systems
if ($osCode !== ‘win’ && $settings[‘passthru’] == 1) {
// check tar
$output = get_setting(‘tar –version | grep tar’);
$settings[‘tar’] = (false !== strpos($output, ‘tar’)) ? 1 : 0;

//Perl Version
$output = get_setting(‘perl -v’);
preg_match(“/v(\d+\.\d+\.\d+)/”, $output, $perl);
$settings[‘perl’][‘version’] = $perl[1];

// Perl path
$output = get_setting(‘which perl’);
$settings[‘perl’][‘path’] = trim($output);

// Perl Modules
// perl -MFile::Find=find -MFile::Spec::Functions -Tlwe
// ‘find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC’
// perl -MFile::Find=find -Tlwe ‘for $inc (@INC)
// { find { wanted => sub
// { return if !/\.pm\z/;
// ($a=$File::Find::name)=~s|^\Q$inc\E/||;
// $a =~ s/\//::/g; $a =~ s/(.*)\.pm$//g;print $1 },
// no_chdir => 1 },
// $inc }’
// $output = get_setting($cmd);

// username
$output = get_setting(‘whoami’);
$settings[‘whoami’] = trim($output);

//Control Panel type
$output = get_setting(‘head -n 1 /etc/psa/psa.conf 2>&1’);
$psatest = trim($output);

// Plesk
if (substr($psatest, 0, 1) == ‘#’) {
$settings[‘panel’] = ‘plesk’;

// get list of domains ??
$output = get_setting(‘mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa -Ns -e “select name from domains”‘);
$settings[‘domains’] = $output;

// get plesk version ??
$output = get_setting(‘cat /usr/local/psa/version’);
$settings[‘plesk_version’] = $output;

// http://download1.parallels.com/Plesk/PP10/10.1.1/Doc/en-US/online/plesk-unix-cli/37894.htm
// /usr/local/psa/bin/ [parameters] [options]
// ‘/usr/local/psa/bin/subdomain –info -domain DOMAIN.COM’;

} else {

// CPANEL
// older versions of cPanel store the domain name information
// this needs to be updated to work for ALL versions
if (file_exists(‘/usr/local/cpanel/bin/cpmysqlwrap’) || file_exists(‘/usr/local/cpanel/bin/mysqlwrap’)) {
$settings[‘panel’] = ‘cpanel’;
// /usr/local/cpanel/cpanel -V
/*
THIS SECTION IS BORKING THINGS ON SOME CPANEL LOCATIONS

$domains = array();
// old version of getting domain information from cpanel
$cmd = “perl -e ‘use Storable qw(retrieve); use YAML; print YAML::Dump(retrieve (((getpwuid $< )[7]).\"/.cpanel/datastore/apache_LISTSUBDOMAINS_0\"));'"; $output = get_setting($cmd); $lines = explode("\n", $output); $subdomains = array(); foreach ($lines as $line) { $lineParts = explode(":", trim($line)); if (preg_match("/^([a-zA-Z0-9\-\_\.]+)$/", $lineParts[0])) { array_push($subdomains, str_replace("_", ".", $lineParts[0])); } } // old version of getting other domain information from cpanel $cmd = "perl -e 'use Storable qw(retrieve); use YAML; print YAML::Dump(retrieve (((getpwuid $<)[7]).\"/.cpanel/datastore/apache_LISTMULTIPARKED_0\"));'"; $output = get_setting($cmd); $lines = explode("\n", $output); foreach ($lines as $line) { $lineParts = explode(":", trim($line)); if (!in_array($lineParts[0], $subdomains)) { if (preg_match("/^([a-zA-Z0-9\-\_\.]+)$/", $lineParts[0])) { $domainName = $lineParts[0] . "^" . trim(str_replace(array(dirname(__FILE__), dirname(__FILE__)), '', trim($lineParts[1])), "/"); array_push($domains, $domainName); } } } $cmd = "perl -e 'use Storable qw(retrieve); use YAML; print YAML::Dump(retrieve (((getpwuid $<)[7]).\"/.cpanel/datastore/apache_LISTSUBDOMAINS_0\"));'"; $output = get_setting($cmd); $lines = explode("\n", $output); foreach ($lines as $line) { $lineParts = explode(":", trim($line)); if (preg_match("/^([a-zA-Z0-9\-\_\.]+)$/", $lineParts[0])) { if (substr($lineParts[0], 0, 1) != "-") { $domainName = $lineParts[0] . "^" . trim(str_replace(array(dirname(__FILE__), dirname(__FILE__)), '', trim($lineParts[1])), "/"); array_push($domains, str_replace("_", ".", $domainName)); } } } sort($domains); $settings['domains'] = implode(";", $domains); THIS SECTION IS BORKING THINGS ON SOME CPANEL LOCATIONS */ } elseif (file_exists('/home/interworx')) { // INTERWORX $settings['panel'] = 'interworx'; // this will force interworx to use mod_cgi if (substr(sprintf('%o', fileperms(dirname(__FILE__))), -3) == '777') { $settings['php_mkdir'] = 0; } } elseif ( file_exists( './.membership' ) || ( strpos( $settings['docroot'], 'public_html' ) && file_exists( '../.membership' ) ) ) { $settings['panel'] = 'vdeck'; } else { $settings['panel'] = 'other'; } } } /** * Get Server Settings * * Run the passthrouhg to get * */ function get_setting($command = null) { if (!$command) { return false; } ob_start(); passthru($command); $results = ob_get_contents(); ob_end_clean(); return $results; } //Output and Cleanup //@unlink(__FILE__); echo serialize($settings); @unlink(__FILE__);

Posted in Tech Opinion | Tagged | 2 Comments

Gmail is down: Can’t Send, Can’t Attach – June 2013

Gmail is down: Can’t Send, Can’t Attach – June 2013If you’re trying to compose, attach, or send messages you may be having some trouble. All across the US Gmail users are getting message like:

Unable to send message

Or

Oops… a server error occurred and your email was not sent. (#793)

Or

YourFile.png 28K – Attachment failed. Retry Remove ( http://support.google.com/mail/bin/answer.py?hl=en&ctx=mail&answer=99915 )

And

Unable to attach the file

Is G-Mail over capacity? We’ll see what Google says / does to remedy this.

Is this also happening to you? Leave a comment below :)

Posted in Tech Tips | Tagged | Leave a comment

Slanger with Ubuntu 12.04

I just got Slanger working (finally) with Ubuntu 12.04.

Key notes:

1. Followed the guide here: [https://github.com/tsimbalar/play-pusher-slanger/blob/master/README.md](https://github.com/tsimbalar/play-pusher-slanger/blob/master/README.md)
2. Slanger’s homepage on github also has some good info
3. Redis had to be running. `apt-get install redis` and then `service redis restart`

Posted in Tech Tips | Tagged | Leave a comment