skysight-inc/HackerNews huggingface dataset:
I don't think cargo cult/magical thinking is a useful concept.

I don't know enough about the original cargo cults to say whether they were a reasonable attempt to understand very strange and novel events, or whether the tribes entire world view incorporated magical thinking.

It didn't really matter though. There is really no comparison to modern day programming. The analogy is to extreme to be meaningful. When you call someone a cargo cultist what you're really saying is that the causal mechanisms that person believes in don't exist. Which is a very normal reason for disagreeing and doesn't need a separate concept with a lot of baggage (no pun intended). It's like someone says "A causes B" and you don't say "no it doesn't" you say "no it doesn't and you only think it does because you don't know how to think. But it's OK, primitive tribes make the same mistake too."

The weakness of the concept explains the poor quality is the article. It is packed with weasel words and original research/uncited claims.
The simulation argument is an interesting intellectual exercise, and I'd charitably expand the definition of such simulations to universes of an artificial nature in general, but it's still just a thought experiment about something which cannot be falsified. Granted, it's a fascinating one, but it shares too many traits with The Invisible Dragon in my Garage to be of profound scientific value.

It's worth taking into account that people tend to have two entirely separate ideas about the nature of any such simulation.

The first one is a Matrix-like universe: a world designed from the ground up to be an illusion specifically for us - a computer program so idiosyncratic as to be utterly implausible, which only cares about deceiving human minds into living in an artificial environment. This is the concept of a computer simulation always invoked by the popular media whenever this subject comes up.

The second one, which is what scientists usually mean, is an actual simulation that merely runs the basic processes of physics from which all the other things in the universe emerge - and these include accidentally, among other things and quite marginally, intelligent life forms such as humans. It's merely an uncaring physics simulation indistinguishable from a "natural" universe.

In the end both of these are scientifically barren concepts. The Matrix is an implausible just-so story with quasi-religious undertones, and it's a concept that exhibits quite a few glaring holes the closer you look at its practical implications - holes which seem like they are in disagreement with daily observation and hence should lend themselves to falsification. The cold physics simulation on the other hand, while it doesn't share the intellectual weaknesses of the Matrix, gets us rapidly to a point where we might ask what difference it makes at all whether the fabric of reality is running on an artificial or "natural" substrate if there is no hope of ever finding out.
Unpacking Ashton Kutcher’s philosophies on technology and innovation
The Java code appears to be broken (`validate(records[i])` should be `validate(record)`). Further, Wake does

return Record[].any({
r -> return !validate(r);
});

shouldn't this be

return Record[].all({
r -> return validate(r);
});

?

And the inequality seems to be strict in Wake's case but weak in Java's. Finally, Java won't always return from `validate`.

The Java would really benefit from the newest version. I'm no Java expert, but I think it would look a bit like:

public class RecordValidator {

public RecordValidator(SessionHolder mySessionHolder) {
sessionHolder = mySessionHolder;
}

protected SessionHolder sessionHolder;

public boolean validate(List<Record> records) {
return records.stream().allMatch(this::validate);
}

public boolean validate(Record record) {
if(record.lastRevision != null && record.lastRevision.user != null) {
List<Account> accounts = record.lastRevision.user.getAccounts();
return accounts.stream().allMatch(sessionHolder::hasAccount);
}

record.revisions.stream().filter(this::usesLimits).count() < 3;
}

public boolean usesLimits(Revision revision) {
return sessionHolder.hasUser(revision.user);
}

}
Welcome to the libertarian paradise.
aren't you being a little bit misleading here? brokertec and espeed exist and are available. Banks don't want to trade many of the illiquid bonds electronically, but the issue IS NOT lack of availability of electronic platforms where they could do it.
I hear you. As we set out to design the Glowforge, we did not make the decision lightly to engineer it as a network-native device. It makes the experience better in many ways - lower cost, more powerful, and easier to use - but the flip side is that if you're not connected, you can't use it. That's a real drawback.

