Hacker Newsnew | past | comments | ask | show | jobs | submit | bigfoot's commentslogin

That was my position too, but I was recently told there's a tool called waypipe that is supposed to solve this. Haven't tried it yet, though.



Exactly: "spare" is the imperative ("save!"), "sparen" the base form ("to save").


I meant "spare" in English. English "spare" and german "sparen" have same roots and related meaning. To spare versus to save. Just wanted to point out the translation attempt of data-spare-some-ness is not unreasonable.


The saddest part of this story is that Netflix/Amazon/younameit will continue to ignore and block Linux users as the niche market they are -- even if a future Firefox or Chrome version comes with the new standardized DRM everyone asked for. Lose/lose situation.


Netflix works with EME on Chrome and Firefox. Netflix doesn't block Linux users. They just don't provide customer support for troubleshooting on Linux.


> Netflix doesn't block Linux users.

They don't block (anymore) they just offer a degraded experience, 720p resolution only. Piracy still offers a superior product.


That's not degraded only for Linux. The 720p limitation in Chrome and Firefox is also there for Windows and Mac.


Not Win10 + Edge or on ChromeOS. This is due to the level of obfuscation of the keys (hardware-assisted vs software only).


I think we're splitting hairs here. The point cpeterso was trying to make is that while Netflix is a large company that advocated for EME, Netflix is also trying to cater to all audiences. And with their track record of open-sourceing lot she of their internal systems, I feel it's safe to say Netflix as a company isn't nearly as corrupt as some of the other advocates for EME.


I wouldn't be so sure. As Netflix becomes a media giant (it's already bigger than many), they'll adopt their policy for DRM. If not, why don't you have less restrictions on "pure" Netflix Originals content ?

We'll see in the coming months if the Originals mean higher quality on Linux or not. I wouldn't bet on it.


Btw. while Netflix was first in supporting Linux, Amazon allows at least 1080p in chrome.


Correct me if I'm wrong, but the new "standardized DRM" is just EME which all major browsers, including Firefox and Chrome, already implement, and which has been used by e.g. Netflix for several years now.

And Netflix works on Linux on Chrome and Firefox already, using those APIs.

The actual Content Decryption Modules are not part of the standard, though. Firefox and Chrome use Google Widevine.


Why would they do that? Are you assuming these companies will want to block Linux users out of some random, malicious spite?


No. For simple economic reasons, such as too much testing effort vs. too little revenue.


For "simple economic reasons" you believe companies will go out of their way to block Linux users for some reason? If the browser supports it, that's all that really matters.


To support EME on linux, they need to create an EME plugin for linux. Leaks in that plugin would kinda break DRM, so it needs to be designed well.

Writing and maintaing a crypto plugin is quite expensive.


That plugin is called widevine and it's been shipped with chrome for Linux for a year or more. It's already done. They don't need to do anything.


wouldn't it be Google or Adobe who would write the plugin?

its not like they lack the developers or the such


Companies browser-sniff, rather than feature-sniff.

They shouldn't. But they usually do.


But don't get me wrong, I'd love to see your optimism come true here.


This does not add to the conversation. But it makes me giggle. And I'm not really a Linux user...

I'm assuming you are? And trying to foment a revolution? If I'm wrong see the first sentence.


Given that a NSA dev team was well aware that the spyware would be discovered and disassembled at some point in time, it was reasonable to intentionally leave behind evidence that points to countries other than the US. I'm not saying that's what happened, but I'd not take the cricket references too serious either.


Using that logic, what would constitute evidence? That's like the senator in favor of the Japanese interment camps saying that the fact that no Japanese Americans had committed a crime was just even more evidence they were planning something.

Edit: More clearly written than my comment: http://lesswrong.com/lw/ih/absence_of_evidence_is_evidence_o...

But basically, people have already come to a conclusion. If the comments said "go <Virginia sports team>", that'd be considered evidence of made in the USA. And if the comments say " go English sports team " then that's evidence of have in the USA, because obviously comments are misleading.

Why not go recursive? They wrote about cricket because they wanted to frame the Americans, who always write misleading comments to frame the Brits.


So I can clearly not choose the drink that is in front of you!


That's what I get for fighting a land war in Asia.


They both did it yo


Archaic and impractical. Example: Instead of using Linux' pragmatic approach to function prototypes:

"In function prototypes, include parameter names with their data types. Although this is not required by the C language, it is preferred in Linux because it is a simple way to add valuable information for the reader."

