MoneyI have been receiving some comments lately from people who are opposed to me wanting to make money from Daily Cup of Tech. It seems that there is an unwritten rule on the Internet that states:

“Thou shall not benefit from thine hard work when it is related to the Internet!”

Rather than addressing these comments individually, I thought it would be best to respond to each of these issues in one post so that I can clearly lay out where I stand on.

Advertising on DCoT

This is often the first complain that I will hear when it comes to making money with DCoT. People simply do not want to see advertisements. Period. It doesn’t matter if they are one the front page, in a post, in a comment, or in the RSS feed.

I’ve taken a look at a lot of blogs and the vast majority of them have advertising on them. If you go to the top five blogs according to Technorati (Endgadget, Boing Boing, Gizmodo, Techcrunch, and The Huffington Post), each and every one of them have advertising on them. Why should DCoT be any different? I try to limit my advertising and make it relevant so that if there is a product that is being shown to the reader, it is at least something that the reader would find useful.

DCoT has far fewer and less intrusive advertising than many other sites. I refuse to put pop-ups, pop-unders, and interstitial advertisement on Daily Cup of Tech. I also refuse to put on ads that attempt to install components on the reader’s computer.

I also occasionally write a paid or sponsored post about a specific product or service. I always start and finish these posts with a disclaimer that this is a paid post so that there is no confusion that I have received some compensation for writing this post and that it is an advertisement.

Readers need to realize that DCoT is a form of media and that advertising is a part of the media. You see this in magazines, television, radio, etc. Why do people expect the Internet and, more specifically, blogs to be any different?

Asking for Donations

I guess in many ways, this is almost like advertising for myself, but I have received some complaints about writing posts asking for donations to the tip jar or to release the source code. They do not like that I ask for donations on a regular basis and they are annoyed by the posts.

First of all, yes, I do ask for donations. I feel that the time and effort that I put into DCoT is worth some support and recognition. I have expenses to keep the website up. My time is valuable. People do not hesitate to ask me for help with their tech issues. (Granted, I did ask for people to submit their questions to me but they were asking long before I officially offered to answer.) Why should I hesitate to ask for a donation to support the blog?

Second, I do ask on a regular basis. The old adage, “Out of site, out of mind” holds very true on the Internet. There is good reason why you see “Gratuity not included in price” on your restaurant bill and Karma cups at Starbucks. Had I not regularly pointed out that people could help release source code to the Internet or just donate to help keep DCoT running, I would never receive any donations and DCoT would eventually die.

The one things that people don’t mention when they express their opinions about my donation requests is the fact that I also use that opportunity to recognize all of the people who have donated to DCoT in the past week and give them the recognition that they deserve. I think it is very important to shine the spotlight on these people because they understand what I am trying to do here.

What many people don’t seem to realize is that the donations that I receive are a real encouragement to me. There have been at least three or four times that I almost shut down DCoT and then someone would make a donation, even a couple of dollars, and it would change my mind. Not because I’m in it for the money but because I am encouraged by the fact that people feel that my hard work is worth giving up a small portion of the money they have earned from their hard work.

Paying for Source Code

This is an issue that started when I announced my Release the Code concept. In a nut shell, I promised to publish the source code on DCoT for my freeware applications when a certain amount had been donated toward the project. Some people thought that I should not be charging for the source code or that I was charging too much.

First, I am not charging anyone anything for the source code. When people voluntarily donate money to a project, they are doing it out of their own free will. I do not force anyone to pay me anything.

In fact, the vast majority of people who get access to the source code do not pay a single cent for it. For example, as of the writing of this post, over 2,000 people have accessed the recently released source code for DCoT Menu. There were five people who donated to the release of this source code which translates into fewer than 0.25% of the people who got the code paying anything for it. I really do not see how this is unfair to the readers of DCoT.

The other issue that comes up sometimes is that I am charging too much for the source code. In general, I ask US$100 for the source code for my projects. I have never worked or been paid as a coder but I have been a paid consultant in the past. My hourly rate back then varied between US$80 and US$145. Now, the absolute least amount of time that I have spent on one of my projects is seven hours. Based on my lowest consulting rate, my effort was worth at least US$560. All I am asking is US$100.

