skysight-inc/HackerNews huggingface dataset:
One half-fix sometimes proposed to solve the most egregious Prop 13 issues but leave it in place for the people you're talking about is to limit it to only owner-occupied primary residences. As it stands today, Prop 13 applies to not only homes people actually live in, but also investment property, vacation homes, even commercial real-estate. Imo any "protect the nature of our community" / "keep old people from being displaced" type justification makes a lot less sense when we're talking about Intel's property taxes, or about property held by real-estate investment trusts.
How will regulation take care of bad crypto? Even experts get it wrong with some regularity (of course not as often as noobs, but still).
Well tell him that's a great reaction to have in that situation. I find it mature and I wish more people would act that way.
It's unfortunate that it was too big for an HN comment, which would probably have prevented it being posted again as a topic. People who are genuinely interested in the book could have searched HN and found the original review. This thread just exists to bash/watch further bashing of the author/book.
What I don't understand why most crypto libraries are then implemented in an inherently unsafe language. I feel something like the secure subset of Ada would have been much more apropriate.
What I have trouble with is the spelled out versions. Every time I see some stupid newspaper article that says "HyperText Markup Language" or whatever, it takes my brain two or three seconds to process it and go "oh, duh, HTML".
I dip in and out of support tickets pretty often, and I read support tickets a lot. It's really helpful and provides a lot of teachable moments, and it is a big destressor when you see that everything is going really well, just like you'd handle it.

The corollary to helping out with support every now and then is to work every job within the company every now and then.

I attend trade shows with sales and work the booth. I write blog posts and design email campaigns. I use our product every day. These things really matter.

They matter even more when you start to scale. When I'm in the midst of a horrific customer support incident with another company, I often wonder how often their CEO has used their product, or dealt with their own support.
Nasa telescope can measure distance to stars 10,000 light years away
tptacek is hardly a web developer straight out of high school.
If you're using:

set -o errexit # or set -e if you prefer

Then you probably also want:

set -o pipefail

Otherwise, it only checks that the last command succeeds, so something like:

ls *.ssjkfle | wc -l

will actually continue as success despite the "ls" failing.
Not that I disagree but Wikipedia has an ad asking for donations once in a while. I would categorize it as fairly obstructive.
Gripes about LaTeX
Now if only they had a better way to design UIs than using clunky XAML. WinJS + CSS I think is a little better, but still not comparable to what iOS or even Android has.
This can be dictated by circumstances though, I work in a situation where programming isn't the main value add of the work (but is necessary anyhow), so people tend to identify with their language and formally "switch" because there isn't time to work with / learn more than one or two languages max.

I've happily identified as a "Python programmer" while it was the main language I was using, and now more or less call myself a "Go programmer" after a similar switch. In less code-centric teams it's a handy way to identify where you are coming from.

Another reply here noted the time investment can lead to attachment, I find this true as well. When I decided to switch to Go for my next project, the only way to learn it was to put in some serious hours on the weekend and late into the evenings. You can't help but identify with something when you make that kind of effort towards it. All of the little cognitive biases and tricks with ego keep you invested enough to keep learning.
Didn't see any problem with gevent example... Looks like the standard parallel code.
Did you try to put "line-height: 1.5em;"? is a lot more readable (:
Wow, not useless at all -- that is really well done. I'm working on a similar "all about" site for Shakespeare, in which I've struggled to make a clear and usable timeline. This is a really helpful model.

Is there a way I can contact you at some point. I'll be doing a "soft launch" later this month and wanted to start with smart people :)
Add a Heartbleed Seal to Your Website
Exactly. I often use "#!/usr/bin/env python2" to specify python 2.x on my systems where python 3 is the default.
Show users that your site is safe from the Heartbleed vulnerability by adding the Heartbleed Seal Widget
How about half of the high scores? When watching their replays I can't seem to get a reproducible result. Sometimes their 400MM score is crashing out as early as 10y.
At the price of a tax (heh) on everyone elses time.
I'd add a caveat - I've seen this done before, but with unintended consequences.

exposing a CEO directly to your users is a great idea for all the reasons given, but it can be distracting if they seize on a randomly chosen user's idea as the Next Big Thing which Must Be Implemented Now because it resonates for some reason.

users' ideas and suggestions are great in aggregate, but any given one can be totally the wrong thing to adopt just because the CEO searchlight happens to pause on it and it's given disproportionate attention.
Thanks for the clarification and for your efforts to increase transparency. They are much appreciated :)
You're in a great place as Founder / CEO / Developer of you're product to react to customers. Especially since your marketing to other developers.

Over time you may see your support landscape change.

10x (or even 2x, really) the support load and you'll find yourself unable to respond to everyone in a timely and considerate manner. Responses become quicker and you naturally don't spend as much time thinking about each request.