OpenBSD enforces this:

"Prototypes should not have variable names associated with the types; i.e., void function(int); not: void function(int a);"

Instead of letting the code tell the parameters' purposes, this now has to be deduced from informal descriptions, or the function definition in some .c file.


What would be a reason for leaving out the parameter names? Genuinely curious.


DRY principle - you give the variables a name once, in the function definition. e.g:

    //decl in the header
    int pow(int exponent, int base);
if you only look at the header you might think that the arguments are one way, but

    //actual definition
    int pow(int base, int exponent){
      //math is correct but base <-> exponent..
    }
i'm not saying i agree with this at all - it's a contrived example..!


CVE-2014-3956


Replying with a CVE is like icing on the cake. :) It really shows that OpenBSD devs take security seriously. Funny timing, I was just reading Absolute OpenBSD.


It also demonstrates that sometimes, there are additional constraints that you may not understand in choices you may not agree with.


OK, agreed. C (and C++) just suck regarding this detail.


I don't see how that's relevant.

The bug in that CVE is that the function call got the parameter order wrong. The declaration was correct AFAICT, and of course completely irrelevant because you can make that mistake regardless of what the header says.

Parameters in headers are just documentation, by definition. Documentation can be wrong however you write it, but in general it helps to have it instead of not. Would you seriously argue that function parameters should not be given names in documentation?


> The bug in that CVE is that the function call got the parameter order wrong. The declaration was correct AFAICT

Actually if you look at the patch to fix this issue, they swap the identifiers in the declarator. Of course when something like this happens, you're free to choose whether the definition or the callers should be changed.

https://www.FreeBSD.org/security/patches/SA-14:11/sendmail.p...


That's the function definition, not its declaration. It's pre-ANSI C, so that semicolon can mislead. I didn't bother to grab the source to check whatever the header said (or, heh, didn't say, per OpenBSD convention), but I'm going to assume it was correct.

It amuses me greatly that we're sitting here arguing over the minutiae of coding standards when this thing is still written in K&R syntax.

But regardless: whatever the header said, it wouldn't have affected this bug, which was just a straightforward transpose thing between compatible types. People get memcpy() reversed all the time too, and frankly I don't know if I've ever looked at its function declaration in a header.


i would argue that had the function prototype had names for it's arguments that this might not have happened.


Hm. This is the kind of thing where a compiler warning could be useful. I took a quick look at gcc's manual, but it does not seem to have a warning for this particular mistake (argument names do not match between declaration and definition).

That way, you could repeat yourself safely, since the repetition would be checked by the compiler.


I did a quick -Wall test with gcc 4.4.5 and it doesn't warn.


To allow the function definition to serve as the single source of truth. That would be my guess. They simply don't want to have to update the parameter name at N places, if a parameter were to be renamed.


I love how frequently people on HN decry actual real working things people actually work on and use as "impractical". I suspect the combined experience of the entire openbsd team is greater than yours.


Under what license may I reuse those snippets -- or are they too short to provoke legal issues anyways?


From the page:

"If you're interested in using any of this code in your applications, feel free to do so! You don't need to cite me or this website as a source, though I would appreciate it if you did. However, please don't plagiarize the code here by claiming authorship - that would just be dishonest. I also caution you that while I'm fairly confident that the code on this site is correct, I haven't mercilessly tested every line, and so there may be a lurking bug or two here."


Quoting from the end of the paper:

"Source code and a phase diagram generating Python script are available under the M.I.T. license on github.com at https://github.com/mattbierbaum/moshpits . An interactive Javascript version of the simulation is available at http://mattbierbaum.github.com/moshpits.js ."


C++'s template-based sorting mechanisms allow for the same optimization without manually special-casing anything. (The compiler "integrates everything", to quote the author, out of the box.) C++ port of Postgresql, anyone?


Only if you actually can special case it automatically during compilation. It could still require a few tricks if your comparison comes from a user-defined query. At a minimum it would have to be something like: figure out which column type are you using, figure out what basic type does it map to, use that type in the template.


PostgreSQL is extensible enough that runtime specialisation would be best, I think. A JIT compiler, or a compiled type-safe multi-stage[1] programming language like MetaOCaml, would give the best performance.

[1] http://www.cs.rice.edu/~taha/MSP/


or what about a java port? it's as feasible as a c++ port.


Nice. Please add more GCC versions (3.x and 4.0 through 4.3?) and the most recent clang/clang++ releases! Direct pastebin-style links would also be great.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: