New RocketResponder Widgets!

Well this is something I’ve been wanting for a while. I love seeing the number of subscribers to my blog right smack on every page. It motivates me to keep that number growing and it gets visitors interested in subscribing.

Let’s face it, people don’t want to miss out so if they see lots of people have subscribed they want to subscribe too. It’s almost like an authority ranking of sorts. It proves you’re someone worth subscribing to!

Subscriber Widgets

We’ve got widgets in a variety of styles that will stand out. And what’s even more cool about them, if someone clicks the subscriber count they’ll get to a subscribe page for your list, and if they click the Powered by link they’ll be clicking your referral link ;-)

So it’s just another way to get more people subscribing and more people in your downline at RocketResponder!

Why you actually want double opt in

I’m actually surprised how many people want single opt in for Rocket Responder. I understand the core reason, they want more people on their list. But the whole reason you confirm a subscription is to make sure the person actually signed up for it.

Everyone rants about spam. Nobody likes it. So why wouldn’t you want to play by the same rules you expect for your inbox?

You want an active list right? You want your subscribers to click your links, buy your products, etc. So start out on their good side with a quick confirmation email.

It’s OK if they don’t confirm immediately, it’s OK if not everyone confirms. It’s MUCH better than having them think negatively about you or even worse, reporting your email as spam!

You could also think of it this way.. Most autoresponders charge based on number of subscribers. Do you really want to be paying MONTHLY for subscribers who never wanted your email, marked it as spam and have it always go to spam, or filter it to delete automatically? No way!

Just something to think about.

The whole reason RocketResponder exists

I’ve done a video tutorial for using RocketResponder with blogs. This is the reason the site exists. I’ve been too frustrated with all the other options out there. Poor Jon has been logging into his autoresponder and sending an email out manually for years.

[youtube=http://www.youtube.com/watch?v=mguRsPHpa1A]

If you full screen you’ll see full detail. But it’s so simple people are confused when they are done. Justin was waiting wondering what the next step, I had to tell him there was no next step it was already done.

I really see my success in business as a result of starting this blog. I don’t do crazy pitching I don’t do much with it really, but it has given me a voice and is the reason most people know who I am.

Before the blog I was just a guy running a traffic exchange. People knew my name but that was it. After my blog people see me as a friend and they get to interact with me.

So that’s why I’ll be pushing blogging & list building from now on. I’ve been holding back because all the other options were too expensive or too difficult for newbies. I can now show people how easy it is!

Using GROUP_CONCAT in a single to many JOIN query with MySQL

I’ve had this conundrum before, but I didn’t know how to do it until now. What if you are doing a MySQL query and pulling a bunch of rows. But then each of those rows has more data in another table, which can have multiple rows itself. Normally you’d have to loop through the first query with PHP and run the second query.

Well I figured it out how to do it using GROUP_CONCAT. But first, here is the “old way” of doing what I’m talking about:

[code]$query = “SELECT * FROM `posts`”;
$result = mysql_query($query);
while ($POST = mysql_fetch_array($result)) {
$query2 = “SELECT `tag` FROM `tags` WHERE `PID`='{$POST[“PID”]}'”;
$result2 = mysql_query($query2);
while($TAG = mysql_fetch_array($result2)) {
.. code goes here ..
}
}[/code]

So what ends up happening is for each row in posts, you run that second query. So if there are 100 posts it ends up being 101 queries run each time. Using GROUP_CONCAT you can get the same info, but with only one query:

[code]$query = “SELECT *,
(SELECT GROUP_CONCAT(tag) FROM tags WHERE tags.PID = posts.PID) AS lists
FROM posts”;
$result = mysql_query($query);
while ($POST = mysql_fetch_array($result)) {
… code goes here …
}[/code]

Essentially GROUP_CONCAT is running that extra query in the background, grabbing all the tags, and combining them into one string separated by commas. So you’d get all the tags without having to run additional queries.

Why care? Well for one, speed and efficiency. Which is my favorite thing. By having only one query goto the database, the database can do the heavy lifting while it’s got everything going. Each query has an overhead and bandwidth, so anytime you can combine queries is good!

ON DUPLICATE KEY UPDATE

When you are working with high traffic sites it’s important to optimize every query you can. It’s also important to realize with so much traffic multiple people could be doing the same thing so data can messy.

Say you create a new table to track how many users login to your site every day. You create a table with the fields Date and Table. I used to do it this way:

{code type=php}$query = “SELECT * FROM `logins` WHERE `Date`=’09-17-2012′”;
$result = mysql_query($query);
if (mysql_num_rows($result) == 0) {
$query = “INSERT INTO `logins` SET `Date`=’09-17-2012′, `Logins`=1”;
$result = mysql_query($query);
} else {
$query = “UPDATE `logins` SET `Logins`=`Logins`+1 WHERE `Date`=’09-17-2012′”;
$result = mysql_query($query);
}{/code}

The problem is two fold: There are two queries for one task, and if you have a thousand people hitting that page at the same time there can be multiple inserts into the logins table.

Yes, you can make sure MySQL doesn’t allow multiple inserts, but it’ll result in an error and those logins won’t be counted.

What I found was a new way to do the same thing.. In one query, like so:

{code type=php}$query = “INSERT INTO `logins` SET `Date`=’09-17-2012′, `Logins`=1 ON DUPLICATE KEY UPDATE `Logins`=`Logins`+1”;
$result = mysql_query($query);{/code}

That’s it.. ON DUPLICATE KEY UPDATE tells MySQL to update the table if the key is a duplicate. Here the table structure would have the Key being “Date” and set to unique.

Google DNS vs OpenDNS vs Verizon DNS

The number one complaint people have with computers, no matter what operating system, is speed. And part of the problem with the internet is all the outside variables that affect your system speed.

One of the ways you can increase your browsing speed is to change your DNS settings. DNS is what translates timlinden.com into an IP address so your browser can load the site. If your DNS is slow everything will be slow.

The problem is that DNS depends on the website you are going to. If your internet provider has a lot of customers going to facebook.com for example, they’ll already know the IP address to send to you. So it loads fast.

Well I just found a neat tool that lets you compare DNS providers based on your history. That’s right, they see how long it would take the providers to return the DNS for sites you actually go to.

What I learned is COX (the cable company around here I’d never go back to) is 6.4% slower than my own ISP Verizon. But interestingly enough OpenDNS (which I thought was faster) is also slower at -3.4%. Google Public DNS came in at a slight 1.6% faster speed.

So if I switch to Google’s DNS (I’m using OpenDNS right now) in theory websites should load about 4% faster. I’m going to try it and give it a whirl.. Maybe it’ll make arriving at sites faster so I can win the next tournament.. hahahahaaa