HNHacker News
TopNewBestAskShowJobs

awda

467 karma · joined January 8, 2012

submissionscomments
awda··on Oracle continue to circumvent EXPORT_SYMBOL_GPL()
They are welcome to license kernel contributions under dual BSD/GPL ;-).
awda··on Oracle continue to circumvent EXPORT_SYMBOL_GPL()
> > The usual and suggested way is to get it included in the mainline kernel. This reduces the pain a lot.

> How does that help exactly?

Here's what GP asked about:

> Programming like that must be an absolute nightmare. Not only would have to understand the convoluted API scheme, you'd have to research the origins to see if you can legally use it.

So, I guess the answer is "because if you take my (and every other kernel developer's) advice, you don't have to program like that." Was the not clear? Sorry.

I guess the follow up question is, what the hell does the Tom Tom case have to do with GP's question?

awda··on Oracle continue to circumvent EXPORT_SYMBOL_GPL()
The usual and suggested way is to get it included in the mainline kernel. This reduces the pain a lot.
awda··on TinySSH is a small SSH server using NaCl, TweetNaCl
Huh, learned something new today, thanks. (For anyone following along, the C89 doc mentions the limits.h guidelines as well, search for "UINT_MAX".)
awda··on TinySSH is a small SSH server using NaCl, TweetNaCl
This code is attempting to be portable to C89, or why not just use C99's stdint.h? I don't believe your statement "C89 says the same thing," do you have a source to point to?

Do you have the section number in the latest freely available C99 working draft? The "Types" section (which 6.something in the draft) simply says what I said earlier about scalar rank. And 5.4.4.2.1 doesn't seem to exist in the draft.

awda··on TinySSH is a small SSH server using NaCl, TweetNaCl
typedef uint_least32_t u32;
awda··on TinySSH is a small SSH server using NaCl, TweetNaCl
No it isn't. The only guarantees you have about the size of long are that it is at least as large as (greater than or equal) a normal int. And a normal int is greater than or equal as big as a short.
awda··on Reverse Engineering for Beginners
Also useful for RE beginners: https://microcorruption.com/
awda··on Jsfmt – Like Gofmt, but for JavaScript
This is an equally valid criticism of `gofmt`. I think the rational is two-fold: you aren't tied to any one editor to use the formatting tool, and the authors of the fmt tool may not know enough (or care to know enough) about the editor to integrate it.
awda··on Disqus: It's Still About Realtime, But Go Demolishes Python
For a start, Go's SSL/TLS doesn't disable certificate checking by default ;-). Does that mean it's more "batteries included" than Python for TLS and every TLS-using protocol?
awda··on Disqus: It's Still About Realtime, But Go Demolishes Python
> yields it's own benefits as well.

yields its own benefits as well.

awda··on Google Maps On Mobile Gets Uber Integration
I'm not sure the sensors are negligable...
awda··on Google Maps On Mobile Gets Uber Integration
Fewer accidents drives down the insurance costs.
awda··on Hot or Not: Revealing Hidden Services by their Clock Skew [pdf]
It needs to be connectible over IP (and TCP, I think?) for it to talk to Tor, which is necessary for running a hidden service. You could imagine an anonymizing network where that is not necessary, I guess, by having the service connect to some other internal node over NAT. (Although then you could just Sygil attack with a bunch of nodes and wait for the target to connect to you.)
awda··on Hot or Not: Revealing Hidden Services by their Clock Skew [pdf]
Tl;dr: By placing load on suspected hidden service hosts (over normal, non-anonymous IP), one can then measure the change in clock skew (as a result of higher CPU / chassis temperature from the higher load) over the anonymous channel to confirm it is the same host (by comparison with clock skew before load).

The result holds over many hops and onion layers (this is the usual "the average of random noise is zero" thing). Very cool.