That said, we prefer our Dropcams to our closed circuit TVs and our Fitbits to our pedometers. We realize that some people may not like the tradeoffs we made, but we hope some folks are as excited about it as we are.
I suggest you pick an LTS version of an OS that is extremely popular like Ubuntu. That way you will have lots of people paying attention and patching security flaws ASAP. Then make sure you update regularly/automatically. Put it behind a strong firewall, AWS makes this really easy but you can do everything you need to with iptables. Disable password based auth in ssh and force key auth.

I disagree with yeukhon. You don't need to hire someone just because you asked that question. Unless you are storing highly sensitive data, then I'll leave that up to you.

Just remember to constantly update your server.
If I understand the article properly, what the author is suggesting is that instead of writing lines into the database that contain information about users, they create a hash that has some secret + user-supplied information, and if it matches, then that's considered validation.

The reason why I completely disagree with this is because this is embedded in code. All your developers will have access to this code, and you have people joining and leaving your company all the time. If this scheme is used to protect more important information and if it leaks, then it could cause chaos.

The difference is that all developers generally have access to code, but only some well-trusted people have database access in prod. If I care about security, that is a more secure way to do things.
Agreed. But there are many others CVT schemes without electric motors.
yes, exactly. But, the reality is that top HFT firms at least try to hire 10x programmers. So call them elite or not, but the calibre is high
I think it all comes down to what benefit your user's security.

If you want to expose to user his or her account's activity, like history of recent password reset, recent login activity, things that a typical FB user would see in the user's activity page, that can be a really nice security feature. So maybe after all the HMAC approach works just fine with extra state added. But I think the point the author is bringing is that the application can simply just do HMAC(.....) easily and verify in a few lines of just if and else branch, whereas the traditional password reset code would probably take more lines and more conditions. I had written code that did exactly what the author didn't like and trust me that code wasn't pretty and I had spent many hours to optimize the code. Edge cases and test cases shitted my codebase.
I've had an idea for this stewing in my head for a while. It's definitely not a business idea. More like a standard. Think of it as "RSS at the speed of Twitter".

Basically, I want URLs to be handles and self-hosted blogs to be posts. I'm still trying to figure out the federation aspect, but aggregators could scan domains for lists of users by checking "johndoe.name/microblog.json", or there could be a centralized server with a list of aggregators.

If microblog.json exists, it contains a list of users' URLs, and each of those is a list of posts. Each post has a short, less-than-140-character summary, and it may have a longer version. The aggregator can decide how to display short vs. long, but I'm imagining having the summary be clickable, and then the full text will roll into view.

The aggregation server otherwise functions a lot like Twitter. You can follow other people, and it might suggest other people to follow.

URLs are long, of course, but there are ways to shorten them. If the user is posting under their domain (johndoe.name), then their handle just becomes the domain.

If they're posting under a subdirectory-style URI, like "twitter.com/johndoe", then their subscriber only sees the "johndoe" part.

The subscriber doesn't need to know which domain "johndoe" is from, because she chose to subscribe to johndoe and will recognize the handle. If she subscribes to "someotherdomain.com/johndoe", then the aggregator can cleverly distinguish between them (with a tooltip, different colors, small subheading, etc.)

An initial aggregator would have to include Twitter, Google+, Tumblr, and any other publicly-hosted blogging service currently used for short posts. That would allow people a smooth transition.
Yes. The type system in Haskell is leading edge. As in "advanced".
It's been a few weeks since I did a benchmark comparison, and I don't have a setup anymore that I can re-run to get real numbers.

RethinkDB is decent but not great at simple queries, like "select * where foo = 1". Unfortunately, and it's a rather big minus, Rethink doesn't have a planner, and every index has to be specified explicitly. This puts a burden on the application, which needs to be completely index-aware.

Where it really does break down is on aggregations. On a 800k dataset of semi-complex documents, the query "select x, count(*) from y group by x" (x here is a string with a cardinality of 89) took 4 seconds with Postgres, 84 seconds with Rethink on a test box.

