outsourcing your work as a captcha

I guess everyone’s seen the robot test captcha thing on Google these days. If you try to use their websearch engine too fast, then you’ll soon be proving that you’re not a script that’s running on some spammer’s computer.

I'mNotARobot

Often, though, you’re then next asked to select which squares have store fronts, or doors, or signs or food.

CaptchaSigns

And of course, since we want that content, we dutifully “prove” that we’re not a robot. But—and I realize this might sound a little cynical of me—what if we’re actually being forced into conscripted labor, as if we were Google’s robots?

What if we’re actually being forced into conscripted labor, as if we were Google’s robots?

Try to follow along…

Amazon Mechanical Turk

Amazon has a variety of services within the AWS space. The one I’m thinking about at this moment is their Amazon Mechanical Turk. If you have a computer and Internet and want to make some money doing (usually) mundane tasks, then Amazon will pay you to do so.

For instance, Amazon might pay a hundred people to look at one image after another and to indicate/highlight where in the image they see a sign or a store front or whatever it is that Amazon needs highlighted. Humans are great at this. Artificial intelligence applications are getting there, only it takes a supercomputer these days in order to do these tasks.

What if Google doesn’t want to use their supercomputers nor wants to pay anyone to do object recognition either?

Google Maps Streetview

Google’s mapping featureset with Streetview represents a way for them to make a lot of money. And their collection of project managers would love to know where storefronts are within all that captured data. (Imagine that they’ve paid drivers to drive around a car with 360° cameras.) Because behind every storefront is a business who could pay Google money for placement within Google Local.

Now, Google has datacenters with plenty of available processing power to do this. But what if… they’re using us instead.

Think about it, we’re asked to identify objects within photos (which look like they’re taken from the Streetview data) and we’re being asked to identify things (businesses) which could make Google money or things (signs) which could be used in mapping directions.

Call me cynical but Google is looking a little guilty on this one. Why aren’t we identifying the squares with puppies in them? Because puppies don’t buy listing upgrades, that’s why.

 

the power of seo

Everyone wants to sell you search engine optimization (SEO) as a service.  I’m sure there’s good money in doing that but I’ve never paid anyone for this since it’s easy enough to do yourself.  The higher you are in a Google search result, the more likely that you’ll be seen.  And the more likely you’re seen, the more likely your blog will be read.

“Roll Your Own” SEO

Believe it or not, one of my most popular blog posts of all time is “why PowerShell sucks so badly”, enjoying 743 views so far (mostly from searches in Google).  Viewing this graph, clearly something changed between Jul & Aug of 2016.

powershell-sucks

The views for this blog post were all 100% organic (unaffected by anyone’s attempts to manipulate search engine placement) before August 2016.  If you typed in “powershell sucks” into Google before this time you would have had to search page after page within their results to find any mention of my blog.

August 2016

Somewhere during that month, I noticed the popularity of this particular blog post and wanted to do an experiment.  Up until this point there might have been a total of 50 views, making it one of my most popular posts at the time.

Daily, for about a week, I visited Google and typed in “powershell sucks”, then walked through the pages of results until I found the link to my own post.  I then clicked the link and parked that browser.  (It’s important to just appear as if you’re actually reading the content because Google’s JavaScript is tracking your behavior.)

It’s only necessary to do this once per day, to be honest.  It doesn’t take much to make an otherwise-obscure blog post gain in popularity in the “eyes” of Google’s search engine.

I repeated this behavior until the blog post was listed in the top five entries of the first page of results and then let nature take its course.

The Result

Of course, the Internet loves to complain.  From this point on, the Internet-at-large would then see the blurb in Google’s search results and offer to them the promise of a rant by some distant blogger (Yours Truly).  They clicked the link, landed on the page and were instantly rewarded by a smarmy commentary on my frustrations with PowerShell.

Once this “pump” was primed by my own efforts, it was unnecessary to do anything other than to continue to write content.  Well, at least, I write content which I myself would be interested in reading.

Have I learned anything from all this?  The Internet appears to love a post whose title resonates with something they’re feeling at the moment.  For comparitive purposes, I demonstrate that “too much fun” received three views and “windows 10 sucks balls” has about 120 so far.

Do you change your blogging style to accommodate the prevailing mood of the Internet?  I wouldn’t suggest that.  Just write.  Try to find something interesting and say what you need to say.

