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

The Remote Working Revolution and the Secret That No One Will Tell You

This isn’t to gloat, but this was the first cup of coffee I had yesterday morning:

 

volcan 022 (Large)

The view from La Carita Del Cafe

 

In the background you can see the mountains of southwest Costa Rica, Jaco Beach, and beyond that in the distance, the Pacific.

I’d love for every one of our customers to have the amazing opportunity to live or work from wherever they want, and that’s one of the big goals we had in creating UBot Studio – to help you build your own business and let it run on autopilot. It’s not an easy thing to do, but it’s possible. And if you already own a copy of UBot Studio, then you are at least part of the way there. You understand the value of automation and of being able to quickly build your own products, sell your services, or automate your business.

But there’s probably just one step missing – and it ISN’T that you’re tied down to a job or you don’t have enough money.

The step is convincing yourself that you can do it.

Yesterday I was talking with a friend I made here named Danny while we drove in a rented Toyota down the coast, coming back from Volcan Poas, a beautiful, mostly inactive volcano whose crater is filled with bright blue water.

It was too cloudy to see inside so the guide didn't make us pay - the people in this country are incredibly kind. Instead we bought a pound of the best strawberries I've ever tasted for $2.25.

It was too cloudy to see inside the Volcano, so the guide didn’t make us pay – the people in this country are incredibly kind. Instead we bought a pound of the best strawberries I’ve ever tasted for $2.25.

I told Danny that I didn’t really know anyone other than me who could take multi-week vacations: “Even I’ve been working the whole time I’ve been here,” I told him.

“Are your friends too busy because they have kids?” he asked. “And are you so important you literally can’t take more than a week off at a time?”

See, Danny runs a consulting business and has just a few major clients. He works long hours and travels all over the US, helping companies organize projects. But he is taking a month off work to practice surfing and Spanish while in Costa Rica. That’s how I met him – at the surfing school.

“No,” I said. “My friends’just don’t want to leave for that long. And I like to work to keep from falling behind. And anyway, you aren’t really supposed to take two weeks off in a row, most places frown on it.”

“Well, if someone has time off, it’s not legal to control when it’s taken and for how long in a row,” he reminded me.  “And if you choose to keep up on work while you’re here, that’s your choice. That’s what you decided to do, but it’s not what you have to do.”

“Yeah, I know, I mean, it’s just that their jobs are really important to them. And I don’t want to fall behind….”

And then I started making excuses for everyone out there who hasn’t yet realized it’s up to them to say, I truly want to live my life a certain way.

After I was done trying to explain that Yes, technically everyone could take a long vacation to Costa Rica if they wanted to, maybe, but it was discouraged to be gone that long, and they would possibly get passed over in the future for a promotion, or maybe they were just starting a new job and needed to look good to management, or maybe they were afraid to rock the boat, or whatever the excuses are, Danny corrected me.

We drove around a little town in Costa Rica called San Mateo, dodging dogs and bicyclists and fruit stands, and Danny drove and somehow also managed to remind me that we choose the way we work

We drove around a little town in Costa Rica called San Mateo, dodging dogs and bicyclists and fruit stands, and Danny drove and somehow also managed to remind me that “we choose the way we work.”

“I know everyone feels like they are the most important person in their job. But everyone is just brainwashed,” he said. “Maybe you don’t want to fall behind, or maybe they don’t, but that’s a choice – don’t you work for an automation company, anyway?”

It stung a little, but I realized that he was right. Even I sometimes forget that the real secret is just convincing yourself that you can do it. Life has a way of putting up walls, locking the door, imprisoning you, and it’s really not your fault. It’s just the way jobs are. And if you’re a hard worker, it’s the way YOU probably are. And sometimes it’s easy to forget that those walls are completely imaginary. But even if they’re imaginary, only you can remove them. 

“It’s not the first thing I say in an interview,” Danny told me, “but I need an employer or a client to know that if I have vacation time, I’m not going to trade it in for a bonus, I’m not going to accrue it and take a day off every week for a month. I’m going to take a vacation, and go do something amazing.”

And I realized that even while I sat in Costa Rica, thinking about the emails I needed to send that night, I had forgotten how much of living the life you really want is about mindset.

Don’t forget that. As I write more about living remotely, and how to do it and what it’s like, the most important lesson I can impart is the one that I’m still learning: You make the choices that keep you where you are, doing what you’re doing. No one else. So if you love the business you have or the work you do or where you live, fantastic. You did it. But if you don’t – you’re the only one responsible for keeping you there.

Kudos to my friend Danny (foreground) for reminding me how much of what we do is our own choice.

Kudos to my friend Danny (on the right) for reminding me that we choose how we work!