Eventually full-time support team members are brought into place and they become your conduit more often than not. That is unless you, as an dev + founder, stop developing the product at all and have a team to take over all those responsibilities.

But let's be honest, you like developing product! At the very least you will be involved deeply in it's evolution and market growth. Support becomes more of a top-of-the-funnel ordeal.

That said, I think if any CEO completely loses touch with the support channel it can be devastating to the company. For myself, I try and keep an open line between support (if you feel it is important, let me know) and setup personal calls with customers that have feature requests or intense feedback.
How is this even vaguely relevant to this submission?

Argue with their attempts to appeal across the bases somewhere else. Write a blog post. Raise awareness if you're so incensed.

Don't attempt to hijack this thread.
Looks more like the past to me, if you want to program synchronously, then why don't you just use Python?

If you properly decouple data flow and IO from your logic, you will not end up with callback hell.

If you shoehorn synchronous idioms into Node, then you're basically throwing away Node's advantage and you'll end up with something that performs worse.
One symmetric cryptography method are one-time pads. Essentially you generate a truly random key (for example by observing some decay process) that has the same length as the maximum length of a message you might want to send and distribute the key to the receiver in advance.
You encrypt the message by modular vector addition and decrypt it by subtracting the key. If you use the key only once and it is random, there can't be any attack on this method.
Nice that you composed this list but quite honestly, it isn't very helpful to know what the letters in the acronyms stand for without knowing what these things actually are.

Take AES for example, "Advanced Encryption Standard" doesn't really mean anything. AES is a block cipher, also known as Rijndael. CTR and CBC are block cipher modes. RSA is a public key cryptosystem, etc. The same applies for most of these things in the list.

So if someone doesn't know what these things stand for, they're going to have to go to Wikipedia to check it out anyway, the words behind the acronym are almost as confusing as the acronyms themselves.
Good to know my Android powered web servers are safe. Seriously though, is there any implication of having a vulnerable version of OpenSSL with heartbeats enabled on a client?
That's very true and I think that it's related to the topic of Rich Hickey's talk Simple Made Easy [1].

Maybe what we need is to study the economics of software and come up with a system in which market outcome is promotion of good libraries. I think that the social/economic dynamics of software development play a huge role in building a successful product, both free and commercial. Has anyone studied the subject in greater detail?

[1] http://www.infoq.com/presentations/Simple-Made-Easy
Can you elaborate what you find ugly in xaml? I am using right now winJs but, in my opinion, xaml allow to be really fast in ui design and binding data. Used in combo with Blend (and I know too many people who totally ignore even the existence of that sw) is a win-win
After reading this, could anyone recommend a good intro to crypto book? I see a lot of good reviews of Bruce Schneier's Applied Cryptography.
> http://en.wikipedia.org/wiki/First-class_data_type

Fair enough, pretend I said "first class syntactic object."

> CL allows you to define libraries that can change even the basic surface syntax, for your convenience. Considering that there is more than enough defined in the specification, what benefits would be in having an "official" hash litteral syntax?

Reader macros are powerful, no doubt. The benefit of building this into a language would mainly be syntactic regularity. CL as it stands has keyword args, alists, property lists, and real hash tables (probably amongst other things I don't know about), that all fill basically the same purpose of mapping names to values. If the creators of Common Lisp and its parent lisps had started with hash tables with standard reader syntax, they probably wouldn't have felt the need to introduce so many subtly different but conceptually identical concepts. Lua, for instance, uses its single table data structure both as syntax and as an internal representation for pretty much any case where it needs to map some names to some values; from keyword arguments to environments to "metatables" that provide fairly powerful metaprogramming support, they're all just tables that you can write literally and use the same functions to manipulate. You could say that alists fill this purpose and are even more syntactically regular since they're still sexps, but then why doesn't CL use alists for keyword args, and why don't Scheme's keyword arg extensions use alist syntax? Historical accident, or are alists just ugly? If you can admit that they're a little too ugly and verbose to include in function calls, then maybe you can see why I don't like writing alist literals.

> The fact that you are mainly manipulating lists does not mean that everything is eventually represented as supposedly inefficient linked-list at runtime.

I'm well aware that a compiler can easily expand keyword arguments into regular ones. I strongly doubt your compiler will transform all the literal alists in your program into hash tables, and replace all the alist-ref functions and so on operating on them with the equivalent hash table functions. As long as alists are more syntactically blessed than hash tables, people will use them where another data structure would be more appropriate.
Mt. Gox Bitcoin exchange enters administration
In German, it is “kostenpflichtig bestellen“, which is also quite clear and I have to admit I like it. The button cannot be misunderstood and it seems silly to claim that it is in any way an inconvenience to a honest trader that they have to put “kostenpflichtig bestellen“ rather than just “bestellen” on their websites.

English seems a bit more clumsy, though.
However, once you grok a new language paradigm -- like functional programming or logic programming if you only knew OOP -- you get to see the world in a whole new way and then you realize the new way isn't harder, it's just different. It's experiences like these that reveal a bigger picture. It's experiences like these where you become more aware of how easy and limiting it is for our minds to get locked into certain ways of thinking.

With each new lens you come face to face with the reality that the fewer mental models you have, the more each one colors what you see, think, and believe -- the thought patterns driving your decisions and ultimately setting your trajectory. It's experiences like these that transcend tech and reveal what Alan Kay means when he says "we see things not as they are, but as we are" and "a change in perspective is worth 80 IQ points".
Thanks!! I haven't had time to check it out yet.
From the FAQ:

"Do we know the exact locations of our servers, and, if so, do we have physical access to our servers?"

"We do not know the exact locations of our servers.We do not have physical access to our servers."

"Rest assured that we do have something in place that will destroy our hard disks in a matter of minutes and turn them into little more than coasters."

Those two answers seem contradictory.
This condescending tone seems to be mandatory for karmic users of over 100K points :)
No, it might as well mean (and I believe it does) that the difference between the 50th and 51st place is so small that it's either below sampling error or just plain not worth spending time on. It's the "I'm sorry, you're both equally good, but we had to pick one" situation. I'm pretty sure pg wrote about it at least twice (once wrt. college admissions, and once wrt. startups applying to YC).

