These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
Previous page123Next page
 

Wanting to learn API & Coding

First post First post
Author
Barrak
The Painted Ones
#21 - 2015-05-24 18:05:23 UTC  |  Edited by: Barrak
hmmm I guess it certainly looked that way..........was just curious.

Am halfway through the html tutorial now!

Seems interesting.... funny, already I can see how some of the more basic websites have focused on content rather than presentation.

Just seen your link.... am looking at that too now.

Did my learning plan seem feasible?

Barrak
Pete Butcher
The Scope
Gallente Federation
#22 - 2015-05-24 18:20:36 UTC
Barrak wrote:
hmmm I guess it certainly looked that way..........was just curious.

Am halfway through the html tutorial now!

Seems interesting.... funny, already I can see how some of the more basic websites have focused on content rather than presentation.

Just seen your link.... am looking at that too now.

Did my learning plan seem feasible?

Barrak


If you want to make websites - sure. Learn HTML, CSS, Javascript and some scripting language, like PHP or Python.

http://evernus.com - the ultimate multiplatform EVE trade tool + nullsec Alliance Market tool

Barrak
The Painted Ones
#23 - 2015-05-24 18:22:10 UTC
Pete Butcher wrote:
Barrak wrote:
hmmm I guess it certainly looked that way..........was just curious.

Am halfway through the html tutorial now!

Seems interesting.... funny, already I can see how some of the more basic websites have focused on content rather than presentation.

Just seen your link.... am looking at that too now.

Did my learning plan seem feasible?

Barrak


If you want to make websites - sure. Learn HTML, CSS, Javascript and some scripting language, like PHP or Python.


Thanks.

... and Python will allow good interaction with EvE?
Amely Miles
Second Exile
#24 - 2015-05-24 18:35:56 UTC
definitely sounds like your trying to learn how to bot Eve

good luck sir but this is one guy bowing out of the conversation before the "Ban Hammer" comes down

As I slipped my finger slowly inside her hole, I could immediately feel it getting wetter and wetter.

I took my finger back out and within seconds she was going down on me.

"I really need a new boat," I thought to myself.

Barrak
The Painted Ones
#25 - 2015-05-24 18:40:23 UTC
Amely Miles wrote:
definitely sounds like your trying to learn how to bot Eve

good luck sir but this is one guy bowing out of the conversation before the "Ban Hammer" comes down


I'm really sorry it appears that way. That is certainly not my intention and can even link my progress with Codecadamy... though, I'm not sure what they will prove.

I really appreciate the support so far and I welcome CCP to have a look at my accounts if they wish. I like the game to much to do that.

Gutted now as I have ruined what, at least for me, was a great thread that was really helping to learn.

My apologies to all.

O7

Barrak
Pete Butcher
The Scope
Gallente Federation
#26 - 2015-05-24 18:43:23 UTC
Barrak wrote:
... and Python will allow good interaction with EvE?


It will allow you to get banned pretty fast.

http://evernus.com - the ultimate multiplatform EVE trade tool + nullsec Alliance Market tool

Barrak
The Painted Ones
#27 - 2015-05-24 19:08:58 UTC
Pete Butcher wrote:
Barrak wrote:
... and Python will allow good interaction with EvE?


It will allow you to get banned pretty fast.


I can see that I have managed to alienate everyone in this thread.

Again, I can only offer my apologies.

Thank you for your support so far.

Regards

Barrak
Nuke Cherenkov
The Scope
Gallente Federation
#28 - 2015-05-26 06:20:56 UTC
Don't worry about it... Up near the top of the thread is a post by CCP Foxfour, he is the main guy at CCP updating and maintaining both the API and CREST data interfaces. He suggested Python... Shameless plug from me because I really like it too, it just seems to work like you expect it to. There are also libraries that you can import into your app for doing just about anything you can imagine. He pointed you to the main one in Python for working with the Eve API.

I will differ with most of the other advice and suggest you start with a desktop app. If you go with a web app you have to add learning all the infrastructure behind web apps, web hosting, deployment, etc. Also HTML, CSS, Javascript most likely. I think a desktop app gets you up and doing something useful with Eve more quickly. Good stuff to learn eventually but you don't need it to be productive with Eve.