In this scenario, Postgres was actually running in a slow Virtualbox VM, whereas Rethink was running natively; on our production servers, the same query takes about 500ms. In this scenario, Rethink used about 6GB out of the 8GB of memory allocated to it, whereas Postgres just streams the data through the FS cache -- so I think Rethink is just using a really bad query strategy.

Rethink's benefit, of course, is horizontal scaling, and it's supposed to be able to parallelize reads. But it has to work for the types of queries you give it. I strongly advise looking at your application's query needs, importing some test data, and seing how they perform. If you don't need aggregations or complex joins, it might work for you.
Ask HN: Best practices for Linux dev environments?
I'm using Ubuntu 14.04 and would like to get started with Python, JS, and web development.
I wouldn't use a SaaS if I wasn't convinced you considered everything about me highly sensitive.
Excel runs the world, right?
This is a cool concept for lots of things, maybe even big things like companies and utilities. A for-profit entity that operates just like a normal one, but is programmed to not to simply maximize profits but to maximize social good. It would work well on things that don't require too much human thinking to run (just balancing equations and running equipment), but are normally hindered by self-interest.
Presenting the Workman keyboard layout
"The money they make has to come from somewhere" - yes, it comes from willing participants engaging in voluntary transactions. "May impose exernalities". That's pretty much true of just about anything, but good evidence is necessary to consider this statement useful
No, nobody is magicking up any fairy dust here. The author (which is me) is looking at things realistically. My maintenance costs just from a time perspective are already radically lower.

In anycase, so as long as the SSD is powered and thus able to rewrite blocks as bits start to go bad (creating some wear in the process but not a whole lot compared to normal operation), the actual data will be retained for significantly longer than 10 years.

Unpowered data retention (where there is nothing there checking for and rewriting blocks whos bits start to go bad) depends on cell wear. I didn't pull up the chip specs but my recollection is that it is 10 years for new cells and 1-2 years for a relatively worn cell. Depends on temperature of course. That means I can pull a SSD and shelve it without too much worry for a relatively long time, something that cannot be said for any hard drive.

CD's corrode from the inside out, primarily due to air trapped in the holes I believe. Even though it is laser burned there is no real care taken in constructing the plastic sides or metal film to keep up air so when it gets vaporized the oxygen sticks around and starts corroding the metal. Or the plastic gets fuzzy from UV exposure or age. Totally different ballgame.

Hard drives have even worse problems if left unpowered. I used to pull backup drives and shelve them, but their life spans are radically lowered if left unpowered on a shelf for 6 months and then replugged into a machine at a later time. I'm sure some HDD expert can say why. So I stopped doing that. Now the backup drives stay powered on 24x7.

Hard drives seem to have a limited life span whether you use them or not. I have tons of old HDDs sitting around, some well over 20 years old in fact. If I plug an old HDD in I can sometimes read the data off before the whole thing turns into a brick. I mostly use them to test disk driver error handling.

SSDs left sitting around can always be reformatted (i.e. just using TRIM to clean out the whole thing then start writing to it fresh). Their wear limit is based on rewrite cycles rather than how long they've been sitting around. HDDs are physically destroyed, you don't get a fresh start by reformatting an old HDD.

-Matt
Sorry, but if your server is hacked, you lose trust, even if all you do is keeping my five years old cousin's drawing. deb.haskell.org didn't store anything sensitive, but as a server storing the .deb it was hacked and has impact on possibly ten of thousands of users. Just an example.
What do you mean by the GPG key being reasonable?
Brokertec and eSpeed are inter-dealer platforms. If you're an asset manager, pension fund, or even a central bank, you can't trade without going through a bank. The point is to create a market that treats investors the same as banks.
Because they can be.
Ask HN: Has my education made me unhireable?
Hello, Hacker News. I've been despairing over something lately.

I've poured the last four years into a CS PhD and am about to graduate. I don't intend to take an academic position. I applied to a few companies, but none called back.