EDIT:

This [0] explains it nicely.

Put yourself in the position of someone selecting players for a national team. Suppose for the sake of simplicity that this is a game with no positions, and that you have to select 20 players. There will be a few stars who clearly should make the team, and many players who clearly shouldn't. The only place your judgement makes a difference is in the borderline cases. Suppose you screw up and underestimate the 20th best player, causing him not to make the team, and his place to be taken by the 21st best. You've still picked a good team. If the players have the usual distribution of ability, the 21st best player will be only slightly worse than the 20th best. Probably the difference between them will be less than the measurement error.

The 20th best player may feel he has been misjudged. But your goal here wasn't to provide a service estimating people's ability. It was to pick a team, and if the difference between the 20th and 21st best players is less than the measurement error, you've still done that optimally.

[0] - http://paulgraham.com/judgement.html
Continuations and Exceptions
You're assuming (or implying) that there's some canonical scale of quality, that it's absolute, and that it can be perfectly determined.

None of these are true.

There is, frequently, a probabilistic scale of quality -- there are works or instances which will, generally, be considered "good" and some which are considered "bad", and, say in an iterated experiment model you'll generally come to at least some level of agreement as to what's what. Sometimes there are even very clear winners and losers.

But there's a hell of a lot of variance. There are things which people, often many people, like, often a lot, which others simply despise. I am, for example, not a fan of rap, hip-hop, house, and similar music. I really like Beethoven's late string quartets. I'm aware that by popular vote my preferences are likely unpopular.

And even where there is widespread agreement after the fact on something, experts in the field may not come to agreement. The Beatles were panned by several early music critics and record labels. Rob Malda's initial review of a new cellphone was less than whelmed. Oh yeah, it was called the "iPhone", you may have heard of it.

Tests for categories as seemingly refined as classical music performance -- both auditions of performers, and trials of classic vs. modern instruments, and fine wines, show that there are huge differences in non-blinded vs. blind trials (for music), and that wine experts are incredibly unreliable in how they grade, or even describe the qualities of, wines. Though this does make for an entertaining way to spend an afternoon or evening with friends.

http://www.sfgate.com/business/article/Blind-Auditions-Putti...

http://freakonomics.com/2010/12/16/freakonomics-radio-do-mor...

In another interesting study, unreleased music was introduced to several different "worlds" of test subjects -- within a world the experiences were shared, but not between them. The result was that, from the same starting selection, different "hits" were selected by each.

http://www.npr.org/2014/02/27/282939233/good-art-is-popular-...

And that's the whole point.

In any competitive selections process, especially where there are far more qualified applicants than there are positions, there will be many qualified applicants who aren't admitted. The reasons for denial will vary, but ultimately the selectors must adopt some arbitrary mechanism. Lottery would probably be the fairest, say, by assigning a rough percentile ranking to each candidate (perhaps by decile), selecting all within the top category (the clear winners), none below some cutoff, and a random selection within the grey range. More often culture, bias, hubris, or other factors will lead to other bases for decision.

But thinking you can, perfectly and without error, assess the quality of something as both nuanced and capricious as the possible value of a technology start-up concept based on a few brief exposures is really pretty arrogant. And all but certainly wrong.
Quantenna Announces Development of 10G Wi-Fi 802.11ac Chipset
As a lisper, I can say that this insight is very true, but it is still just a simplification. Most lisps deal with it in different ways.

