Warning: Cannot modify header information - headers already sent by (output started at /home/amcom/public_html/blog/index.php(1) : eval()'d code:7) in /home/amcom/public_html/blog/wp-includes/feed-rss2.php on line 8
<title> http://www.adammoro.com/blog Internet Marketing, Web Development and Programming Stuff Fri, 19 Nov 2010 19:58:33 +0000 en hourly 1 http://wordpress.org/?v=3.0.1 Major Google Voice Privacy Flaw http://www.adammoro.com/blog/major-google-voice-privacy-flaw.html http://www.adammoro.com/blog/major-google-voice-privacy-flaw.html#comments Fri, 19 Nov 2010 19:48:30 +0000 Adam Moro http://www.adammoro.com/blog/?p=200 You know that email you get when you receive a new voicemail from your google voice number? It looks like this:

google voice privacy bug

You'd think that the page that the, "Play message" link takes you to would be a password-protected page. You know - one that required you be logged into your Google account to access it...and listen to the message. You'd think. But unfortunately Google keeps failing to use a fine enough comb to straighten out some of the major privacy flaws in their latest product releases.

I sent a tweet to @googlevoice but haven't done much looking into this other than just testing it to be sure it was a real bug.

So, as far as I can tell, you do not need to be logged into Google to hear Google Voice messages, whether they are messages for your Google Voice number, or not.

]]>
http://www.adammoro.com/blog/major-google-voice-privacy-flaw.html/feed 0
Scrollbar Divs http://www.adammoro.com/blog/scrollbar-divs.html http://www.adammoro.com/blog/scrollbar-divs.html#comments Tue, 07 Sep 2010 00:44:30 +0000 Adam Moro http://www.adammoro.com/blog/?p=182 A while back I realized how easy it is to include massive amounts of crawlable content in a page and in a relatively small section (e.g. a sidebar) without having to use fancy DHTML or anything like that. It's simple HTML:

<div style="overflow : auto; width : 210px; height : 220px; ">
    Place content here.
</div>

Just specify a width and height and any content that requires more height than specified will be accessible with a scrollbar. The scrollbar only appears if it's needed.

]]>
http://www.adammoro.com/blog/scrollbar-divs.html/feed 0
Simulate Neural Networks with PHP http://www.adammoro.com/blog/simulate-neural-networks-with-php.html http://www.adammoro.com/blog/simulate-neural-networks-with-php.html#comments Tue, 09 Mar 2010 15:47:30 +0000 Adam Moro http://www.adammoro.com/blog/?p=148 Modern usage of the term, "neural networks" refers to artificial neural networks, which, in short are, interconnected artificial neurons or programming constructs that simulate the properties of biological neurons. Neural Mesh has developed a PHP-based neural network framework for simulating and administrating artificial neural networks.

Still there? In other words, they have created a system that mimics a brain. To see how the framework works in a real-world example, play a game of Connect 4 with it below:


Source: http://neuralmesh.com/examples.php

Neural Mesh has opened up a demo section (demo/password) where you can get started with your neural network and bring artificial life to your projects. Have fun!

]]>
http://www.adammoro.com/blog/simulate-neural-networks-with-php.html/feed 1
uri_part: A PHP Function for Working with the Current URI http://www.adammoro.com/blog/uri-part-php-function-for-working-with-current-uri.html http://www.adammoro.com/blog/uri-part-php-function-for-working-with-current-uri.html#comments Tue, 09 Mar 2010 14:55:24 +0000 Adam Moro http://www.adammoro.com/blog/?p=142 A PHP function that makes it extremely easy to display dynamic content within your existing Content Management System (CMS), web application framework or standard "PHP-enabled" website.

function uri_part($n) {
	$path = explode("/", $_SERVER["REQUEST_URI"]);
	for ($i = 0; $i <= count($path); $i++) {
		if(is_null($path[$i]) || $path[$i] == "") {
			unset($path[$i]);
		}
	}
	$path = array_values($path);
	switch($n) {
		case 0: return @$path[0]; break;
		case 1: return @$path[1]; break;
		case 2: return @$path[2]; break;
		case 3: return @$path[3]; break;
	}
}

Usage Examples

Below are examples of how this function can be used in a template file such as the header.php file from your WordPress install or the page.tpl.php file from your Drupal install.

Example 1

if (uri_part(0)) {
	echo "Hello part 0";
}	

Example 2

<title><?php
if (uri_part(0)) {
	echo "Homepage Title";
}
elseif (uri_part(1)) {
	echo uri_part(1);
}
?></title>

Example 3

