skysight-inc/HackerNews huggingface dataset:
> there is no good reason to change the URL unless the URL is excessively coupled to the implementation.

Here's one: It provides an easy means of making a system more resilient and scalable, by allowing the implementation to tell you "now go talk to this cluster over here" instead of using e.g. anycast (which is complicated) or still being dependent on your main load balancers.

Now, you can do that "wholesale" for the whole application. E.g. Yahoo Mail will redirect you to a specific mail cluster on login. But indirection on the resource level gives you more flexibility.

The URL might in other words be user specific, or even dependent on other factors such as which access rights the user have, or what service level they've paid for.

You can of course do that by encoding it in your client app. But then you will need to duplicate it, since you'll need to authorize the access on the server side for enforcement too, instead of encoding the information in some sort of policy on the server side that can both be used to generate the right links, and authorize access from a single source (of course you can do this to generate a custom client for each user login too, at the cost of blowing all your caching and CDN benefits out of the water).
> If the pgp encryption is done client side (by a native app, not in-browser), and the "backup service" oly ever sees pgp encrypted files - is there some other hole I've not seen there?

Doesn't that mean the browser can't access the data? The browser can access an encrypted lump of stuff, but it doesn't encrypt it or decrypt it.
"I’m leaving bioinformatics to go work at a software company [...]"

"[bioinformatics] software is written to be inefficient, to use memory poorly, and the cry goes up for bigger, faster machines! [...]"

Well, the author is heading for a very bitter surprise...
Kind of defeats the purpose for paranoid anti-government types I guess. Good way to lose your clientele.
What is magical about C code, or asm, or microcode that makes it more secure? Everyone has to trust someone. See the Ken Thompson hack: http://c2.com/cgi/wiki?TheKenThompsonHack
Visual brainfuck (2011)
Bpython is a fancy interface to Python
It does invalidate claims that using product X is going to inevitably cause you huge problems once you "grow enough". I've seen a lot of places grow a lot while using MySQL, and the problems aren't really that different or more serious than in places using Postgres or Oracle.

In fact, I know enough places moving from Postgres to MySQL due to growing pains.
Japan to start 4K TV broadcast in July 2014
Yes you can be sure; using an iframe + innerHTML because the later one is not a function and can't point at one or can be defined any other way and the same goes for its parent objects.

document.body.innerHTML += "<iframe></iframe>";
document.body.childNodes[document.body.childNodes.length-1].contentWindow.crypto.getRandomValues;

And please don't talk about how the JS engione of the browser can be compromised too; I know that but here we are aiming for practical applications not a philosophical debate about how everything is just an illusion.
"I only have Garlic, Paprika, bread, Cream, flour, and sugar, eggs and spices". Thats not a sane way to cook. You can season your eggs on toast (scrambled eggs with garlic makes a change), but there is nothing else sanely cookable form that list. You need to shop better, this is not a search problem. (I appreciate that you made up that list, but thats not the point).
"Linux"? If only there were some name you could call all those systems with shells and things.

(And within that spectrum, from a all-over system perspective, i.e. not just GUI frippery, I'd rate OS X at about the same level as HP/UX. Maybe.)
> Sure, the server is sending the new link but the client doesn't know that new link is really the new comment link that it's expecting so the client has to be updated anyway.

Then you're doing it wrong.

See the article example. E.g.:

<link rel = "/linkrels/entry/newcomment"
uri = "/entries/1337/comments" />

The "rel" attribute remains static. You don't change that. It is what tells your client that "this link is a new comment link".

The "uri" attribute can change at will.

The client knows that "/linkrels/entry/newcomment" means that this is the link to follow to post comments to this entry.

It does not need to be updated when the url's to server resources change, as long as the "rel" attributes stay the same.
From looking at the code, it should be quite easy to extend Hubble to make requests to a server. As far as I can tell, all you need to do is write a function that will call a server/resource and then call board.set/.draw. And then wrap that in a setInterval...
Thanks :) We should really add online naive Bayes and it would be really easy. But no-one got around to it yet :-/ Feel free ;)
> That's the thing - you don't actually have to trust the servers to the same extent. You can look at and verify any JavaScript and CSS and HTML that the server's sending you, manually if necessary, but there's absolutely no way of telling what code the remote server is running.

