skype site status buttonI was checking out some live chat services and it came to my mind that Skype might be a great alternative. It’s free and it’s widely adopted. Depending on the merchandise your website sells, Skype would be a great live web chat solution, such as in the niches of technology, digital productions, online applications, etc.

However, Skype may not be a good live chat solution for retailer sites selling common consumer goods, unless they offer some sort of web chat window when the visitor clicks the button.

Add Skype Live Status Button to Your Website

To enable your visitors to initiate live chat sessions with you, you need to add the Skype online/offline status badge (clickable) on your website. Follow these steps:

  1. Register an Skype account if you haven’t got one yet.
  2. Go here to get a Skype button by entering your Skype name and selecting a button style. The code is dynamically generated. Just copy and paste it on your website where you want the status tab to appear.
  3. Download the Skype desktop program and install it.
  4. Log in with your registered account in the desktop program, go to: Tools –> Options –> Privacy, and check “Allow my online status to be shown on the web.”

Click paths may vary in step 4 depending on the version of your Skype, but it’s definitely there, in the Options. Lots of people ask why the button they added to their websites doesn’t show Online when they are actually online. That’s why. You have to explicitly allow your status to be shown on the web from within your desktop program.

{ Comments on this entry are closed }

When you get the gift card or certificate number (a series of alpha-numeric strings) such as this:

MASP-78DRUB-XCX9

You may add it to your Amazon account so the gift amount is added to your Gift Card Balance before you can spend it.

After you have signed in Amazon, go to “Your Account” and scroll to the “Payment” section and you would see the link “Apply a Gift Card to Your Account”.

Or, just click this link: https://www.amazon.com/gp/css/account/payment/view-gc-balance.html/ref=ya_35

amazon_gift_card

Enter your gift card number and click “Apply to Your Account”. If the amount is successfully added to your gift balance, you’d see something like this:

amazon_gift_card_successful

Easy, huh!!

{ Comments on this entry are closed }

PHP: Crontab Class to Add, Edit and Remove Cron Jobs

by Yang Yang on October 30, 2011

Provided that your user account on the server has the privileges to access crontab thus can create or remove cron jobs, you can use this PHP class to integrate crontab in your application. I created it for many of my own projects that need crontab to do scheduled jobs. It’s pretty straightforward.

Don’t know what crontab is and how it works? Read here and here. With this class, you or your users can easily set up crontab jobs and automate tasks by schedule with the web interface.

The Crontab Class

class Crontab {
	
	// In this class, array instead of string would be the standard input / output format.
	
	// Legacy way to add a job:
	// $output = shell_exec('(crontab -l; echo "'.$job.'") | crontab -');
	
	static private function stringToArray($jobs = '') {
		$array = explode("\r\n", trim($jobs)); // trim() gets rid of the last \r\n
		foreach ($array as $key => $item) {
			if ($item == '') {
				unset($array[$key]);
			}
		}
		return $array;
	}
	
	static private function arrayToString($jobs = array()) {
		$string = implode("\r\n", $jobs);
		return $string;
	}
	
	static public function getJobs() {
		$output = shell_exec('crontab -l');
		return self::stringToArray($output);
	}
	
	static public function saveJobs($jobs = array()) {
		$output = shell_exec('echo "'.self::arrayToString($jobs).'" | crontab -');
		return $output;	
	}
	
	static public function doesJobExist($job = '') {
		$jobs = self::getJobs();
		if (in_array($job, $jobs)) {
			return true;
		} else {
			return false;
		}
	}
	
	static public function addJob($job = '') {
		if (self::doesJobExist($job)) {
			return false;
		} else {
			$jobs = self::getJobs();
			$jobs[] = $job;
			return self::saveJobs($jobs);
		}
	}
	
	static public function removeJob($job = '') {
		if (self::doesJobExist($job)) {
			$jobs = self::getJobs();
			unset($jobs[array_search($job, $jobs)]);
			return self::saveJobs($jobs);
		} else {
			return false;
		}
	}
	
}

Public Methods

You may well ignore the private methods that do the internal chores. And keep in mind that any cron job is a text string.

  1. getJobs() – returns an array of existing / current cron jobs. Each array item is a string (cron job).
  2. saveJobs($jobs = array()) – save the $jobs array of cron jobs into the crontab so they would be run by the server. All existing jobs in crontab are erased and replaced by $jobs.
  3. doesJobExist($job = ”) – check if a specific job exist in crontab.
  4. addJob($job = ”) – add a cron job to the crontab.
  5. removeJob($job = ”) – remove a cron job from crontab.

