HNHacker News
TopNewBestAskShowJobs

_cbsz

1,911 karma · joined March 8, 2009

submissionscomments
_cbsz··on Ask HN: What revenue generating side projects do full-time employees here have?
It's by no means guaranteed to last, 1M is not enough to retire in Silicon Valley, and 1M pre-tax is ~0.6M after tax.
_cbsz··on Memory management in C programs (2014)
Nethack does have a lot of ports to weird systems (and compilers that might not special-case strdup on a string literal to avoid the strlen, which I didn't think of when I brought this up in the first place), so this seems like a fair enough reason to me.
_cbsz··on Memory management in C programs (2014)

    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?
_cbsz··on Ask HN: What's your favorite way to save money?
On the other hand, if you're in CA and subject to a 50% marginal tax rate, saving $1 has the same impact as making an additional $2.
_cbsz··on How Facebook Tries to Prevent Office Politics
> silos, clicks, and favoritism

In case this wasn't a phonetic typo and you're really not aware, the word you are looking for is "cliques". Cheers!

_cbsz··on Museum of Soviet arcade machines
Seems like this would be really bad business just from a transportation perspective. Giant worms take up transit space that could be filled with kvass instead.

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.

_cbsz··on Have Software Developers Given Up?
VNC passwords being limited to 8 characters isn't a software bug, it's a VNC specification bug.

From https://tools.ietf.org/rfc/rfc6143.txt:

> To form the key, the password is truncated to eight characters

_cbsz··on What every compiler writer should know about programmers [pdf]
On a reasonable machine (e.g., x86, x86_64, ARM, ARM64), in a reasonable context (i.e., not the very tippy top stack frame), the one-past-the-end read is harmless. The value is unused, and the read itself is not going to segfault because it's going to read the frame pointer or return address out of the stack frame.
_cbsz··on Compiling to WebAssembly: It’s Happening
What would the GC scan? What do pointers look like? At the assembly layer, you have the flexibility to not have a C runtime (and therefore no C stack), and you might be doing fun things like having tagged pointers that the GC would have to know about.

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).

_cbsz··on Assembly Language: Still Relevant Today
I don't think it's unreasonable to differentiate between reading assembly produced by a compiler and handwriting assembly. I do the former several times a month and the latter almost never.
_cbsz··on Assembly Language: Still Relevant Today
Modern processors don't handle self-modifying code efficiently. https://en.wikipedia.org/wiki/Self-modifying_code#Interactio...
_cbsz··on Hurricane LTE-U: Don’t Let Wi-Fi Get Blown Away
Sounds bad, but I would like to know if there is a technical benefit excluding Listen Before Talk in some countries. Why would an engineer possibly want to turn it off, given that the support has to be developed for those countries that require Listen Before Talk anyway? (The evil megacorp financial reasons are obvious, but let's pretend for the sake of discussion that they are not stupid enough to think that breaking Wi-Fi networks across the country/world will have no PR repercussions -- it will cause massive hassle for everyone.)
_cbsz··on NASA confirms that the ‘impossible’ EmDrive thruster really works
even SpaceX launches cost over 50 million dollars (https://www.google.com/search?q=spacex+launch+cost has a big pullquote to that effect, for example)
_cbsz··on How is NSA breaking so much crypto?
> It's merely a rehash of the Weak DH attack that was made public in May of this year

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.

_cbsz··on Reviewing Steve Yegge's Prediction Record
Re: predicting the Rise of JavaScript, it's a lot easier to be right if you know about V8 a year before public release. From "Rule #3: Performance" on http://steve-yegge.blogspot.com/2007/02/next-big-language.ht...:

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.

_cbsz··on Crema: A Sub-Turing Programming Language
crema/tests/fail/ includes several tests relating to recursion, including the obvious mutual recursion workaround attempt. Given that they're in the fail subdirectory, I conclude that it's testing that they're rejected.
_cbsz··on How to Use the Plan 9 C Compiler [pdf]
> For different reasons, volatile and const are also ignored.

Yikes.

_cbsz··on GraphQL Working Draft
That link says "This video is private".
_cbsz··on Java Was Strongly Influenced by Objective-C
Try OBJC_PRINT_REPLACED_METHODS sometime. It's frightening. (http://stackoverflow.com/questions/9466732/in-objective-c-ho...)
_cbsz··on Java Was Strongly Influenced by Objective-C
Objective-C categories are a land mine.

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.

_cbsz··on From Asm.js to WebAssembly
> I've never been sure uglify and other minification was actually a great idea for this reason. The gains are marginal if you're using gzip

Smaller JS parses faster. gzip doesn't affect parse time.

_cbsz··on Show HN: Monodraw, an ASCII Art Editor for Mac
http://emacswiki.org/emacs/ArtistMode is clearly less featureful, but might work for less advanced use cases.
_cbsz··on Hidden backdoor API to root privileges in Apple OS X
The Obj-C function call [foo doSomething] compiles to the equivalent of objc_msgSend(foo, "doSomething"); (for the pedantic, I'm intentionally simplifying and leaving out objc_selfrefs)

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.

_cbsz··on Crawling BitTorrent DHTs for Fun and Profit (2010) [pdf]
Hi, I co-wrote this paper. Did not expect to see renewed interest!

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.

_cbsz··on Crawling BitTorrent DHTs for Fun and Profit (2010) [pdf]
AFAIK, p4p2p is unrelated to the source code from this paper. A very quick skim of its github seems to confirm this.
_cbsz··on The Pirate Bay Is A Trailblazer In Technical Resilience
Speaking of resilience, I wrote a paper [1] 3 years ago about how to rebuild torrent sites (like TPB) within a couple hours of a denial of service (legal or otherwise) using the Vuze client's DHT. There was some similar concurrent work [2] on the Mainline DHT by Aaron Grunthal. I'd be interested to find out whether anyone has applied it for that application.

[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

_cbsz··on The Mystery of 355/113
mod 8?
_cbsz··on What happens when you ask people to pick the lowest unique prime number.
so...is there an incentive to deviate from "clomper picks 1, opponent picks 0, first clomper wins?"
_cbsz··on Hack your way through Stripe's Capture the Flag
For both of you, were your solutions 100% reliable? I ended up with an exploit that required a little brute forcing (i.e., just run it a hundred times or whatever).
_cbsz··on Hack your way through Stripe's Capture the Flag
It's nearly impossible to debug my should-be-reliable-but-doesn't-work-at-all-and-by-the-way-gdb-affects-memory-layout solution with all the brute forcing going on though. :(
← PreviousPage 4 of 29Next →