Welcome to my new blog

Hi, I’m PROGRAMMER BEAR.  I like fishing, long walks in the forest, and computer programming.

I’m a web developer by day, so I’ll be talking about topics ranging from web technologies to more technical programming things, general work/life issues, and anything else that seems interesting to me.

Hopefully something I say here will someday prove useful to somebody.  That’s nice to think about anyway.


Fix your shit or face legal action!

From a potential customer:

Your page of free vs. pro is a complete LIE… This is illegal. It mentions nothing about limited the field types, just the amount of them. Fix your shit or face legal action!

Okay dude, see you in court. Also, welcome to the blacklist!

(for the record, I honestly have no idea what he’s talking about)

See more from The Joys of Customer Support

You didn’t drop everything and immediately implement my suggestion, how dare you!

There’s a LONG story of communications with this guy so I’m paraphrasing significantly. Suffice to say, this dude writes in asking for some feature we don’t have. We give him our standard reply — he can post a feature request for it (which is not a promise we’ll do it, only that we’ll consider it if it gets enough votes), or he can hire some other developer to do it for him. He then flips out and leaves bad reviews on 2 different sites.

He writes:

do you not understand how coding plugins and subsequent updates for them work? If I hire a developer to patch YOUR plugin, every update you have presents an opportunity to break a non-official coding change.

No, I don’t understand how coding plugins works. I just make a living selling plugins exactly because I have no idea what I’m doing. If only WordPress would implement some system of hooks and filters so us poor developers could implement non-official coding changes safely…. but who am I to argue, Mr. Not-a-developer Dude obviously understands better than me about such things.

This is a tasteless suggestion, also assuming I wasn’t prepared to pay YOU SPECIFICALLY to do this is a poor move.

We never asked for money, and we don’t want your money. (I don’t offer custom development services anyway, I have no time for that)

My 1 star review stands for the plugin, if I could take away another star just for this reply I would.

Wow I’m so sorry the review system doesn’t allow negative stars just for you.

I’m not sure who put you guys on the customer service team, but this decision is hurting your growth for this plugin.

What “decision” are you talking about? We said “open a feature request or hire a developer”, that’s it. What did you expect, that we should drop everything to implement some random feature just because 1 guy asks?

Any other plugin developer would have been thrilled to have a customer offer a suggestion

Yes because 1) obviously I don’t have anyone else making suggestions besides you, 2) clearly I have nothing else to do with my time, and 3) your request is definitely the best idea anyone has ever come up with, shame on us for not seeing your supreme wisdom.

To be honest I’m really disappointed at the service and will be
looking for an alternative plugin to use. Most plugin developers are
highly receptive to improving their products. This is a confusing
reply, and position to take on people asking to improve your product.

Yes, I’m sure years from now I’ll look back and regret this…. “if only I had implemented that one random guy’s feature request, it would have saved my entire business. But now, because I didn’t listen to that one guy, I live on dog food and cheap booze. If only I’d known.”

By the way, all of this was from a guy who’s business is selling… mushrooms. You heard me right, mushrooms. So obviously his ideas for how a software product should be developed are way better than anything us poor programmers could ever come up with.

P.S. Welcome to the blacklist!

See more from The Joys of Customer Support

Unnecessary chargeback threat

For my business I offer a 30-day no-hassle refund policy. We mention it all over our website, and we really mean it. All people have to do is ask for a refund, and we give it. We don’t ask questions, we don’t hassle anybody about anything. Then we get this:

please refund my account and cancel the license, if you people put me too many excuses to refund I’m just will call my AMEX card to pull the money. Thank you.

Why did you feel the need to threaten a chargeback right off the bat? Do you really feel that we’re scammers or something? Did you think we wouldn’t give you a refund unless you threaten us? Seriously dude, I’ve never even talked with you before, so why treat me this way?

Welcome to the blacklist, asshole!

(By the way, for those of you who maybe don’t know, chargebacks are a major pain in the ass for us small business owners. They are supposed to be used only for cases of legitimate fraud… i.e. somebody stole your credit card and went on a shopping spree with it. Unfortunately, people use them as a weapon just because they are unhappy. People lie and claim it was a fraudulent transaction so they get their money back immediately from the credit card company. In turn the credit card company yanks the funds directly from our account, plus a $15-20 chargeback fee. Then we have to provide evidence the charge was not “fraud” (i.e. we’re guilty until proven innocent!). It’s basically “legal” theft on the part of customers, and it sucks.)