This class has been tested on Rackspace Cloud and Wiredtree. Feel free to post your comments below and let me know how it works on other web hosts.

{ Comments on this entry are closed }

personal developmentMaking sense is NOT what I’m known for. You are warned.

Success is a shadow of rarity. Try to be rare before you try to be successful.

99% of the people takes whatever they can while 1% gives whatever they can. 1% is a rarity. So they are 100 times more likely to get what they want than the 99%.

The idea of owning something is the source of suffering. It worries you and occupies your mentality, keeping you from achieving more because you are afraid to lose the things you have earned.

One should not try to own something. Owning or getting something such as wealth should not be the overall goal of his or her endeavors. Instead, one should try pushing the limits.

Want to be more financially successful? Don’t think of target numbers, but think about these questions – Why am I limited at where I am now? Why are the few others so ahead of me? What can be done to lift that limit and go farther? What can be done to be more productive or more creative? – And answer these questions by very very specific answers.

For example, I worry that one day I would lose the revenue streams of the many sites I created in the last 4 years, so I spent considerable time each week maintaining and promoting them. While results are slightly better and better by month, it’s ultimately not exponential growth which you would need to be a billionaire. It’s just a linear growth. Linear growth would only get you a millionaire at the best.

And this LIMITS me. It keeps me from getting better.

While these old sites occupy large portions of my schedule, I can’t concentrate enough on projects with “better outlook”. AND because I am dedicating my time to so many different projects at the same time, hardly any of them would eventually roll into an exponential growth at all because none of them are good enough to hit critical mass.

Even worse, it costs a lot when you multi-task.

It’s hard to give up on something you’ve been working so hard to build, because you are emotionally attached to it. It produces little yet you hold it dear.

Stop! Don’t get married to your projects. Move on, when you find out the niche isn’t as good as you thought it would be.

So I found one of the things that are limiting me – multi-tasking on too many projects at the same time. And my solution to this is: I’ll concentrate on one project at a time from now on.

Caring too much about the results would lead you to “copy” what the successful guys are doing, which is exactly what you don’t want to do if you don’t want to be mediocre.

You can do much better when you don’t care about the results than when you do.

Only when you lose you grow.

“Do one thing good, so the rest doesn’t suck. ”

(This line was from one of the movies. Can’t recall the title though.)

There is NO such thing as a saturated niche.

Be stubborn. Don’t seek advice. People are stupid. Don’t listen to them. Do what you think is right. Fail? So what!!

Take care.

{ Comments on this entry are closed }

ssh consoleFew know that those who have web hosting are at the same time endowed with a free VPN (Virtual Private Network, a very safe connection to transfer important data). With a few simple steps by the help of PuTTY, the tiny legendary SSH program, anyone with a web hosting account can have a private VPN that’s dedicated, premium and only limited by the monthly bandwidth of your hosting account. This is the safest VPN because it’s not even monitored by the VPN company. It’s completely YOURS.

Before proceeding, you need to make sure your hosting account has SSH enabled. Most hosts offer that nowadays.

What you will get?

You will have an awesome auto-login VPN program on your Windows desktop via SSH tunnels, based on PuTTY. Should get you the same thing on other systems following the same steps outlined below.

Double click to start the program, and a dedicated socks5 proxy will be established on your local computer which connects to your hosting server to form a VPN you can use.

How to get it?

To turn your web hosting account into a private VPN so you can use it to surf the web safely and anonymously, simply follow these steps:

  1. Finish these steps: http://www.shanghaiwebhosting.com/web-hosting/use-your-web-hosting-ssh-session-as-a-tunnel-for-socks5-proxy-server
  2. In step 4 at the above URL, you will save the session and give it a name, e.g. ‘my_server’.
  3. Create a shortcut of this command: C:\tools\putty.exe -load my_server -l your_user_name -pw your_password

Make sure to use your own path to putty.exe rather than “C:\tools\putty.exe”.

The 3rd step is what makes all the difference – manual login or auto-login.

Without the 3rd step, you could still establish the VPN connection but you need to manually enter user name and password every time you start the SSH session. To make things simple, you want PuTTY to auto-login with pre-entered user name and password. That’s where the command line shortcut comes in.

The -load directive loads the saved session, -l specifies the SSH login user name, and -pw specifies the SSH password.

Double click, and that’s it!

Double click the shortcut and an SSH session window will be opened, PuTTY then automatically logs in with the user name and password you provided. If the auto-login is successful, a connection to your hosting server is established, thus VPN created.

