Yeah, another problem with this team is the lack of a healthy sense of humor.

If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!Discussion breeds innovation.

By the way, there is a weird bug when opening this thread from search.php?search_id=unreadposts
If I open it from there, I can't reply to the thread or vote in polls (the URL it opens with is viewtopic.php?f=1&t=29706, and as you can see, it sets the forum parameter to 1, which is viewforum.php?f=1.
I'm not sure if I'm the only one who has that problem, but that should be fixed in either case, probably moving the topic to a different subforum would help. I've also observed the same problem for various other topics in the past few years.

If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!Discussion breeds innovation.

I know i haven't been very active lately so from a developers point of view i don't really have the right to speak, but i can speak as a pretty much an every day user since i run a little L2j server for me and my friends(5-10 players).

I haven't been here for more then 1 year and 4 months so i can't talk for the past, but my experience in this time has been more then well. I have to admit there are some ups and downs but generally you get rewarded for your work. I know it's a pain in the arse if stuff you do doesn't get commited. I know how it is i was eager like a small dog to get to Adv. Users and i was pissed when St3et and Citizen got their quests commited and my quests were still waiting. But eventually i got accepted there and gained new stamina to work and so i became an Initiate and then gained again new stamina and now reached Junior Developer. What happened from start especially was that my goal was to get to Junior and not higher so i lost my goal in the project add upcoming colledge and a job and well you end up timeless and have to focus on other things then an open-source project which is your hobby. All i am trying to say is be more patient to the devs cause they are no diffrent then you are except of the part of the commit button priviledge which they earned. I know that that very button is also your ticket to that same button in long-term but please be patient cause you may have the same eagerness we once had but don't hate us for loosing it.

As it goes for code standards etc. that go that much up some people noses i'll just talk about the one that is discussed about the most. The case braces. Sadly as Zoey said few times we cannot include it in L2j Formatter for Eclipse because Eclipse doesn't support that. It maybe doesn't add any value to code if we add it to short cases, but it makes code a lot clearer if you add it to bigger cases. But how to determine how big a case needs to be to make it "ok" to add curly braces? This is like saying how big does need a tidal wave to be to close the Thames Barrier or to leave it open? If it's 2 meters and 99 centimeters it's ok and if it's 3 meters it's not ok ? To every rule there is a downside and an upside a.k.a a bad side and a good side. That is something you cannot escape. It was a rule made by Zoey and UnAfraid since they find it useful. I do not understand why there has to be so much useless words spend over that while it takes merely 10 seconds for a contributor to add them before posting a contribution.

What would i like to see is synchronization once per month of all stuff that can be synchronized that has matured enough to be considered high-quality code. This will make synchronization a pain but code will move faster to stable branch. BETA should be what it's name suggest, an open play ground for wild ideas to mature and become stable. Imo all big reworks should be kept seperate or in a seperate branch and later merged. There are things that could easily be passed into STABLE with synchronization each month... AI's, Quests, Handlers, Skill fixes etc. Also all bug fixes should be directly commited to both branches. That is my idea. Have a 2 week period of commits, 1 week of proper testing and bug fixing or a few more if needed then prepare a synch package.

I hope L2j will stay on it's curse and complete Hi5 in total. Which means all features implented and core reworked completely as in L2Script,Quest,AbstractNpcAI etc. reworked Jython removed and new listeners from UnAfraid implented. That would make Hi5 Core a great starting point for trying to develop new chronicles and update old ones based on current core. Even though some reject the idea of 1 core and many datapacks it would be the easiest to maintain it imho.

xban1x wrote:[...]As it goes for code standards etc. that go that much up some people noses i'll just talk about the one that is discussed about the most. The case braces. Sadly as Zoey said few times we cannot include it in L2j Formatter for Eclipse because Eclipse doesn't support that. It maybe doesn't add any value to code if we add it to short cases, but it makes code a lot clearer if you add it to bigger cases. But how to determine how big a case needs to be to make it "ok" to add curly braces? This is like saying how big does need a tidal wave to be to close the Thames Barrier or to leave it open? If it's 2 meters and 99 centimeters it's ok and if it's 3 meters it's not ok ? To every rule there is a downside and an upside a.k.a a bad side and a good side. That is something you cannot escape. It was a rule made by Zoey and UnAfraid since they find it useful. I do not understand why there has to be so much useless words spend over that while it takes merely 10 seconds for a contributor to add them before posting a contribution.

[...]