You can verify the JS, CSS and HTML only for a specific request and only if you have sufficient knowledge, meaning you have studied cryptography and even then it will take a lot of time because it is not possible to not verify that code manually.

This offers no additional security at all for anyone but the most paranoid cryptography experts.
I just might! I'll issue a pull request if I do, thanks!
"Linux done right", depending on your definition, but certainly not GNU/Linux done right. You know, seeing as 90% the OS is proprietary.
It's relevant because, quite frankly, there aren't that many brilliant students at low-tier schools compared to the top ones.

But we're not comparing low-tier to high-tier. We're comparing top 4 or top 5 versus top 20 or top 50. There's plenty of probability that a brilliant student might end up at a top-20 or top-50 institution rather than a top-5 one.
I agree with putting database stuff in a VM. I have messed my install a few times with things like this. Brewing too much will do the same thing. Especially the newbe mistake of installing both Ports and Brew. Blah.

For backups I recommend Backblaze. Far cheaper than any amazon solution and it is set and forget.

Cool note. You can create an installation DVD from the downloadable updates (mountain lion, etc.) see link at end. So you don't need to first install and update afterwards.

Also, good tip, if you have a macbook, get 16GB of ram for it and be happy for the rest of your life. It speeds things way up. I am usually at about 10GB of RAM in-use, so I am glad I sprang for 16GB rather than the planned 8.

http://lifehacker.com/5928780/how-to-burn-os-x-mountain-lion...
I think he's saying that he replaced Ubuntu 12.04 with OS X. Now he's using the same software, but the command-line tools have fewer features and it costs more money.

(VLC, Transmission, Chrome + Flash, etc. all work fine on Linux. If you must use Safari, though, OS X is probably the platform of choice. Also, if you have "minimalism concerns" you probably have some goal other than using your computer to be maximally productive.)
I started 7 years ago with SQLite and still have all my sites and webapps running on that. Works wonderfully for me. Meanwhile I must have seen close to a dozen data storage systems become popular then be replaced by the next big thing, from MySQL to NoSQL and everything in between.
+bazillion.

When I used Mac OS X, everything was very shiny, but also not fully there, functionally.
You almost had everything you need, but those few packages that needed to be manually built. And that setting was almost reasonable, but not quite. And there was always something that could be worked around, but never get solved.

So yes, I could run MS Word without resorting to Wine, but I couldn't get any work done without working around many many small issues.

I was glad when that Mac broke down. It was the worst computer I ever had -- even when considering the ThinkPad I had before burst into flames one day -- because the software never worked as I expected it to.

And I'm too old to learn how to reuse my computer. Especially when I can get it running the way I like (as long as I don't use OS X, that is.)
I know this isn't the point of your comment, but modifying document.body.innerHTML and then using document.all to access it is probably the worst possible way to append an element to the document and then use it.
I think the main thing about the current Blandings adaptation on UK tv is it might encourage more people to read the books...
The OP is not trying to be "a performance authority about web technology", in fact the article's main focus in not on performance, but on peculiarities in the RDBMS engine that force the developers to constantly seek workarounds and be very careful about silent (and unexpected) behavior.

There is no "web technologies" in the article, the term "web" is found only once (!) in the whole text.
Even if you app is certified, Chrome extensions can inject code in your page and thus access your localStorage.
What? By "Linux" I assume he mean UNIX-like operating system. As a desktop I guess Mac is the best choice for casual computer users, but the best UNIX-like operating system in general must be OpenBSD.
> get 16GB of ram for it and be happy for the rest of your life

Seconded. This is the most awesome thing ever. If you like your workstation getting out of the way, this is like deactivating the light filters in Sunshine (2007).
What schema does XML normally use?
I love titles that are indicative enough to turn me away from wasting my time on the content. Thanks OP!
TFA is nothing more than an uninformative list of Mac apps.