I focus mainly on trading using a library that makes it easy to use Excel for the user interface and Python for all the code: https://github.com/ericremoreynolds/excelpython/releases This way you can focus on finding the data and manipulating it rather than the presentation. I've found that figuring out the UI can take as long or longer than the core functionality of the app... When I want to add new functionality, like showing all the contracts on my alts, I add a new tab and dump the data there while using Excel to make it look pretty (set calculation to manual though). I am also writing all the code in a modular way, that way when I do go with a desktop app with a UI or a web app, the code can drop in. In fact I've already peeled off part of the spreadsheet into a small standalone app.

If you do want to stay with a web app, check out Flask:
http://flask.pocoo.org/
http://www.fullstackpython.com/flask.html

Programming is not part of my day job, but since starting with Python I've written a bunch of little apps that scratch an itch and have been picked up by a bunch of people at work...

Good luck (and don't bot :)
Barrak
The Painted Ones
#29 - 2015-05-26 13:51:58 UTC
Thanks Nuke!!

I can understand why the other guys are thinking like they are. It almost appears as a betrayal of their trust..... if that makes sense.

I spoke with my Brother the other night who has (I had completely forgotten) a FC-H Degree in computer science. He recommended the following (in order)


  • Don't bother
  • It's a young mans game (I'm 39 and he is 37 - way to make me feel old!)
  • Java
  • Python


Your comments around a desktop app make sense and to be fair.... the likelihood of me playing when not in my study are pretty slim no matter what I thought!

Can I ask you to expand on the desktop bit? You make reference to using Excel, so is that what you're referring to as a desktop app or are you 'building' something with windows etc (though that is into Java I believe (or other stuff))?

The main aim is to arbitrage between the hubs and to then, possibly, set up a minihub in low/null. At least those are my ambitions..........

I'm out of work at the moment and my wife is keen (which makes sense) to use my time wisely and even she conceded that"...... if it works with a game then great!".


Thanks again for supporting.

Regards

Barrak

Nuke Cherenkov
The Scope
Gallente Federation
#30 - 2015-05-26 18:33:16 UTC
Hmmn... I was learning Cobol in high school before at least he was born so it certainly isn't a young man's game Shocked

As a little more context, I am an electrical engineer so while I have had my fingers in programming for a long time it hasn't been a core part of how I spend my days. I looked at Java when I wanted to leave VB6 behind for my itch scratching projects but my god it is verbose; type, type, type... The I found Python and never looked back. In the US, Python is replacing Java as the first language taught in high schools and universities. It is also cross platform, PC, Mac, Linux, Raspberry Pi (Linux), etc., though to be honest you have to be careful which libraries you pick if that is a requirement (probably true for Java too).

By desktop app I mean a standalone program that you either invoke from a command line or double click an icon to launch. (BTW I mostly work in Windows) At work I have packaged up some of my utilities into exe files that people use just like any other Windows app. I also create small batch files so I don't have to open a command window and type anything :) Excel kind of counts as a desktop app where each tab generally serves a different function.

I'm using Excel almost exclusively as a user interface; I didn't want to spend time coding and tweaking a UI for most things. Basically as I add functionality to the spreadsheets I am figuring out what info I need to put in, how to display the info that I get back from CCP/Eve Central most effectively, etc. Another for instance, I make a list of the BPs I want to manufacture from, how many units to build, etc. When I "run" the code behind that tab of the spreadsheet, it gets the ME for the BP (from CCP), figures out what is needed to build the item (thanks Steve Ronuken), looks up the cost of the components from Jita, Dodi, Amarr and Hek, gets the sell prices at the hubs and shows the amount of profit. I use this to figure out what to build (it also makes an IGB shopping list for the supplies). You can do this (mostly) with Google Docs spreadsheets which is probably more common but with Python and Excel you have total control and the code is reusable.

In the aggregate, I can't say that this is "easy" to do but that is true no matter what language you pick. I think my approach pares it down to learning the minimum to get started and then you can add the other stuff (GUI/web/mobile) as you get the basics under control and are seeing useful results. Otherwise it is easy to take too big a bite and totally stall. Of course it has a strong dependency on Excel but a quick search says it is easy to connect Python and Libre Office for instance: https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=71532
Barrak
The Painted Ones
#31 - 2015-05-26 19:08:30 UTC
A far stronger vote of confidence than from my Brother Big smile

I understand most of what you said but will work on the rest. I am drawing a blank on that link, but I'll do some searches when I get to that point.