if (uri_part(2) == "some-category") {
	echo '<ul id="silo">';
	echo '<li><a href="#">Silo Link 1</a></li>';
	echo '<li><a href="#">Silo Link 2</a></li>';
	echo '<li><a href="#">Silo Link ...</a></li>';
	echo '</ul>';
}
if (uri_part(2) == "some-other-category") {
	echo '<ul id="silo">';
	echo '<li><a href="#">Other Silo Link 1</a></li>';
	echo '<li><a href="#">Other Silo Link 2</a></li>';
	echo '<li><a href="#">Other Silo Link ...</a></li>';
	echo '</ul>';
}
]]>
http://www.adammoro.com/blog/uri-part-php-function-for-working-with-current-uri.html/feed 0
Remove WordPress Post Revisions for Database Optimization http://www.adammoro.com/blog/remove-wordpress-revisions.html http://www.adammoro.com/blog/remove-wordpress-revisions.html#comments Tue, 09 Mar 2010 14:33:28 +0000 Adam Moro http://www.adammoro.com/blog/?p=136 Ever since WordPress introduced autosaving and revision control features, larger blogs have seen a significant increase in the size of their databases. If your WordPress installation has slowed dramatically or you are simply looking to optimize your database by removing countless records you'll never end up actually needing, run the following query on your WordPress database:

delete from wp_posts where post_type = "revision";

If you're wondering how to use this query, it may not be the best idea to do it yourself and you should probably have your database administrator help you out with this. Then again, if you have a DBA you probably aren't reading this post so here's how you use it.

Using phpMyAdmin, SQLyog, Sequel Pro or another MySQL GUI tool, login to MySQL and select the appropriate WordPress database (if you have more than one WordPress database, be very careful making sure you are selecting the database connected to the blog you are working on). Then run the query from above and you're done. For example, if you're using phpMyAdmin, click on "SQL" from the top menu, paste in the query and click, "Go."

If you do not have access to a MySQL GUI tool, you can do this from a Unix shell such as Terminal. To login to MySQL from Terminal, run the following command:

mysql -u <username> -p<password> <database>

An sample command for the above command example is:

mysql -u root -pyourpassword wordpress

Then, simply copy the query provided at the start of this post into the command line (as depicted below):

mysql> delete from wp_posts where post_type = "revision";

Hit, "return" and you're done!

]]>
http://www.adammoro.com/blog/remove-wordpress-revisions.html/feed 0
Google Profiles in Regular Search Results http://www.adammoro.com/blog/google-profiles-in-regular-search-results.html http://www.adammoro.com/blog/google-profiles-in-regular-search-results.html#comments Mon, 08 Mar 2010 20:08:44 +0000 Adam Moro http://www.adammoro.com/blog/?p=126 A little less than a year ago, Google started including Google Profile pages in vertical results but it seems they have taken it one step further by now including them in regular search results (as depicted in the image above). Seems "fair" enough considering Google profiles are now jam-packed with all sorts of buzz and aggregated information from other websites.

]]>
http://www.adammoro.com/blog/google-profiles-in-regular-search-results.html/feed 0
List of 138 Ping URLs (RPC / RPC2 Services) http://www.adammoro.com/blog/list-of-ping-urls.html http://www.adammoro.com/blog/list-of-ping-urls.html#comments Thu, 04 Mar 2010 13:02:27 +0000 Adam Moro http://www.adammoro.com/blog/?p=118 If you're on WordPress or another blog that lets you specify the services you want to ping whenever you post to or update your blog (e.g. Ping-o-Matic), here's a list that expands on the list of 56 RPC and RPC2 Services to Ping graciously provided by Elliott Back back in 2004.

http://shrinkurl.us/ZQl

http://www.volny.cz/tile2007/bathroom1tile/bathroom-tile.htm

http://www.feedsky.com/api/RPC2

http://audiorpc.weblogs.com/RPC2

http://api.my.yahoo.co.jp/RPC2

http://ping.blogs.yandex.ru/RPC2

http://ping.wordblog.de

http://blogpeople.net/servlet/weblogUpdates

http://blogsearch.google.ae/ping/RPC2

http://blogsearch.google.at/ping/RPC2

http://blogsearch.google.be/ping/RPC2

http://blogsearch.google.bg/ping/RPC2

http://blogsearch.google.ca/ping/RPC2

http://blogsearch.google.ch/ping/RPC2

http://blogsearch.google.cl/ping/RPC2

http://blogsearch.google.co.cr/ping/RPC2

http://blogsearch.google.co.hu/ping/RPC2

http://blogsearch.google.co.id/ping/RPC2

http://blogsearch.google.co.il/ping/RPC2

http://blogsearch.google.co.in/ping/RPC2

http://blogsearch.google.co.it/ping/RPC2

http://blogsearch.google.co.jp/ping/RPC2

http://blogsearch.google.co.ma/ping/RPC2

http://blogsearch.google.co.nz/ping/RPC2

http://blogsearch.google.co.th/ping/RPC2

http://blogsearch.google.co.uk/ping/RPC2

http://blogsearch.google.co.ve/ping/RPC2

