• CoderHire
    5,088 replies, posted
Another question for _Undefined regarding GitHub support. Is it possible to have an addon point to a specific folder in a private repository instead of just the whole repository? It'd really help me having to purchase a more expensive subscription for GitHub in order to fit all my stuff into private repositories because my current subscription only allows 5.
[QUOTE=EvacX;43034813]Another question for _Undefined regarding GitHub support. Is it possible to have an addon point to a specific folder in a private repository instead of just the whole repository? It'd really help me having to purchase a more expensive subscription for GitHub in order to fit all my stuff into private repositories because my current subscription only allows 5.[/QUOTE] I'll look into it when I can. I've been in the hospital for a few days with a member of my family so I don't have time at the minute.
[QUOTE=_Undefined;43034847]I'll look into it when I can. I've been in the hospital for a few days with a member of my family so I don't have time at the minute.[/QUOTE] Oh, of course. Hope everything turns out well with your relative.
[QUOTE=thelastpenguin;43034641] [B]Please provide an actual valid reason as to why you are refusing to post my script and I will rest my argument, but thus far I simply do not see any reason why my script should be rejected, especially when compared to numerous other scripts which you have accepted. All I ask for is a reason as to why it has been rejected describing some actual fault in the script not simply "just cuz"[/B] [/QUOTE] Well, I might try, not sure if my non business level english will satisfy you, not being a native engish speaker has its effects. So, lets get started: Issues: #1: You store the doors in a table, which is fine, but your table is global. It means it messes with other scripts for no other reason, also indexing global tables is slower. #2: You render the overlay on doors that the player looked at so far. This is an extremely odd idea in my opinion. Just keep a list of current doors in the world, use GM:EntityCreated for it. Doing a trace each frame to find if the player is looking at a door is just pointless. #3: You ignore entities that go invalid/gets removed after you put them in your 'door' table. Why can't you just remove their key from the table instead of ignoring the key in a loop? #4: It is a nice touch that the text is exactly where it is supposed to be, but algorythm behind it is rather odd. You do two traces each time a door changes its position/angle, to find where the text should be rendered. I would have done these traces once, and cached them in a local table by the doors model. The position/angle does not affect the rendering offset. Suggestions about code/performance/style: #1: You repedately index the same table without localizing it. Not a big deal, but it is always better not to. Makes the code way more readable, and a bit better in performance. I am talking about these: [lua] if( IsValid( door.GetDoorOwner and door:GetDoorOwner() or ( door.getDoorOwner and door:getDoorOwner() or nil ) ) )then draw.DrawText( (door.GetDoorOwner and door:GetDoorOwner() or ( door.getDoorOwner and door:getDoorOwner())):Name().."'s Door", "NRP_DoorLabel", 0, 0,Color( 55, 55, 55, 255 ) , TEXT_ALIGN_CENTER ) [/lua] #2: lPos is global. Yet again use locals wherever you can. #3: You should use camelCaseNames in config parameters for better readability.
[QUOTE=MDave;43034929]Well, I might try, not sure if my non business level english will satisfy you, not being a native engish speaker has its effects. So, lets get started: Issues: #1: You store the doors in a table, which is fine, but your table is global. It means it messes with other scripts for no other reason, also indexing global tables is slower. #2: You render the overlay on doors that the player looked at so far. This is an extremely odd idea in my opinion. Just keep a list of current doors in the world, use GM:EntityCreated for it. Doing a trace each frame to find if the player is looking at a door is just pointless. #3: You ignore entities that go invalid/gets removed after you put them in your 'door' table. Why can't you just remove their key from the table instead of ignoring the key in a loop? #4: It is a nice touch that the text is exactly where it is supposed to be, but algorythm behind it is rather odd. You do two traces each time a door changes its position/angle, to find where the text should be rendered. I would have done these traces once, and cached them in a local table by the doors model. The position/angle does not affect the rendering offset. Suggestions about code/performance/style: #1: You repedately index the same table without localizing it. Not a big deal, but it is always better not to. Makes the code way more readable, and a bit better in performance. I am talking about these: [lua] if( IsValid( door.GetDoorOwner and door:GetDoorOwner() or ( door.getDoorOwner and door:getDoorOwner() or nil ) ) )then draw.DrawText( (door.GetDoorOwner and door:GetDoorOwner() or ( door.getDoorOwner and door:getDoorOwner())):Name().."'s Door", "NRP_DoorLabel", 0, 0,Color( 55, 55, 55, 255 ) , TEXT_ALIGN_CENTER ) [/lua] [QUOTE] #2: lPos is global. Yet again use locals wherever you can. #3: You should use camelCaseNames in config parameters for better readability.[/QUOTE] [/QUOTE] This is simply untrue unless we are somehow looking at different scripts... which aught be impossible considdering I only uploaded one. my door table for storing the doors is a local table: local doors = {} [QUOTE]if( IsValid( door.GetDoorOwner and door:GetDoorOwner() or ( door.getDoorOwner and door:getDoorOwner() or nil ) ) )then draw.DrawText( (door.GetDoorOwner and door:GetDoorOwner() or ( door.getDoorOwner and door:getDoorOwner())):Name().."'s Door", "NRP_DoorLabel", 0, 0,Color( 55, 55, 55, 255 ) , TEXT_ALIGN_CENTER ) [/QUOTE] is not actually that bad when you consider what the code is doing. It is redundant meaning it is performing work twice but when you consider it is simply doing table indexing and logical comparisons vs the overhead of allocing and assigning a new variable (which would require adding an index to the local variable table) the savings would be essentially negligible. This having been said, if the following is nicer looking to you it could be used: [CODE]local dOwner = ( door.GetDoorOwner or door.getDoorOwner )( door ); if( IsValid( dOwner ) )then draw.DrawText( dOwner:Name().."'s Door", "NRP_DoorLabel", 0, 0,Color( 55, 55, 55, 255 ) , TEXT_ALIGN_CENTER )[/CODE] [QUOTE]#2: You render the overlay on doors that the player looked at so far. This is an extremely odd idea in my opinion. Just keep a list of current doors in the world, use GM:EntityCreated for it. Doing a trace each frame to find if the player is looking at a door is just pointless.[/QUOTE] You should talk to falco about this, door data is not sent to clients automatically, rather darkrp requires clients to poll for door data when they look at a door they have not seen before. I must therefore wait for a client to look at a door before the data is avaliable to display. :P See [url]http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/index6402.html[/url] EyeTraces are cached for each frame so this is not actually running a new trace, it is simply retrieving a value from one that will be generated every frame, regardless of being used or not. [U]lPos being global, good job you did actually find a mistake there. Yay for you.[/U] camelCaseNamesInConfigParamatersIsYourPrefernceButItIsNotAVeryGoodReasonToRejectAScriptNowIsItUnlessYouPlanToBeThatAnalAboutSyntaxToEveryoneInWhichCaseYouShouldProbablyPostACodeFormattingGuideJustSaying. Lastly you mentioned my algorithm being odd, it is rather complicated due to it's need to determine which side of the door is actually it's front which it does by assuming the door is taller than it is wide and then finding the surface that lines up with that front face so it should work with any door model which = coolness. Also you mention skipping over doors rather than removing them. I simply added the skipping code as a fail safe. Doors are map entities. They should never endup being removed in the first place, that is just to prevent it from spewing lua errors in such an event. It is true that there are some optimizations that could be done, yes, but considering the values only update when a door opens / closes and is in the visible area, is it really worth worrying about that much? I chose no, I didn't think it was. Yes you found some issues with my script and yes I will take your feedback into account (thanks for replying) and I will fix them. I just remain a bit puzzled to why the script was rejected when I have seen far worse by far less skilled programmers go through. I mean I've purchased scripts on there that use almost exclusively global variables (and was compelled by my OCD to recode the entire thing...) Ultimately I'm not sure what your review process is but I'm expressing feeling that, at least right now, it seems rather unfair considering the number of requests I've had for some of the scripts you have been rejecting etc... so I really don't understand what your cryteria are for a "good script" since those seem to apply only to me, or maybe that's just how it looks from my point of view.
[QUOTE=thelastpenguin;43035056]is not actually that bad when you consider what the code is doing. It is redundant meaning it is performing work twice but when you consider it is simply doing table indexing and logical comparisons vs the overhead of allocing and assigning a new variable (which would require adding an index to the local variable table) the savings would be essentially negligible.[/QUOTE] Actually, there is [B]no[/B] question that [I]that[/I] piece of code is utterly terrible; completely lacking structure and maintainability.
[QUOTE=EvacX;43035083]Actually, there is [B]no[/B] question that [I]that[/I] piece of code is utterly terrible; completely lacking structure and maintainability.[/QUOTE] I don't contest that that code isn't the "finest piece of code I ever wrote" only that code does not have to be absolutely perfect, essentially models of programmatic perfection to be acceptable on coderhire.com which is what I'm hearing from you. I don't claim that the above code sample is one that I would call good or even one that I'm particularly proud of, simply that not every line of code in every project is perfect but do you guys honestly scrutinize every script posted at such a level and reject them for flaws such as this? If you do truly read every line of code in every script then I stand corrected, but I was not under the impression that you did.
[QUOTE=thelastpenguin;43037294]I don't contest that that code isn't the "finest piece of code I ever wrote" only that code does not have to be absolutely perfect, essentially models of programmatic perfection to be acceptable on coderhire.com which is what I'm hearing from you.[/QUOTE] There's a difference between acceptable code, great code and just plain bad code.
Two people just bought my scripts but I didn't get any notification nor did they get access.
Multiple people are having the same problems, which means it's likely PayPal are having issues. Give it an hour or so and they should all go through fine.
[QUOTE=thelastpenguin;43037294]I don't contest that that code isn't the "finest piece of code I ever wrote" only that code does not have to be absolutely perfect, essentially models of programmatic perfection to be acceptable on coderhire.com which is what I'm hearing from you. I don't claim that the above code sample is one that I would call good or even one that I'm particularly proud of, simply that not every line of code in every project is perfect but do you guys honestly scrutinize every script posted at such a level and reject them for flaws such as this? If you do truly read every line of code in every script then I stand corrected, but I was not under the impression that you did.[/QUOTE] We go through every line most of the time - if not all the time. We denied a guy for having messy font setup code.
It'd be interesting to read a CH reviewer's opinion on my script. I feel like I'd learn a lot from an experience like that.
DMCA'd another leak from a guy I got banned last week. Gooooooood damned skiddles.
[QUOTE=alexanderk;43038867]We go through every line most of the time - if not all the time. We denied a guy for having messy font setup code.[/QUOTE] Well I must admit that this does actually answer my question regarding why it was rejected, I may have reacted a bit strongly as I have had bad experiences with your staff in the past though I do feel you could benefit from some improvements to your review process (particularly creating better dialogues between developers and reviewers to actually diagnose and fix problems instead of causing them to become frustrated enough to go on a facepunch rampage... I wonder who that might be... ) But thanks for clarifying this.
[QUOTE=thelastpenguin;43040283] But thanks for clarifying this.[/QUOTE] Since you're here, how's that F4 menu update coming?
[url]http://facepunch.com/showthread.php?t=1330008[/url] Is it okay that someone that is banned from coderhire is paying to have a coderhire addon modified?
Question: I just submitted a DLC for one of my previously existing addons, and while the DLC is on coderhire, it seems like no one has the ability to see it in the script list. If you go to scripts and search for "dlc" it shows up, but if you sort most recent scripts it's nowhere to be found. Is this intentional? If so that's frustrating. If not, please do reply as soon as you can informing me that that is the case. Thanks a bunch :)
[QUOTE=code_gs;43042764][url]http://facepunch.com/showthread.php?t=1330008[/url] Is it okay that someone that is banned from coderhire is paying to have a coderhire addon modified?[/QUOTE] It's not right in the least, but there is really nothing you can do about it.
[QUOTE=koz;43043199]It's not right in the least, but there is really nothing you can do about it.[/QUOTE] Well you could technically go the non-legal-way and threaten the shit out of him. But then again, don't listen to that, do what you think is best.
[QUOTE=thelastpenguin;43040283]Well I must admit that this does actually answer my question regarding why it was rejected, I may have reacted a bit strongly as I have had bad experiences with your staff in the past though I do feel you could benefit from some improvements to your review process (particularly creating better dialogues between developers and reviewers to actually diagnose and fix problems instead of causing them to become frustrated enough to go on a facepunch rampage... I wonder who that might be... ) But thanks for clarifying this.[/QUOTE] I'll throw that suggestion at _Undefined when he's back from the hospital :)
[QUOTE=alexanderk;43038867]We go through every line most of the time - if not all the time. We denied a guy for having messy font setup code.[/QUOTE] Most of your "denial" reasons seem to be flights of fancy such as not liking the addon or the author, judging by complaints etc. Although you should always refus messy font code, it's the biggest way to cause clientside memory leaks.
[QUOTE=Pantho;43045036]Most of your "denial" reasons seem to be flights of fancy such as not liking the addon or the author, judging by complaints etc. Although you should always refus messy font code, it's the biggest way to cause clientside memory leaks.[/QUOTE] I am a fairly new mod, but so far I cannot really say I have seen scripts getting denied for those reasons. I stay neutral while processing scripts and jobs, trying to remain fair. We may have faults, but ranting will most likely not help. That being said, if you have issues just PM me here or on CH (akoch) and I will attempt to help out. I got some nice ideas for communications I will inform Undefined of though!
[QUOTE=Phoenixf129;43044599]Well you could technically go the non-legal-way and threaten the shit out of him. But then again, don't listen to that, do what you think is best.[/QUOTE] Yeah if they're little kids it will freak them out but some people will just look at you and say, "Cool story bro." then ban you or add you to ignore. Therefore threatening is pointless if the person has a brain. Also threatening people over the internet makes you look like a stereotype for fat kids who live in their parents basement.
[QUOTE=koz;43045779]Yeah if they're little kids it will freak them out but some people will just look at you and say, "Cool story bro." then ban you or add you to ignore. Therefore threatening is pointless if the person has a brain. Also threatening people over the internet makes you look like a stereotype for fat kids who live in their parents basement.[/QUOTE] One way would be to prevent the issue from happening again, which would be to create a basic list of who stole/etc. This would help developers from working for them, and perhaps avoid more stolen scripts.
I though everyone would find this is amazing and hilarious as I do: [img]http://puu.sh/5A4ju.png[/img]
Loving the Christmas themed background! [IMG]http://puu.sh/5AO8w.jpg[/IMG]
Oh, man. I don't have anything against russians... but, since yesterday about 4 of them added me asking if I can sell them my scripts for 5$.
[QUOTE=Netheous;43055336]Oh, man. I don't have anything against russians... but, since yesterday about 4 of them added me asking if I can sell them my scripts for 5$.[/QUOTE] Probably the same guy with Alts. You know what these russian's are like. [Insert Citation referring to meme "In mother russia, citation write you"]
One of the scripts I recently bought is now going "This script is currently unavailable to purchase". I assume this means the author took it down?
[QUOTE=MuteTM;43064093]One of the scripts I recently bought is now going "This script is currently unavailable to purchase". I assume this means the author took it down?[/QUOTE] Which script?
Sorry, you need to Log In to post a reply to this thread.