Matthew Steven Kelly

Add a little professionalism to your Facebook profile

July22

There are now 500,000,000 (a half billion) Facebook users on the internet, so why not add a little professionalism to your profile?

CIO magazine lists four applications that help you do just that, such as this one:

Facebook: The ‘Evil Interface?’

May5

Is your personal information suddenly flapping in the breeze? Very interesting article: http://www.msnbc.msn.com/id/36877160/ns/technology_and_science-tech_and_gadgets/from/ET?GT1=43001

DSL Speed

May2

Broadband access in the United States is even worse than you think.

My DSL is only 610K download speed (610k based on test below, basically a 512K connection) on what should be a 5MB (5120K) connection. It is unfortunate, but there is nothing that I can really do about it. Except switch to dial-up; but that would leave me with a connection speed of 56K. I have had three different internet providers since moving into my house, and all of them use the same telephone lines, so same coverage. Each one I call tells me that my house is located at the end of the line which is why I have such sluggish service. Most of these services advertise themselves as up to 5MB (nearly 10 times faster than what I have).

You can check out your own DSL speed online. Check it against what you are supposedly paying for: http://www.dslreports.com/speedtest

Hopefully investments like Google’s fiber-optic plan to add 1GB (10240K) connections to 50,000-500,000 households (http://googleblog.blogspot.com/2010/02/think-big-with-gig-our-experimental.html) help meet the National Broadband Plan goals:

“NATIONAL BROADBAND GOALS (http://www.broadband.gov/)

  • Goal 1: At least 100 million U.S. homes should have affordable access to actual download speeds of at least 100 megabits per second and actual upload speeds of at least 50 megabits per second.
  • Goal 2: The United States should lead the world in mobile innovation, with the fastest and most extensive wireless networks of any nation.
  • Goal 3: Every American should have affordable access to robust broadband service, and the means and skills to subscribe if they so choose.
  • Goal 4: Every community should have affordable access to at least 1 Gbps broadband service to anchor institutions such as schools, hospitals and government buildings.
  • Goal 5: To ensure the safety of Americans, every first responder should have access to a nationwide public safety wireless network.
  • Goal 6: To ensure that America leads in the clean energy economy, every American should be able to use broadband to track and manage their real-time energy consumption.”

Facebook Social Plugins

April24

Facebook has recently introduced a new feature called social plugins: http://developers.facebook.com/plugins. These plugins are designed to integrate into websites and increase Facebook interaction with the internet.

Including things like the Recent Activity display (which is highly unlikely to display anything for this site):

But the real gem is being able to quickly add a “Like” button to all of your website’s pages.

For a quick add simply use the following HTML IFRAME text:

<iframe src="http://www.facebook.com/plugins/like.php?href=www.mysite.com&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:200px; height:25px"></iframe>

And change www.mysite.com to the URL of the page the like button is on.

Or if adding it to a PHP page:

<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}

echo '<iframe src="http://www.facebook.com/plugins/like.php?href='.curPageURL().'&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:200px; height:25px"></iframe>';

?>

Note: curPageURL function code from : http://www.webcheatsheet.com/php/get_current_page_url.php

WordPress PHP Plugins

March16

If you are like me and occasionally add PHP to blog posts in WordPress I used to use a plugin called Exec-PHP (http://wordpress.org/extend/plugins/exec-php). It was great because I could add PHP right into my posts, adding dynamic user interfaces, HTML forms, etc.

The biggest use I have for it is being able to output things into posts that would normally be filtered, such as IFRAMEs, by using the php function, html_entity_decode:

<?php
echo html_entity_decode("&lt;iframe src='www.google.com'&gt;&lt;/iframe&lt;");
?>

However, a near fatal flaw with that plugin, is that if you switched to the Visual tab in WordPress, the PHP code vanished! The plugin states that fact at the top of all blog posts as a warning:

Exec-PHP WYSIWYG Conversion Warning. Saving this article will render all contained PHP code permanently unuseful. Even if you are saving this article through the Code editor. You can turn off this warning in your user profile. Ignore this warning in case this article does not contain PHP code. Read the Exec-PHP documentation if you are unsure what to do next.

This has frustrated me several times, because if I had the Visual tab open on a previous post, and went to one with PHP… gone! Then while setting up a new WordPress site, I was adding plugins and did a search for “php exec”. This came up with a few plugins, one of which was called Inline-PHP (http://wordpress.org/extend/plugins/inline-php/). Just curious, I installed it and could not have been happier! I can put all of my php code in [ exec ] tags which does not get filtered if I go to the visual tab, and as an added bonus, even displays in the Visual tab.

I highly recommend Inline-PHP plugin for any WordPress blogger who integrates PHP code right into their blog posts: http://wordpress.org/extend/plugins/inline-php/.

When I was working with a site hosted with WordPress-MU, using the html_entities_decode method was almost absolutely required, as it seems that WordPress-MU filters a little heavier than the standard version.

Access QuickBooks from a Windows Service (such as Apache)

December15

Quickbooks Desktop Integration

I was trying to get a Apache/PHP application to interface with Quickbooks using QBXML through the Quickbooks SDK and kept receiving the following error:

  • “Could not start Quickbooks”

When looking at the SDK log file (Located at C:\Documents and Settings\All Users\Application Data\Intuit\QuickBooks\qbsdklog.txt), I kept seeing the following error when attempting access the file:

20091215.215811 I 3416 RequestProcessor ========= Started Connection =========
20091215.215811 I 3416 RequestProcessor Request Processor, QBXMLRP2 v7.0
20091215.215811 I 3416 RequestProcessor Connection opened by app named ‘php QB via C#’
20091215.215812 E 3416 RequestProcessor QuickBooks is not running and the data file name is not provided. Cannot continue.
20091215.215812 E 3416 RequestProcessor Could not create instance of QuickBooks. hr = 80040416
20091215.215812 I 3416 RequestProcessor Connection closed by app named ‘php QB via C#’
20091215.215812 I 3416 RequestProcessor ========== Ended Connection ==========
========= Started Connection =========
Request Processor, QBXMLRP2 v7.0
Connection opened by app named 'php QB via Apache'
An internal error occured while looking for a running instance of
QuickBooks. Cannot continue. hr = 800401f3
Could not create instance of QuickBooks. hr = 8004041c
Connection closed by app named 'php QB via Apache'
========== Ended Connection ==========

If I ran my integration application through command prompt (via a .bat file) instead of Apache it worked perfectly. But Apache would not sync. I was running the Apache service as an Administrator which is I though all I needed to do. I was wrong.

Apparently accessing QuickBooks from a Windows service requires special COM permissions, because there are in-process/out-of-process Windows COM issues. We basically need to do three things: configure the COM permissions for QBXMLRP2e (installed with the Quickbooks SDK), configure Apache to run as a Windows user and configure Quickbooks to allow the application to connect.

COM Permissions configuration:

  1. Make sure the Quickbooks SDK is installed.
  2. Run command prompt and type: “C:\Program Files\Intuit\IDN\QBSDK7.0\tools\access\QBXMLRP2e\qbXMLRP2e.exe” /RegServerThis adds qbXMLRP2e to the DCOM settings list.
  3. Run “Component Services” from “Control Panel > Administrator Tools”
  4. Then from “Console Root > Computers > My Computers > DCOM Config” right click on “qbXMLRP2e” and select Properties

“Authentication level” should be set to Default

Go in Security “Launch and activation” select “Customize” and press Edit. Add the Windows user the service runs as and assign all calling rights. “Access” select “Customize” and press Edit. Add the Windows user the service runs as and assign all. “Configuration” select “Customize” and press Edit. Add the Windows user the service runs as and assign all.

Go in “Identity” tab and select “The interactive user”

Click Apply.

Apache/Quickbooks configuration:

  1. Make sure Apache is running as the user configured as the DCOM Windows user. Right click on the Apache Monitor and select Open Services. Change the “Log On As” user for the Apache service.
  2. Open Quickbooks and set it to multi-user mode. Be sure to clear out any applications in “Preference | Application Settings” first to make sure the permission settings get set correctly.
  3. Run a GUI version of your application accessing quickbooks. For example running your program through command line instead of Apache.
  4. Follow the prompts in Quickbooks to allow the application access.
  5. Run the integration through Apache and it should work now!

This took forever to figure out and hopefully it helps someone googling the error codes I was receiving.

Windows 7 Starter Edition

November11

Recently purchased a netbook with Windows 7 on it a few weeks ago. I didn’t realize until I started using it the massive limitations of Windows 7 Starter Edition. This article articulates it pretty well: http://www.eweek.com/c/a/Windows/Microsofts-Windows-7-Could-Disappoint-Netbook-Users-Says-Survey-368762/

Even worse, when the netbook was first loading, they misspelled initializing as “Initailizing…”. My blackberry doesn’t take very good shots of LCD netbook screens, but here is the picture:

Windows 7 misspells initializing

Windows 7 misspells initializing as "Initailizing"

A coworker of mine is always talking about how great Ubutnu is: http://www.ubuntu.com/, and I do have an extra laptop to try it out on. So that seems like a nice weekend project.

Twitter Updates

October13

Two ways to add Twitter to your site. For the non-tech or easy to do, use Twitter’s built in widgets: http://twitter.com/badges/which_badge

Or using PHP code your own page. Below is the code followed by the results:


Warning: file_get_contents() [function.file-get-contents]: open_basedir restriction in effect. File(/home/content/k/e/l/kellymas/html/includes/include_twitter.php) is not within the allowed path(s): (/var/www/clients/client2/web2/web:/var/www/clients/client2/web2/tmp:/usr/share/php5) in /var/www/clients/client2/web2/web/blog/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 7

Warning: file_get_contents(/home/content/k/e/l/kellymas/html/includes/include_twitter.php) [function.file-get-contents]: failed to open stream: Operation not permitted in /var/www/clients/client2/web2/web/blog/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 7

Warning: include() [function.include]: open_basedir restriction in effect. File(/home/content/k/e/l/kellymas/html/includes/include_twitter.php) is not within the allowed path(s): (/var/www/clients/client2/web2/web:/var/www/clients/client2/web2/tmp:/usr/share/php5) in /var/www/clients/client2/web2/web/blog/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 13

Warning: include(/home/content/k/e/l/kellymas/html/includes/include_twitter.php) [function.include]: failed to open stream: Operation not permitted in /var/www/clients/client2/web2/web/blog/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 13

Warning: include() [function.include]: Failed opening ‘/home/content/k/e/l/kellymas/html/includes/include_twitter.php’ for inclusion (include_path=’.:/usr/share/php:/usr/share/pear’) in /var/www/clients/client2/web2/web/blog/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 13

Twitter

August26

Just signed up for Twitter: https://twitter.com/matthewstevenke

It is actually pretty cool. Not sure how much I am going to update it, but I set it up to be able to post “tweets” from my mobile phone. All I have to do is text whatever I want to 40404 and it shows up.

I debated with myself for quite a while on the username. Twitter only allows for 15 character user names, so “matthewstevenkelly” would not quite fit. Matthew Kelly is quite the popular (ie common) name, so “matthewkelly” and all kinds of other variations wouldn’t work either.

If you know anyone I should follow… let me know. I added Matt Cutts and Evan Eckard right away. More to come I am sure.

Social Media Revolution

August20

Are you using social media? Found this from http://www.cincyrecruiter.com/

« Older Entries