In relation to the desktop apps (and probably showing my incredible lack of knowledge here) do you mean utilities that Windows use or have you 'built' something ..... like Evernus (as an example)?

ie Does an 'app' of yours simply open up excel or similar?

I think I probably need to do a lot more homework before I can truly start understanding just the things that people are talking to me about.

I like the start of this journey, but.... like the Hobbit..... who knows where it will end.

Again, thanks support.

Regards

Barrak
Barrak
The Painted Ones
#32 - 2015-05-26 19:58:43 UTC
So.... working through my Codecadamy lessons and figured I'd do a little pre-read of the course material I've signed up for with Coursera.

First thing he says.... "So, I hope you've downloaded Python and had a look around...."

Go figure..... why would I have done that Big smile

Anyhows. I've gone to download it and there are multiple versions. I've read that Python 2 or 3 is what I should be downloading and that 3 is the way forward, but it depends on what I'm using it for.

If I'm interacting with the EvE databases can I use no.3?

Regards

Barrak
Pete Butcher
The Scope
Gallente Federation
#33 - 2015-05-26 20:24:29 UTC
Barrak wrote:
If I'm interacting with the EvE databases can I use no.3?


If by "interacting with databases" you mean manipulating Eve client data - you shouldn't do it at all or you'll get banned faster than you can imagine.

http://evernus.com - the ultimate multiplatform EVE trade tool + nullsec Alliance Market tool

Barrak
The Painted Ones
#34 - 2015-05-26 20:42:34 UTC  |  Edited by: Barrak
Pete Butcher wrote:
Barrak wrote:
If I'm interacting with the EvE databases can I use no.3?


If by "interacting with databases" you mean manipulating Eve client data - you shouldn't do it at all or you'll get banned faster than you can imagine.


I think this is partly where the misunderstanding is coming in.

When I say interact, I mean like all the other trading programs out there. EvE-Central, Evernus etc etc.

Perhaps I should have just asked the simple question. Which one? 2 or 3?

I think the course I'm going to be following is version 2 but what does EvE/API/EvE Central/ whatever else use?

Edit:
*Just realised (again) that EvErnus is yours*
Treyah
Sebiestor Tribe
Minmatar Republic
#35 - 2015-05-26 20:59:34 UTC
Java is arguably the best starting language to learn and is found across a number of different fields and professions. That's just my 2 cents - as you can see there are a lot of different ideas on which languages to learn in which order, why, etc. My angle is that Java, being an object orientated programming language, will teach you fundamentals that you can then take with you on your journey with more niche languages (like Python).
Nuke Cherenkov
The Scope
Gallente Federation
#36 - 2015-05-26 21:34:01 UTC
Treyah wrote:
Java is arguably the best starting language to learn and is found across a number of different fields and professions. That's just my 2 cents - as you can see there are a lot of different ideas on which languages to learn in which order, why, etc. My angle is that Java, being an object orientated programming language, will teach you fundamentals that you can then take with you on your journey with more niche languages (like Python).


Acckkkkk, I just have to pop in, I'll get back to your other questions later Barrak.

Python is a proper mainstream language!!!! It is by no stretch of the imagination a niche language!!!! Everything in Python is an object*!!!!

Sigh...

* http://www.diveintopython.net/getting_to_know_python/everything_is_an_object.html

PS One of my work utilities, it doesn't use Excel, it is a standalone application distributed as an exe, just like EVEMon, pyfa (written in Python) or EFT
http://i.imgur.com/KTCvFyd.png

As you can tell I didn't spend much time on the UI, it is in tkinter which is built into Python. I use it for very basic UIs and wxPython for more complex UIs. I know about QT, tried to use it but it doesn't appear to play nicely with virtualenvs which I really, really like.

PPS https://www.quora.com/What-is-the-most-famous-software-written-in-python they do mention Eve btw
Nuke Cherenkov
The Scope
Gallente Federation
#37 - 2015-05-27 03:29:40 UTC  |  Edited by: Nuke Cherenkov
I apologize for my knee jerk reaction above, I'm sure the comment was made with the best of intentions. The "best" programming language is very highly dependent on context. My proposal is that, absent some overriding external considerations like your current or future job uses a specific language, Python is an excellent, highly productive language to use to learn to program...