Also, when you hire a developer to write code for you, they are working for you to generate your product. And you need to pay to get the code. Unless you are one of the people who actually donated toward the release of the code, you haven’t paid a single penny and you have complete access to the source code to do with it whatever you want. I don’t know how much a programmer would to create an application and provide you with the source code but I’m sure it is more than free.

People have also argued that US$100 may be a small amount for someone in North America to pay but what about some people who make significantly less or are from a third world country? I have to admit that the world is not fair but, as I have stated earlier, these people do not have to pay for the code if they do not want it. All they have to do is wait and be patient. I do not know of anyone who is so poor that they cannot afford to be patient.

Readers must also be aware that I have to survive in the market that I live. I can’t convince someone at the grocery store to give me food because I gave away my source code. This is not how the world works and it is naive to believe that it does.

Still Don’t Like These Things?

I understand that there are going to be some people out there who are going to get up in arms about this and I may even lose some readers. So be it. This is how DCoT is being run and I do not apologize for it.

But, if you are truly serious about getting rid of the advertising and the donation requests and you would like all of my applications to be open source and free as soon as I release them, then it is up to you to be my boss. In fact, I am willing to quit my jobs and work on Daily Cup of Tech full time!

The only way that I would be willing to do any of this would be if I had a guaranteed monthly support base that would allow me to replace these other sources of income. With these in place I am willing to drop each of my other income sources one at a time until, eventually, I would be working full time for you, the DCoT readers.

Please do not take this offer lightly as I take this very seriously. I would be willing to put my finances in the hands of you, the readers, if you are willing to support this venture. This is how it would work:

I would accept subscriptions via PayPal (or any other legitimate form of payment) for Daily Cup of Tech. A subscription differs from a donation in that a donation is a one time contribution while a subscription is a monthly contribution. As the subscription number increases, I will start to make changes to Daily Cup of Tech and my life.

These are the changes that I would be willing to make in order as subscriptions increase:

  1. Removing DCoT Discounts
  2. Removing Text Link Ads
  3. Removing ads in RSS feed
  4. Stop writing posts for advertising
  5. Release all source code and future source code as open source immediately
  6. Stop asking for donations
  7. Remove ads from Feedburner
  8. Remove ads from AdSense
  9. Quit my one day a week job and work on DCoT on that day exclusively
  10. Quit my four day a week job and work on DCoT exclusively full time

So, is anyone willing to take me up on my proposition? I am willing to commit to this. How about you? If so, I will formally set up the program. I eagerly await your comments.

If you found this post useful, why don't you buy me a cup of coffee to show your gratitude?

SpamSorry, folks, but DCoT has been receiving so much spam in the comments that it is adding a significant load to the server. Because of this, I have changed the site setting so that only registered users can submit comments to the website. I know that this sucks but I need to take measures to prevent the system from going down simple because some people can’t get it through their thick skulls that I (and probably the DCoT readers) don’t want to buy their crap products. If I did, I’d be coming to them and they would not have to bother me.

So, sorry for having to make this change but, as usual, a few have spoiled it for the many. Thanks, losers!

For those of you that want to do more and help rid the world of spam, check out Fight Spam on the Internet!

If you found this post useful, why don't you buy me a cup of coffee to show your gratitude?

PlugsI have had a number of people ask me which plugins I unplugged during my recent Digg Effect. I was reluctant to name names because each and every one of these plugins that I was using was there for a reason. That reason was to provide me with information to better run the blog and provide services.

What I do not want this post to become is a bashing session. Every single one of these plugins that I will be mentioning are excellent additions to any WordPress blog and I am not slamming them nor the developers. All I am saying is that if you find yourself in th middle of a Digg Effect, you might try deactivating these plugins until you get over the hump. Do not not use them because of this post. Rather, use them wisely.

All that being said, these are the plugins that I disabled in no particular order:

The three that seemed to help the most were bsuite, Live, and WP-UserOnline, even though bsuite was the hardest for me to deactivate (I love the stats and information it provides me).

I disabled bsuite because it wrote a lot to the database each time a hit came in. And what can you expect when it gathers so much information. I was very sad to disable it.

Live provided a real time look at what was happening on my blog at the very moment. It essentially kept polling the system every ten seconds and reporting the changes. Very intensive.