http://blogsearch.google.co.za/ping/RPC2

http://blogsearch.google.com.ar/ping/RPC2

http://blogsearch.google.com.au/ping/RPC2

http://blogsearch.google.com.br/ping/RPC2

http://blogsearch.google.com.co/ping/RPC2

http://blogsearch.google.com.do/ping/RPC2

http://blogsearch.google.com.mx/ping/RPC2

http://blogsearch.google.com.my/ping/RPC2

http://blogsearch.google.com.pe/ping/RPC2

http://blogsearch.google.com.sa/ping/RPC2

http://blogsearch.google.com.sg/ping/RPC2

http://blogsearch.google.com.tr/ping/RPC2

http://blogsearch.google.com.tw/ping/RPC2

http://blogsearch.google.com.ua/ping/RPC2

http://blogsearch.google.com.uy/ping/RPC2

http://blogsearch.google.com.vn/ping/RPC2

http://blogsearch.google.de/ping/RPC2

http://blogsearch.google.es/ping/RPC2

http://blogsearch.google.fi/ping/RPC2

http://blogsearch.google.fr/ping/RPC2

http://blogsearch.google.gr/ping/RPC2

http://blogsearch.google.hr/ping/RPC2

http://blogsearch.google.ie/ping/RPC2

http://blogsearch.google.in/ping/RPC2

http://blogsearch.google.it/ping/RPC2

http://blogsearch.google.jp/ping/RPC2

http://blogsearch.google.lt/ping/RPC2

http://blogsearch.google.nl/ping/RPC2

http://blogsearch.google.pl/ping/RPC2

http://blogsearch.google.pt/ping/RPC2

http://blogsearch.google.ro/ping/RPC2

http://blogsearch.google.ru/ping/RPC2

http://blogsearch.google.se/ping/RPC2

http://blogsearch.google.sk/ping/RPC2

http://blogsearch.google.tw/ping/RPC2

http://blogsearch.google.us/ping/RPC2

http://ping.fc2.com

http://ping.kutsulog.net

http://ping.namaan.net/rpc

http://r.hatena.ne.jp/rpc

http://rpc.reader.livedoor.com/ping

http://www.syndic8.com/xmlrpc.php

http://www.wasalive.com/ping

http://www.focuslook.com/ping.php?url=http://www.yourblog.com

https://phobos.apple.com/WebObjects/MZFinance.woa/wa/pingPodcast

http://ping.blogoon.net

http://www.newsisfree.com/RPC

http://www.blogdigger.com/RPC2

http://rpc.technorati.com/rpc/ping

http://rpc.weblogs.com/RPC2

http://api.my.yahoo.com/RPC2

http://services.newsgator.com/ngws/xmlrpcping.aspx

http://api.moreover.com/ping

http://api.moreover.com/RPC2

http://www.blogpeople.net/servlet/weblogUpdates

http://bblog.com/ping.php

http://ping.feedburner.com

http://ping.myblog.jp

http://pinger.blogflux.com/rpc

http://blogsearch.google.com/ping/RPC2

http://blog.goo.ne.jp/XMLRPC

http://rpc.icerocket.com:10080

http://rpc.pingomatic.com

http://ping.syndic8.com/xmlrpc.php

http://1470.net/api/ping

http://www.a2b.cc/setloc/bp.a2b

http://api.feedster.com/ping

http://api.my.yahoo.com/rss/ping

http://www.bitacoles.net/ping.php

http://bitacoras.net/ping

http://blogdb.jp/xmlrpc

http://blogmatcher.com/u.php

http://www.blogoole.com/ping/

http://www.blogoon.net/ping/

http://www.blogroots.com/tb_populi.blog?id=1

http://www.blogshares.com/rpc.php

http://www.blogsnow.com/ping

http://www.blogstreet.com/xrbin/xmlrpc.cgi

http://bulkfeeds.net/rpc

http://coreblog.org/ping/

http://www.lasermemory.com/lsrpc/

http://mod-pubsub.org/kn_apps/blogchatt

http://www.mod-pubsub.org/kn_apps/blogchatter/ping.php

http://www.newsisfree.com/xmlrpctest.php

http://ping.amagle.com/

http://ping.bitacoras.com

http://ping.blo.gs/

http://ping.bloggers.jp/rpc/

http://ping.blogmura.jp/rpc/

http://ping.cocolog-nifty.com/xmlrpc

http://ping.exblog.jp/xmlrpc

http://ping.rootblog.com/rpc.php

http://ping.weblogalot.com/rpc.php

http://ping.weblogs.se/

http://pingoat.com/goat/RPC2

http://www.popdex.com/addsite.php

http://rcs.datashed.net/RPC2/

http://rpc.blogbuzzmachine.com/RPC2

http://rpc.blogrolling.com/pinger/

http://rpc.icerocket.com:10080/