windows-10-sucks

too-much-fun

the rise and fall of the microsoft empire

1975-1980

Our historical timeline begins in 1975 when an unlikely duo—Paul Allen as Batman and Bill Gates as his awkward “Boy Wonder”—started Microsoft Corporation.  I’m guessing that ro-sham-bo was involved in this decision but incredibly somehow Bill was made the CEO when the company got its start.  Maybe dropping out of Harvard gives you that kind of confidence.

1981BillPaul

1981-2000

Nothing really significant happened until they managed to modify an existing operating system for the IBM PC in 1981 from another company and rename this to MS-DOS. Significant sales of the IBM series of computers and those of their competitors then launched a thirty-year stretch of dominance in the business world in the area of operating systems, software and development platforms.

For most of us, we reasonably dismissed Apple’s hardware and the MacIntosh operating systems as nothing we could seriously use in business outside of the marketing department.

Consumers bought new versions of software and that license was good for life.  It could often be transferred from one computer to the next as long as the last one was de-registered first.  If you built software for Windows, you likely used a Microsoft compiler to do so and you paid for that.  In fact, the Microsoft Technet collection of CDs was quite expensive.

2001

About six years into the “Internet Tidal Wave” as Bill would call it, Microsoft was starting to lose its way.  They tried to dominate in the browser wars but never quite managed to quash the competition.  Others saw their efforts in this area as annoying.  Their software for creating programs, Visual Studio, first hit the scene about four years prior to this.

Google was founded some five years prior and was just beginning to get attention from an investor before they had anything real yet.  In 1999 they moved from their garage to an actual building in Palo Alto.  Yahoo’s popularity as a search engine from a decade ago was waning.  Google’s ad-based revenue from keywords was paying off; they’d planted a money tree which eventually created an entire forest of money trees for them.  It wouldn’t be long until Microsoft’s executives behind closed doors would consider Google their biggest threat.

About this time Apple created a very clever method of provisioning content for one-and-only-one device within the music-delivery space.  The iTunes store would turn out to be the goose that laid the golden egg, as seen in the following revenues.  And yet, it would take years for either Microsoft or Google to realize the beauty in this fulfillment model and to come up with their own versions.

showmethemoney

The “Internet of Things” concept started gaining in popularity at this time.

2009

Microsoft’s attempts at copying Google’s success (MSN Search, Windows Live Search, Live Search) now culminated in the introduction of Bing as their default search engine destination for all things Microsoft.

Apple introduced the first iPhone and the first iPad about this time, noting that the same provisioning model from iTunes was incorporated into both via iOS.  The subscription model of sofware licensing was born with this, if you think about it.  If you wanted to write a program for either, you needed to use Apple’s software to do so.

Google has just introduced Chrome as a browser and would begin their campaign to slowly break Internet Explorer.  The same was true of the Android phone and its related operating system.  It would take a few years for Microsoft to catch up to either the iPhone or the Android before releasing their own app-savvy smartphone offering.

Amazon some three years prior had introduced the beginning of what would be a full complement of cloud-based services to support web development.  It would take Microsoft two full years to realize that they needed to be in this space and they didn’t have their offering ready for a few years more, too late to effectively compete.

Github.com had just celebrated their first year online, hosting over 46,000 repositories by then.  The world of open source was the very antonym to the way that software had been developed prior to this.

The free Ubuntu operating system was released about four years prior to this, backed by the well-funded company Canonical.

2015

Microsoft releases Windows 10, “the last version of Windows” (they claimed).  Rumors suggested that Windows would eventually go from a version-based license model to an annual-subscription model with respect to pricing.  I think it’s safe to say that the market hasn’t really embraced either Windows 8 or Windows 10.

The subscription-based model for Office 365 was introduced four years prior to this so the writing was definitely on the wall:  Microsoft wanted to depart from their former methods of making money and to chase the monthly subscription model.

2015-popular-coding-languages

The world of open source was offering new programmers a wealth of free code.  All they had to do was to take it and make it their own.  Formerly, Microsoft-friendly coding languages like C, C++, C#, VB and .NET dominated the playing field but this graphic shows how the game had changed.

2017

And here we are, present-day.  That curious number 42 now describes the number of years that Microsoft has been around.

