Disruptive Technology and Cognitive Overheard As Measures of Success

UBot Studio is one of the most unique internet marketing products available because it’s disruptive technology.

Non-programmers can use it to build professional marketing products for themselves or for others, when before they would have had to hire a programmer, a programming team, or even outsourcers to do the job. Those non-programmers can sell that product, which opens up a whole software market to users who before relied on experts to get the job done. It puts software creation into the hands of any consumer, in the way that Adobe Photoshop puts photo manipulation, or WordPress puts website creation, into the hands of anybody with a camera or an internet connection. Or one of our favorites, Kickstarter, which puts the power to fund an idea or product into the hands of anyone who thinks it should succeed.

If you’re ever in doubt about whether or not your own product will succeed, just start to consider whether or not it helps users do something that before was out of their reach entirely — and if it does so in a way that competes with an already-existing market. If so, it’s disruptive technology, and it just might be The Next Big Thing.

A few more disruptive technologies to help get your creative juices flowing include Netflix, Youtube, Mp3s, and 3D Printers, all of which compete with an existing market by putting power into the hands of the consumer (and taking power out of the hands of the music industry/publishers, large manufacturing firms, and the big television/movie houses.)

But being an innovative product in your market isn’t the only important part of disruption. Disruptive technology must not only be innovative, it must be intuitive and easy-to-use, or else the amazing idea will never get off the ground.

This is because it can be quite difficult to explain concepts that are disruptive precisely because they are out of the ordinary. For instance, thinking of UBot Studio like the average SEO software, which simply puts the power of data (like SEOMoz), or of backlinking (like SeNuke), into the hands of whoever can afford it, is missing a lot of its potential. But explaining that you can use it to create your own SEO products, or marketing or automation tools, is a little confusing.

The solution is in design. An innovative product must be extremely simple to use or it will never catch on. In a recent blog post about “cognitive overhead,” the co-founder of the company Bump, which makes the popular data-sharing app for smartphones, writes about what makes a concept easy to understand: “how many logical connections or jumps your brain has to make in order to understand or contextualize the thing you’re looking at.”

I’d argue that this is the most important part of disruptive technology after how disruptive it is. The more disruptive it is, the less cognitive overhead it needs to use:

Cognitive Overhead Required Versus Disruptive Quantity

Every year for the past four years we’ve been the only company in the internet marketing field that’s working to help grow the software market by allowing anyone to create cool products quickly and easily (we were left off MIT’s 50 Disruptive Companies list again this year…one day we’ll be on it!).

This is partly because the software’s cognitive overhead is significant. But we’re currently working on soon-to-be-released new features to make UBot Studio even simpler to use. You’ll be hearing more about them soon. Meanwhile, as you keep looking to create the next big disruptive innovation, remember to keep lowering your products’ cognitive overhead proportionally. Do both those things and I guarantee you’ll end up with something extraordinary.

 

– Seth

A Customer Reviews Our Latest Plugin – The New Table Commands

Today’s guest post is by a UBot user who has been willing to help out new customers for years, and who is a fantastic bot builder in his own right: Buddy. Buddy helped us with the initial ideas for a recent update to UBot Studio, an expansion of our Table Commands that lets you do far more interesting data manipulation, which is great for working with large amounts of data and complex scraping.

Buddy’s teaches in-depth UBot lessons. His website is here.

Click here for a little bot Buddy made to help you see the commands he’s describing: Add table to table.ubot

—————————————

Let’s Talk About Tables!

 

I was thrilled when the “scrape table” node was introduced way back in the early days of UBot version 4.

But it did not take long to realize that more was needed. So being the ever diligent UBotter that I am, I started a thread on the forum and listed several other Table related nodes that I thought might be useful.

After some time and patience the nodes have been added.

So here is the breakdown (since I was  requesting these and I will be sharing some code here for you).

The “scrape table” node is quite powerful by itself. Once you have it, scraping the data it is quite the workhorse.