See more from The Joys of Customer Support

Introducing “The Joys of Customer Support”

I’m adding a new category here called “The Joys of Customer Support”. I’ve been saying for a while that customer support is brutal and demoralizing for us programmers. I’ve been on the receiving end of many undeserved zingers over the years, but when people ask me for examples to back up my claim, I often struggle to recall the details of conversations other than the most super-recent ones. So this will be my little way of collecting them, once and for all, for posterity.

I don’t plan to write full-on blog posts for each one, they’ll just be short snippets. I hope you enjoy them as much as I have. 😛

See them all here: The Joys of Customer Support

Programmer Bear announces Customer Blacklist Project with release of EDD Blacklist plugin

I sell premium WordPress plugins using the popular Easy Digital Downloads (EDD) plugin for WordPress. It’s a great business except for one aspect — fucking crazy customers, assholes, and scammers.

Don’t get me wrong, most customers are just fine. Some are even nice people! But the small % of crazies are simply draining, even demoralizing to deal with. I’m talking about customers who demand you implement some custom feature, and when you ever so politely say “no” they freak out and leave 1-star reviews every place they can find. Customers who abuse you and your staff in support tickets, treating you like fucking slaves at their every beck and call (and God help you if you take more than 24 hours to solve whatever they want!). Or scammers who chargeback their payment through their bank/credit card company, rather than spend the 30 seconds it would take to ask us for a refund!

If you sell WordPress plugins, or any other digital product using EDD, you know exactly who I’m talking about.

Continue reading Programmer Bear announces Customer Blacklist Project with release of EDD Blacklist plugin

Incorrect MIME type detection triggering “Sorry, This File Type Is Not Permitted For Security Reasons” error in WordPress

Previously I posted about how to make WordPress permit additional file types to be uploaded. (My approach still works as of this writing.) Recently however I discovered some files that *should* be allowed via this method were still triggering “Sorry, This File Type Is Not Permitted For Security Reasons” errors anyway. After 3 hours of digging through WP core code to find the problem, it turns out to be a deficiency in the way PHP itself detects MIME types. I present my solution to you here, in case you find yourself in the same situation.

Continue reading Incorrect MIME type detection triggering “Sorry, This File Type Is Not Permitted For Security Reasons” error in WordPress

How to remove WordPress’ “PHP Update Required” nag box

WordPress recently introduced a scary “PHP Update Required” nag box on your WP dashboard. “Your site is running on an insecure version of PHP” they say. Isn’t that lovely? Well, no WordPress, just because my PHP version is “old” does not make it “insecure”. Fuck you.

Fortunately it’s easy to remove. Just add the following to your functions.php:

Continue reading How to remove WordPress’ “PHP Update Required” nag box

Time Etc Virtual Assistants Review – It’s a Scam

My startup tech business has been growing, and I decided it was time to bring in some help to keep up with things like emails, customer service, and so on. I’m not successful enough yet to hire an employee outright, so I started looking into getting a Virtual Assistant.

I read reviews about a company called Time Etc, and decided to give them a try. Now looking back, 3 months later, I wish I hadn’t. I can sum up my experience with Time Etc in one sentence: It’s a Scam. Once they get your money — and you have to pay them up front — they do everything to avoid actually doing the work you’ve paid them for.

Continue reading Time Etc Virtual Assistants Review – It’s a Scam

[DEVELOPING] Possible Email DDOS attack exploiting MailPoet (WordPress plugin)

This is a developing issue happening right now, please check back on this page for any updates over the following days.

Last updated 2018-03-29

Starting around March 25, 2018, I started seeing an unusual amount of bounces from my email server. The emails bouncing were the double-opt-in “please confirm your subscription” messages automatically generated by the WordPress plugin MailPoet.  This happens from time to time if, for example, somebody accidentally mis-types their email address. But now, suddenly they were coming in repeatedly for the same handful of addresses, including ones like support@linode.com and abuse@linode.com. So out of curiosity I headed over the Linode Status page, and saw this:

Continue reading [DEVELOPING] Possible Email DDOS attack exploiting MailPoet (WordPress plugin)