SRL Archive - S.M.A.R.T.

Freeing Objects and Crashing


BenLand100

2011-09-08 08:31:10

Okay, so people clearly don't understand basic tenants of memory management, because I keep getting asked this question over and over again:

"Can you add something to SmartFreeObject that keeps it from crashing or add some way to check if an object is valid?"

The answer? Unequivocally:

"No."

Why? Simple, a valid object is one that JNI returns via SMART when you call some method with the words "Get" and "Object" in it. Valid objects are not going to be -1, -2, or 0 as those are defined as "Error" values by either SMART or JNI. JNI specifies that you SHOULD NOT under any circumstance pass an invalid object to JNI methods because the virtual machine is written to be fast, not tediously error checking every object. If you pass an invalid object (read: invalid memory address) you WILL crash the process. You have the ability to keep track of what's valid or not, I have no way to check validity besides maintaining a list of returned objects and checking to see if they have been freed yet (I'm not going to do this, so don't bother asking), so stop being lazy and write good code. People use JNI all the time without problems, SMART reflection methods are thinly wrapped calls to JNI which are thinly wrapped uses of the java.lang.reflect API. (see the source https://github.com/BenLand100/SMART/). You should have no problems with this if you're doing it right.

tl;dr GOOD PROGRAMMERS know how to manage memory properly and shouldn't ever ask this question.

BenLand100

2011-09-08 08:34:59

[23:35:06] <Drakan> Hey man, I was wondering if some exception handling could be added for SmartFreeObject
[23:35:20] <Drakan> if you do SmartFreeObject(2345) then it crashes simba
[23:35:59] <Drakan> and you can;t just do a SmartIsNull check because that would just crash too
[23:54:18] <BenLand100> don't use invalid objects… obvious
[23:54:28] <Drakan> right i got that but
[23:54:33] <Drakan> sometimes things just mess up
[23:54:46] <Drakan> it wouldn't hurt to add a little check
[23:54:49] <BenLand100> fix them
[23:55:04] <Drakan> we can't even figure out whats causing it
[23:55:24] <Drakan> but i see nothing wrong with adding a simple check
[23:55:25] <BenLand100> also, i can't check validity any better than you can
[23:55:33] <Drakan> ah thats good info to know then
[23:56:30] <Drakan> one thing i hate about JNI is how crashes really eff things up
[23:58:30] <BenLand100> this is the problem with letting people who can't program, program. its like "can you just make a method that does the work for me?"
[00:56:50] <Drakan> BenLand100 little harsh yah?
[00:56:56] <Drakan> havn't done anything wrong to you
[00:56:59] <Drakan> we make a simple mistake
[00:57:09] <Drakan> u judge to the very extreme
[00:57:17] <Drakan> i think you need to step back and relax a bit bud
[00:57:34] <Drakan> asked you a simple question and you beat around the bush till you finally tell me the info I need
[00:57:40] <Drakan> i say ok i'll fix my own problem then
[00:57:56] <Drakan> this is the problem having SMART led by someone like you
[00:58:18] <Drakan> "can you all just know everything so I don't have to have any interaction with you?"
[00:58:32] <Drakan> sorry we don't all waste our lives away in front of a computer screen.
[00:59:46] <Drakan> you expect perfection from everyone but the whole point of SRL is to learn
[01:00:12] <Drakan> Of course I'm not the greatest programmer, but asking for a simple error checking doesn't mean I can't program at all
[01:00:32] <Drakan> All I asked is if you could handle an exception being thrown in your program
[01:00:50] <Drakan> Honestly man, you have issues. Get over it. Get over hating me for no reason.
[01:00:56] <Drakan> This is stupid and ridiculous

Case in point, there is no "simple check" but it's trivial to keep track of what is or is not a valid object. There is NO REASON you should get them confused besides shitty code, shitty algorithms, shitty organization, shitty datastructures, or general stupidity.

Flight

2011-09-08 08:53:45

Allow me to agree with Drakan.

Harry

2011-09-08 08:59:37

