5 ms·
Wait, What?
- deleted 13y ago[deleted]
- ColinWright 13y agoDiscussion: https://news.ycombinator.com/item?id=5788975 https://news.ycombinator.com/item?id=5788975
- klibertp 13y agoNow this is where the comment should be!
- mbenjaminsmith 13y agoLooks like it's preventing most exceptions of that type from being logged. That would make sense if it's the type of exception likely to repeat itself constantly (until addressed). Using a random number as a gate is easier than measuring/throttling the rate that you're logging at.
- shawabawa3 13y agoThat's the first "wait, what?". However, if you actually try and work out that horrible if statement !((_ok) ? true : (Math.random() > 0.1)) _ok ? false : !(Math.random() > 0.1) !_ok && Math.random() <= 0.1 Seems fine...until you realise that this is the condition to exit early, it's still logging 90% of the time which is almost certainly not the desired behavior. Not to mention _ok is a terrible name for that variable, and it's only ever being used as a negation. Why isn't it called _error or something?
- m12k 13y agoAlso, if we ignore for a moment how hacky it is to implement throttling like this - why would someone write if(!((_ok) ? true : (Math.random() > 0.1))) when you could use if(!(_ok || Math.random() > 0.1)) or just if(!_ok && Math.random() < 0.1) ?
- aquarion 13y agoBecause Math.random's expensive and you don't want to execute it unless you're sure.
- 300bps 13y agoI can't figure out why some developers love writing lines of code like that. It's like they think there is a cost for every line of code so they attempt to use the fewest lines possible while making their intent difficult to discern without comments. I had a young developer work for me that did this all the time. He was actually quite brilliant - but he would put sometimes 20 statements into one line of code that would scroll past the end of the screen. It was difficult to discern intent but even worse it was impossible to debug. I asked him several times if he was taking his programming style from: http://thc.org/root/phun/unmaintain.html http://thc.org/root/phun/unmaintain.html
- coldtea 13y ago>It's like they think there is a cost for every line of code Well, there is. More LOC is the most stable predictor of more bugs. Of course, complexity per LOC also matters.
- redblacktree 13y agoCode golfer.
- notdonspaulding 13y ago`but he would put sometimes 20 statements into one line of code` This is why Python's PEP8 recommends an 80 char limit on line length. Not because at column 81 the code magically becomes more complicated, but because if you're struggling to make it all fit on one line, it's probably a good sign that you need to factor out some complexity. Although you could certainly still write extremely terse (read: unreadable) code with less than 80 chars per line.
- jackcviers3 13y agoThis reads like they were in a hurry. How many of us have written crazy debugging lines? There seems to be a morbid desire to crawl gh source code for obscure wtfs and expose the coder as a Bad Programmer. This line is in an oss project, enter an issue, fork it, and submit a pull-request. Way more productive way of wtf mining than submitting ssomething to community ridicule.
- cnivolle 13y agohttp://omg2.thedailywtf.com http://omg2.thedailywtf.com could validate this.
- russelluresti 13y agoMy imagination of how this happend: One Evening, Close to 5: Boss: "I see we're getting quite a few exception reports in the code." Developer: "Yeah, working on that. I just need a bit of time." Boss: "Well, I want to see at least 10% fewer exceptions by tomorrow morning." Developer: "..." Next Morning: Boss: "So I took a look at the reports this morning. Glad to see the number of exceptions are down." Developer: "..." Probably got a raise.