1,911 karma · joined March 8, 2009
case OPTTYPE_KEYMAP:
str = malloc(1 + sizeof "submenu");
strcpy(str, "submenu");
return str;
There isn't a good reason for this not to be return strdup("submenu");
is there?In case this wasn't a phonetic typo and you're really not aware, the word you are looking for is "cliques". Cheers!
A quick Google for "giant worms" finds a few that are a couple centimeters in diameter around the world, but none in the vicinity of Russia.
From https://tools.ietf.org/rfc/rfc6143.txt:
> To form the key, the password is truncated to eight characters
In short, the WASM layer is IMO the wrong layer for GC. I think the closest-layered applicable solution is caching & pinning guarantees for common libraries, which may already be addressed by the same solutions for common JS libraries (use a common CDN & let the browser caching keep it pinned).
Just to clarify (because I was confused when I read your comment), the weak DH attack was made public by the same people who wrote this post and the academic paper attached to it. It looks like the post and the paper are part of the same "release".
Conflict of interest disclaimer: I was a grad student of Professor Halderman's several years ago.
Generally speaking, NBL will have to have a much greater focus on performance than so-called "scripting languages" have had in the past. I mean, if it's really the Next Big Thing, it'll have to run on mobile devices, game platforms, and all sorts of other hardware-constrained devices. It sounds impossible, I know. But it's not. Those compiler writers are a tricky bunch, and they have decades of experience. A bunch of them got together and did a lot of head-scratching over NBL, and the result is going to perform quite nicely.
Yikes.
1) You have no way of knowing that your category method isn't going to collide with another method. That method could be one of Apple's private ones, or it could be a method from a category used by another library you included in your app, or it could be even be from a category used in a jailbreak tweak. In all these cases, it's entirely possible that the colliding method doesn't have the same size arguments or return type as yours, in which case you are going to get extremely difficult to debug crashes. You also don't have guarantees around whose categories win.
2) As a class developer, you have no way of preventing categories from messing up internal guarantees of your class. Want it to be immutable? Too bad, some developer you've never talked to added methods in a category that require local state. Want to add and use a new private method? Too bad, that name is already taken by some random category, and now it looks like your code is breaking everything because it was just committed.
Prefixing category methods is a partial fix, but lots of folks aren't aware that they should do that.
Smaller JS parses faster. gzip doesn't affect parse time.
The first thing objc_msgSend does is check if foo is nil and, if so, returns 0/nil/the all-zero bit pattern/whatever. It can be extremely convenient, but it can also be extremely inconvenient.
FWIW, ClearView, the crawler used in the paper, almost certainly would not work unmodified today. The Vuze folks implemented Sybil attack defenses after our predecessor to this paper, "Defeating Vanish with low-cost Sybil attacks against large DHTs", was released. You can now only insert a finite number of nodes into the DHT per /24 you have (and a couple other flavors of subnet as well, probably /16 but I haven't checked the Vuze code in years). The last time I looked, IPv6 Sybils were still a possibility because it was unclear how much of the IPv6 space everyone would get.
[1] "Crawling BitTorrent DHTs for Fun and Profit." https://jhalderm.com/pub/papers/dht-woot10.pdf [2] "Efficient Indexing of the BitTorret Distributed Hash Table." http://arxiv.org/pdf/1009.3681v1.pdf