Is it not faster for the JVM/whatever all that Java stuff is, to remember the "stuff", rather than slow Pascalscript?

BenLand100

2011-09-08 09:05:40

From: Flight
Allow me to agree with Drakan.

Everyone knows I have issues. What's surprising is that people know this and still ask me stupid questions. It's not a problem with SMART or JNI, it's a problem with your code, end of story.

From: Harry
Is it not faster for the JVM/whatever all that Java stuff is, to remember the "stuff", rather than slow Pascalscript?

There's no need to slow pascalscript or remember stuff. Utilizing logic that relies on "if this is invalid, it does nothing, or returns a negative result" is the main problem here. In real programming, invalid causes crashes, and that's what I was getting at.

Nava2

2011-09-08 09:20:21

This was already written once for SMART, does exception handling in PS not save these issues?

Bixby Sayz

2011-09-08 09:44:09

From: Nava2
This was already written once for SMART, does exception handling in PS not save these issues?

Nope. Learned this the hard way. You can wrap your code in exception handling but it doesn't get a chance to trap it.

Nava2

2011-09-08 09:46:54

From: Bixby Sayz
Nope. Learned this the hard way. You can wrap your code in exception handling but it doesn't get a chance to trap it.


Well, in that case I would have to say we are SOL, then. I understand where Ben is coming from here, and I really see no reason as to why people cannot properly memory manage. Yes, it can be difficult, but that is part of how we program.

Ben.. you probably could have said it in nicer words in a few places. :)

One suggestion might be to have the wrappers used and tracked. Then if an invalid reference is about to be passed, it could warn. Also, Bixby, I don't think we are talking about the same system.. see: http://villavu.com/forum/showthread.php?t=62231

Wizzup?

2011-09-08 10:45:15

From: BenLand100
There's no need to slow pascalscript or remember stuff. Utilizing logic that relies on "if this is invalid, it does nothing, or returns a negative result" is the main problem here. In real programming, invalid causes crashes, and that's what I was getting at.


Not disrespecting anyone's work, but I must agree with Benland here. This has always been an issue and there is no known workaround. You just need to make sure you free your stuff and don't pass invalid references. The code needs love and logic. Nothing else. A crash is supposed to crash, it just reflects (hoho) an error in your code.

E: Once again - I basically *made* the foundation required to at least check if you are freeing invalid objects. It really surprises me no one uses it.

Flight

2011-09-08 10:56:11

From: Wizzup?
E: Once again - I basically *made* the foundation required to at least check if you are freeing invalid objects. It really surprises me no one uses it.


Could you refer me to the link, please? I'd really like to learn more about it if it's really this important. It's a good place for me to start, atleast.

Nava2

2011-09-08 12:32:59

From: Flight
Could you refer me to the link, please? I'd really like to learn more about it if it's really this important. It's a good place for me to start, atleast.


Check my post.

Brandon

2011-09-08 18:13:54

I don't get it… what is someone supposed to do if smart returns no error? It returns Field not found if an invalid hook was passed.. but how would you know if the hook is invalid or the object is just not there without passing it first? I don't see any functions in any of the includes that check if an object/hook is valid without first passing it.

"Good programmers know how to manage memory properly".. that is a load.. Even the microsoft programmers have memory leaks in their programs.. Check out the windows 7 acpi management memory leak. They still don't know whats wrong and how to fix it.. And I'm almost 100% sure that they are better than anyone here in programming. Even the best mess up.. so what? Your gunna call them bad? Shouldn't ask that question.. if you don't ask, you'll never know.

Dgby714

2011-09-08 18:53:05

From: ggzz
Even the microsoft programmers … Even the best mess up.. so what? Your gunna call them bad?


That is completely different.
Compare the size of windows to say MSI?
Also I wouldn't call Microsoft's programmers the "Best".

BenLand100

2011-09-08 18:53:22

From: ggzz
I don't get it… what is someone supposed to do if smart returns no error? It returns Field not found if an invalid hook was passed.. but how would you know if the hook is invalid or the object is just not there without passing it first? I don't see any functions in any of the includes that check if an object/hook is valid without first passing it.