But if you have a website where the table is spread out over several web pages it then becomes a coding pain to transfer that data to a Master Table:

add table to table

The “add table to table” node simplifies this process.

By using the “scrape table” and the “add table to table” node together means the only coding that will be necessary will be refreshing the website’s page for clicking a Next button.

In my bot, you will see my website get refreshed 5 times and the data will be scraped and then added to my Master Table.

Clean and neat. Also note, that I Clear the work table to keep memory clean

———————————————

delete from table

This is a very simple and clean node to use.
In some of the Tables that I have had to scrape. I have encountered some tables that had excessive data in either Rows or Columns that I just dd not need.

This node “Delete from Table” now gives us the ability to delete entire rows or columns depending on what our pruning needs are.

Understand, that you will delete one row or one column at a time. To do more you would have to add some logic to properly target which ones you wanted to delete. I like that part; just one at a time.

I also like the fact that it is zero-based indexing so if I see in the debugging window that I have two columns to delete then I will target the higher number say “5” and then I will target “3”. Easy and simple. I like this one.

———————————————

insert into table

Next up is the “Insert into Table” node.

Here is how I use this.

Maybe you have seen the CSV files that Google produces from the Adwords Keyword Tool but the headers that are produced might not be to your liking.

After all, we want out customer to understand what they are looking at.

So I generally delete the header row and then I insert a new one and then I use the “Set Table Cell” node to add my column header titles.

Yes, I could have not used the “Insert into Table” node but then I would not have gotten to use it. LOL

My point in this example is IF you have a table where by you needed to split out you culd add column headers at specific data points so that you could prune off the sections of the table for other independent tables.

———————————————

sort table

Now comes the “Sort Table” node.

Remember, before this we had nothing that did this.

Now we can sort! Yipee!

Granted, it is Ascending so the “A”s and the “0”s will be at the top when it is done. Hopefully, reversing that will be added at some point if many people want it.

But for now I am happy with this as I only do ascending sorts.

———————————————

$table search

Now we can Search a Table.

You will find this node in the Parameters section under Data Functions.

Here’s the trick with this command. If you know the exact spelling of what you are searching for then this function will return the Index of the Row or Column (depending on what you selected).

So if you have a rather large table then you could search for a specific name ad process just that record.

Or maybe, you need to delete that row. Using this node along with “Delete from Table” you now have two commands where as in the prior versions you wuld have to code a lot of logic just to accomplish the same feat.

This will save a lot of time!

———————————————

$list from table

I saved the best for last.

This has got to be my favorite node. I no longer have to setup a loop for grabbing a column of table data one at a time to load into a List.

This node does it all in one shot and it eliminates considerable coding.

I can now build a list quickly either by Column or Row but I can tell you now that the Column will be used the most.

And the REALLY cool thing is that this node can be dropped right into a “add list to list” node and my list wil be created that fast.

So to recap, if I have 5 thumbs they would all be up for these newest enhancements to the Table commands.

If you have been frustrated with processing tables then there is a table node in here that can surely help you. Plus, it will save you a ton of coding time.
Thanks UBot Devs! Great Job!

– Buddy

Get Rich…Slowly?

Or, How to Build a Successful Service-Based Business with UBot Studio

 

Even though some of our customers may have hit it big with a well-marketed launch and a high-priced, valuable product, there are lots of ways to make money in this world – and UBot Studio can do a lot more than just one-off products. One of the more “secret” methods of using UBot Studio is to convert your app into a service (or even a Software as a Service (Saas) tool) and draw in customers and recurring payments.

Here’s how:

Software as a Service is  “software that is owned, delivered and managed remotely by one or more providers.” Basically, instead of selling a tool that your customers download, they have access to it remotely. With UBot Studio, there are several options for this.

First, remember that currently UBot Studio only compiles executable files. That means you can’t put the software you build inside UBot Studio onto a server and have someone log into it through a web panel (pretty common for SaaS) without some PHP work on your end that translates what they do on the web site into an action on a Windows Server. Unless, of course, what they are logging into is actually a front-end for the server itself, ie through a Remote Desktop or Virtual Server – and that’s what I’d recommend.