I hope L2j will stay on it's curse and complete Hi5 in total. Which means all features implented and core reworked completely as in L2Script,Quest,AbstractNpcAI etc. reworked Jython removed and new listeners from UnAfraid implented. That would make Hi5 Core a great starting point for trying to develop new chronicles and update old ones based on current core. Even though some reject the idea of 1 core and many datapacks it would be the easiest to maintain it imho.[...]

I also do not understand why the continued perpetuation of the curly braces example I gave. It was just a small example of the way good implementations were (are..?) refused just because, sometimes, they just didn't pass the L2J code cosmetic standards check. But what makes real forks happen, isn't just this. It's because the only "open" thing about L2J development are the sources, which are published. There are no "openings" of any other kind in it. In order to get commits accepted you have to code like you were their disciple, following their sometimes outright broken standards, and code like you religiously learned to code from them. And even that changes, according to the whims of the current L2J leader board at any given time. The formating is just an example, which I see people are starting to blow out of the proportion I intended.

For a real practical example, let's see how long L2J takes to fix what I am calling a bug, that causes it to eat an insane amount of memory because one of them decided it was a good idea to store full stack-traces in string objects, "just in case" they would need to print that info for debugging. I found that just by looking at code over 30 minutes of wondering why the memory requirements for a clean L2J are currently so massive in comparison to what was actually added in terms of core functionality, since last time I checked. Those that don't understand what's wrong with this, refrain from commenting about stuff you don't know.

A second example, the Javolution (FastMap<> , FastList<>, ... sounds familiar?) library now currently is capable of executing arbitrary code in a separate compute context. This means that people can offload difficult tasks to be processed in GPUs/Compute cores rather than being bound by CPU. The possibilities for this are amazing. But L2J is sticking with old 5.5.1 version, I guess, just because changing to the current version causes errors since the current Javolution implementation is missing an object called "FastList"... because it was duplicating function with FastTable. All it takes to solve this is to replace all the "FastList<>" around with "FastTable<>". I did this in a few hours, by hand, just because I felt like it and wanted peace of mind that no automatic procedure wasn't going to muck anything up, when I could have used automatic replacement. Or, we could do it L2J style like this...

... and then just let your IDE sort the broken references automatically.

... Or maybe, how about... insisting on using the slow-ass over-bloated c3p0 database connection pool when there are better alternatives out there, which aren't any less stable/reliable? It only needs to change ONE class: L2DatabaseFactory. Especially since the core doesn't seem to be making any use of the, more advanced features of c3p0. If someone feels like to overdo it, they could also change that class to support pluggable pools, so users could pick their preferred flavor?

maneco2 wrote:The l2jserver team this getting pretty good, and who want to talk nonsense and bad that it's free, find something else to do, all are to be congratulated.

In my opinion too, they should be congratulated. Every single one of them. But I also add to that, that they also need to be held accountable for the stuff they do wrong, and persist in doing so. If they ever get the feeling that everything they do only rewards them with "bad talk" and "nonsense", then IMO they should rather take it as evidence of... "something", and maybe act accordingly to fix it. But that's not what I see happening. If nobody tells them when they are wrong, how can they know when according to their standards everything is good? Of course, they also have grown the habit of dismissing this kind of feedback, as if people are just bashing them. Like maneco2 is doing: this is not bashing them. It's called "discussion". I understand that people are not used to seeing this here.

About Javolution, I do know the project lead there (we are facebook buddies ) and we are waiting for the stable 6.x version due we have customs in our outdated 5.x version

About c3p0, we had bonecp for a little while and it didn't work very well, so we didn't invest much time, there are other alternatives, maybe in the future we will change it, for now c3p0 is an stable, active, clean and reliable api that we have come a long time

If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!Discussion breeds innovation.

Are you kidding me? You now have moderation on the posts in this thread? Censorship is what I call it.
Edit: WTF, I wrote a reply to this thread and the post was said to be awaiting moderation. That's not solving the no-reply from ?f=1 problem.

If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!Discussion breeds innovation.

jurchiks wrote:Are you kidding me? You now have moderation on the posts in this thread? Censorship is what I call it.
Edit: WTF, I wrote a reply to this thread and the post was said to be awaiting moderation. That's not solving the no-reply from ?f=1 problem.

I'm trying to fix it, why do you shoot first and ask later? Very bad attitude

If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!Discussion breeds innovation.

There was problems with that impl with more then 200 players server went unstable.
You cannot change database connection pooling like that you need to make tests to be sure that it will be stable i had to learn it by the hard way..

The point about c3p0 being obsolete still stands though. There are better options out there.

If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!Discussion breeds innovation.