1) Smart returns error codes as -1 or -2. JNI generally returns 0 for invalid requests (or null result). For nulls, there is a method to check for that.
2) Hooks should have already been cross referenced with the client, there is no magic or ambiguity there. You can always know whether a call will fail or succeed before doing it.
3) By 1 and 2, you should always know without trying.

From: ggzz
"Good programmers know how to manage memory properly".. that is a load.. Even the microsoft programmers have memory leaks in their programs.. Check out the windows 7 acpi management memory leak. They still don't know whats wrong and how to fix it.. And I'm almost 100% sure that they are better than anyone here in programming. Even the best mess up.. so what? Your gunna call them bad? Shouldn't ask that question.. if you don't ask, you'll never know.

I fucking lol'd, that is all.

Echo_

2011-09-08 21:45:59

Ben is absolutely right, SMART shouldn't have to deal with attempts to free invalid objects and other script based inconsistencies. The root of the problem is here:

[23:54:33] <Drakan> sometimes things just mess up

Nava2

2011-09-09 00:19:17

From: BenLand100
1) Smart returns error codes as -1 or -2. JNI generally returns 0 for invalid requests (or null result). For nulls, there is a method to check for that.
2) Hooks should have already been cross referenced with the client, there is no magic or ambiguity there. You can always know whether a call will fail or succeed before doing it.
3) By 1 and 2, you should always know without trying.


Ben, would it be a huge stretch to have you write a quick guide on what each of the symbols mean? Ex. what -1 as an error code entails? If I recall, we had those checks in the original reflection but it was lost in translation. I am curious as to why, but perhaps its because people just assumed.

Once again, Ben if you could fill us in it would ease the effort of trial and error or researching what you already know. This could then be implemented into the system that Wizzup already wrote.

lordsaturn

2011-09-09 00:54:15

From: BenLand100
What's surprising is that people know this and still ask me stupid questions.


We're just trying to ease you into a more tolerant lifestyle, bruh. ;)

tarajunky

2011-09-09 02:15:41

Instead of raging at people, why don't you figure out why the newest SMART runs like a steaming pant-load on Windows 7?

ry0240

2011-09-09 03:13:24

Lol, sounds like this thread should head to the Bashing club.

Flight

2011-09-09 06:25:21

From: ry0240
Lol, sounds like this thread should head to the Bashing club.


On the contrary, there's only one person in this thread 'bashing' anybody.

BenLand100

2011-09-09 07:56:33

From: tarajunky
Instead of raging at people, why don't you figure out why the newest SMART runs like a steaming pant-load on Windows 7?


mfw instead of raging at people, let's rage at people

Simple answer, I did a beta test for a few weeks and no one told me anything was wrong, and until now, no one told me anything was wrong (except someone mentioned that the typing bug was not fixed in Windows 7). I don't have Windows 7 or time to test, but I did make sure to wipe my ass extra well this morning to try to fix your well documented bug report of "runs like a steaming pant-load". Hope you appreciate it.

From: Nava2
Ben, would it be a huge stretch to have you write a quick guide on what each of the symbols mean? Ex. what -1 as an error code entails? If I recall, we had those checks in the original reflection but it was lost in translation. I am curious as to why, but perhaps its because people just assumed.

Once again, Ben if you could fill us in it would ease the effort of trial and error or researching what you already know. This could then be implemented into the system that Wizzup already wrote.

-1 means something went wrong, -2 means something else went wrong, 0 means JNI things something was wrong. Like, there really isn't any more detail needed. If you want to know exactly why SMART returns one or the other, check the source (Reflection.cpp). If you all took out the error checking, NO WONDER there are problems.

E: Actually, turns out that the Object methods only return error codes of 0 regardless of what went wrong, it's the other methods that return -1,-2,0 for errors. So, a result of 0 should indicate something went wrong. But nothing should *ever* go wrong, provided your code is good, which I believe is my rational behind using 0, because it can also be null objects, iirc. Nulls are useless to you anyway.