Option #1: Sell access to your VPS, and stock it with your app(s). Your clients pay for weekly or monthly access to login and run the apps  as often as they want. 

Cons: 

  1. Setting up access takes time. Finding a box to host your apps on and creating access accounts for each new customer, along with the regular demands of a recurring payment, means extra work on your part on the front end.
  2. If there’s a bug, your customer will have to alert you and you may have to try to reproduce it on your end – which could be difficult, and could mean lost sales.
  3. Updating your app isn’t as easy if it’s hosted on a box that your customers are logged onto often. This may require extra communication.
  4. In some ways, this option is a security risk. The tool is sort of out of your hands (I know I wouldn’t think of it, but how do you know extra users aren’t sharing access?). And, some nosy/greedy customers may try really hard to send your app and all its config files to themselves, which means you have to really lock down that server. Which, again, is extra work. Also, if your customers are doing anything at all questionable on your VPS, you’re going to be the one that gets the nasty letter from the VPS host, or worse still, has to deal with unhappy customers when access is turned off.

Pros: 

  1. You don’t have to worry about running the service – your customers do that for you. If you’ve built a rock-solid app or bot, then once you hand out access info to your customers, you can basically just step away.
  2. The customers have unrestricted access — which, depending on the privacy requirements of what they are doing, might make them happy. Some other UBot-as-SaaS models require you to ask for customer information, which in some cases, may cost you sales.
  3. This method doesn’t require you to learn anything extra except how to administer a VPS. No PHP, for example.
  4. You can sell simple access to multiple apps (some of which can be offered as “Bonuses”) and help increase the cost of your service.

 

Quick story: Once, years ago, Seth and I were sharing a VPS for work — hosting some websites or something — and my internet at home was slow. I REALLY wanted to watch a lecture series on something like Best Books in the English Language. (We’re definitely self-learning lecture geeks at UBot Studio – I think Seth has an honorary degree from The Teaching Company.) Anyway, I went and grabbed a torrent of the file, downloaded it as quickly as I could, and deleted the evidence– all on the VPS.

Two days later, work stopped completely because our access to the VPS got frozen. Seth cleared it up by letting the hosting company know that he was never letting me have access to the VPS again. I still have no idea how to connect to the VPS.

Don’t do stupid stuff on your VPS, folks. And if you want to do some self-education….there are lots of free options

Free UC Berkeley Software Engineering / Software as a Service Course Online