In the scheme world, the way they deal with this is by wasting a decade on making decisions about the language that should have been done in the 80s. The result is that scheme essentially split into scheme and racket. Now we have an awesome language and a nice little ecosystem thats good for teaching and research, and possibly even real work(tm). Classic scheme unfortunately is fragmented into implementations who all do things slightly differently and occupy their own niches.

In the clojure world, they have a) a BDFL who sets the course of the language. b) A very strong core community of very smart people who managed to build a nice culture based on common ideas about software and design.

In the common lisp world, because we have a very high-quality standard, implementations are almost completely compatible. Compatibility libraries make it easy to write very portable code, avoiding the scheme problem. At the same time implementations are free to experiment. The other problem of everybody developing their own little universe tends to be rare. Because common lisp is so old, we have a long history and traditions that guide future design, but don't constrict it. There is a subtle balance here. We have a lot of old examples to learn from, but we are not locked in by too many bad old decisions(not always the case, but good enough in practice).

A few examples where this does not work include utility libraries and things like json libraries, libraries for outputing html etc. Since we don't have a BDFL we are left to figure things out amongst our selves and sometimes, like with utility libraries(there are dozens such, which is ridiculus) it doesn't work. In other cases, it works very well, for example quicklisp, ASDF, bordeaux-threads, closer-mop, hunchentoot etc. are either de-facto standards, or sufficiently popular to be a very good default. As with clojure, there are a lot of common ideas about what is good design in the community, we have a lot of examples to learn from, as I mentioned.

In the end, at least in the case of common lisp and clojure, I see it as an advantage to have this "level of possible diversity", it's what has kept lisp alive for 50+ years! The fact that lisp can adopt to each new era of software development philosophy is a great reason to study it. It will be with us for many more decades because of this.
I'm not following your reasoning here. Care to explain?
How do you handle the case where a MITM might be modifying the Javascript sent to a user? (Or the equivalent case where a CDN or server hands out bad JS)

Is there any transparency around the internal key server? How would I know if someone's key has been replaced?

> Since we do not have to use RSA to generate the keys, we don’t! SHA 512 is our jist.

I suspect this answer on the nerd-info page might need to be re-worked.
Free DNA-based iOS game for 23andMe customers.
And what iOS and even Android has?
I don't like the idea, it is really nasty for stargazer, animal, birds, plants... A better solution is to use smarter light, in order to illuminate better straight to the roads
LtU now supports Mathjax
Being able to send a message to your machines to say "delete everything and overwrite with lots of zeros" doesn't seem to be in conflict with not knowing exactly where the specific disks are in real life.
Automattic raising more than $100 million
Copy-me: A Webseries About Copying
Node statically links OpenSSL and uses gyp (the chromium build system) to build it.

Initially we used the chromium project OpenSSL fork which had these flags set [1]; when we moved to maintain our own gyp-ified fork we kept these flags [2], under the assumption that the chromium folks would know what they're doing.

You may argue that this is naive and you may be right.

However, just looking at that FAQ, OpenSSL provides a justification why it is safe to ignore the specific valgrind error that -DPURIFY surpresses, so I currently see no reason to change it.

When OpenSSL's PRNG routines are called to generate random numbers the
supplied buffer contents are mixed into the entropy pool: so it
technically does not matter whether the buffer is initialized at this
point or not. Valgrind (and other test tools) will complain about this.
When using Valgrind, make sure the OpenSSL library has been compiled with
the PURIFY macro defined (-DPURIFY) to get rid of these warnings.

[1] https://github.com/joyent/node/blob/e80cac622569dda0f6753b45...

[2] https://github.com/joyent/node/commit/7eaea7f9e501db0072455f...

Edit: fixed link
I was thinking of services that help you sell stuff.
I don't know who's currently in that space, but say usesold.com was an example of such a service. Amazon does a somewhat similar thing with used books I think.
That looks like a target made for Erlang.
Just to improve that page:

We make use of a variable of free and opensource libraries

You'll want to change "variable" to "variety"

... becoming an individual auditer for us! //

... if you’re interested in becoming an auditer for Lavaboom //

* Auditor.
It would be really useful to explain technically how to find out the flaw
Yes, clients are also vulnerable.

https://github.com/Lekensteyn/pacemaker
Javascript is fast enough to be usable on a server, Javascript has grown client-side, and you can share code across both. That adds up to something at least reasonably useful and unique.
I've never looked at code using gevent before and that sample looks very clear and easy to understand - no idea why the author would think it is "cumbersome".
Latest version, if someone have interest on it :
http://zardoz84.bitbucket.org/example/poli/index.html
Two sections that are required in every good readme: "Prior Art" and "Why".
single-page version: http://www.anandtech.com/print/7940/windows-phone-81-review
Programming Languages Are Horrible