Quantcast

Jump to content


Photo

Shop Autopricer (Testing requested)


  • Please log in to reply
6 replies to this topic

#1 Josh

Josh
  • 318 posts

Posted 17 December 2014 - 01:51 PM

Greetings,

 

I'm starting to rollout some of the programs resulting from my work on Neolib v2. The first (and hopefully last) method I'm rolling out with is Docker. My reasoning behind this choice is as follows:

 

  • Docker is gaining widespread attention across multiple communities and is growing at an incredible rate. Thus the number of third-party companies finding methods to adopting and hosting containers is increasing.
  • Most issues with using Python as the primary language for the end-user is that it requires a tad bit of technical information for the end-user to get a successful install. Just to get my library working on Windows required over 10 different steps (thanks to the lack of native compiling). Containerizing the Python script with Docker avoids all of these issues.
  • Network speed is the biggest variable with the efficiency of these types of programs. However, cloud architecture is still somewhat difficult to master and getting apps built for a native desktop environment to work in the cloud can be tricky. Many cloud companies are welcoming Docker with open arms thus making it easier to get these programs in the cloud and operating at incredible speeds.
  • Finally, the above bullet point can also be applied to hardware challenges (although not as significantly). 

The first program I've built using this architecture is a simple shop autopricer. It logs into the given account, loads the user shop inventory, prices each item via the shop wizard, and then updates the shop with the calculated price (average or minimum is supported at the time of writing this). 

 

This program is really not intended to be fancy and the main reason I'm releasing it right now is for testing how well the deployment method works. In the future I plan on integrating a small-scale web server into the container which will provide a graphical interface to the programs (for those scared of the command line). 

 

Here is a quick breakdown on getting up and running:

 

  • Go here and follow the instructions for installing Docker on your operating system
  • If on Mac OSX or Windows ensure you run the virtual machine and start docker as per the installation instructions
  • Once you're in a command-line (either by starting the virtual machine or opening up a command line on Linux), enter the following command:
  • docker pull jmgilman/neoapps
  • This will download the latest neoapps image. Please note this is a large download initially, however any future updates will not require downloading the entire image again and therefore should go fairly quickly.
  • When the download is finished issue the following command to test the autopricer:
  • docker run -t jmgilman/neoapps ./start pricer -u [username] -p [password]
  • Ensure you substitute 'username' and 'password' with your Neopets account username and password.
  • The program should login in to your account, find any unpriced items, price them, update the shop, and then quit. 

If you can successfully do the above steps, please reply below so I have an idea of how well this method is working. It's much appreciated, thank you!


Also, for those concerned or curious the source code for this can be seen here: https://github.com/j...an/neolib2_apps

 

The ./start is simply a shell script which executes the 'run.py' file with the passed arguments. Of course, you can always terminal into the container itself and check it out if you don't believe me :)



#2 Swar

Swar
  • retired cheater

  • 9280 posts


Users Awards

Posted 17 December 2014 - 05:40 PM

I'm gonna give it a try now that my internet is working correctly again. I'll edit this post when I'm done.



#3 Josh

Josh
  • 318 posts

Posted 20 December 2014 - 07:53 AM

Would anyone be interested in a tutorial for running these programs on a cloud provider? Unfortunately I can't find any free providers at the moment, so any tutorial would require signing up for a paid service (average cost is $0.007 per hour of use).



#4 jcrdude

jcrdude
  • Oh shit there's a thing here

  • 7001 posts


Users Awards

Posted 20 December 2014 - 11:45 AM

What is the advantage of having the autopricer in the cloud?



#5 Josh

Josh
  • 318 posts

Posted 20 December 2014 - 06:54 PM

What is the advantage of having the autopricer in the cloud?

 

None really. However, time sensitive programs like UAB, MAB, pound sniper, etc. have several advantages when operated in the cloud. The shop autopricer is just demonstrating a method in which I intend to deploy these other applications.



#6 Stephen

Stephen
  • 3527 posts


Users Awards

Posted 26 December 2014 - 11:10 PM

None really. However, time sensitive programs like UAB, MAB, pound sniper, etc. have several advantages when operated in the cloud. The shop autopricer is just demonstrating a method in which I intend to deploy these other applications.

The only advantage of any of these apps being in the cloud is that they become more easily accessible remotely. I suppose there may also be slightly lower latency depending on the location of the server they run on too.

 

By the same token I could just set up RDP on my home server box (or PC) and do a similar thing same thing with just regular neo programs, as long as the route and latency to the neo servers is similar there isn't an advantage with the cloud setup.

 

It's a cool project idea though.



#7 Josh

Josh
  • 318 posts

Posted 29 December 2014 - 12:47 PM

The only advantage of any of these apps being in the cloud is that they become more easily accessible remotely. I suppose there may also be slightly lower latency depending on the location of the server they run on too.

 

By the same token I could just set up RDP on my home server box (or PC) and do a similar thing same thing with just regular neo programs, as long as the route and latency to the neo servers is similar there isn't an advantage with the cloud setup.

 

It's a cool project idea though.

 

No, that is not the only advantage. Like I said in the OP, versatility, improved speeds (including disk I/O, network latency, CPU requirements to run 30 bots on all of my shell accounts, etc.), portability (yes it can be accessed remotely, but it also can run EXACTLY the same on any operating system thus providing a pure form of cross-system compatibility), security (open-source and runs in a container thus providing safety and peace of mind for the end user), and all the other advantages I've already covered in detail. 

 

The only drawback to this method right now is finding a user-friendly way to deploy it. I think if I can get it down to a one-click deployment of a website with a front-end UI for all of the neolib apps then it will be much more accepted by the community. Unfortunately it's a lot of work for one person :p


Edited by Josh, 29 December 2014 - 02:51 PM.



0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users