Jump to content

Learning proper Java, Starting Botfarm, Making bank


slazter

Recommended Posts

Okay so after a few months lurking around, and the last month being more active, reading up on tutorials, Java in general, posting questions to learn more etc i've decided to start my own thread for my own Progress goal.

Some bakground: I'm a 24 year old guy from Sweden, started gaming at like the age of 8 or 9, and since then my computer has always been my number 1 joy in life, it's kinda crazy how much i actually enjoy spending time on my computer lulz, anyways. I used to play alot of Poker, NLHE, made my way onto 2.5/5 stakes, climbed to 5/10 some times aswell on the swedish site SVS, made a decent profit, but eventually got kinda demotivated as poker is dying out as a whole, due to fish (term for bad players) not coming into the game with the same influx that it used to, aswell as not really being able to se myself as pokerplayer 5->10-15 years from now on, by other words, it was a nice way for me to earn money at the computer, while also improving my math skills, logical thinking and self reflection. But the emotional stress it caused, litterary made me punch a hole through my desk. After changed were made to the site, changed their shitty GUI to an even worse GUI that didn't allow HM, (program for data tracking, HUD of stats etc) i decided to call it quits, poker had been great but there was no real future for me. All in all it was a great year, with me spending the summer infront of the computer with my best friend, smoking weed the entire day, chasing fishes until 5am, passing out, waking up at 11am, W&B-> hit the gym-> join the tables -> repeat. 

So where to go from here: So since i've always loved to actually strive and work towards goals, my natural tendency was to search for something else, something which had a future, something which would have me develop skills that i would benefit from for the rest of my life, so many times have i thought to myself, "Shit i should've started doing that earlier", or "Shit i shouldn't have quit that". There's no redoing in life, What's done is done, therefore and i attribute that alot to poker, i really tend to try to envision everything super longterm, aswell as having a process oriented focus, rather than a results based, (Try having a results based thinking in poker, and you'll go mental within a couple of days lulz). I've tried youtube, i've tried poker, i've tried writing, i've tried webb developing, i've tried so many thing, but what have always been my foundation has been that i want to have a job that let's me work from anywhere in the world, aslong as there's internet connection, No boss supervision(I really despise the thought of me working for someone and me only earning x amount of % of what i produce, rather than me earning the full 100% of my production means) And that it allows me to make BANK irl. Therefore you'll probably see that all these kind of "Jobs" i decided to try out, actually follows this pattern. Anyways so after a semester of maths and physics course in my community college, i started to develop a love for simpifying my homework with equations and formulas by programming my calculator Ti-84 to do all the calculations, and just prompting the values. It was also super helpful due to the fact that it forced me to work with the equations, rather than just mindless numbercrunching and to understand how to reorganize the formulas to get the correct answer. And that's where i started to get into programming.

So at the Mid of june (when the courses ended) i decided to try and develop real programming skills, rather than just programming formulas into my calculator. A few years ago while still in high school i took a course in C#, and i distinctly remember hating object orientation, angle brackets, Classes and all there was to it. But this time my mindset was diffrent, First of all i strongly belive there is no such thing as funny, or boring - Cause what is really something objectivly boring? or objectivly funny? There is nothing, right. It's all subjective feelings that we apply, and if somethings subjective that essentially means that WE get to choose how we feel about it and that is a crazily fucking powerful thing, Of course every task is going to have different feelings that is conditioned to it with neurons, but neuroplasticity makes it not being permanent, it's going to take time, but it's never permanent, and that's the key! Shit i've changed feelings about tasks so many times it's dumb, i've even come to love the constant rain in the swedish summer for it allows me to spend the time inside at my computer to learn more about programming. The second thing is that i felt that there were some actual areas where i could apply my programming (Rs07) while still learning and that really helped me to push through the mental barriers which i previously had while trying to learn Java(i've tried to learn it sooo many times, for a couple of days, and then just end up leaving it due to the high learning curve i felt it had, and the time it would take for me to actually learn it) So this time i've actually pushed through for what i belive to be was the(for now) hardest part, as i've got most of the fundamentals down, which was what i struggled with the most while trying to learn Java. 

At the time of writing this i've written about, 10-15 scripts that for the most part gets the job done, (1-2 that i feel are decent enough to actually publish for others to use someday, still using these as my personal money makers, and can pretty much run these without problems). I've read, 277 pages in Head first Java, and pretty much all of the tutorials in tutorial section, i've read countless script help post to se common problems, solutions, aswell as reading many of the posts in the Snippets section to try and se how others write their script, and solutions to problems that i face. 