Simply leave the session window open and configure your web browser to use ‘localhost’ as socks5 proxy on port ‘8844’ (you can specify a different port in Step 3 of this article), and you will be surfing the web safely and anonymously on a privately premium VPN!

Note that all your browsing traffic is counted on your web hosting’s monthly bandwidth bills. Think twice when you want to perform large downloads (such as 5GBs or larger) because they might end up being a bit costy.

{ Comments on this entry are closed }

Magento goI officially signed up with Magento Go‘s Going Places plan for $25 / month and paid $99 for my SSL to be installed. It’s been 3 days and I wish I had better things to say about them.

And this is my review.

Uptime: 4.7 / 5

It’s too early to tell because I’m only with them for 10 days (in trial for 7 days). Sometimes it’s a bit slow. Magento is known to be resource-intensive. But as of now, Magento Go has been constantly up and responsive for me.

Price: 2.5 / 5

I would have given them 5 / 5 if I don’t have to pay $99 for my SSL to be installed – yes, that’s JUST for the installation service, not the SSL. You have to provide your own SSL certificate purchased from a CA to them. And this didn’t turn out to be very pleasant. I’ll come to that later.

The $1 million stimulus package that they promised to discount the monthly subscription fee by $15 for a year hasn’t been activated for me – and I contacted them about this twice – got NO responses of any kind. Waited nearly 24 hours and still no emails. So I logged back in to see the tickets. You know what I found? The tickets are all DELETED, like it’s never happened before.

What kind of support does that?

So the $1 million stimulus program is pretty much false advertising. Chances are, you won’t get it. Or you will. We are totally at their mercy.

Features: 4.1 / 5

If you are ever building an online store, once in your life time, you should use Magento Go. It simply makes sense.

After trying a few more online store builders, I think I’ll unsay the above saying.

Everything seems good, if not great. There are some parts that can be improved, such as the theming system, backup system, etc.

Their top plan for $125 / month offers a tingling of just 32GB monthly bandwidth. Anyone with decent SEO skills would easily hit that mark in half a year, especially if you’ve got lots of large images for the products. And extra bandwidth are charged $10 / GB. Pretty expensive. AND they don’t even have a bandwidth meter where you can see how much you’ve gone so far. So good luck…My tip is to use external website for hosting the product images.

Otherwise, Magento Go is simply NOT an magento go: not for growth. Be prepared to pay premium when you are locked in with them.

Support: 0.8 / 5

Appalling. If you are ready to pay $xxx per month for the top plan, you would probably be treated much better. But that’s just a theory.

I opened a total of 9 tickets, they DELETED 3 of them and responded to 3 of them.

They sent a very important message to *my* email. I didn’t receive it. Because that’s NOT my email, not even close. How hilarious is that!

Ticketing system is very hard to use. You would view the message and then click “Back” to return to the previous page to reply to it – if you have to quote something, you click “Forward” to view the message sent to you and then click “Back” again to continue writing. Very user-UNFRIENDLY ticketing system.

I posted a “Problem” message to the collaboration site (a collaboration support community to help dilute the workload of the REAL support team) about how my SSL hasn’t been installed after paying $99 and why my tickets got DELETED in the ticketing system. You know what they did? They changed the “Problem” status to “Question“. You know, it doesn’t look pretty in red.

Quick Facts about Go’s Support

People love interesting facts. Here are them.

  • A total of 3 tickets that got NO responses and simply got DELETED:
    1) A request for installing my SSL attached with my certificate files from GeoTrust
    2) A request to be enrolled in the $1 million stimulus package they promised – $15 monthly discount for next 12 billing cycles
    3) A question why my store home page doesn’t display the newest products after I added them in the backend – tried 2 different approaches but none of them worked.
  • After I complained about the SSL installation, they claimed to have sent an email to me at yanghit (@@@@@) gmail dot com. Apparently I didn’t receive it. Because that’s NOT my email, nor anything close.
  • For me, their support turnaround is about 12 hours, sometimes as long as 3 days, IF they respond at all. (I just recalculated the actual turnaround based on tickets’ and questions’ time stamps)

12 Hours Support Turnaround

Any support turnaround that’s 12 hours or longer is just unacceptable for mission critical sites such as eCommerce stores. Ordinary content sites have an eCPM of about $5 – $50 per thousand visits, however, online stores generally averages $200 – $2000 per thousand visits. Every hour of problem or down time causes substantial loss; the greater the traffic & conversion rate, the greater the damage.