Yesterday evening, I attended a very geeky meetup of perhaps fifty or sixty coders and only saw one Windows-based laptop.  Almost everyone had a MacBook of some kind.

I just spent about two hours today installing the free Visual Studio Community 2017 software so that I could—in theory, anyway—alter a free copy of the source code for TightVNC software.  Out of the box, so-to-speak, Visual Studio doesn’t want me to build this project since it uses an earlier target platform (Windows 7 or 8, one would assume).

Microsoft only wants me to make things for Windows 10.

So rather than making it easy for me to build a program that will happily work with Windows 7, they’re forcing me to jump through hoops in order to add the necessary pieces for this to happen.

Add two more hours to this and I find that my installation does not want to download the earlier pieces to allow this to happen.  I’m forced to then upgrade the code to Windows 10 compatibility mode… only to find that the build fails with 528 errors.

The main crux of all these errors appear to be:  “we can’t find common files”.  It’s a very amateur sort of error from a company that’s been providing compilers for several decades now.

I have to think that Microsoft doesn’t want me to do anything with Visual Studio unless it benefits Microsoft.  And this is the core of the reason why I suggest that they’re doomed.

Every time a coder like myself runs into obstacles like these, the usual seed that’s planted inside their head is “this would be easier with another free compiler or another language from someone else”.

2022

Fast-forward another five years and Microsoft will have lost ground on many fronts.  New software development here, there and everywhere will be via some language which wasn’t popularized by Microsoft on computers which aren’t Windows and with browsers which aren’t Internet Explorer or Edge.  Our toasters and refrigerators and our cars will be powered by the Ubuntu operating system or perhaps Debian, a similar free Linux flavor.  These appliances will be connected to our wi-fi and even to the Internet but there won’t be a scrap of anything Microsoft about them.  They’ll be coded up with something that isn’t C#, doesn’t use .NET and doesn’t need Visual Studio in order to compile it.

The only thing with a Microsoft pedigree with some staying power could be some of the websites and services currently served up at Microsoft’s datacenters via Azure.  But Amazon or Google could kill that by simply lowering their own prices for cloud-based services.

captcha the moment

Robots

According to Newton’s 3rd law of motion, for every action there is an equal and opposite reaction. Out on the Internet that probably means that when forum content spammers apply force (adding content advertisements in order to enhance someone’s SEO) then forum admins must use an equal force to repel them. In this particular case, we’re talking about that captcha challenge that you keep seeing everywhere: prove that you’re not a robot.

recaptcha

Part of the problem is that the assumption here is that we are a robot and that we must prove otherwise to proceed. And I suppose that to some extent, Google is part of the underlying problem.

Search Engine Optimization

SEO is the acronym for what’s behind all this. Google, for example, can be faked into thinking that a particular website is more important than it should be.  Spammers have figured this out of course. Every day of the year, people are being paid to create fake content across the Internet’s collection of forums, blogs, websites, etc.

Behind-the-scenes, websites and forums are being visited nightly by a virtual army of Google’s webcrawlers, those robots which visit all the pages of a website and re-add them into the big indexed database which is the brain of Google, if you will.

The problem, though, is the collection of odd configuration settings and files for which most people have no knowledge. A typical website would have a /robots.txt to tell webcrawlers what files to add to the collection; the webmaster could simply not index this area of the website. A really awesome forum or blog software would know to automatically decorate the visitor-supplied links added in comments with a no-follow argument. What this means is that these spammers/advertisers would be foiled almost overnight since they wouldn’t get any value from this behavior.

But since nobody spends much time thinking about a real fix, most of us—the forum and blog users—are forced to prove our humanity on a daily basis. We are inconvenienced in many ways.

Fast Typist = Spammer

This detection method really annoys me. Back in the ’70s I typed 115 WPM on an Underwood typewriter. Now imagine how fast I type now on a computer keyboard with almost forty years’ of experience.

Underwood

Add to that, my brain works well. I can process problems and develop solutions in a hurry and will on many occasions attempt to provide assistance to others on the Internet, say, on a forum. Unfortunately, I’m often confronted with these anti-spam countermeasures which seemingly think: if you can type more than two posts in five minutes you therefore must be a robot. Seriously, I hate that one.