So my current short term goals atm are:
*Learn more about OOP - strictly speaking - Inheritance, and implementation of it to being able to make use of Object orientation more smoothly. Scheduled to spend Today -> 5th or 6th of August on it.
*Learn more about State Logic - Sometimes i feel i have troubles formulating the correct , if and else statements to make for good code, and i think this is what @Alek meant when he told me it'd be a good steping stone.
*Learn more about GUI - Haven't spend more than 5 minutes trying to learn it, so all my scripts are without a GUI, and while the scripts work, it'd be nice to have a GUI for some scripts, to mabye get xp/h etc without having to do manual calculations each time.
* Figure out some more ways to bot gold - currently have a few, one with like 800k gp/h without much reqs, but require a shitton of gold, aswell as being pretty caped, but with pretty much 0 banrate, aswell as one with 350kgp/h without any reqs but semi high banrate... I can bot for like 5-6/h a day without bans, but any more than that and the bots gets taken out, which kinda sucks, aswell as not really super scaleable.

My mid term goals are:
* Learn all the foundations in Java, threads, exceptions, GUI's, Lambdas, Collections, Streams, anonymous classes etc etc.
* Have a botfarm of atleast 5bots running 24/7 with atleast 500kgold/h. And yeh here i'll probably have 15 bots, that each run 8h/day, and rotate between them.
* Make an AIO questing script, Release version of all F2P quests to Osbot for free - Mostly to learn good OO practices 
* Make a progressive Slayer Script for leveling accounts and semi decent money maker.

My long term goals are:
*Become alot more proefficent at Java
*Build a new computer, or possibly even server, strictly for botting use. 
* Make a personal raid script - I remember the old dungeonering script, so should be doable with enough experience :D 
*Start selling gold

So yeh i guess this was my introduction post, these goals are going to be edited, and added whenever i figure something new out that i'd want to learn, but atm im pretty tired, so these will have to do for now.
So for now im going to be working on my OOP Skills, I'll post the links of the stuff that i use and probably a summary of what i've learnt from it, so in the case i have understood something wrong you guys can correct me.
Also, I love feedback, it's pure gold to me, so whenever you se something which is wrong, or information that can be added to what i've written, ALWAYS feel free to correct me or add infomation that i've might've missed or not learnt correctly. 

PS. i munch Notropics like a motherfucker!! Jokes aside i've tried Piracetam, Noopept, Idra-21, Phenylpiracteam, Oxiracetam, Aniracetam, PRL-8-53, NSI-189, Adrafinil and much more, so if you're interested in that kind of stuff, feel free to ask about it, or post your experiences, as i find this stuff really fascinating, but Longecity can be a bit boring.

Day 1 Progress:

Spoiler

1/8-17
Today was the start of this thread, As my current goal is to try and become good at understanding OO Principles, i started reading Head first - Design Patterns. As most of the Head First, they're pretty old, i think my version is from 2004, however i do really like their way of explaining a new subject, and then usually rephrasing the same thing to really make their point stick. Therefore i'll think i'll start with this one, while i'm reading their Head First Java anyways, before moving on to newer more updated design patterns books which probably have more advanced language which would halt my progress, due to my still lacking foundation.

As i do like to keep track of my progress in various areas, ill try to include a log of pages read, and words written (while taking notes from the books i read) to see what has been done each day, aswell as making it easier for anyone wanting to, to actually track my progress aswell.

Current Book Progress:
Head First Java - 296/690
Head First Design Patterns - 51/681
Words Written - 2188

Learnt: God damn, if there's one thing that truly brings me happiness in life it's either to solve a problem i've been stuck with for a long time, like a physics problem, or to be presented a problem, draw my own conclusion on how to solve it, realize it's wrong or not being able to solve it, and then have the solution presented. It's like the optimal way to make knowledge get stuck in my head. 

So the problem that was presented was that you have a class called Duck() and you wanted to add a fly() method, but you couldn't add it to the Duck class for all the Duck subclasses to inherit, due to Rubber ducks not being able to fly, You could Override the method to do nothing, but that would require each subclass that doesn't have the ability to fly, to have that method overriden. So my instinctive thought was to write a Interface, But then they presented the fact that would be even worse, While it does solve the problem, there's no code reuse, and if there's some change to the fly() method, each of the subclasses that it would have to be manually changed, also a hassle. Instead the Solution lied in Extracting the fly () method, Make a Interface for the fly() method, and then to implement that method in a separate class and not to have to fly() method in the 

So what i've learnt today is:
1) that the best way to use patterns is to load your brain with lots of them, then find spots in my design where you can use them, rather then to just reuse code. This way we get to experience reuse. 