I have a background many geeks share: coding from an early age, spending their teenage years in IRC soaking up everything, playing, hacking. When I finished high school, I went into CS, where I met my future advisor. He suggested I apply as a PhD so he could fund me. I wasn't aware then that PhD meant "professor in training", nor that the university I'd go to has a reputation for producing bad grads. It seemed like a good opportunity, so I took it.

My advisor put me to work solo on developing a large system that would be the foundation for a (possibly commercial) web service. I saw this project through from the ground up. I got to experiment with different technologies. I made a habit of writing clean code/documentation. All in all, a lot of valuable experience.

People fresh out of academia are typically some of the worst software developers imaginable, doubly so for those with no job experience. I don't feel like I meet the stereotype, but looking at my resume you can't tell. My advisor discouraged internships, and nothing I've done outside of academia is worth putting in a resume.

I feel like I'm trapped. I'm overqualified, yet have no work experience. The only thing I am qualified for is an academic job I don't want. Now I'm about to be without income.

The companies I've applied to are all big, though I think I'd fit well in an early-stage startup where I could take on a generalist role. But I feel like such a position takes connections I don't have. Could I approach the founders at such a company directly? How can I prove I'm not just yet another post-academia liability if no one will look past my resume? Am I fucked?
I feel appropriately chastened now. :-) But that page is huge, and apt-ftparchive is in fact listed halfway down, but it's marked as deprecated two places. And the thought of doing general cleanup on that page (which it can use) is a bit more difficult than just adding some docs, as is the thought of arguing about just how deprecated is deprecated.

But I will try to make some changes to that page.
I write a blog on math and programming and I see linear algebra applied every day.

1. Ranking in search engines (more generally, any kind of random walk analysis) [1]

2. Fourier analysis, and as a consequence most signal processing involves some understanding of linear algebra because integrals are linear. [2]

3. Regression [3] and more generally linear modeling of anything.

4. Facial recognition [4]

5. Community detection [5], where most leading methods analyze the spectrum of a graph to find communities. In fact, applied network science in general has a ton of linear algebra.

6. Greedy algorithms are characterized by a kind of generalization of linear systems [6]

7. Linear programming, perhaps the most applied piece of mathematics ever, needs a strong foundation of linear algebra [7]

8. All of quantum computing is literally just linear algebra [8].

9. Cryptography has a ton of linear algebra in it, and a large portion of the techniques are reasoned about with linear algebra.

10. Most of calculus relies on linear algebra, most importantly optimization [9]

11. Recent data analysis techniques based on topology do so through linear algebra [10]

12. Coding theory, including the algorithms used to correct errors on DVDs. Basically, any time you want to encode data so that you can recover from white noise, you're going to use a linear code. [11] This includes compression techniques.

13. Of course graphics.

I could go on...

[1]: http://jeremykun.com/2011/06/12/googles-pagerank-introductio...

[2]: http://jeremykun.com/2012/07/18/the-fast-fourier-transform/

[3]: http://jeremykun.com/2013/08/18/linear-regression/

[4]: http://jeremykun.com/2011/07/27/eigenfaces/

[5]: http://jeremykun.com/2014/05/19/community-detection-in-graph...

[6]: http://jeremykun.com/2014/08/26/when-greedy-algorithms-are-p...

[7]: http://jeremykun.com/2014/06/02/linear-programming-and-the-m...

[8]: http://jeremykun.com/2014/12/08/a-motivation-for-quantum-com...

[9]: http://jeremykun.com/2013/11/30/lagrangians-for-the-amnesiac...

[10]: http://jeremykun.com/2013/04/10/computing-homology/

[11]: http://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_corr...
http://prog21.dadgum.com/179.html
I look forward to the followup 'why the yield from needs to be a real, structural part of the program and not just, for example, a magic comment' because I have the same kind of question :)
Battery cost is 12k for the 85 kwh battery as of about a year ago, dropping ~7% a year.
It's a similar story to solar panels, except that it might work for a variety of people who live in northern climates or don't have a ton of roof space.