Denial-of-Service to Everyone

This is the reason behind today’s post. I was out there attempting to ask a question on the Sainsmart forum and after trying multiple browsers realized that I simply wasn’t going to get to ask that question. Their registration mechanism’s captcha doesn’t work. It fails over and over again since their code is wrong. It’s a denial-of-service (DoS) to everyone, robots and humans alike.

More Than One Lookup = Spammer

I tend to use the WHOIS database information a lot since I work in Information Technology. Each domain registrar (like GoDaddy) maintains a database like this of who has registered a particular domain. And yet, I’m sure there are people who create scripts to promiscuously query this information in order to build and sell marketing lists. I would urge people who maintain websites not to be so heavy-handed at robot-detection methods. (In other words, looking up two domains does not a robot make.)

Typical Customer Reaction

In my particular case with respect to Sainsmart’s forum DoS, it feels like Newton’s 2nd law of motion: the acceleration of the customer away from their forum is directly proportional to the force of rejection by their failing captcha mechanism. Okay, even for me that was stretching things a bit but I did want to add another Newton reference so there you go. Seriously, it will take a lot for me to go back to Sainsmart’s forum again. (See, that was a Newton’s 1st law of motion joke. You knew I was a geek, right?)

the inattentive blogger

I thought I’d see just how many bloggers pay little attention to their comments before first approving them. So I searched for a phrase which I saw in my own spam-marked comments and it surprised me how many people are falling for this.  There are at least 35 thousand blogs out there with this single instance of blog-spam.

Google: “My family every time say that I am wasting my time here at net”

MyFamilyEveryTimeSay

In some cases, like the Health and Wellness site that shows up as the first result in Google, it doesn’t result in anything harmful in this case because there is no link-back to the spam destination. It’s a seemingly-useful and yet bland/generic comment which has nothing to do with the blog post where it’s found. Note that it’s followed by another blog-spam attempt a minute later, likely the very same spammer.

NoLinkback

And in many cases, it does result in a harmful link within their blog comments. Working links like this result in promoting a particular website destination within, say, Google’s SEO.

Linkback

If you Google that exact phrase then the culprit who’s truly behind all this blog-spamming is likely one of these companies:  Google: “free online car insurance quotes”.

Specifically, it was this one…

https://www.freewebstore.org/carinsuranceminimizer

…which appears to have come under the scrutiny of the freewebstore.org’s Abuse department and they’ve been taken offline.

NoSoupForYou

Fortunately now, there’s no “there” there. Although tens of thousands of these dead links now litter the blogspace, no one is reaping the benefit. Given that someone just posted this same comment to my own blog (flagged as spam), I must assume that the spammer is possibly still getting paid to do so.

It’s like there’s a battle going on at all times on the interweb and it’s marketing versus I.T. most of the time. Only now, bloggers get to be the I.T. person just to maintain the status quo.

sexism in the codespace

Lately, there’s been a push to convince girls to learn how to be software developers. Inside these initiatives, the individuals who are part of the movement are attempting to empower people to achieve more with their lives. I would suggest that this is the best part of this new idea.

But what if you pulled back the curtain to reveal that there’s a secret business reason behind all of this outside these initiatives? What if big business is the real driving force here? What could they possibly want out of potentially doubling the workforce within the software development space? Obviously they want what they already have in the clothing industry: sweatshops.

“What could they [big business] possibly want out of potentially doubling the workforce within the software development space? Obviously they want what they already have in the clothing industry: sweatshops.”

sweatshopnoun

A factory, especially in the clothing industry, where manual workers are employed at very low wages for long hours and under poor conditions.

Think about it for a moment. Is Google [US$90B/year] such an Andy Griffith—friendly company that it wants to empower young girls to realize their potential… or does it want more profits?

Simple economics at work

The economics of supply and demand suggest that if you double the supply of software developers then the price for software development projects will reasonably be half. If Google can flood the marketplace with coders then the price for development should plummet as a result.

The following photo is a typical Nike factory. You might ask yourself why all of the factory workers are young girls. Well, they work for a fraction of the cost of their male or older counterparts in the workforce. And given what we know about dominance and submissiveness, young girls will more likely just do what you tell them to do without rebelling (against horrible working conditions, for example).

nike

Sexism