(http://webcast.berkeley.edu/playlist#c,s,All,93A1C8DCB4C64AB7)

On Sale Great Courses Lectures

 

 

Option 2: Customers pay you to run the service for them on your own machine or VPS.

This is the simplest option, but it’s also the one that requires your customers to have the most confidence in you.  They have to trust that you’re doing what you say, sometimes with a service that doesn’t produce immediate results. There are a couple of ways to overcome this, though–for instance, if your service produces results, like a scraping service might, then there’s nothing to worry about. They pay, you run the app that gets the data, you give them the results. But if that’s not the way the service is set up, then you will want to add automatic reporting data (i.e., number of URLS visited, etc), which isn’t difficult in UBot Studio. Just make sure all the variables and URLs are added to a table and saved to an excel file every loop, and you’ll be fine.

Cons: 

  1. Overcoming confidence and trust issues with your customers will require extra work. Since they can’t see what’s happening, it might cost you sales early on, until you get testimonials and a strong reputation.
  2. It will take you more time. Simply put, even if you have to push just a single button to get the app going, that’s extra work. So my advice is to ensure that your app requires very little upkeep, runs automatically, and if possible, is running on its own VPS. I’d even suggest you outsource the app-running itself to a service like freelancer or a VA if you can find one.

Pros:

  1. Simplicity for your customer: When there are bugs, you encounter them. When something doesn’t work right, you fix it on your end. Your customer never has to know about any issues – they pay a fee, and you produce a result. This method is ideal if you’re running an SEO-service, for example, because generally customers don’t need to know the “process” as much as the results.
  2. Places to sell these sorts of services abound, as do options for ideas. Check Warriorforum and Fiverr.com for anything that sounds like it can be automated entirely in a browser, build a bot, and automate the process. Think numbers when you’re trying to sell the service – (“I will give you x # of things for $”.) If you think the folks already making a killing on Fiverr aren’t already doing that, you’re wrong. It might not seem like much money, but when all you have to do is push a single button–$5 a pop isn’t too bad. Remember, with SaaS, slow and steady wins the race. $5 today, $25 tomorrow, $500 next week.
  3. Expanding is easy. If you get to be too busy to run the apps, just find a friend or a VA and have them do it for you.

 

Take a break. Peruse a bit of SaaS data, infographstyle

 

Option 3: Build a web-interface that communicates directly with your bot. 

This is the only true SaaS model, and potentially the cleanest, but it also requires a bit more work.

Pros: 

  1. Your customers are used to this style of SaaS, populated by sites like SalesForce, Github, Basecamp, etc, and are much more likely to get on board. The directions can be simple (login and enter your site information) and if you’re a good designer, can look beautiful.
  2. The entire process can be automated, for everyone. Your customer logs in, enters or checks their info, and then logs out. Your service runs either on a schedule (daily scheduled task that pulls data from CSV or MySQL), or upon completion of your customer’s purchase.

Cons:

  1. This is by far the most complicated option to set up on the front-end. It will require either additional web programming work (PHP) or MySQL or both.
  2. There are a lot of moving parts, and because of that, there will be more broken pieces. Even though it’s entirely automated, you’ll definitely need to build in a lot of features to make sure that when the communication between site and server, or server and bot, or bot and data, fails, you know about it.

 

If you follow any of these models, you can absolutely build a successful service-based business with UBot Studio within a couple of weeks. Over time, a great service can be perfected and automated, can grow, and can give you a large list of new customers to whom you can offer bigger, better services. It’s not as exciting as a $500 product, but there’s a lot more potential in a $29 /mo service–lower cost means lower bar for entry means far more sales. You can even offer a discount for month one, or a promo to the first 10 customers, without taking much of a hit. Or, sign users up for a yearly plan at a discounted rate!

Don’t get caught up in the “I built a bot and now no one’s buying it” dark ages. A lot of people are buying SaaS now, every month, instead of one off sales – it’s the “new thing,” and it’s only growing. And you can take advantage of it with just a little work!

 

– Jason

Cool Games, or How to Learn to Program (If You Aren’t a Programmer and Don’t Want to Be)

I remember the first program I ever made. Well technically I didn’t make it, I just edited it. It was called “Gorillas,” and it was a game made for kids to learn how to use angles and geometry. I think it came with MS-DOS. Basically, you controlled a monkey who threw bananas over buildings to try to hit targets.

Actually now that I think of it, the game was basically Angry Birds, only with gorillas. (But the creator of Angry Birds is probably sitting somewhere on a pile of gold bars while the creator of Gorillas is peeling a pile of bananas, one by one, and crying—a lesson on marketing and hitting the right audience with the right product at the right time. Oh, and that giving away something for free only works if you have an upsell.)

Anyway, the source code for the game was in QBasic and was editable. So I opened it up and quickly saw how you could change what level you started at. I changed it and played some hard levels for a while, then went back to the code. I began to see other variables I could edit: the shape of buildings and the location of the gorillas. Suddenly it didn’t matter what level I started at anymore. I was god. I was putting monkeys in the sky and building crazy skyscrapers that broke out of the screen. And after a few minutes I realized it was more fun to play god than to play the game.

That’s what programming is, even when you’re just starting out: it’s playing god. You can tell the computer what to do and then watch it happen just by pushing a button. You can create complex interactions and solve problems. You can tell people “look at this,” and they will get excited and want to know how you did it.

Ed, who was a big part of our early Dev Team, started programming in 7th grade when he took a class in javascript. He told me,

That’s where i saw what programming was, that I could write a loop to put the numbers 1-1000 on a webpage…and I realized how useful programming is since it would take forever to type them all out. I still remember that moment.

Later, in an Intro to Computer Science class, Ed remembers having a similar feeling. The whole class was struggling with a problem, and then he solved it, and “suddenly everything was easy.”

That’s the really cool thing about programming. The bad part is actually writing code. Sitting down and figuring out syntax and what command to use and how to use it, ugh! It can take hours or days just to learn how to compile a working app sometimes. The difference between Ed and I is that Ed loved programming so much that he kept doing it. He worked on PHP sites and Flash games. He built a several puzzle games and action games that are still online. He eventually started freelance work and was building bots for people while he was in high school.

Avalanche!

Ed’s Tilt Puzzle

 

So, when you use UBot Studio, you’ll notice that we’ve made it as simple to program as possible, keeping all those fun elements that let you play god to the computer, while getting rid of as many of those annoying, complex commands, features, and syntax elements as we can. You drop elements of the page into your script, instead of combing through source code to figure out commands. Just drag a button over and UBot will ask if you want to click it. Pull in a drop-down item and UBot will ask if you want to choose one of the items or a random item.

We’ve used our years of programming and using the web to create an interface that just makes sense, and we also have a complete wiki and video tutorials for getting started, so you’re never in the dark. And we also include hundreds of samples of pre-written code in our Bot Bank, so you can look at what other people have done and edit it, learning how to program just like I did. I understand that not everyone wants to be a programmer – and that’s perfectly fine. With UBot Studio, you don’t need to be. You can create software and automation tools, enjoy the process of building them, and sell them the same day you download UBot.

Ed has this advice for new users:

If you’re really interested then just start making stuff, even if you dont know how to make something, think of something you want to make and learn everything you need to know to make it.

Try it out –and you can be the one sitting on a pile of cash (and not sitting on a pile of bananas). You can relive my childhood by playing Gorillas here at Kongregate, and Ed’s by playing his version of Tetris here.

– Jason

3 Ways to Stay Strong When People Attack You or Your Work

The population of the world is rising, rising, rising, and the global number of internet users means every day there is a new person looking to pay money for a product or a service that you create. This is the great thing about building software – there is really a never-ending stream of potential customers to use your product.

Check out this infographic from Cisco about the number of users and data the internet will have whizzing through it by 2015. The growth is explosive:

In 2016, global IP traffic will reach 1.3 zettabytes per year or 110.3 exabytes per month. Yeah, they’re real words.

Of course, you’re going to get your haters. No matter what field you work in, for every 10 people who like what you do, you’ll have one or two critical customers (or friends, enemies). You’ll get the passive-aggressive customer (“It’s pretty good…but it could be better”), the trolling customer (“THIS SOFTWARE NEVER DOES WHAT I WANT”), and the openly hostile customer (“I uploaded a cracked version of your stuff to sharing-site.com so naow it’s free everyone enjoy”). You’ll get friends who tell you that what you’re doing–maybe starting out in programming, or running your own business, maybe internet marketing or anything else people don’t understand–isn’t a real career, especially when you’re just starting out. And if you’re able to finally quit your 9-5, plenty of people will claim that because you “work from home” what you do can’t be a real job. Here’s a graph I made based on Cisco’s data:

Critics and Haters graph

Note my addition of the frequently under-estimated population of “haters” to Cisco’s original data

Software and internet marketing is a great business to enter right now, and the growing userbase is just one of those reasons. Here are some tips that I’ve learned over the years in dealing with the people you’ll run into who will criticize but mean well, and also the people who don’t mean well and are legitimately trying to keep you from living your dreams.

1) Remember that criticism is intended to help

When someone finds a flaw in your product and tells you, they’re doing you a favor. Either they’re using it wrong and now you know that there’s a potential disconnect in your instructions, or it actually isn’t working right. You want this information. It means that you can improve your product or your documentation. 

There are basically three ways to get this information easily: letting customers contact you directly (when you’re starting out), creating a forum for your users (as you’re growing), and setting up a support system (when you can afford to do so). We don’t do much support via email, because we require very specific info about what users are doing to best solve their problem. But we make very good use of our forum and our support system to help customers with issues and to let customers work together to solve problems as well. It’s important that you give customers a way to contact you, because if you don’t, well…

We’ve all been there, and it sucks.

We love our customers. They are the reason we have such a successful product and their support and advice and yes, criticism, over the years has helped us continue to make that product better to reach more people and help a growing number of users succeed in marketing, SEO, software sales, and internet marketing. We actively seek feature requests and bug reports and try to help directly via specific channels, and I recommend you do the same. 

Some advice we take seriously, from Seth Godin: “The only purpose of ‘customer service’ is to change feelings. Not the facts, but the way your customer feels. The facts might be the price, or a return, or how long someone had to wait for service. Sometimes changing the facts is a shortcut to changing feelings, but not always, and changing the facts alone is not always sufficient anyway.”

Most people don’t like making bug reports. They don’t like complaining. So remember, if the customer is having an issue, and they’re coming to you or to the internet or to other users to let it be known, then it must be seriously annoying to them. Whatever the problem is, the least you can do is listen, and know that they aren’t trying to hurt you.

2) Unless they are trying to hurt you – then, all bets are off.