Nava2

2011-09-09 10:55:48

From: BenLand100
-1 means something went wrong, -2 means something else went wrong, 0 means JNI things something was wrong. Like, there really isn't any more detail needed. If you want to know exactly why SMART returns one or the other, check the source (Reflection.cpp). If you all took out the error checking, NO WONDER there are problems.

E: Actually, turns out that the Object methods only return error codes of 0 regardless of what went wrong, it's the other methods that return -1,-2,0 for errors. So, a result of 0 should indicate something went wrong. But nothing should *ever* go wrong, provided your code is good, which I believe is my rational behind using 0, because it can also be null objects, iirc. Nulls are useless to you anyway.


Thanks for the somewhat vague clarification.

I did not remove the error checking, that was others, but the I would be inclined to say that under the rationale that very seldomly does it ever go wrong would be the main reasoning. Wizzup's wrapper system could easily be adapted to do this error checking and throw exceptions/generally warn the user. This would be a better system than we have.

On NULL objects, perhaps this is different, but what about the NPCs which are considered NULL? Do they count as NULL objects under your categorization?

Drakan

2011-09-09 13:23:50

From: Nava2
Thanks for the somewhat vague clarification.

I did not remove the error checking, that was others, but the I would be inclined to say that under the rationale that very seldomly does it ever go wrong would be the main reasoning. Wizzup's wrapper system could easily be adapted to do this error checking and throw exceptions/generally warn the user. This would be a better system than we have.

On NULL objects, perhaps this is different, but what about the NPCs which are considered NULL? Do they count as NULL objects under your categorization?