People who choose Go are generally not technically oriented and would require a lot of help along the way. It would be a very painful experience for them should something get haywire yet they can’t get anything done in 12 hours.

Magento Go has got to seriously work on that.

Busted?

They got a final score of 60.5 / 100. Merely passed.

I will keep you updated on my experience with Magento Go. Even though their support isn’t the best in the world, I’d still recommend them to you. Hopefully they can see this review and give their support department a revamp.

I would love to see Magento Go becomes the go-to brand for online eCommerce solution. However, as of now, you would be better off with CE and do your own hosting, if you’ve got some technical nerves. In this case, I would like to recommend the Avalanche Magento theme.

What other folks are saying…

Seems I’m not alone on the bad experiences with Magento Go:

  1. http://www.shoppingcartsforwebsites.com/general/magento-go-review/
  2. http://www.commercestyle.com/e-commerce/magneto-sucks
  3. http://www.magentogoreview.com/list-of-magento-go-reviews~123

 

Update: I submitted a ticket and a *problem* at the collaboration site asking for a refund of the $99 SSL setup fee and they finally got back to me, addressing a question I asked 23 hours ago. After a few more tickets (each taking 2 – 3 hours for them to respond), my SSL is finally up and working.

 

{ Comments on this entry are closed }

4 Tips for Zend Studio 8 (Eclipse)

by Yang Yang on September 14, 2011

I coded a lot in Zend Studio 5.5.1, the gold old version that’s insanely popular because it made it so easy to code in PHP. As PHP evolves, ZS 5.5.1 gradually falls behind of the edge and it simply becomes imperative that you switch to the latest version of Zend Studio, the 8.

The IDE is built on Eclipse, which I have never used before. It’s great but one still needs some time to learn the curves before he or she can jump in and swim like a whale. Today I gave it a test drive and have some tips to share with you when you are just starting out with Zend Studio 8.

1. Change Default Character Encoding

Before you create your project or editing any existing PHP files, you may need to change the default encoding of the Zend Studio Workspace, or make sure it is what you usually work in.

By default, the encoding is that of the container (your operating system). I’m using a Chinese Windows 7 so the default encoding is GBK and it is everything but good because I primarily develop English projects.

For North America users, the default encoding should be ISO-8859-1. If you open up a file that’s encoded in UTF8 without changing the encoding accordingly, you may end up screwing up the file. And another victim.

To change the default encoding of Zend Studio: Windows –> Preferences –> General –> Workspace –> Text file encoding, switch to “Other” and select the encoding you normally use.

2. Display Function Parameters Hint on Demand

In 5.5.1, function parameters hint is automatically displayed when you place the cursor in the parentheses. However in 8, the hint is only automatically shown after you immediately finish typing the function name. When the focus moves away or you click anywhere else in the window, the hint disappears and if you don’t know the correct shortcut keys, you wouldn’t be able to get it back.

After a few searches, I found out the key combinations to get the parameters hint re-appear: Alt + Shift + /

Some pages say it’s Ctrl + Shift + Space but it didn’t work out for me. Maybe it’s a version thing?

3. Display Potential Function Candidates / Auto-complete Function Names

Along with the previous tip, this one is pretty important in modern IDE because they are essential in boosting one’s coding productivity. Can’t live without them.

When you are typing the function name, Zend Studio would guess what you mean and display a list of possible candidates for you to choose from.

If you want it to appear again, just place the cursor on the function name and use Alt + / to make Zend Studio makes a guess again.

4. Display All Shortcut Key Combinations

You can use a lot of shortcut keys in Zend Studio 8 to make things happen quickly and intuitively, just press Ctrl + Shift + L to bring up the key map to see the full list. Here’s a list of the commonly used commands:

zend studio 8 key assist - commonly used commands

{ Comments on this entry are closed }

Review: Why I love WiredTree hosting

by Yang Yang on September 7, 2011

wiredtreeThis is the second time I wrote a review of WiredTree and also the second time to have signed up a VPS account with them. The last time it was a 512MB VPS (VPS512) that has now been upgraded to VPS1000, doubling everything, RAM, disk storage and monthly bandwidth (tripled!), yet the price tag stays the same. Here are a few coupons that you can use to get 50% off the first 2 months should you want to sign up. The old coupons you may find elsewhere for VPS512 AND VPS 768 have been invalidated.

Okay, to the review part. After about 2 months I feel I should start using the VPS – I admit it’s a impulsive buy, just can’t resist the monster upgrade and 50% off offer – and the primary domain I provided when I signed up with it was somehow randomly picked, and now I want it changed into something else. So I sent the support team an email.