We recently dealt with a very serious issue: we discovered that a cracker was working to hurt both our software and some software that our customers made by breaking security. It’s one thing to be criticized; I can always take that in stride. But malicious attacks are different.

No software is completely secure, just like no product is flawless. So we expected at some point that someone might do something like this, and we had a plan already laid out. I first spoke directly with the person and had a reasonable conversation. Don’t do this, I said. It’s hard to give a good reason to convince someone who’s trying to rip you off not to do it, especially in the piracy/cracking world. Lots of people want things for free, and are willing to put in dozens of hours to steal something, which they could be spending creating something productive that actually makes them money. So I explained that we are a small company, neither our customers nor we are “The Man” that needs taken down a notch, and if the malicious activity is stopped, then we’ll let it go.

Then, the malicious activity wasn’t stopped. So we took care of it legally.

The point is: Never let the situation get beyond your control. Customer service and good public relations is important, but if someone is attacking you either with lies or actions, you need to act quickly to stop it. We did, and we will again if necessary.

3) Always remember: you have to live with yourself at the end of the day

Zappos is well known for amazing customer service. They’re known to do just about anything. Here’s just one story:

1 - Several years ago the CEO of Zappos, Tony Hsieh, was meeting with some vendors from Skechers. One of the vendors had a craving for a late night pizza and suggested they should call Zappos customer service for help. The group laughed. The CEO of Zappos didn’t. He thought calling Zappos customer service to ask about pizza was a great idea. Tony Hsieh was so confident in his company’s customer service (a shoe company, remember) that he told the vendor to make the call and ask about pizza.
The vendor dialed the Zappos customer service line. The Zappos rep briefly and politely made sure the caller knew he was calling Zappos, then said, ‘of course, I can help you, give me just a moment.’
After a very brief pause, the rep politely provided a list of five nearby pizza parlors that were still open. She passed along her personal recommendation in a very professional manner, offered to read the information over the phone, text it, or email it—whichever was best for the caller.
As you can imagine, everyone at the table was stunned. Everyone but Tony Hsieh."

(That’s from the Contact Point library of useful resources)

If it would make you sleep better at night to provide that level of customer service, then you probably should. Of course, you also might not sleep because you’re too busy. The point is to properly divide up your criticisms, your customer’s issues, your complaints, and everything that’s sent to you that could ruin your day, into two piles:

1) Valid criticism

2) Everyone else

Once you do that, you’ll have no trouble.

 

– Seth