Imagine how you’d feel if suddenly boys and men were being “sold” this idea that they should be coding right now at the same rate that young girls are being advertised to. It would seem weird and creepy, actually. A quick Google search will show you just how many of these girls + coding websites, organizations and meetups have recently been spawned.

A great litmus test for sexism, racism or any “-ism” is to just change out the race and gender, for example. If the result sounds wrong then by definition the original was also wrong for the same reasons.

Examples from actual websites

Here, I make those changeouts to highlight what I’m seeing:

http://www.girlswhocode.com => http://www.boyswhocode.com

http://www.girldevelopit.com => http://www.boydevelopit.com

http://www.blackgirlscode.com => http://www.whiteboyscode.com

If the changed-out version sounds politically-incorrect then the original is by definition just as wrong.

Who to trust

So who do you trust at the end of the day? On one side you have a number of friendly-sounding organizations who seem to be working to make things better for girls and women. On the other side you have a collection of corporations who have a habit of maximizing their profits by using unsustainable working conditions.

Feel free to join the software development field regardless of your gender or race. Just don’t be fooled by big business into working in a coding sweatshop, if you will, because you’re desperate for work and because you lack the confidence that some of your co-workers possess.

the story of the us$100m button

Once upon a time…

…in an enchanted forest of Interweb there lived a kindly old oracle by the name of Google. Most days would find him smoking a long pipe and—seated at the end of a very long line—dispensing answers to the person at the head of said line. See, everyone came to Google when they were looking for something they couldn’t find.

One might inquire of Google, “where can a man go to find a good pub around here?” and he’d then magic up a scroll instantly. On the scroll would be a carefully-constructed list of pubs and over in the marginalia would be a bunch of advertisements for pixie dust, faerie potions, &c. As it happened, he paid for his various sundries and such out of the monies which he received from the witches who paid for these advertisements.

Sometimes, though, Google’s hand would cramp up a bit after a long bout of magical writing like that especially on summer days when the sun grew hot and rather than handing the person a scroll he’d just get a twinkle in his eye and ask, “are ye feeling lucky?” and if the person nodded, he’d then just tap his wand on their shoulder and they’d instantly be transported to the top place which would have been on the scroll, if only he’d penned it up as before.

This carried on for some time as things tend to do. But then one day the witches hired a man whose job it was to count all the beans in the King’s silos. They wanted the man to use his advanced forms of math to cypher up the sum total of lost monies that Google was incurring by this practice of not scribing down those advertisements.

So the Royal COB (Counter-of-Beans) then set about to find out how often Google was taking this shortcut (“one soul a’ hundred”) and further, the total loss in pixie dust monies (“I fully a’sure ye it’s nigh less than a hundred-thousand-thousand of the paper scrip they call dollars a month’s sail west o’ here”). Well, the witches were fit to be tied, I’ll tell ye.

“Ye can’ot be doin’ tha’ anymore, Google”, they said. “Ye’re costin’ us out of hovel n home, ye are!”

And so,

…that’s the story of why Google can’ot just send ye on yer way anymore without the fairie dust adverts. The Royal COB and the witches simply won’t let him.

~~~ The End ~~~

ubuntu core on the raspberry pi 3

The fun just never stops here as I begin with a new operating system on a second microSD for my newly-purchased Raspberry Pi 3. This time, it’s Ubuntu Core. This operating system from Ubuntu appears to be a big departure from the Ubuntu server or desktop versions I’m used to. In case you were wondering, I managed to install the new operating system with little trouble. It’s different, though, I’ll be the first to admit it.

Goodbye apt-get, hello snap…

Gone is the usual apt or apt-get interface for fetching code. It’s been replaced completely by snap. Honestly, apt has been the mainstay command for managing Ubuntu (and Linux) for a while now so this is quite the departure from the norm. Snap, in theory, will be a cross-Linux way of deploying code. From my initial research, it appears to be a lot like the Juju Charms for deploying services on a Metal-as-a-Service (MaaS) system. Like Charms, Snaps appear to have an up-stream and down-stream component to them, providers and consumers, if you will.

On the positive side of things, a Snap that you create would work on many different systems. In this way, it works a bit like Java or .net (somewhere, there’s an interpretive layer for the particular hardware but you don’t have to worry about that). Presumably, you mostly just worry about the interface you’re providing and the packaging requirements to create a Snap for submission to the store.