Note it’s about 2:30 A.M. CST. One of them, John, quickly responded to my help request, in less than 10 minutes, did the change and taught me how to debug DNS myself with a free tool intodns.com which by the way is a very cool tool.

The tool showed that I still needed to set the name servers for my domain at the registrar. I didn’t know how to do that so John asked me which registrar I was using, searched for the documents for me and then sent me the exact steps I needed to follow to accomplish the task.

Blah blah blah.

Things kept going wrong because I had no idea what I was doing with the DNS. I wanted to use my own name servers. It was after about 20 emails that I finally got everything in place and the domain started working. They responded to EVERY message in less than 5 minutes. And it’s about 4:00 A.M. CST.

End of story? Not.

I suddenly changed my mind that I wanted to completely re-provision the slice, using the new domain / host name in the first place, because, you know, I have obsessive disorders that knowing the old domain is still somewhere in the box makes me uneasy. I could still find the old domain listed via traceroute and reverse-IP lookup.

So I’m compelled to send another support ticket. John kindly asked me why I needed to do that and I told him I just wanted to, because I feel compelled. He then suggested me that I back up everything I can and let him know when I was ready.

After about 5 hours, the rebuild was done. I had a brand new slice that was as new as just born. Not sure how much time they spent in the 5 hours just for easing my compulsive mentality, I am sure grateful for their dedicated support.

5/5.

Find more reviews of them here: http://www.wiredtreereviews.org/

{ Comments on this entry are closed }

SEOmoz Pro Review – Bad Bad Bad

by Yang Yang on September 5, 2011

So I’ve tried the Pro version of SEOmoz, an online SEO software application, for a few days and I think I’ve got to write a review. This would turn out to be very ugly.

Many years ago the features that this system brings to the table could have been useful for the SEO novice, but today almost everything that it does, other systems do better. In addition, most of the tools you need to duplicate this product are either free, or very inexpensive.

One of its primary features is that it crawls your website weekly, and lets you know if you have any broken links or other issues with your site. If you have a Google account, you can simply register your URL with them, and use their free webmaster tools to do the same thing, and it does not cost you $99 a month like this product does. Here’s the link for Google Webmasters Tools http://www.google.com/webmasters/.

The next claim to fame that this item promotes is on-page optimization. This is a very simple concept to understand and implement. There are many articles on the internet that you can read for free that will tell you exactly how to do this. And it’s quite easy.

Essentially, it just comes down to using your primary keywords in the title and a description of that post. There are a few other things you will need to do besides what was mentioned above, but not too many. Lots of WordPress plugins have been created to help you in this regard. Simply search for ‘wordpress SEO plugins’. Some of them are totally free while some of them may charge a humble one-time fee which is exponentially lower than $99 / month. And they do the job very well.

Thirdly, it keeps an eye on your competition for you. Great, like you could not just use Google, Yahoo, or Bing to accomplish the same thing. It will also tell you all of your competitor’s backlinks for only $99 a month. If you would like to find out that very same information, there are tons of free ways to do that. Just google.

The final item they would like to impress you with is that the software will continue to improve and evolve over time. Well, for $99 a month it better, because it is pretty close to being useless right now.

The only thing I appreciate is their blog. It’s the best SEO information outlet I’ve seen. No one ever comes close. You would learn a hell lot more about SEO from there in an hour than from any other sources combined in a whole year.

For this review of SEOmoz Pro, the paid SEO productivity application, we give it a big fat zero stars, with 5 stars being the best. What else can we say about this thing, it is pretty much as bad as it gets. There is nothing that it does now, that cannot be accomplished for free with another application, or by researching a few articles on the internet. But if you don’t mind spending a *premium* price for a premium *looking* application, by all means, go ahead and sign up with it.

{ Comments on this entry are closed }

HTML: Make a Page Refresh Every xx Seconds

by Yang Yang on August 28, 2011

A quick tip for those who just started learning HTML. It’s possible to add a line of code in your HTML page so that it’s automatically refreshed every few seconds when loaded in the user’s browser.

To make the page automatically refresh itself every 60 seconds, just insert the following code in the <head></head> section of your HTML source code:

<meta http-equiv="refresh" content="60">

This would be very useful to display information that is constantly changing.

This can also be used to redirect the user from the current page to another, just specify the destination URL:

<meta http-equiv="refresh" content="30; url=http://example.com/">

Which would redirect the browser to http://example.com/ 30 seconds after finishing loading the current page.

{ Comments on this entry are closed }