2) Design principle 1: "Identify the aspects of your application that vary and separate them from what stays the same". Which to my understanding is to extract the parts which varies, Encapsulate them / Place them somewhere else, and keep the parts which doesn't vary in the same spot. That way we don't have to touch existing code that works if we need to change functionality in the code.

3) Design Principle 2: "Program to an interface, not an implementation" - This part was actually really nice to learn and wasn't something that i've instinctivly thought of would be better, Rather than to code my objects in the manner of programming to an implementation,


// Programming to an implementation
Dog d = new Dog();
d.bark();

A better choice would be to program to an interface, or supertyp as such,


// Programming to an interface
Animal a = new Dog();
animal.makeSound();

With the interface Animal having the method makeSound();
And the concret implementation of that in the Dog class would be:

makeSound(){
   Bark();
}
Bark(){ // Bark sound }

Lastly, even better than hard-coding the instantiation of the subtype ( new Dog()) into the code, we could just assign the concrete implementation object at runtime,


a = getAnimal();
a.makeSound();

That way we don't even have to know what the actualy animal subtype is, all we care about is knowing it can respond to makeSound();

And that's probably it for today as im about to pass out, i'll probably lie down in bed and read some more, as i usually try to read some more at night, but without making any notes just to get a somewhat understanding of the topics, then the day after, reread what i've read and take notes on it. Also note to self, I should probably be better at actually rereading my own notes, rather than to just reread the book im currently on. 
 

Day 2-3 Progress: 

Spoiler

Okay so update, time even though i'm a day late. Took to much Nootropics, at once, about 20 mg noopept, 1200mg Oxiracetam, 500mg Pramiracetam, 600mg aniracetam, 300mg CDP, didn't work out for the best, instead of a super focus, i got overstimulated which kinda sucked as i couldn't really focus on anything, well anyways fuck that, so i've kept reading a bit, aswell as watching this guy on youtube

Spoiler

 

 explain the same thing from the books, i dunno, i like to hear the same thing more than once, and explained in alot of diffrent ways to really get the point to stick. So i've read through the entire chapter on Strategy pattern and i do think i understand it. To summarize my understanding, what you do is to favor composition, i.e compose your object with algorithms that you've extracted and encapsulated to make your object the way it's supposted to be, rather than just inheriting it's properties, thereby having alot more of flexibility in your system, due to the fact that your not coding to an implementation, but rather a supertype or interface.  I kinda get the point and i think it's nice, to try and use it in my Scripting i thought that mabye i't be nice to have in a Agility AIO script, Therefore i drew this diagram 

Spoiler

I think that an interface and then classes that implement that for Running to courses should be fine, since i guess theres some reusage in DraynorRun etc if i we're to make some other script. However when i started to think about how to handle the RunCourse i got a bit confused, sure i can make a Interface, since it's a part that varies for each course, with diffrent actions, diffrent obstacles etc. However most of the RunCourse should still have quite alot of duplicate code, for etc, i thought of just making an array for options, aswell as obstacles such as , 



String[] actions = {"Jump over", "Climb-up","Climb-down","Walk-over","Jump"};
String[] obstacles = {"log","Tree branch", "Rope", "Gap"};
// etc

and then since u can't really use getobjects closest with a string array i could just use a for loop like such 



public void obstacleHandling(){
for (String s : obstacles) {
  getobjects.closest(s).interact(actions)
}
}

obviously extremly simplified, but the thought here is that it will use any of the actions from the String array [] actions, and use that on whichever of the obstacles, that is closest that is being looped through, haven't tested this but this is my thought going into this, However since this method actually performing the action would be replicate across the diffrent classes implementing iRunCourse, and the instance variables, actions and obstacles in this case would be the things to differ, i'm not sure on how to go about this, sure i could have the runCourse() as a method, being inherited, but it might be to general. How does one go about this?
One thought is to try and se, like if i we're to make runCourse() inheritable in the Agility class, and then if it works i stick with it, but otherwise i use some combination of Composition and inheritance. Is there some other way you guys would have solved it? 

Tried it but got kinda stuck... made a post: 


If anyone know what the problem is i'd be really happy.



 

 

Edited by slazter
  • Like 1
Link to comment
Share on other sites

Wow didn't expect this much positive response that quickly, thanks alot for the kind words everyone, made me smile irl! :D 
I have a few questions for anyone reading, would you rather that i post updates in the main post, or as a new reply?
What do you guys think about the format, anything that should be added?
From tomorrow i'll probably use my KLOK2, (Scheduling software) to know how much time i spent on various parts of my day for further data, think i'll add that to the posts aswell.

 

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...