Since Snaps get digitally signed this makes them more like the Apple iTunes store metaphor that Microsoft, Google and everyone else seems to be going with these days. Digitally signing your programs both lowers the risk of rogue/evil code out there but it also puts a middleman into your money stream—someone like Apple will be there to charge the publisher a fee for making money on the store and for signing your developer’s certificate each year. At the moment, Canonical (the maker of Ubuntu) doesn’t charge for a Single-Sign On account but maybe if this becomes popular they will in the future.

Honestly, the entire concept of Snaps appears to be a watered-down clone of Apple’s iTunes distribution model.

Fee Structure for their Store

Not that this information is easily available, I managed to finally find it. From this page on Canonical’s website:

4. Pricing, fees and payment

  1. If you elect to distribute an App without charge, the payment terms of this Agreement will not apply with respect to the free App.

  2. If you set a price for your App we will collect fees from end users that purchase your App at the price you set. Within 30 days of the end of each calendar quarter, we will provide you with a report of the number of copies of each of your Apps sold and the amount of any payment due, which shall be the fee multiplied by the number of copies sold less any applicable taxes and our commission. Our commission is 20% of the total fees charged for the sale of your App, less any applicable taxes.

So they’re charging 20% commission for brokering your Snap. Compare this to Google’s flat 30% commission, Apple’s flat 30% commission plus $100/year developer license and Microsoft’s 30% commission plus $49/year developer license. Note that there are precious few Snaps available. Specifically, only one Snap has a price of $1 at this time and the remaining 547 are free. So until others are charging for their Snaps, don’t expect to make a dime selling yours, in other words. In a free world, nobody will open their wallet nor expect to.

The Future of Snaps

It’s difficult to say whether this entire concept will get traction. Linux has been the free alternative. The people who run Ubuntu, for example, like that aspect about the community. Will these people easily change their stripes and embrace a payment system in the future in which we pay for code? Remember, we’re talking about people who’d rather build from source instead of paying for a binary file. My gut tells me that they’re never going to go for it.

Should I Invest Time in Developing Snaps?

As a developer, having a variety of experience looks good on your résumé so yes, by all means, develop a Snap. And since we developers often communicate our value via our github page I’d suggest that these Snaps be free and open-source if possible.

google stabs again at microsoft

In this entry of the Google/Microsoft war, we see that attempting to visit the Google Fonts API list page results in what is an outright ban of Internet Explorer.  Note that the fonts in practice work just fine in Internet Explorer, it’s just Google doing a denial-of-service for anyone using Microsoft’s browser.

googlefontserror

slaying the giant

If you’re like me—a coder—then you’re pretty particular about which browser you use everyday and any attempts to coerce you into using a different one amounts to an annoyance.

Probably the highest on my list of try-our-browser annoyances is that dished up by Google on a daily basis.

chrome-ie-ad

Google Support indicates that it will stop displaying this ad if you click the small x in the corner but I have not found this to be the case. It continues to display over and over again.

And yet, I think I’ve managed to defeat Google’s advertisement pane and provide the solution here. I describe the technique for Internet Explorer but a similar fix is likely available for other browsers, too.

  1. Create a text file, say, in your Documents folder with a name like MY-IE-Default-Style.css
  2. Add the content indicated below to that file
  3. In Internet Explorer -> Tools -> Internet Options -> General tab -> Accessibility -> User style sheet (check the box) and Browse to find the stylesheet you just created
  4. Exit out of all Internet Explorer windows
  5. Start Internet Explorer and go to google.com, noting that the nagging panel on the right should be gone

MY-IE-Default-Style.css:
.gb_ga {
     display: none;
}

UPDATE:

Looks like Microsoft has updated their own style so it will be necessary to update our own to compensate.

.gb_ha {
display: none;
}
#gbsfw {
display: none;
}

This technique should work to hide offending DIV tags on multiple sites but you’d need to be comfortable reviewing HTML source and using Internet Explorer’s F12 functionality to inspect the offending element. Target the DIV tag that you want to hide and set its CSS style’s DISPLAY attribute to NONE as I’ve done. It helps if you understand CSS coding but this is the basic way to do it—just add more paragraphs of style data to your User style sheet and you should be set.