Another processor intensive plugin was WP-UserOnline. It was awesome to be able to see how many people were on my blog at any given time. But was that information worth the extra strain on the server? I decided not and out it went.

Now, one plugin you definitely want to have is WP-Cache. It keeps html version of your php files and uses them instead of reprocessing them and sending them to the database. This alone could save you.

If you are having trouble with your website displaying blank pages that come back when you refresh, follow these instructions:

  1. Open /wp-content/plugins/wp-cache/wp-cache-phase2.php file* in your favourite text editor, where is the domain that you’re having troubles with EG: dreamhost.com/wp-content/plugins/wp-cache/wp-cache-phase2.php
  2. Alternatively if that file is not in that location for some reason you can issue this command to find it from the directory: find . -name wp-cache-phase2.php
  3. Find out wp_cache_ob_end function
  4. then inside that function find the line with: ob_end_clean(); (it should be line 219 or about)
  5. and finally replace that line with: ob_end_flush();

Once I got that straightened away, my problems disappeared.

So, if you are running WordPress and find you are getting grief from your web host, you may want to disable some of these and see if it resolves the problems.

Now, I am certain that there are some other WordPress plugins out there that have caused you pain in the past. Feel free to share them with the rest of us in the comments.

If you found this post useful, why don't you buy me a cup of coffee to show your gratitude?

ShovelsSo, having dealt with the repercussions of the Digg (Slashdot) Effect, I thought I would share some of the lessons that I have learned over the past few days. These have been hard lessons to learn. And, in hindsight, some of these lessons should have been obvious. I just hope that someone will be able to learn from my mistakes so that you can be prepared for it when it happens to you.

Lesson 1: You Web Host Will Help You…

I would have been completely sunk had my web host not been willing to communicate and work with me so that I could get back to business as usual ASAP. They were very professional and helpful.

As soon as you realize that your hits are jumping or you believe that the Digg Effect is coming, notify your web host immediately. They can sometimes redirect extra resources to the issue and help keep things running smoothly. And keep them posted as to the status of the situation.

Lesson 2: …But Your Web Host Is In This To Ultimately Make Money

My web host was very quick to offer me a dedicated hosting solution at 48x what I was paying! Because I was consuming an unusually large amount of bandwidth, they throttled by bandwidth back (even though I had only used 1% of my 2512 GB allotment and even now I have only used 4%).

What surprised me was that even on my most bandwidth intensive day (Thursday), I used 68,326.44 MB of bandwidth. Even if I had continued at this usage rate (that I was told was too high) for the entire month of January, my usage would have only hit 2069 GB. That is only 83% of my allotted amount. Obviously, my web host has little to no intension of letting me use all of my allotted bandwidth each month.

I also had some poorly written plugins incorporated with my WordPress software. These were consuming up to 80% of the CPU load on the server and other clients were complaining. My web host eventually disabled my website and told me to not re-enable it until I have the CPU cycles under control. It was obvious that they were willing to sacrifice the one (me) for the many (the other 200 customers on the box).

To be honest, I really can’t blame them for doing that. I would probably have done the same thing. What would have been nice, though, was if they had noticed this high CPU utilization before the Digg Effect hit me and then I could have resolved the issue before it was a problem.

The big thing that you can do here is to make sure that your plugins are playing nicely. The easiest way to do this would be to periodically monitor how much of the CPU your website is using. Use the top command on *nix to get a nice running summary of what is taking up CPU cycles.

One plugin that I do recommend is the WP-Cache plugin. I learned about this from a previous Digg Effect and found that it greatly reduces the strain on the mySQL server. It writes temporary static files that reduce the number of calls to the mySQL server. Really helps to keep things running quickly.

Lesson 3: Share the Load

One of the biggest problems that I ran into was everyone wanting the PC Repair System all at the same time. This put a tremendous amount of strain on my server and bandwidth. Of course, I rarely ran into problems when just the regulars were showing up. But, when everyone and his dog wanted access, that is when things got scary.

3a: Mirror the Culprit

One of the solutions that really helped (thank Rob) was to mirror the primary file to several other locations (thanks everyone for the mirrors). I then made these files available via the download link.