awda··on Why washing machines are no longer built to last
This trend started before smartphones became popular... don't blame them.
awda··on Linux file write patterns: So you want to write to a file fast
Does writes being aligned on page boundaries have anything to do with them being 13 base 2 orders of magnitude smaller than flash erase blocks? An unaligned page means you erase (mostly) one or (very rarely) two flash blocks. An aligned page means you erase one flash block. The biggest amplification is the 1<<13 4k -> 32MB amplification...
awda··on Linux file write patterns: So you want to write to a file fast
More like, assert() from assert.h is a huge wtf in C, because turning asserts off in optimized builds produces exactly these kinds of scenarios.
awda··on Linux file write patterns: So you want to write to a file fast
It depends on how much free space you have on the SSD. But yes, especially because the swap file isn't ssd-aware, you get a high degree of write amplification which wears the disk more than necessary. That being said, newish SSDs can take a beating, even under these kinds of workloads.
awda··on How slow is Python really? Or how fast is your language?
Just a few guesses:

    - It doesn't have Google / Thompson / Rsc / etc behind it
    - It looks more like Ruby than C (say what you will about C-like syntax, but I
      think the success of Java and C++ has proved that point)
But you're right, I ought to look into it.
awda··on The 64-core Parallella is alive
If you haven't heard of Parallella before (like me) and want to learn more: http://www.parallella.org/

Edit: Ok, here's my quick summary. Please correct me if I'm wrong:

This looks like a small PCB (raspberrypi-alike) that sits the main attraction: a 16- or 64-core Epiphany coprocessor, as well as an ARM cpu to run the OS. Not sure how these relate in performance to other coprocessors (GPUs with OpenCL?). Power draw seems low (5W). Would love to read more about the architecture, why Epiphany processors are special, etc.

awda··on Everything that is wrong with American capitalism, in one headline
> If someone else comes in and is able to radically undercut their costs at $600 million while simultaneously winning 50% of the market, both companies would still only make $500 million and lose money.

Emphasis added. This is not what "able to undercut" means to me. Furthermore, the situation described is great for consumers.

And yeah, it looks like Comcast has low-ish margins, for a monopoly:

http://ycharts.com/companies/CMCSA/profit_margin

But they also have nation-wide monopoly and revenue, so 10% of that is "a lot."

awda··on Nissan's ‘Self-Cleaning’ Car Prototype [video]
Blogspam for https://www.youtube.com/watch?v=UwoGsCAKsxU
awda··on Uber – London Tube Strikes or How to take advantage of a protest
They'd still have to pay the extra to drivers, and it would be larger than at 1x surge... unless their overhead is more than 50%?
awda··on Uber – London Tube Strikes or How to take advantage of a protest
Uber, playing the valuable role of transit scabs.
awda··on Uber – London Tube Strikes or How to take advantage of a protest
Presumably Uber is paying the drivers the difference.
awda··on Speeding up and strengthening HTTPS connections for Chrome on Android
Bah, my mistake.
awda··on Porting the Go compiler from C to Go
??? This is modern BSD (and probably plan9) style. Here's a line from the header:

> Portions Copyright © 2009 The Go Authors. All rights reserved

That's pretty recent.

And here's BSD style(9): http://www.freebsd.org/cgi/man.cgi?query=style&sektion=9

    The function type should be on a line by itself preceding the function.
awda··on Porting the Go compiler from C to Go
As others have pointed out, this is actually idiomatic C. You have a portion of your function below a label which is "clean up everything and return this variable (usually error status)." Then at any point where you have an error, you goto that label and everything is released and the error gets returned. It's sort of a manual 'defer' pattern.

"goto considered harmful" is taken out of context and bemoaned mostly by people unfamiliar with idiomatic C, I think. (Edit: sorry, I mean just for C. For other languages, e.g. Go, there may be more appropriate patterns like the 'defer' keyword.)

awda··on Why we don't sell ads (2012)
$500M/yr in raw revenue? How do you grow from there? Lower costs? Grow your revenue? Half a billion is getting close to max adoption. Do you up your prices?
← PreviousPage 2 of 7Next →