Also, someone should tell the author Mac is not Linux.
a timing or voltage dependence on the key used for the encryption/decryption is often exploited by side channel attacks. this dependence can be used in some sophisticated attacks to reduce the key space dramatically. c and asm/microcode are close enough to the hardware that the operations let you analyze potential side channel leakage. for instance, if i look at the generated assembly it's possible to reason if the time/voltage used by the decryption operation is a function of the key used in the decryption.

when a virtual machine is introduced the just in time compilation itself may introduce these dependencies between timing/voltage and the key used in decryption even if the source code does not appear to. however, unlike in c, you can't just go examine the compiled assembly to ensure a timing attack wasn't added by the compiler. the actual native code becomes a function of the virtual machine installed.

the guy above you knows what he's talking about.
I don't know if it's just me, but the use of passive voice really irritated me. Like the author was entirely correct, and there could be no debate.
Having a Desktop that works 99% of the time, and isn't made by amateur hour volunteers that either let things stagnate for ages (GTK+), or change their ideas every second month (from UI direction to media framework), is not "GUI frippery". Except if you spend all your time buried in the command line to begin with.

The only bad things about OS X are due to the proprietary and closed nature of some of the components (and the older versions used for some unix userland stuff). Implementation and experience wise, the whole desktop is miles ahead of Gnome/KDE.

Even Miguel De Icaza agrees, and he's the one of the handful who bloody started "Desktop Linux".
Well, macOS, HP/UX and Linux based operating systems are all UNIX-like operating systems.
I just HAD to log in to upvote this.
(Should the emphasis be on the "just" or on the "had"?)
I swear this is the ultimate troll title.

I've a decade-long linux user and am forced to use OSX on a daily basis due to iOS app dev. And OSX needs some real improvement coming from a Linux perspective. Here's why.