http://rpc.pingomatic.com/

http://www.snipsnap.org/RPC2

http://trackback.bakeinu.jp/bakeping.php

http://topicexchange.com/RPC2

http://www.weblogues.com/RPC/

http://xping.pubsub.com/ping/

http://xmlrpc.blogg.de/

http://blogbot.dk/io/xml-rpc.php

http://www.catapings.com/ping.php

http://effbot.org/rpc/ping.cgi

http://thingamablog.sourceforge.net/ping.php

]]>
http://www.adammoro.com/blog/list-of-ping-urls.html/feed 2
HTML noindex Tag http://www.adammoro.com/blog/html-noindex-tag.html http://www.adammoro.com/blog/html-noindex-tag.html#comments Thu, 04 Mar 2010 12:08:38 +0000 Adam Moro http://www.adammoro.com/blog/?p=108 Someone on Twitter asked Google if they index content contained within the HTML tag, "noindex" (not to be confused with the robots meta tag directive) and, as far as I could tell, never received a response. I took to the Google Webmaster Help forum for an answer and a member stated his opinion that, "virtually no one supports this tag." I try not to rely on opinions when I'm getting paid to do SEO work so I thought it called for a simple test.

An obvious component of an SEO test is an obscure term or phrase and one of the obscure terms I use is, "habadashary." It's a misspelling of the also somewhat obscure term, "haberdashery" so it makes for a really effective test variable. So in the interest of making the most out of this test, I've wrapped the misspelling in the noindex HTML tag and included the correct spelling for another unrelated test (that we'll just keep between you and me). I've got this blog hooked up to a plethora of ping URLs so the results should be visible pretty quickly.

]]>
http://www.adammoro.com/blog/html-noindex-tag.html/feed 0
List of Affiliate & CPA Programs http://www.adammoro.com/blog/cpa-affiliate-programs-list.html http://www.adammoro.com/blog/cpa-affiliate-programs-list.html#comments Tue, 02 Mar 2010 23:26:50 +0000 Adam Moro http://www.adammoro.com/blog/?p=99 Here's a list of CPA programs. It's an old list so there may be some that are no longer in business. There may also be some newer ones missing. What can I say, you're welcome.

]]>
http://www.adammoro.com/blog/cpa-affiliate-programs-list.html/feed 0
Find Out if an SEO is Lying in Five Steps http://www.adammoro.com/blog/find-out-if-an-seo-is-lying-in-five-steps.html http://www.adammoro.com/blog/find-out-if-an-seo-is-lying-in-five-steps.html#comments Thu, 25 Feb 2010 01:46:47 +0000 Adam Moro http://www.adammoro.com/blog/?p=67 I've had my fair share of run-ins with unethical car repair shops but a recent experience made me realize that there's an analogy to be drawn between shady SEO salesmen and shady auto mechanics.

To test this I simply copied an article from eHow titled, "How to Tell if a Mechanic is Lying" and made a few minor adjustments. As you will see, there were not many adjustments to make and that's what I found really interesting. So here are five steps you can take to find out if your SEO is lying to you.

  1. Simply ask if the work that needs to be done can wait. If the mechanic SEO says that it is not an emergency, it is alright to hold off on getting it done. This is not to say that you should neglect getting repairs your website optimized, but there is nothing wrong with putting unnecessary work off.
  2. Ask your mechanic SEO to show you the problem. For instance, your mechanic SEO tells you that you need new rear brake pads better rankings. But when it is time to show you, you realize that they are not nearly as worn as he said referring to terms for which nobody ever actually searches. In fact, they your rankings are not bad, compared to the front brake pads when you check them for the words and phrases your prospects are actually using to find businesses like yours. If you are not having any problems with braking when you drive your prospects finding your website, there is a possibility that your mechanic SEO is lying.
  3. Get a second opinion, if you drive into the auto shop contact an SEO company and you do not trust the mechanic SEO. People get second opinions for doctors and dentists. So why not leave your mechanics shop find another SEO company and ask another them who is equally, if not more qualified.
  4. Trust that your mechanic SEO is lying, if every time you get your car serviced website audited, they come back with a laundry list of other, unexpected issues. Unless your car website was pre-owned or very old worked on by another SEO company since the last time this one worked on it, there is a possibility your mechanic SEO is lying.
  5. Acquaint yourself with the basic car servicing search engine optimization recommendations according to your car mileage leading SEO bloggers. You can do this by going online and printing out a standard car servicing SEO checklist. This is important information to know, especially if your mechanic SEO says you need an oil change a site redesign or new tires content and you know that he/she is lying because you are not due for an oil change meeting all the recommendations of the checklist and you have a decent amount of tread on your tires unique and relevant content on your site already.
]]>
http://www.adammoro.com/blog/find-out-if-an-seo-is-lying-in-five-steps.html/feed 4