Jump to content
UBot Underground

Is everyone Still Using Ubot 4?


Recommended Posts

Giganut posted the skype group message by seth:
 

 

Hey UBot friends, how ya'll doing
[9:08:14 PM] Jason Kelley: who'
s around
[9:10:25 PM] seth.turin: I am
[9:10:32 PM] Jason Kelley: (heart)
[9:10:33 PM] *** seth.turin added Miriam MB ***
[9:11:02 PM] seth.turin: and I believe Jess will be joining us shortly
[9:11:34 PM] Jason Kelley: thats a ubot quarum
[9:11:36 PM] Jason Kelley: get it
[9:11:40 PM] Jason Kelley: quar because 4
[9:12:20 PM | Edited 9:12:26 PM] seth.turin: I thought I'd take a minute to explain how the include command works, both to my team and to the community
[9:12:44 PM] Jason Kelley: when did this feature come out
[9:12:54 PM] seth.turin: 5.5.6
[9:12:58 PM] Jason Kelley: i know people had asked about it a while back and hoped it would be released
[9:12:59 PM] Jason Kelley: nice
[9:13:02 PM] seth.turin: which was...last week?
[9:13:14 PM] Jason Kelley: i just booted up 5.5.6 for the first time
[9:13:43 PM] seth.turin: yeah it was actually in UBot 3.5, but got cut from ubot 4
[9:14:06 PM] seth.turin: it'
s now back and ready for action
[9:14:13 PM] Jason Kelley: awesome
[9:14:34 PM] Jason Kelley: my impression from previous conversations about include is that it's a way to organize code and make it more reusable, which helps because people have some really long code in some of their bots
[9:14:38 PM] Jason Kelley: am i close
[9:15:22 PM] seth.turin: yes, you are
[9:15:39 PM] seth.turin: I'
m going to explain it through the art of extended analogy
[9:16:22 PM] seth.turin: imagine that you're the ceo of a new car manufacturing startup
[9:16:26 PM] seth.turin: we'
ll call it
[9:16:35 PM] seth.turin: mistubotsi
[9:16:51 PM] Jason Kelley: (tmi)
[9:17:41 PM] seth.turin: at first, the entire company is run by you and your trusty robot friend, hal
[9:18:58 PM] seth.turin: you have to teach hal how to do everything in the company, from manufacturing the cars, to sales and marketing, to customer service, etc
[9:19:13 PM] jessica_nowell1: I like where this is going already, hey all!
[9:19:37 PM] seth.turin: at first, this is fine, because there are only a few orders at a time, and hal's job is pretty simple
[9:20:02 PM] seth.turin: but soon, business picks up, and hal finds himself doing more and more different kinds of jobs
[9:20:18 PM] seth.turin: soon, hal'
s bot brain is overloaded and frazzled
[9:20:25 PM] seth.turin: hal gets angry
[9:20:45 PM] seth.turin: one day he locks you in a crash test car
[9:20:56 PM] seth.turin: you're all like "open the car door hal!"
[9:21:14 PM | Edited 9:22:44 PM] seth.turin: and he'
s like "I'm afraid I can't to that, dave"
[9:22:15 PM] seth.turin: the moral of the story is, you want to keep your bots happy by keeping them small, focused, and organized
[9:23:03 PM] seth.turin: include is a means of doing this
[9:23:48 PM] Jason Kelley: so i have a bunch of bots that use a kind of complex series of change proxy commands
[9:24:04 PM] Jason Kelley: in that instance i'd build that as a separate bot basically and use the include
[9:24:06 PM] Jason Kelley: ?
[9:26:25 PM] seth.turin: you'
re pressing on another benefit of include which I'll return to a little later
[9:26:34 PM | Edited 9:26:42 PM] seth.turin: but the short answer is yes
[9:27:58 PM] seth.turin: so to keep your bots happy, keep them small and focus on a single job (or a single website)
[9:28:43 PM] seth.turin: happy bots have the benefit of being easy to maintain, less error prone, more stable, easy to change, and easy to understand
[9:28:45 PM | Edited 9:29:15 PM] web.ing: the include do pretty much the same what the local bot bank does ... but it actualy loads the defines when requested from the .ubot file !?... isn'
t the whole process the same in both features ?
[9:29:31 PM] seth.turin: no, it works a little different, and I'll get to that too
[9:29:56 PM] seth.turin: unhappy bots are bots that are big and bloated, unorganized, and try to do too many things
[9:31:26 PM] seth.turin: they suffer from breaking often, being hard to debug, being hard to maintain, and possibly becoming homocidal
[9:32:15 PM] seth.turin: when a bot starts to become too large, break it into separate, focused bots, and include those into one central, manager bot
[9:33:30 PM] seth.turin: by doing this, you greatly increase your capacity to make large, complex bot ecosystems, that will be far more productive than one bloated unhappy bot
[9:34:16 PM] manny2513: is simple build your bot in modules
[9:34:23 PM] manny2513: like if it has account creation
[9:34:25 PM] manny2513: and posting
[9:34:29 PM] jessica_nowell1: So all the work of a big bot with more security of it working?
[9:34:31 PM] manny2513: one bot for account creation
[9:34:33 PM] manny2513: other for posting
[9:34:42 PM] manny2513: managed both in a central bot for the UIl
[9:35:09 PM] seth.turin: exactly!
[9:35:30 PM] seth.turin: granted, if all those are small enough, you can just separate them into scripts
[9:36:00 PM] Jason Kelley: so your point about big bots -  that'
s what people who experience bugs and are selling them are building, so the idea is like, if you want to build a big bot, you can do that - just use include to break it into a bunch of separate pieces that you know all work
[9:36:19 PM] Jason Kelley: and then if you see a bug you know where it is and you can fix it (like normal programmers do i'd imagine)
[9:36:23 PM] seth.turin: but if account creation became a big operation, it makes sense to put it  in a separate bot
[9:36:52 PM] manny2513: exactly is suitable just for big bots
[9:36:59 PM] manny2513: to make the more managable
[9:37:07 PM] manny2513: and easy to debug and operate
[9:37:22 PM] seth.turin: yes!
[9:37:42 PM] seth.turin: does that make sense to everyone? should we move on?
[9:37:45 PM] manny2513: how is it used?
[9:37:52 PM] manny2513: you call the include
[9:38:02 PM] manny2513: adn automaticly the defines are available?
[9:38:27 PM] Dave Peachey: but you are only including the defines from the bot right not the whole bot???
[9:39:01 PM] seth.turin: yes. I'
ll put some screencasts together in a minute, but first let me answer a couple questions that were raised
[9:39:09 PM] manny2513: ok
[9:39:48 PM] seth.turin: dave, the bot is technically minimally loaded in full, with all its plugins and its own included bots
[9:40:12 PM] seth.turin: but you can only access it through defined commands and functions
[9:40:29 PM] Dave Peachey: is there a limt to how many you can include???
[9:40:38 PM] Dave Peachey: in the real world i mean
[9:41:16 PM] seth.turin: in computer science, this idea is called "encapsulation". it keeps the different sections of a bot clean and clutter free
[9:41:33 PM | Edited 9:41:38 PM] seth.turin: it's only limited by your machine's hardware
[9:42:08 PM] seth.turin: macster, to answer your question, the private bot bank is a little more limited than included bots
[9:42:54 PM] seth.turin: in order of customizability, it goes
plugins
included bots

private bot bank
custom commands

[9:43:41 PM] seth.turin: jason, I want to address your point earlier
[9:43:58 PM] Jason Kelley: good
[9:44:09 PM] seth.turin: you said you had a complex proxy switch process that you use in a bunch of bots
[9:44:33 PM] seth.turin: and you probably copy pasta from one into the next
[9:45:41 PM] seth.turin: the problem copy pasta is that if, for instance, the server where you get your proxies from changes, you now have to go update every single bot separately
[9:46:03 PM] Jason Kelley: yes
[9:46:09 PM] Jason Kelley: or if i decide to change how it works in one bot
[9:46:13 PM] Jason Kelley: and not in a bunch of others
[9:47:31 PM] seth.turin: instead, you could make a separate bot that just focuses on proxy switching, and include it into all the bots like you mentioned. if the server changes, you just change the one bot and the change is applied to all the bots that include it
[9:48:24 PM] Jason Kelley: ok
[9:49:16 PM] manny2513: in a compiled bot that uses the include do we need to have the .ubot in the file folder for comercialb bots?
[9:49:36 PM] manny2513: or it works like the plugins do?
[9:49:52 PM] Dave Peachey: yeah manny i asked about security to
[9:50:14 PM] seth turin: at the moment, you need to have it in the same folder, or specify that path to it
[9:50:55 PM] manny2513: it will be nice if they could be converted into dll
[9:50:57 PM] manny2513: or something
[9:51:00 PM] seth turin: what I'd like to do is have it saved into the .ubot file
[9:51:03 PM] manny2513: to not give away the source
[9:51:25 PM] Jason Kelley: what do you mean give away the source manny?
[9:51:30 PM] manny2513: well
[9:51:36 PM] manny2513: if I compile a comercial bot
[9:51:43 PM] manny2513: that uses the include
[9:51:52 PM] manny2513: I need to give away the include ubot file
[9:52:03 PM] manny2513: for the compile bot to work on the customer machine
[9:52:10 PM] seth turin: yes, I understand the concern. it'
s an issue we'll be giving some thought to. in the mean time, I believe there are some obfuscators that might be helpful
[9:52:27 PM] manny2513: cool
[9:52:31 PM] manny2513: one step at the time
[9:52:38 PM] manny2513: first is to get it in and get it working
[9:52:46 PM] seth turin: exactly
[9:52:47 PM] manny2513: then move into how to keep the sources secure
[9:53:09 PM] seth turin: ok so let'
s talk about how to actually use the thing
[9:53:26 PM] seth turin: I'm gonna take just a minute and make some bots and screencasts
[10:49:39 PM] tompots: The include command will diffidently be worth its weight in gold, if I understand you correctly. For instance I use a very special bot recipe for all my bots, and it works on almost any site I make bots for. At current, I'
m using the same recipe for all my bots functions, and just making new tabs for the sets of define commands for each of those functions. So with the includes command I will be-able to take the code out of those tabs and make them into there own .ubot file and call them from one central bot instead of having a bot with 20 tabs, I can have one bot with one tab for the UI and 20 .ubot files being called when the user select to run a certain function of the bot. Correct?
[10:54:03 PM] seth turin: yes, you are exactly correct
[10:55:26 PM | Edited 10:56:18 PM] tompots: That is going to make Ubot very very powerful. With limitless possibilities now.
[10:56:13 PM] seth turin: (beer)
[10:58:37 PM] tompots: like you said one step at a time, but having the ability to convert to .dll will definitely be a must in the future, or having some other means to secure the files from hackers & crackers.
[10:59:15 PM] seth turin: definitely
[10:59:23 PM] seth turin: ok we're wrapping up the screencasts
[11:00:13 PM] ! Macster: seth you have removed "save to folder" !? why is that
[11:00:47 PM] seth turin: so what we'
re doing is making a bot that will search the big 3 search engines
[11:01:37 PM] seth turin: this particular bot is small enough that it could all be done with one bot, but in this case we're gonna use it to demonstrate how include works
[11:02:37 PM] seth turin: so we'
re going to separate the search functions into separate bots, and then consume all 3 bots in our manager bot
[11:02:50 PM] seth turin: making one of those bots looks something like this: http://screencast.com/t/HVDpO140
[11:02:59 PM] seth turin: with a thanks to jason for the screencast
[11:03:35 PM] Jason Kelley: guys - i haven't used ubot in a few months and it was super easy to get back into :)
[11:04:33 PM] seth turin: once we have all three, we put them together like this: http://screencast.com/t/cXJPuwR9Y
[11:05:53 PM] seth turin: also, jason was kind enough to demonstrate a huge mistake in that second screencast!
[11:06:05 PM] seth turin: includes should always be the first thing in a script
[11:06:49 PM] Jason Kelley: woops thanks
[11:06:54 PM] Jason Kelley: that'
ll break things otherwise
[11:07:05 PM] Jason Kelley: we'll automagically fix that so it happens on its own at some point i guess
[11:07:06 PM] Jason Kelley: !
[11:08:17 PM] seth turin: and you can see that by putting include into your script, it creates a new category under commands or parameters (in this case parameters) with all the defines from the other bot
[11:08:54 PM] bgproinvest2: big question is how to pass inputs to the included bots
[11:09:05 PM] bgproinvest2: they are now like static
[11:10:24 PM] bgproinvest2: User inputs data in the main bot and hits run and that data is passed to the included bot to do the operation and then closes
[11:11:40 PM] seth turin: I'
m not sure I understand the question
[11:11:44 PM] bgproinvest2: as for now i did not get that to work so saving first to table or list than to file and open it from the included bot seem as a workarround
[11:12:07 PM] bgproinvest2: how do we pass user input data to the included bot
[11:12:15 PM] bgproinvest2: from the main UI
[11:12:26 PM] bgproinvest2: a simple VAR
[11:12:28 PM] seth turin: as a parameter
[11:12:41 PM] seth turin: so the define in the included bot will take a parameter
[11:12:54 PM] seth turin: then in the master bot you just send in the variable as the parameter
[11:13:10 PM] bgproinvest2: ok go on
[11:13:17 PM] bgproinvest2: sorry for interrupting
[11:15:16 PM] seth turin: so yeah, once in the toolbox, you can use defined commands like any other command
[11:16:08 PM] seth turin: included bots can use plugins, and they can include their own bots, so you can potentially create highly expressive, large scale bots, while keeping everything small and manageable!
[11:16:37 PM] seth turin: that's about it, unless there are any questions?
[11:16:52 PM] seth turin: we'
ll put these bots up on the wiki
[11:17:04 PM] bgproinvest2: does includes needs to be in the beginning of the parent bot
[11:17:22 PM] tompots: vary nice
seth turin

it is true that you have to ship along your source code when you sell a bot for now.

but when you split the code into many smaller files, you will release the tension of the master bot, so it won't lagging all the while when you code.

now, i will code with many 'include' command and when its time for compiling i will decide either compile as it is or move all the define's from the ubot files back to the master bot. (just to make the previous coding process smoother - because i think time is =  money)

---------------------------------------------------------

i have done a lot of testing to try speed up ubot during coding. (here is the summary for someone who is interested to know)

- use new ssub code and host javascript/.css externally

- use ubot 5.5 (it is faster then v4)

- upgrade hardware (now with i7 2.6 ghz that overclocking to 3.4ghz, plus change to SSD for faster files access, 12GB DDR3 RAM)

- use 'include' command
- use hosted image during production
(i think the lesser code the better, change back to base64 during compilation)

- reduce code during production (move some code to another standby file when not in use, combine when done - now can use include command for this)
- use less plugin during production (advance ubot - add it only before compiling)

use 2 monitors so you don't have to keep switching between ubot and the debugger (extended screen, your graphic card need to have 2 monitor output)
- 1 for coding
- 1 for debugger

use 2 computers
- use anther pc to run other task (like youtube, ssub, photoshop, music player, other IDE, firefox, filezilla etc.), the main pc only use for ubot v5
you can share your mouse and keyboard between 2 computers, no need to buy a switcher, check microsoft mouse without borders
https://www.youtube.com/watch?v=MGJPDOqZc3Q
http://www.microsoft.com/en-my/download/details.aspx?id=35460

disable windows services that will not in use, example: fax, offline files, printers etc...

my setup:
- highest spec. computer use for ubot, an extended monitor use for ubot debugger.
- the noteboook use for other task.
both pc share the same mouse and keyboard (mouse without borders)
setup.png

- better file management (make bot for myself to easily access production database and files)

- save all files in dropbox, just in case anything happen, you can always restore to a previous version with dropbox and able to access the same ubot files on the other pc.

Hope this help.

Link to post
Share on other sites
  • Replies 84
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

As far as i know all those experienced Ubot users are still using V4!

There are two big issues remaining with v5: 1. Can't open large bots. UI crash or very slow 2. Threading not working 100%   1 will probably be fixed soon. But I'm a little bit scared about 2...Seth co

So for new purchasers a version 4 DL link is not provided? Everyone's/Every bussiness' action speaks volumes in terms of both their character and their intent... I wish people would understand this be

Trouble with UBOT 5.5.11.

 

The first part of the bot I am writing does this:

 

1. Enter keywords

2. Create a search phrase from the keyword and search Google.com

3. Scrape all the URLs from the first page of the Google SERP for the search phrase.

4. Add the URL results to a list.

5. Repeat 1-4 for all the keywords in #1

 

UBOT 5.5.11 can do between 30 to 40 keywords before it stops adding to the list. It keeps on running but does not really function properly.

The place where it stops working is random even when running the same keyword list.

 

I put the code back into UBOT 4 and it ran flawlessly for the whole 57 keyword test with no problem.

 

I guess its back to UBOT 4 for me. i'll try 5.5x again in a few months.

Link to post
Share on other sites

@arunner26

i test what you mention above with v5.5.11, i can add the result to list without any problem.

my guess is you have not wait for the browser to complete before the next loop, so it scraped the same result on the same page multiple times.

try this:

 

on load("Bot Loaded") {
    set(#keyword,"server
nascar
nba
ufo
maya
macbook
toy
robot
dell
ipad
iphone
sata3","Global")
}
ui block text("keywords",#keyword)
add list to list(%keylist,$list from text(#keyword,$new line),"Delete","Global")
navigate("https://www.google.com.my/?#q=tool","Wait")
wait for element(<outerhtml=w"<div class=\"*\">Web</div>">,"","Appear")
clear list(%result)
set list position(%keylist,0)
loop($list total(%keylist)) {
    navigate("https://www.google.com.my/?#q={$list item(%keylist,$list position(%keylist))}","Wait")
    wait for browser event("Everything Loaded","")
    wait for element(<outerhtml=w"<div class=\"*\">Web</div>">,"","Appear")
    add list to list(%result,$scrape attribute(<outerhtml=w"<a href=\"*\" onmousedown=\"*)\">*</a>">,"href"),"Delete","Global")
    set(#next,$next list item(%keylist),"Global")
}
ui stat monitor("list count: ",$list total(%result))

Link to post
Share on other sites
fastlinks,

Thanks much for your time to test. You missed what I said the problem was.

UBOT 5.5.11 works well until it reaches 30 to 40 keywords then stops adding to the list.

My test has 57 keywords.

You have only 12 keywords in your test.

Also the other two things my loop is doing is building two other lists to become columns in a table.

1. keywords found (some URLs are duplicate)

2. Date added for each URL

 

1 and 2 become columns in a table later.

Link to post
Share on other sites

5.5.11 not working here as well, Set variable to number is not working, it is not recognizing it as a number.

Also i think threading is messed up and it is not working.

 

I m back to 4.0 and i m going crazy over here.

 

EDIT:

Did some testings and now inside blank bot with just variables it works, but my big bot in 5.5.11 is not working, but on V4 works. Maybe something else is corupt, not sure.

Link to post
Share on other sites

arunner26

Sorry for missing the steps.

i run a test with 62 keywords,

add list to list (remove duplicate) get 579 items
add list to list (Don't remove duplicate) get 661 items

i am not sure about the other 2 list you add, but for scraping the data and add to the one list seem working fine here.

------------------------------

about the set var as number not working, can you post the code here?

i tried
 

 

set(#ten,10,"Global")
set(#five,5,"Global")
set(#num,$eval($add(#ten,#five)),"Global")

i am getting 15 as the result.

 

Link to post
Share on other sites

fastlinks

Thank you for your time spent testing.

I may have over simplified what is happening with my list of what the bot does to shorten the description.

There are 8 tabs in my bot, each with its own define. The problem one we are talking about is the first to run.

It may be that the fact that the code is in a define and is called that is the problem.

Yes, fastlinks my code in the define is similar to your example code and I do have the wait for statements in there.

The bottom line is that I don't think I have a coding error because when I run the bot in UBOT 4 it runs through perfectly.

 

Link to post
Share on other sites

fastlinks

Thank you for your time spent testing.

I may have over simplified what is happening with my list of what the bot does to shorten the description.

There are 8 tabs in my bot, each with its own define. The problem one we are talking about is the first to run.

It may be that the fact that the code is in a define and is called that is the problem.

Yes, fastlinks my code in the define is similar to your example code and I do have the wait for statements in there.

The bottom line is that I don't think I have a coding error because when I run the bot in UBOT 4 it runs through perfectly.

 

 

Could be a lot of things. Without seeing your code it's hard to say. But if you switch between tabs while your bot runs.. That could explain the issue.

http://tracker.ubotstudio.com/issues/532

Link to post
Share on other sites

Could be a lot of things. Without seeing your code it's hard to say. But if you switch between tabs while your bot runs.. That could explain the issue.

http://tracker.ubotstudio.com/issues/532

Yes, it is difficult to debug without seeing the code.

In this instance the code is debugged already and runs like a champ in UBOT 4.

Start to finish thru many steps and consistently finishes.

In 5.5.11 it continues to run but stops adding to the lists.

In addition, the problem moves around and starts happening some where between 30 and 40 iterations of the loop.

I think there may be a memory issue lurking in 5.5.11

 

I have seen that bug of switching between tabs and I am not doing that; however I do have a define in each tab 2-7 which is being called by the "controller" in tab 1.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...