As far as which version of Python to use, go with whatever the course uses (recommend the 32 bit version even if you have a 64 bit OS). Most of the mainstream libraries have ported themselves to use 3 and it is the future direction of Python. You can keep this link around for future reference: https://python3wos.appspot.com/

I checked and the main library for interacting with the EVE API works with both 2 & 3: https://github.com/eve-val/evelink (this is the one that FoxFour mentioned, he is a contributor)

The other source of EVE online data is CREST and it is more complicated to interact with but doable by mere mortals. It is the source of market data amongst other info. I use this library: https://github.com/Dreae/PyCrest though Steve Ronuken pointed to an app he did to download market data where he rolled his own interface: https://github.com/fuzzysteve/CREST-Market-Downloader

Lastly, the EVE database you referred to can be found here: https://www.fuzzwork.co.uk/dump/ , another resource from Steve. Save this link for later, you need to figure out which database to use first. I use SQLite, only a single file and plenty powerful for most applications (support is built into Python). Once you come up with the big web app you can switch to PostgreSQL or MySQL, probably depends mostly on where you host the site. Recognize that you will need to learn yet another language to work with a database though, SQL*... Lots of online resources of course, a preview: http://www.w3schools.com/sql/

FoxFour and contributors are working on creating documentation for both the API and CREST here: http://eveonline-third-party-documentation.readthedocs.org/en/latest/ still fairly new but it is very nice that the info is being pulled together in one place finally. The old API info site is: https://neweden-dev.com/API

* There is an amazing library for working with databases which actually allows you to not learn SQL, but it really helps to have some SQL background at least: http://www.sqlalchemy.org/
Safdrof Uta
Echelon Research
Goonswarm Federation
#38 - 2015-05-28 05:51:15 UTC
If you're looking at using Python, I would suggest looking at Entity's API wrapper. Much simpler, and nicer, than evelink. (In my opinion)

https://github.com/ntt/eveapi

He also has nice documentation that shows how the code works, and how to use it.
Aineko Macx
#39 - 2015-05-28 07:29:59 UTC
My 0.02 ISKs:
There are many languages that allow you to start coding away in a short time. After your first experiments writing simple procedural scripts however, you should focus on learning object orientation and design patterns. (Yes, functional programming is trending atm, but OO is still essential foundation and most of the big OO languages support functional elements now).

To learn OO you should use a strongly typed, verbose and explicit object oriented language like Java or C#. They might be more cumbersome and your progress will seem slower, however you'll be learning exactly why things are like they are, the simpler more script-y languages will deny you of that learning experience.

Because of the above and because it has a seamless, simplified OO model I recommend against Python as your first language. /puts on flameproof suit. Other than that it is a very nice and consistent language.
PHPs OO model is nearly as developed as Java's, but I would also recommend against it as a learning language as it's much too lenient so you might be learning bad thingsā„¢ and because it's lack of data structure variety. Facebooks PHP spinoff language "Hack" solves exactly these issues, but it's a only niche language atm.

Finally although I recommended Java for learning, I dislike doing web projects with it, it is cumbersome and a resource hog (I'm saying that as a CS master working at a Java shop).

It all comes down to your goals. Do you actually want to learn programming or just knowing enough to hack something together? What is the desired final product of your coding efforts?
Barrak
The Painted Ones
#40 - 2015-05-28 23:55:15 UTC
Aineko Macx wrote:
It all comes down to your goals. Do you actually want to learn programming or just knowing enough to hack something together? What is the desired final product of your coding efforts?


Thank you for your input!

In relation to your question. I don't foresee a career in coding. I'm fairly senior in my current sector (apart from being out of work currently) and do not wish to start at the bottom in another sector (at least at this stage).

However I've always got ideas bouncing around in my head on how various systems could be improved within the work environment. Couple that to a love for this game and wanting to use tools to compare various markets and then slowly step into industry.

My main issues around doing that with what is already out there is that I love designing my own things and have a few trust issues Big smile. Thus if I can design something that works for me that noone else can access then I'd be delighted.

During my reading recently on the topic I've read alot about the Raspberry Pi's and there are a ton of projects I'd like to give ago around that too.

So.... I don't envisage a career changing move (unless I happen to be a complete natural at it Roll). But I can definitely see a use for it myself.

Hopefully that answers your question..... in a roundabout way.

Regards

Barrak
Previous page123Next page