FWIW I currently have a bot(of sorts) that's been running months constantly crawling, processing(html and images) and logging other sites. It's doing all this in-memory and it peaks at about 34m even with over a hundred active goroutines (70+ are dedicated/never-ending that are usually doing something be it processing or interacting with remote services or external programs)... So I don't see the argument about servers with small amounts of memory. On the issue of improving memory use by going 32bit, I call bullshit on that one.
I'm only guessing here but I'd say it wasn't actual leaking but likely something like firing off 100 goroutines all of which end up on real threads(possibly because they're blocking or something) so the peak memory increases since none of the threads are recycled. This can be trivially reproduced by running X goroutines each of them downloading a web-page many of which takes say at least 1 second. Memory-use will simply grow as is expected(or not). I guess it's also worth mentioning that from experience it's often faster and more efficient to multiplex those 100 downloads onto a max of say 10 goroutines/threads.
If the 1-base convention confuses you then it's highly likely that you're either new to the language or doing it wrong, the same way many people attempt to write C code and call it C++.
It's not absolutely necessary - what is? It is however a great loss in Chrom[e|ium] and I must say it does get annoying when you're forced to put a slash after domain names which are only at the top level (e.g localhost). You could argue that this is a bug in Chromium which is probably not gonna be fixed any time soon however if it were treated as a domain then it no longer works for searches, ambiguity, ambiguity, ambiguity.
People have phobias for just about anything so I'm guessing, it's not just horror movies but in my case nearly any kids' movie that contains a certain kind of amphibian. It's even worst for others who are afraid of birds... damn things are everywhere!
I couldn't find any way of contacting the author or leaving a comment(except on twitter) so commenting here...
Before I start I must say it would have been nice if a proper set-up was done for the screenshots, white-marks(censor) on the images just distract from the point you're trying to make.
I personally disagree with some of these points...
on point #2
> Class definitions should not result in the execution of any code, period. Whether or not that warrants a syntax error is up for debate, but that code does not look very constant from here and is some-sort-of an error in my view.
on point #37
> `"a" . "b"` doesn't make sense as useful code... `__DIR__ . "/file"` could be useful, but as already argued, it's not a constant and therefore should not be getting any special treatment. If it did, then I'd consider it a bug - as it leads to more inconsistency, ambiguity and bugs.
on point #8
> I guess we could argue this one all day. Personally I don't think it should ever return true as an object is not an array and vice versa. likewise, property_exists should not work on an array(). It's documented that array_key_exists no longer works with objects as-of php 5.3, whether or not id did before that I don't know. I can't really think of a use-case for that function when you have isset().
on point #18
> I think this one can go either way, for what purpose is a static variable useful on an object instance?
on point #33
> I feel so strongly about this one that I think it should be removed entirely. Unlike the other points I don't think this one is open for discussion in any case. I simply can't understand why this code should ever be valid. It completely goes against the point of OO and information hiding. You'll take care to note that it works as expected if you make it protected as opposed to private. That's the idea of having private and protected. Furthermore, you say pretty much the same thing. In the code, it does override it - no question. Call `$obj->b();` and see what happens. The reason you think it doesn't work is because `a()` unless overriden, is comes from `class super` and is therefore tied to `class super`. In other words, it's never supposed to work...
on point #41
> Yeah... I don't get it.
on point #28
> I'm pretty sure empty() is not a function which renders the rest of the point moot. Inconsistent behaviour? I think so. Again with the function chaining and need for a temporary variable. Provide snippets if you can, please. Otherwise it's hard to understand things from your POV.
The whole bugs section is moot - they're bugs and are therefore implementation dependent - i.e has nothing to with the language.
on point #11
> This isn't so-much a disagreement so I'll use it to ask what's up with the numbering... Anyway I don't understand the part about memory use - I wouldn't be surprised if the memory-use on the main page increased more than 30KiB simply by including that point. So in theory, leaving it out would in-fact be saving memory :p
on point #14
> I think it's a good thing, in the same vein on throwing in destructors. It's not funny in C++ and it damn sure ain't funny in PHP either.
on point #38
> I think that's a good thing - if you know you can't catch a fatal error then if forces you to write better code.
on point #20
> I must admit that I've never seen use of `\e` for this - only `\033` and `\x1b`.
on point #35
> It shouldn't - that's like setting a bear trap in from of your doorway and then go out to get drunk so you can come back and step on it.
on point #26
> Maybe it makes sense to me coming from C/C++ and GCC but E_STRICT doesn't report errors and therefore doesn't belong in E_ALL. Contrast GCC's `-Wall` and `-Wall -Wextra`
That's not a PHP issue. It's a programmer issue. Validate the bloody input properly! e.g if someone types in a phone number with hyphens or a credit card number which may contain spaces, don't blindly check it for a number...
> There is nothing tricky about the GPL (or any other Open Source license) in this context (or really in any other, since the license is extremely well-documented), and it is FUD to suggest otherwise.
So you're claiming it's not tricky to distribute software under incompatible licenses especially where the GPL is involved? If that's the case, then either the rest of us are not holy enough to grace your presence or you're being dishonest and/or short-sighted - since you obviously know the GPL so well, I need not explain why. While we're at it, what version of the GPL are we even talking about? because GPLv3 and GPLv2 are incompatible - what?. I dunno, at what point is a work considered a derivative? because if I re-use some GPL code in a client's code, at some point that client's code will have to be GPL compatible even if it's not closed-sourced - and in-case you didn't know there are open-source licenses out there which are not compatible with the GPL so I simply cannot understand how you can just come in here, try to put words in someone else's mouth and then proceed to over-trivialize the issue. I can tell you for a fact that I can take any piece of GPL code and use it behind a web server and make none of my changes public. That is indeed a fact, but only in certain contexts which depends greatly on the version of the GPL we're talking about.
At least one of us isn't outraged, and why should I be? The news media goes too far sometimes. It's about time they learn to respect people's privacy, even if it means there's no news!
In that case why don't you?/they? just offer proper hosting because if you're gonna go that far you're just wasting bandwidth, money and other resources aren't you?
I think it's more important because I can already see many bringing up writing on the back of a photo as prior art which according to the claim doesn't apply. As always IANAL but as far as I can see other claims of others doing it also don't apply because those claims to prior art are not within a social-networking context and does not include the subsequent notification of such tags to someone else other than the person doing the tagging.
Fun Fact: last year I uploaded a photo that was taken of my class in 2001 where I marked the photo with lines mapping names to everyone in the photo. After uploading other friends then began to tag everyone in the photo, including myself...
For the record, I'm in no way defending this patent. I just think it's often easier to just jump on the bandwagon( - it is Thursday after-all) and not stop to actually think about what one is arguing against.
If that's taken as written then it's plain and simply impossible - no debate. I can understand that a significant slowdown might be a problem but otherwise it's just much ado about nothing really. What matters most is perceived performance degradation. I'd go as far as to presume? that most if not all people cannot actually the difference between an operation that takes (e.g) 100ms and one that takes 500ms yet when you look at the percentage difference it's clearly an unacceptable performance drop.
I have several accounts on Facebook that I use for "research purposes" and I think they'd be classed as active. I sign-in to them on occasion they all have at least 50 friends, the usual. With that said my real accounts - the ones that you'd be interested in: my so-called real accounts, one for family and one for friends have last seen activity approximately 5 months and 2 months ago respectively. So I think that brings us back to the question: Are you interested in active users or active accounts? There are thousands upon thousands of active accounts on Youtube, you've most likely seen them when you go to view a movie trailer. They're the ones that provide nice helpful non-spam(no sir) comments that are as expected voted up to the top of the comments sections all the time.