One cool idea that I stumbled upon with this solution was URL Rotator by LJScripts. My concern was that if I were to list all of the mirror locations, people would naturally just select the first mirror. Also, if someone had put a deep link to the file http://www.dailycupoftech.com/Downloads/PCRepairSystem.zip (which I know was happening pretty early in the whole affair), then there would be no benefit.

URL Rotator

This was where URL Rotator came in. All I needed to do was create a directory called http://www.dailycupoftech.com/Downloads/PCRepairSystem.zip and dump the contents of the URL Rotator archive. Then, I could add my URLs via the web interface. Whenever someone clicked on a link to http://www.dailycupoftech.com/Downloads/PCRepairSystem.zip, including ones from outside DCoT, they would then get a random mirror. No more problem!

3b: Mirror the Website

The other thing that was putting heavy load on my website was just hits to the website. As you may or may not know, WordPress is a PHP based system made up of dynamic pages. Each time someone comes to the website, the page is created on the fly. This takes processing power which adds load to the server. This, in turn, slows down my website (and any other website that is on that server).

What I am considering doing is mirroring DCoT to several servers throughout the world. Most of these would get little to no traffic on a regular basis since they are just duplicates of DCoT. In fact, I would probably just create a small PHP script that would redirect each mirrored page to the original website during normal loads. This way, people could still participate in comments which would not be available on the mirrored sites.

But, when I cane under moments of significant load, I would set up a system where I could make a simple change and DCoT would start redirecting people to the mirrored locations. These mirrored locations would share the load with DCoT and everyone would be happy.

Now, the fun part will be figuring out how to do this. At this point, I am looking at using HTTrack or wget. I schedule this to run a few times a day against DCoT and then modify the code so that it can deal with switching from normal to heavy load situations. I think this could be a pretty big project but I have a feeling that it could be worth it in the end. If anyone out there has any ideas about this, please leave them in the comments.

Lesson 4: I Have Friends Out There Willing To Help

This is kind of a rehashing of my earlier post so I won’t get into too much detail. I simply want to point out the if you create a good blog that people find to be useful, they will fight beside you to ensure that it stays up. From e-mails of encouragement to helpful suggestions and advice to right out open offers to provide whatever they can, I was amazed and humbled by the outpouring of support I received. It is to all of you that this blog is dedicated!

I’m sure that I will come up with more insights as the adrenaline wears off and my life starts to get back to normal but for the time being, that’s about it. I look forward to your comments and suggestions.

If you found this post useful, why don't you buy me a cup of coffee to show your gratitude?

247171658_9059fcd1fa_m.jpgDisclaimer:
I want to start this entry by saying that this tool could very easily be used to bypass security measures put in place to protect you and the systems that you are working on. The purpose of this post is to provide people with a way to access information that they have not been able to get because of political sanctions. This is not intended as a way to bypass your work or school’s proxy system.

I was reading an article about using Google as a proxy when it dawned on me that this could be a really useful tool in the fight against censorship. I am thinking of countries like China where the government dictates where you can go on the Internet.

There are three issues with the solution that Jason proposes in his blog:

  1. If Google becomes blocked, then you are right back to where you started
  2. The information given, while relatively easy to follow, is still too much for the average user to understand and use
  3. This information needs to spread across the Internet so that it can be used from several different websites

So, what I have done is create a simple web form. All you need to do is type in the website that is blocked and click on the Protect Freedom of Information button.

Now that the ease of use issue has been addressed, I wanted to address the issue of blocking Google. I have created two different versions of the form. One uses Google but one also uses BabelFish. You end up with the same results but you are using a different website to bounce off.

In order to get this information out to as many people as possible, I have made the code for these tools available to other webmasters so that all you need to do is cut and paste the code into your website.


GoogleEnter website that is being blocked and click on Protect Freedom of Information:

Support Freedom of Information. Get the code for this web tool from Daily Cup of Tech.

Code:


BabelFishEnter website that is being blocked and click on Protect Freedom of Information:

Support Freedom of Information. Get the code for this web tool from Daily Cup of Tech.

Code:

I am also looking for other translators/websites that will do something like this as well. If you know of other websites, then please let me know in the comments.

If you found this post useful, why don't you buy me a cup of coffee to show your gratitude?

« Previous PageNext Page »