Window management (If you used Compiz not for its effect but window management, you'll understand why) suck.
Dual screen sucks. Try expanding one to a different viewport and you can't use the other screen. I haven't tried 3 screens yet.
Need more configurability and better CLI integration. (IE: Try the command to start Postgres, as is compared to ubuntu's service manner)

I'm a dev though.
I will second this. I used OS X for a year and hated how I had to fight it at every turn. It was a while ago, but when I had to install any package/library, it was a complete headache. Ports were worse, I once hosed my packages trying to upgrade one because it needed uninstalling everything and reinstalling them again one by one, but it didn't seem to like that.

Apart from development being a complete pain, the UI was designed for casual users. The virtual desktop implementation switched desktops on alt+tab, rendering desktops completely useless for separation of activities. There were many such small annoyances, and I was thoroughly glad to switch to Ubuntu in the end.
Maxims-MacBook-Air:~ maximveksler$ man lsm | head
LSM(1) Latent Semantic Mapping LSM(1)
NAME
lsm - Latent Semantic Mapping tool

I had it installed with my Mac, can’t sure if it’s native or comes with Xcode command line tools.

Maxims-MacBook-Air:~ maximveksler$ which lsm
/usr/bin/lsm
GNU/Linux is the name to be used on UNIX-like systems that use GNU as its userland and Linux as its kernel. Often called simply "Linux" instead since many people think it sounds better.
Yes, it's "Linux done right".

"Y is X done right" is a common idiom. It doesn't imply that Y is a variant of X.

E.g in the case he means OS X is a unix-clone (actually a fully certified UNIX) that has made the right choices, Desktop wise, unlike Linux.
MySQL became popular rather more than7 years ago, and still is.
I spent a long time trying to find a framework that does hateoas because I was desperate to do the right thing. I was even willing to use a different language for the api to make it happen.

Thankfully, during my hunt Tom Christie released the django rest framework 2. It does this stuff the right way. All 4 levels of goodness.

From the outside it might not be obvious why it's worth having hateoas in your api but when you're exploring an api as a human it makes it so much easier.

The client tools are not really there yet to take advantage of it, but they will be, and our systems will be more stable for it.
The article talks about a bunch of software the user installed, but doesn't say much about why "mac" is "linux" done right. Perhaps many of the author's problems would be fixed just by changing to a different Linux distribution. Or even tweaking the previous Linux. I don't know, because none of the broken things are described.

I feel sorry for the BSD folks, being seen as some variant of Linux.

There are lots of things I really like about OS X. (I'm on Snow Leopard.) There are some things I find really frustrating and annoying. Usually these are because of my ignorance. (And they're usually GUI weirdnesses, not BSD weirdnesses.)

It's made me start thinking of using BSD as a desktop - which for my use cases is perhaps a bit dumb.
As a MBP owner, I'm hard pressed to find anything more frustrating to use than the OSX Finder.
I have found that absolute titles, presented as fact, are usually trolling. What other justification could there be for claiming OS X is right and Linux is wrong?
why such article gets so much up votes?
90% of the apps he is referring to are working on "linux" the same way...

Linux is just the Kernel...
and Mac isen't an OS too...
What was your tech stack? What problems did you run into?
I'm surprised, because I imagine that's how a big fraction of developers here on HN work, and I've very rarely heard that complaint before.
To avoid some of the bad you can put this before the other Javascript files because that way you don't destroy event listeners.

Also I changed "document.all" for "document.body.childNodes" that is cross-browser and can't be compromised.
Mac OS is POSIX compliant and has a terminal. That's pretty much where the comparison ends.

Blah blah blah freedom blah blah. That aside, the Mac desktop doesn't really do it for me. Mac OS and Windows look awfully nice, but so does Unity (which I also don't use). The best desktop, IMHO, is no desktop: tiling window managers give a pretty serious edge for any info-junky willing to climb the hill.
Please. Stop it already. The 'N' in PIN stands for Number. If you say 'PIN Number' you're really saying 'Personal Identification Number Number'. Same with ATM Machine, HIV Virus etc.
Meaning for life creates desire to live. it does not have to be real, moral, or good. Most stupid or lowly reason can give people strength to fight for survival in adverse situation.
You can represent 0 by absence.

: 0
o : 1
oo : 2
ooo: 3

Of course, this is not a practical notation, since 0 would hard to distinguish from actual absence, but it would be viable in some situations: a table of numbers say, where you know that no cells are empty. So theoretically, it is possible to represent 0 in base 1, regardless of its obvious impracticalities.
Example of feedforward neural network and image recognition
Right, but we're not talking here about scale. We're talking about ... trustworthiness, I suppose. Dependability.

What this article demonstrated is that MySQL will often give a false sense of security. That's not what you want from a system ostensibly meant to provide a number of important technical guarantees.

Multi-master is the one tickbox feature where MySQL is still clearly in front. Once the PostgreSQL team finish going about inbuilt multi-master in their usual meticulous, stepwise fashion (my WAG is that it'll land by 9.6), there really won't be any good technical reasons left to use MySQL.
C++11 itself not theoretical, but the added "improvements" to the language are mostly theoretical. Since adding the template concepts a few years ago, the steering committee has dropped all sense for pragmatic design decisions and replaced it with fashionable-at-the-moment CS-concepts that will not improve your life as a developer in the real world. There is a good reason why most companies limit/prohibit the usage of certain newer C++ features. Using them only adds complexity while not leading to better software (>speed,<size, >maintainability).
Hi chewxy,

Do you have any insides how much those recipes get actually forked?
I'd be afraid, that forking might be a nice idea, but actually isn't that common.

Thanks for your insight.
The first thing you found wierd relies on selective quotation, you omitted "because of implicit string to integer conversion". The second is an apologist "but its well documented" defence. Your third point is changing the subject, he was criticising implicit type conversion, you again igore that. The fourth point is not about wanting to use the wrong syntax it is about MySQL acepting valid syntax and ignoring it.

So your whole post is nothing more than simple fanboy apologism.
or just call a closure bound to the whole list. I think I would write the thing as a for loop though, it feels so un map like
Life is full of surprises (GIF)
just for fun :)
Number(x) performs a type conversion to number, new Number(x) constructs a primitive wrapper object Number:

typeof Number("10")
//=> "number"
typeof new Number("10")
//=> "object"

The same applies to other wrapper objects, that is, Boolean and String.
>I think he's saying that he replaced Ubuntu 12.04 with OS X. Now he's using the same software, but the command-line tools have fewer features and it costs more money.

Right, because all you use your desktop computer for is command-line tools.

Or because using Brew, MacPorts et al to upgrade all command-line tools (if one wants, since most of the newer "features" are things you'd use once in a blue moon if you're lucky anyway) is very difficult.

(Not to mention that lots of people don't do any work on their Desktop/Laptop's command line itself anyway, even in Linux, but in some remote system or a virtual machine...)

>Also, if you have "minimalism concerns" you probably have some goal other than using your computer to be maximally productive.

Except if, crazy I know, this "minimalist" thing actually helps you with being maximally productive, instead of being some guy spending his days tinkering with insignificant stuff and getting various bits to work together deluding himself he is achieving something...

>If you must use Safari, though, OS X is probably the platform of choice.

Or if you also want multimedia to work as GOD intended or do any work with them. Or if you want to run essential for tons of people proprietary applications not available for Linux, from the Creative Suite to Autocad to whatever...
Did I say anything wrong? Because to be honest, I think I was just laying bare some hard facts.
Kingdom Hearts 1.5 HD Box Artwork Revealed
yes, that is what I'm talking about...
(although older browsers (IE) have some trouble with inline-block)
If you'd heed the author's warning, you wouldn't do anything of any meaning in the browser: no online banking, no purchasing... Because even if you don't do "crypto" (in the sense of encrypting/decrypting primitives) everything else you do also relies on the same TLS and JavaScript. My online banking site uses, of course, JavaScript. My online trading platform uses JavaScript. If the browsers and the sites are vulnerable to the attacks he presents (cross side scripting, man-in-the-middle possibilities, code injection attacks from another souce) then it's irrelevant if you do crypto primitives or not, you are vulnerable.

On another side, if you assume that other vulnerabilities don't exist, and you do such things online like banking or trading, and you accept that the sites use JavaScript, I don't see any argument why the crypto primitives which run in addition to the rest of the code, everything delivered over TLS and from the same site, are any more suspicious than the rest of the JavaScript.

The advantage of the encryption on the client side is obvious. Of course, it would be even better to have the client side encryption controlled by the user separately from the site. But under assumption that I personally control the server from which I deliver my html and JavaScript over TLS, I still feel better having the possibility to encrypt something that I'll upload to the server as long as I assume that the browser is not attacked.

The only thing missing is the possibility to somehow checksum the delivered html and code and then "lock" that in my browser. It's not something scalable, I know.

But the problem is never that much technical as it's "political." Consider Dropbox: in many use cases, they would be able to have all the encryption on the client and not to deliver the key to them. However they do deliver the key "because the users will need it." Who says that? They, and I can't choose.

Technically, the solution can be certainly achieved, the problem is that it's not an interest of the current service providers.

Maybe is Mega the first one that really has such interest?
What data is plotted on these graphs? Phase difference of what?
Your last sentence was not needed and lowers the tone of debate around here. Please consider avoiding name calling in future.
That's the old MySpace. Click "Forgot Password" at the Sign In page (https://new.myspace.com/signin) to see the new UI.
I think waps was talking about the general continuum of how systems behave towards software engineers.

At one end are systems which are demanding refuseniks, at the other are loosey-goosey, anything-goes systems. It is human nature to find the loosey-goosey system more attractive because it gives immediate positive feedback ("it works!") and conceals negative feedback ("what the hell does that error mean?").

The thing is that RDBMSes are ostensibly meant to be on a stricter end of that continuum. But MySQL directly subverts that presumption, which is the source of a lot of heartache in the longer run.