It also might be a good candidate for utilities, most of whom buy electricity at market rates, to forward deeply stored energy closer to the delivery point.
Can confirm. It runs Sprint.
it's not entirely true, since HFT firms trade on them directly without going through a bank. The issue is there is no liquidity on these platforms for bonds other than on the run treasuries because banks don't want to provide it. Without banks providing it, there will be nothing for pension funds to trade.

here is from their website

"BrokerTec facilitates both API and manual trading for institutions, banks and non-bank professional trading organisations"
oHH i mean they can track the speed with which a person is moving and all?
Going to echo patio11's comment. But add a little too. Do not run Wordpress / Wordpress Plugins, or Drupal, on the same system you are doing anything with user data. These continually have security issues and you will almost certainly be owned [1, 2]. Out source blog hosting to one of the many hosting providers that maintains the software install for you. The chances of actually getting owned running stock Apache, or Nginx, are extremely low. You really need to watch what third party apps you install, like Wordpress, Drupal, or an unsecured phpMyAdmin.

ps. Make sure you have source code and database backups happening on a regular basis. If the server dies tonight, are you able to restore it to a point in time? What about getting the application stack installed quickly? Think about these things.

[1] https://wordpress.org/news/category/security/

[2] https://www.drupal.org/security
The gas station issues is contrived. When driving an electric car around one of the things you notice is that power sockets are WAY more common that gas stations.
Another question: when he uses the CNC to move the sensor around, isn't he also changing the reflective surfaces in the environment? Would this not produce inaccuracies?
What's the case for small investors to buy bonds?

So I feel barely competent to purchase stocks, because there's honestly a lot of crystal ball holding involved. Is the company going to grow? Is that already priced in? Etc.

It seems like bonds are case where the returns will be paltry or risky, and when risk is involved, the small investor will be least good at measuring that risk.
Sounds like security by obscurity to me. If you are worried about the secret part of the MAC then keep that secret, or change it when someone leaves.
> There are certain scenarios that SSP is not used, such as with arrays that are less than 8 items wide if I remember right. You can also bypass SSP if you find a separate memory disclosure vulnerability and learn the stack cookie.

-fstack-protector-strong always does it when there's an array. Many distributions lowered the minimum array size for -fstack-protector to 4 bytes too.

> A good trick is to use rop gadgets to allocate a memory region with read-write-execute permissions, copy some executable code into it, and then jump into it.

Note that this is why PaX's MPROTECT feature exists. It prevents injecting code or bypassing RELRO by default and executables need to be marked with exceptions for stuff like JIT compilation to work.
Ah, but how do you know you're not just used to a pale shadow of what REAL motion is outside of the simulation?

hits the bong again
Just to mention it here, IHaskell solves a lot of the annoyances with ghci. Easy multi-line input, don't need let in front of functions, can define modules and load them (automatically compiled), etc. I think they are working on support for template haskell too (important for experimenting with lens code etc)
I've also always done it this way. I didn't realize that was anything unusual.

It just seemed so obvious.
The bigger missed point I would say is that Tesla is worth $X billion now only selling 33,000 vehicles. They can and will ramp up their factory to produce the ~500,000 annual capacity (1 per minute) once they are able to release the ~$30k model to the masses.

This is when the charging station network will really take off as well.

500k is more than 10x current annual production, and though profit per vehicle may be less than their current models, we could still assume that they're preparing to ramp up 10x their size within a very short period of time. There will likely be enough profit or credit available to build more factories then - or perhaps take on partners that they build vehicles for. Could this lead their valuation being 10x what it currently is? Even 5x at what it currently is would put Tesla at nearly double the value of the suggested $75B purchase pricetag Apple might pay. It just doesn't make sense.

Also, it seems they're planning to supply houses, not just vehicles, with battery packs - so they could easily sell tens of millions of home and business packs every year within the next 5 years, at a much higher purchase price than an iPhone and with greater long-term savings.