I was planning on pulling the replays out and making the search function more intuitive as the next project just an FYI
Legacy client not working
Things only need work when they are bad or broken. I don't work on my truck every day. Outside of some simple maintenance every few months, it does what it is supposed to do without any work required from me. If my neighbor is constantly working on his truck I don't assume that his truck is better than mine, I assume it is worse because it requires a lot of work. That's the same way I feel about these clients.
The python client works just fine and occasionally requires some maintenance every few months. Some random person comes along and fixes it rather quickly. A couple of the tabs don't work because they use old PHP stuff that was deleted for whatever reason. I doubt it would take much to get them working with the new API, I can use the API in my web browser so it seems pretty simple, but nobody cares about those tabs anyway. The Java client is constantly getting lots of work because it sucks and still needs a lot of work.
On the topic of client tabs. It seems pretty stupid for these things to even be implemented in the client. It would be most efficient to implement them as web pages. This would make it possible to have replays, mods, maps, and leaderboards on the FAF website without requiring any client. The clients could simply display these pages and the tabs would be consistent and functional in both clients for free. This effort doesn't have to be duplicated and shouldn't be. Blodir created an online replay tool, and the leaderboards are already online, so this is clearly possible.
I can see an immense amount of work going into the Java client but I still see all of the issues I mentioned remaining year after year, most of which were reported even before it was made the official client. I can see virtually no work going into the Python client yet it remains mostly functional and preferred by many people. I'm fairly confident it would take less work to fix the tabs in the python client and keep it running than to bring the Java client up to my standards. It would even be mostly free if the tabs were online.
Of course, you cannot force people to do this. If they adamantly refuse to work on the Python client for whatever reason then that's how it will be. I can also continue to adamantly believe that is a stupid thing to do and complain about it. I am equally stubborn and refuse to open FAF anytime the Python client is broken and the Java client still sucks. I see them wrestling with Java and JavaFX constantly so it is strange for them to prefer it. In this language and framework, it is apparently a monumental task just to display a chat window and user list without using all of your RAM and CPU. Anyone who can program in Java can program in Python and vice-versa.
Yes, I am grumpy and lazy and won't do any work on either client myself. People do work for free and I complain about it. So it goes.
"Preferred by many people." Only like 5% of FAF continued to use the Python Client within weeks of deprecating it. Most people just don't care what they use and will just take the one that you put in front of them, really. Or they just do prefer the Java Client.
I don't really care about the client/web-based replay stuff, I just want the UX experience better. Whichever way brings that in is good to me.
Why is it always the guy who says "could have simply been refactored and improved" and "I doubt it would take much" that never contributed single line of code.
If it's all THAT simple, well, could you show us? We'd like to see.
@ThomasHiatt said in Legacy client not working:
- Java client has cost FAF a very large amount of developer time for an inferior and unneeded product. Dev power is supposedly scarce around here and this is an egregious waste. The python client could have simply been refactored and improved. Even after several years of work the Java client is not really any better.
"Inferior": subjective
"unneeded": no
"not really any better" : repeating urself
"could have simply been refactored": so simple that nobody showed up for like 2 years after repeated calls for more python devs in the forums;
If was repeated about a 100 times already, but the python client was so abandoned that it actively blocked improvements to the entire rest of the FAF infrustructure.
Your nice idea about making websites today for vault tabs is only easily possible today because the Java API exists, which was basically blocked from being improved upon by the python client.
Java client reduced backend maintenance cost (which is more important than all of the points in your list), made map gen improvements easier or even happen at all, makes TMM UI happen and will probably in the future wipe your ass for you while you sit on the toilet complaining about it without noticing.
I was sad, that 0.18.9 wasn't working anymore .... but (in the getting-better-java-client) I got a link to here.
Very happy you fixed it... good old python-client. Thx
- The client now can keep game files in cache like the Java client.
- Fix fafbeta and fafdevelop updating issues.
- Now it is possible to browse and search mods/maps by name in the vaults. Looks pretty ugly, but works! (i hope so)
@Gatsik I ask once more: why don't you publish your changes to Github? Other people might want to build on top of your changes.
We can make you maintainer of the project and you can build official releases.
"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā Benno Rice
But they are on Github, aren't they? Because I'm not a programmer and, firstly, I don't want to spoil anything, and secondly, I don't know when I'll stop trying to fix it.
P.S. Updated the release binary of the previous post from here, so map search should start to work
Well you started with whats on Github. So obviously it is found by people who are interested in it.
Also: What's there to spoil? Right now the github version is majorly broken and you have fixes.
"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā Benno Rice
For some reason, the leaderboard tab stopped working at some point. It used to just show the leaderboards web page from the FAF website. I think that is the ideal solution since it lets you look at the ladder league standings and stuff from within the client.
@Brutus5000 I mean I read the docs, and I'm sure my code is awful inconsistent in terms of these requirements, I didn't use logger as I'm not sure where it is needed, repetitions that probably could've summarized into some classes, etc.
I can do a pull request so someone who has expertise can review it if that is what you want from me.
@ThomasHiatt I was thinking about using those internal 'Air scouts', 'Tech 1', ... tabs to rename them and asking api, since the playerDivisionInfo is available here, but probably adding the website would be easier.
@Gatsik I took a look at your commits , and as a long-time Python client maintainer I officially bless them as good.
- Display the leaderboards web page from the FAF website as leaderboards
- Newstab: display images and links
- Vaults tab: items' icons (known or unknown) are always shown
Unofficial Python client 0.18.13
Created a pull request so other people who might want to build on top of these changes are able to do this.
The pull request got merged and officially released by Strogo
"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā Benno Rice
I have not enough acquaintances to test it properly (and too dumb to write unit tests), so here it is:
Unofficial Python client 0.19.1 omega TMM
If it's OK, then I'll do a pull request a little bit later, because I had connection issues today (but also I had the same issues with 0.19.0, so It shouldn't be related to TMM).
Anyway, It needs further work.