Negative, "Null" npc's are not actually null. Their name text returns as 'null' and they just require some digging for the parents to get the actually information of the NPC. Ben is right, the code should be fixed and have it's own error checking, however I think it would be more efficient to do it in the SMART wrapper or in a plugin (which I'm working on right now). I just disagree with his attitude towards others. If you have your personal problems, keep them just that: personal.

Gu3st...

2011-09-09 15:58:51

I've been pretty quiet and simply lurked this thread for a while, and now I just felt like saying that Drakan's post (post #23 in this thread) pretty much sums up my thoughts.
I agree with Ben when he's saying it's our own fault for making shitty code (and for not checking if what we just made is shitty code), but he had no real reason why he responded like that instead of being more sensitive and friendly…

BenLand100

2011-09-09 22:55:31

From: Nava2
Thanks for the somewhat vague clarification.

I did not remove the error checking, that was others, but the I would be inclined to say that under the rationale that very seldomly does it ever go wrong would be the main reasoning. Wizzup's wrapper system could easily be adapted to do this error checking and throw exceptions/generally warn the user. This would be a better system than we have.

On NULL objects, perhaps this is different, but what about the NPCs which are considered NULL? Do they count as NULL objects under your categorization?

I don't understand what more you expect. If it returns zero, there was a problem. If there was a problem, you dun fucked up cause the hook path or something about the way you used it was invalid which shouldn't happen cause you should ALWAYS know ahead of time about the nature of the call you make. Really, the method should not tell you WHY it failed, only that it failed….

To the rest of you, I'm terribly sorry your feelings are so easily hurt. However, if you're having problems that stem from shitty code or asking questions/making requests that are irrelevant and/or not the way things would be best done, you obviously are not a good programmer. Even if you are, if having someone tell you that somehow changes the actual situation, well, it sounds like you have other problems also.

Specifically to Drakan on a somewhat different note, I would like to make the impression that keeping track of what objects have been returned in any sort of list (whether in wrappers or in some plugin system, or otherwise) is a horribly bad idea, ESPECIALLY if you're going to distribute it. It is good for debugging, i.e. finding the parts of code that are failing to keep track of objects, and nothing else. I STRONGLY SUGGEST that you fix the code and not cover up the problem. I can promise that any algorithm you'd ever want will work fine without you implementing this system, provided it's written properly. Even if you make a plugin, native calls from ps are expensive…. And no, that's not a good excuse to slam it into SMART.

Drakan

2011-09-09 23:31:37

From: BenLand100
I don't understand what more you expect. If it returns zero, there was a problem. If there was a problem, you dun fucked up cause the hook path or something about the way you used it was invalid which shouldn't happen cause you should ALWAYS know ahead of time about the nature of the call you make. Really, the method should not tell you WHY it failed, only that it failed….

To the rest of you, I'm terribly sorry your feelings are so easily hurt. However, if you're having problems that stem from shitty code or asking questions/making requests that are irrelevant and/or not the way things would be best done, you obviously are not a good programmer. Even if you are, if having someone tell you that somehow changes the actual situation, well, it sounds like you have other problems also.

Specifically to Drakan on a somewhat different note, I would like to make the impression that keeping track of what objects have been returned in any sort of list (whether in wrappers or in some plugin system, or otherwise) is a horribly bad idea, ESPECIALLY if you're going to distribute it. It is good for debugging, i.e. finding the parts of code that are failing to keep track of objects, and nothing else. I STRONGLY SUGGEST that you fix the code and not cover up the problem. I can promise that any algorithm you'd ever want will work fine without you implementing this system, provided it's written properly. Even if you make a plugin, native calls from ps are expensive…. And no, that's not a good excuse to slam it into SMART.


Well of course, the system we're implementing is specifically for debugging and finding leaks. That way we can fix then, not just cover them up. And I just wanna say thanks for your work on SMART and good luck with whatever is going on in your life right now.

Jakkle

2011-09-10 10:47:25

Well good luck with what your doing Drakan. I hope what your doing starts the ball rolling to get things sorted. You're a grate guy, keep up the good work :)

Nuff <3

lordsaturn

2011-09-11 06:05:09

From: BenLand100
I don't understand what more you expect. If it returns zero, there was a problem. If there was a problem, you dun fucked up cause the hook path or something about the way you used it was invalid which shouldn't happen cause you should ALWAYS know ahead of time about the nature of the call you make. Really, the method should not tell you WHY it failed, only that it failed….

To the rest of you, I'm terribly sorry your feelings are so easily hurt. However, if you're having problems that stem from shitty code or asking questions/making requests that are irrelevant and/or not the way things would be best done, you obviously are not a good programmer. Even if you are, if having someone tell you that somehow changes the actual situation, well, it sounds like you have other problems also.


Ben has a good point here. You shouldn't write code that doesn't work. Especially if you are just learning how to program, you shouldn't write code that you don't understand how it works.

Ben's sticky on "REFLECTION NEED TO KNOW" is a need-to-know, but a scripter's individual knowledge must go deeper than that. After you learn the code i.e. read the Reflection library, you need to understand what is happening behind the scenes. How you get there? I can't say for sure. Maybe you could do what Ben did, and write a reflection tool. Or maybe write your own bot, and see how far you can get.

What tickles ben's chin though, I can tell, is that people who don't understand the concepts i.e. how SMART interfaces, are trying to code for SMART.


tl;dr Code Monkeys don't make Good Programmers.

Wizzup?

2011-09-11 06:22:29

I think it's time we stop throwing around terms like ``Good Programmer'' in this thread. It's way too relative. Yes, BenLand100 is a remarkable programmer - but he's probably a shit programmer compared to me (or himself if he did a compsci study) in X years. Or compared to, Linus Torvalds, whatever. It doesn't matter. It's way too relative and a stupid way to diminish someone. I find the current reflection developers more than capable. Everyone makes mistakes and these guys learn fast.

grats

2011-09-11 06:49:21

From: ggzz
I don't get it… what is someone supposed to do if smart returns no error? It returns Field not found if an invalid hook was passed.. but how would you know if the hook is invalid or the object is just not there without passing it first? I don't see any functions in any of the includes that check if an object/hook is valid without first passing it.

"Good programmers know how to manage memory properly".. that is a load.. Even the microsoft programmers have memory leaks in their programs.. Check out the windows 7 acpi management memory leak. They still don't know whats wrong and how to fix it.. And I'm almost 100% sure that they are better than anyone here in programming. Even the best mess up.. so what? Your gunna call them bad? Shouldn't ask that question.. if you don't ask, you'll never know.


I'd put money on wizzup & ben vs a microsoft guy anyday

Wanted

2011-09-11 21:46:24

[Offtopic]

From: BenLand100
Everyone knows I have issues.


From: ggzz
microsoft programmers have memory leaks in their programs..


From: BenLand100
I fucking lol'd, that is all.


From: tarajunky
Instead of raging at people, why don't you figure out why the newest SMART runs like a steaming pant-load on Windows 7?


From: Wizzup?
Yes, BenLand100 is a remarkable programmer - but he's probably a shit programmer compared to me


I Lol'd so dam hard. Every time I was like… there couldn't possibly be a better quote in this thread… and then I read one right after it before I was even finished laughing from the previous one.

[/offtopic]

SMART is progressing nicely. Ben is just the type of guy that has no patience, don't take it personally ha.

BenLand100

2011-09-12 00:01:57

From: Wanted
SMART is progressing nicely. Ben is just the type of guy that has no patience, don't take it personally ha.

Give this man a cookie.

Drakan

2011-09-12 00:05:21

From: BenLand100
Give this man a cookie.


Yeah I gotcha, though you weren't always this way (so it seemed to me a couple years back ;)). I'll be sure not to bother you.

BenLand100

2011-09-12 00:14:55

From: Drakan
Yeah I gotcha, though you weren't always this way (so it seemed to me a couple years back ;)). I'll be sure not to bother you.

Well, honestly, I had no idea who you were (and yes, that does make a difference, this is why name changing is a bad idea). I don't take kindly to random people asking me random technical questions. I get a lot of these young upstarts that think they the shit rainbows and decide they can fix everything but don't even understand the system. They're the kind of people I wish I'd run into when I go clubbing with my nine iron, if you know what I mean.

E: Someone needs to write a "Dealing with BenLand100" guide. In it should be included "always properly introduce yourself and include reasons why he should listen to you" and "ensure you have a good working relationship and that he's aware of it before bothering him with your problems" and "try not to be too offended when he tells you that you're useless, that most likely means you're wording your questions in a bad way" and other things like that.

Jakkle

2011-09-12 00:26:21

From: BenLand100
Well, honestly, I had no idea who you were (and yes, that does make a difference, this is why name changing is a bad idea). I don't take kindly to random people asking me random technical questions. I get a lot of these young upstarts that think they the shit rainbows and decide they can fix everything but don't even understand the system. They're the kind of people I wish I'd run into when I go clubbing with my nine iron, if you know what I mean.

E: Someone needs to write a "Dealing with BenLand100" guide. In it should be included "always properly introduce yourself and include reasons why he should listen to you" and "ensure you have a good working relationship and that he's aware of it before bothering him with your problems" and "try not to be too offended when he tells you that you're useless, that most likely means you're wording your questions in a bad way" and other things like that.


You remind me of a stuck up snob thats rich and like, if your poor and not on 'MY' lev I don't wanna know.

Just because your a good programmer, don't mean you shouldn't help someone out that say (don't have a clue about something). People ask things because they want to learn and get to KNOW how to do things right and NOT to get "blahh blaahhh $"!¬$!% Blahh" I thought thats what we are all here for, to help one another ?

Flight

2011-09-12 01:13:22

From: Jakkle
You remind me of a stuck up snob thats rich and like, if your poor and not on 'MY' lev I don't wanna know.

Just because your a good programmer, don't mean you shouldn't help someone out that say (don't have a clue about something). People ask things because they want to learn and get to KNOW how to do things right and NOT to get "blahh blaahhh $"!¬$!% Blahh" I thought thats what we are all here for, to help one another ?


Not exactly how I would have worded it. :p

My appeal would have gone something like this:

Ben, I most sincerely doubt anyone here has disrespect for you and your skills. I for one am pretty honored to tell people that what I've achieved on Runescape, through botting, is 100% thanks to SRL, Simba, and especially SMART, because of extremely intelligent people, like you, who's behind them making the magic happen. :garfield:

With that being said, I (personally) don't think it's very honorable to tell people they're shit programmers because they're not at the same level as you. I've nervously asked for help from lots of good programmers here before, even Wizzup?. For someone asking for help or advice from someone highly ranked, like you, we can only hope that we're not just a waste of your time and get even a response from you. How long do you think someone would stick around if they ask, for the first time, a simple question and in return they get the response: "you're a shit programmer"?

I'm really thankful that I received positive help from more knowledgeable people when I asked for help. Small things like this really make me feel proud to be a part of the community, and thankful we have down-to-earth people. IMO respect isn't automatically given through a rank on a forum or through rumors you hear about that person, to me it's personally seeing, in your own eyes, what they're like and how they treat others.

I hope you don't take it the wrong way because I mean no disrespect, obviously. But if someone were to ask 'dumb' questions, atleast say "I'm sorry, I can't help you" or "You'll have to do that on your own", pretty simple, ya? ;)


Edit:
Jakkle, I respect you standing up for your beliefs, even if it is to an administrator. Here's some rep. :)

Drakan

2011-09-12 02:17:02

From: BenLand100
Well, honestly, I had no idea who you were (and yes, that does make a difference, this is why name changing is a bad idea). I don't take kindly to random people asking me random technical questions. I get a lot of these young upstarts that think they the shit rainbows and decide they can fix everything but don't even understand the system. They're the kind of people I wish I'd run into when I go clubbing with my nine iron, if you know what I mean.

E: Someone needs to write a "Dealing with BenLand100" guide. In it should be included "always properly introduce yourself and include reasons why he should listen to you" and "ensure you have a good working relationship and that he's aware of it before bothering him with your problems" and "try not to be too offended when he tells you that you're useless, that most likely means you're wording your questions in a bad way" and other things like that.


Apology accepted :P
Honestly guys, this convo is over, whats done is done, and you're not being very productive with the last 2 posts.

Capricorn

2011-09-12 07:59:29

From: Jakkle
You remind me of a stuck up snob thats rich and like, if your poor and not on 'MY' lev I don't wanna know.

Just because your a good programmer, don't mean you shouldn't help someone out that say (don't have a clue about something). People ask things because they want to learn and get to KNOW how to do things right and NOT to get "blahh blaahhh $"!¬$!% Blahh" I thought thats what we are all here for, to help one another ?


I can understand where you're coming from

But at the same time I can see where good ol Bennie is coming from.

I don't think he wants to hold anyone's hand and it's not like he hasn't helped people before. I think a lot of people want to help make reflection better, but a lot of people get in over their heads.

Benland was an ass about it (and when isn't he?) but you can't blame him for losing his patience when people who really shouldn't be joining a project like that if they don't have the experience.

Jakkle

2011-09-12 11:26:21

From: Drakan
Apology accepted :P
Honestly guys, this convo is over, whats done is done, and you're not being very productive with the last 2 posts.


Sorry but when something gets to me I will say how I feel weather people like it or not(maybe thats what ben is just being like). This is the first time if you look that I have ever reacted to someone. I can't stand people that are stuck-up their own arse. People that think they are better or higher than other people are the idiotic fools. I could grow weed better than some people but I wouldn't turn round and be a complete twat to someone if they asked me even a stupid question, I just correct them or IF I know the problem help them sort it out.

BenLand100

2011-09-12 11:31:19

From: Jakkle
Sorry but when something gets to me I will say how I feel weather people like it or not(maybe thats what ben is just being like). This is the first time if you look that I have ever reacted to someone. I can't stand people that are stuck-up their own arse. People that think they are better or higher than other people are the idiotic fools. I could grow weed better than some people but I wouldn't turn round and be a complete twat to someone if they asked me even a stupid question, I just correct them or IF I know the problem help them sort it out.

Hmm, completely off topic, but I like it better this way: "I can't stand people that are stuck-up their own arse. People that think they are better or higher than other people are the idiotic fools." :garfield: