skysight-inc/HackerNews huggingface dataset:
I read a short story, not too long ago, about a solitary planet on approach to a solar system. Their society was stagnating due to some cultural predilection to having a once-every-ten-year science fair, and having no technological progress outside of that. It was framed as a murder mystery, too. Wish I remembered what it was...
"and we haven't yet developed the cultural knowledge that algorithms can make mistakes as well (astonishing, considering how often computers do not do what we expect them to do)."

I feel like we've made some progress in the past ~20 years I've been able to witness that effect. Once upon a time, the output of a computer might as well have been divine writ. Nowadays, the person on the street is a bit more realistic. I think the problem with a bureaucracy now isn't that they consider the computer holy writ, it's that they hear "the computer is wrong!" more often than it actually is, so they grow their own rather cynical reaction to that claim... and, alas, that's a rational response, too. Especially bad when their system is telling them that you're a bad person in one way or another... of course you're not really six months behind in payment, you deadbeat, I totally believe the computer screwed up. The check's in the mail, too, right?
EIZO Announces Monitor with 1920x1920 Resolution
School districts and towns that they correspond to are often setup explicitly to prevent equitable distribution of resources. It is very human nature to do that in the "got mine get lost" way. property taxes are just s bad way at it (and WA does much better than most states).
Tuned to the Senses: An Archaeoacoustic Perspective on Ancient Chavín
Many C# 6 features work in Xamarin's compiler, but aren't necessarily understood by the IDE, for example. `using` static classes and the ?. operator both work.
As I like to say, "To err is human. To screw up a million times per second you need a computer."
This. I wrote something that did this a few years ago. It took n patterns (not regex, simpler) and turned them into one DFA state table with a function ptr stored for each final state. Then it had a tiny runtime. Never thought of using it for route tables however.

Nice idea.

Edit: I did consider rewriting the runtime as a forth style interpreter as well but the time never appeared.
Impressive looking stuff - I'm currently learning Scala and getting deeper into functional programming, and a lot of the concepts I come across (e.g. Option types) make a lot of sense, so it's cool to see them being implemented in other languages - hopefully with the recent MS announcement, I'll be able to get back into C# development in the future as it's a pretty great language all in all.

As an aside, I recognised your name in the example code on there - I used to occasionally hang around on 4four :)
How much work went into advertising your Udemy courses? Was it something that took significant advertising / reach to gain students?
If you are Sacha Baron Cohen, yes.
Well said. Errors will happen. How they're monitored/dealt with is not an algorithm problem, and it's importance can't be underestimated.

In this case "the algorithm" is the fly in the printer from the '85 movie "Brazil". Except these are real stories, it's absurd.
Docker as a layer of security vs. untrusted user input being compiled as root?

I'd be interested in hearing more about the decision-making since Docker doesn't claim to provide protection from untrusted users.
Yeah, if you take a photo of a menu displayed on a standard monitor you tend to get a screen door effect on the photo, which lowers accuracy. It does work much better on high density monitors (and other high density tablet and phone screens), though, and of course physical menus.
Monkeys Steer Wheelchairs with Their Brains, Raising Hope for Paralyzed People
Checked array access is implemented with unsafe code.

Actual code implementing the `[]` operator for arrays ("slices"):

fn index(&self, &index: &uint) -> &T {
assert!(index < self.len());

unsafe { mem::transmute(self.repr().data.offset(index as int)) }
}

By having `unsafe {}` it's possible to build low-level functionality as libraries rather than in the compiler. There no reason to think that code such as this would be less prone to bugs if it were hard-coded into the compiler. I'd be more inclined to believe the opposite.
Good Ideas Suck
The author makes a great point and something I've been struggling with. We have so many great tools and with tech constantly improving it makes it hard to focus on a single topic area. Personally, I've gone through so many tutorials on so many different languages and frameworks (Obj-C, javascript, python, ruby, etc etc etc) but have never really focused on a specific stack. I think the most important for any new developer is to choose an area like web development or ios programming and focus on the fundamentals of programming. It's just like learning a foreign language, you're never going to be able to speak fluently until you do it everyday for months or years.
You're assuming perfect competition and no switching costs, while ignoring network effects. I like markets but they don't inevitably produce rational outcomes.
I am currently taking this course. It is a lot of work, but I've learned a lot about operating systems.

It's certainly more work than the 12 units it's rated for though.
There is thst: society benefits from educated kids, but we've managed to create a system segregated by socioeconomic factors that tend to inhibit social mobility, which then describes why the US can simultaneously have the best and worst schools in the developed world at the same time.
Great point! One problem, though, is that it takes money to keep your own level of fault low, to accurately measure your track record, and to discriminate between fault and no-fault risk. All this cost may undermine your ability to sell a cheaper product to low-fault individuals. Another complication is that sometimes neither you nor your customer will be at fault (either because nobody is at fault at all, or because a third party is at fault).

Finally, in the credit arena, risk information is pooled between creditors, some of whom may be more likely than others to have been at fault in a given dispute. You'd have to figure out how to refine a customer's risk profile based on the data from a credit reporting agency, or source all the data you needed yourself.

If you could overcome these challenges, though, (and maybe you could) I think you'd have a great business.
You are told how the measurements were made -- Are the benchmarks game measurements accurate?

I think these questions are more to the point: Were the Python programmers as skilled as the Lua programmers? Do the programs do anything like the things your programs do?
The Fed is worried about the stock market
I wasn't suggesting "one size fits all". Vaping a known chemistry "at will" is still far more reliable than just grabbing some pot, smoking it, and hoping. That is still not a medical solution, it's a "pothead" looking for an excuse.
You're the author of Haraka, a tool I'm prepared to try in production. This makes me _really_ worried that I'm making the right choice.

(To explain: obviously C++ churns out machine code, the parent was talking about compiled vs uncompiled regexes – if I'm not terribly wrong, the compilation step is turning the regex into a finite automaton.)
Wow, thanks for sharing the additional thoughts! I appreciate it. :)

Glad you like what Baron Fig is all about! My co-founder Adam and I are having a good time learning, working, and pushing the company forward. Thank you for the kind words.

I like what you're suggesting in terms of slow assimilation of a new person into the mix, it's definitely a sensible strategy in making sure we don't commit to someone (or them committing to us) when it isn't a good fit. Along with this idea, it makes sense that we don't even look for a CTO, but rather a Lead Developer (as suggested elsewhere in the thread) who can grow to fit the CTO role.

Great link, thanks for dropping it in. Going to dig in and do my thing. ;) And thanks for the marketing offer! Feel free to shoot us an email (on our site) if you'd like to continue that discussion.

Thanks again!
Yep, added it in response to another comment, and the parent comment was posted a minute or so before the fix was sent up.
More Money Won't Work: How to Cultivate Creativity in Today's Knowledge Economy
Uber Said to Investigate New York Manager Who Tracked Journalist
Union Types, done in a lightweight 'anonymous' fashion. Awesome! Some languages go the discriminated type union route. If I had to chose I would take the this over a that alternative. Typescript continues to push forward.

Hopefully this leads to the construct being adopted by more languages. Rust has the heavier version, maybe they will adopt this before they release instead and then they can replace their gussied up Either/Err type with unions.

Maybe someday the Scala team will see the light and we will get them as well. Sadly I am not holding my breath, adopting innovations like union types were what drew me to Scala. Something like this isn't even on the docket for the next several years at a minimum. All the innovation in syntax died following the terrible 2013 scaladays keynote that "challenged" the Scala community to suck as hard as Java by 2018. It's really a shame that martin didn't decide to just implement union types when he implemented tuples years ago, now the language is probably too ossified to ever adopt them for fear they'll be another XML.
> I'm intentionally separating the handling of runtime errors (e.g., memcache request fail) from validation errors (garbage data causes a map to have a nil entry) and unexpected errors (whoops, that shouldn't have been nil).

I think that the original poster (the one you responded to originally) was talking about errors in the first two senses; things that you should/want to handle yourself. I guess the last thing should be handled with a panic?

> For unexpected nils, I do like the option-type/monad approach, though in most cases (e.g., when writing Go, Java, C++, or Javascript) I just let them NPE/segfault.

It doesn't that you understand idiomatic uses of option-type. Their used for things that legitimately, as a part of the normal operation of the program, can be "null". Not for things that should really not be null. At least I assume that uses of NPE/segfault is not typically used for things that might be null (like returning null from a Map since the value is not there). So, they are not used to "hide" null pointers that shouldn't be null to begin with.

For cases where a nullable type, or Option[T] if you will, really should not be null, it would be more idiomatic to "forcefully" extract the value. In other words, use a function that returns the value, or throw an exception if it really isn't a value (it is null); throwing an exception here would be an indication of a bug. But this use is usually thought of as unidiomatic in languages like Haskell: you should rather make sure that you don't have to "forcefully extract" things like that to begin with.
I would think only in some economics "belief systems" exponential growth is mandatory

I call them belief systems, because when you look at it, it can hardly be called science: examples of mutualy exclusive theories are coexisting and sides quite often forge the data using advanced obsfucation: tweak some parameters here, adjust them there, carefully pick base data and voila - you've just proven whatever the hell you believe is "the only true way"
But perhaps it should include all of those people in coffee shops using Surfaces and ChromeBooks and MacBook Airs.
DeepMind co-founder Shane Legg on unsafe AIs [video]
You're assuming a number of things that aren't always true:

1. Your networking pipe into the server is slow.

2. You don't have a reverse proxy in front of the webserver to buffer the slow connections.

3. You don't make decisions about what information to show the user in the webserver; your UI isn't tailored for the particular user whose request you're servicing.

4. You haven't made productivity trade-offs to move work from the developer to the computer.

Google's webservers (for Search) are CPU-bound, and I can guarantee that they are neither underprovisioned nor badly architected, and CPU-intensive tasks are moved off the webserver (the total amount of CPUs for webservers is miniscule compared to the number of CPUs used for the indexing & serving system). But Google has the fastest fiber networks in the world, a massive load-balancing infrastructure, its philosophy is to serve each user only the HTML/JS that they need (to cut latency), it relies heavily on A/B tests & experimentation, and it invests significantly in developer-productivity tools so that all the bookkeeping for the last two points are done by computers rather than humans.
Downvote all you want, but this expression needed a reaction !

Of course English being not my mother tongue I didn't have enough vocabulary to express my distress at the mental picture that exploded in my brain when I read those words.

I thought "dude" conveyed best my disgust, puzzlement and amazement :-)

I don't hate you though.
Forget Rust, I want Julia :-)
The Apple reference sound less like a business plan, and more like typical hype of Apple exceptionalism. Apple makes the top dollar by selling devices with a nice profit margin. Would they really want to add several hundred dollars to their price, thus cannibalizing their sales – just to donate most of that to record labels? (No!) Yes, they would get their cut, but most of it would be away from iTunes revenue. (Not all Apple buyers use Spotify or similar services – and if Apple could raise their retail price without diminishing their sales, they would.)

And if they made the inclusion (of music) optional, why would record labels settle for much less than what Spotify pays? For no reason, and they wouldn't.
(Replying to message below, indent limit reached).

The panic check is inside the loop, not hoisted out of the loop?

OK, that means it's only optimizing bounds tests out when it can, not hoisting them out of loops. That's not bad for a compiler in the early stages. Is a matrix multiply free of checks in the inner loops? That's a good test, because most numerical code has a lot of matrix multiplies underneath. A useful goal is to have most of the inner loops from algorithms in Numerical Recipes free of unnecessary subscript checks.

If that can be done, is the "unsafe" stuff necessary at all?
It's not just business. 30-40% of Americans don't believe in evolution, if we are to believe surveys. A large chunk of the country takes the bible at face value.
Yeah. There's a huge difference between learning "how to code", and how to actually design good software. Lots of a focus on the former, almost none on the latter.
You Say You Want Diversity, but We Can’t Even Get Internships
Google for anthropic bias or anthropic principle

Climate changing slower than humans give birth or starve, plus lack of petroleum age mobility, will result in this bias.
I didn't like it when people started using "learnings", but I'm beginning to appreciate some subtle shadings it seems to have over lessons. It seems more discovery oriented, and less sure it's correct, or at least, less widely correct. Sort of like "hacky, working hypotheses, that we think are worth sharing."
This is a great suggestion. Finding someone who is already a Baron Fig user would be fantastic.

I like your idea regarding a Jobs page, however, I'm having trouble figuring out what we'd put on there. It makes sense to list the basics, but I'm hesitant to put project details in there if its public. The things we'd be working on are 1–2 years out, and likely not something we'd like to discuss with the public (or competitors!) until we're ready. What would you do in this case?
> roughly constant time for the most common cases.

For small values of n ;)

A tree of maps would be consistently log(n), like any map. Even a hashtable would hash to buckets eventually, and are log(n).
> But can we agree that there are states that can be factored, and states that can't, and that this is a useful distinction to make? And that this distinction is physical, i.e. that it produces observable effects? (And not just observable, but interesting and useful?)

Oh certainly. I've never disagreed on this haha.
I'm curious which resolution people would rather have: 1920x1920 or 2560x1440?
Joining Google
My experience is similar on a Galaxy S4. The extremely long processing time lead me to believe it had locked up or was otherwise doing nothing.

Also, it managed to find a beer name when I took a picture of nothing (covered the lens).
Great article and observations. It's always good to see what this field looks like from a newbies' eyes.

If it only it were so simple as keeping a small tool set and a dev team committed to it. You can certainly build a business from scratch with a small toolset. But as the business adapts to customers, you always start to find things that customers want that the tools do not support. In initial dev, you don't necessarily care, but when you're live, it's better to implement than say 'no' to executive management and sales in most (not all) cases.

Once you modify the tools a bit to support the unique business, you're no longer able to keep new developers focused on a small toolset, because you've customized. New devs may not agree and may look for ways to work around the customizations. Soon, you have a unique codebase that is valuable- central- to the business, and your changes have crept in to the point that off-the-shelf devs and tools and upgrades don't work.

Now you're in maintenance mode. Code schools don't teach maintenance, but it is the lifeblood of the software business. Developers avoid maintenance jobs. They try to find new, greenfield work. That's why we end up with so many disposable business models, 3 year dev-to-acquisition cycles, and ridiculous amounts of abandoned code.

Maintenance is hard. Much harder than development. But it's much more important. Anyone can launch an app that builds a business. Not everyone can adapt and grow that business with code changes that require getting out of the dev comfort zone.

Code schools don't teach this because they don't want to expose aspiring coders who just want to get rich to the grimy dirty details of a real profession. But ask yourself this- would we have cars and highways if all we trained were new car designers (not mechanics or road builders)?
BA doesn't provide an API, and they regularly go after scraper-style "API" implementations that pop up. http://www.beeradvocate.com/contact/

Also, +1 for Untappd integration. That would be amazing.
What Texting Does to the Spine
They renamed it "in flame graphs."

For the audience, this was originally titled: "Node.JS in Flames"
Ask HN: A legitimate, open-source, Sharepoint alternative?
HN,

I work for a midsize start-up (~30 employees). We've been using a very old version of Sharepoint and it's time to kick it to the curb. It's nearly unusable (technical issues) and it's basically a glorified file server.

I've done the research on the costs of migrating to a newer version, and while we can eat the cost, it's still a significant sum (SQL Server/Sharepoint CALs).

I'm a Linux guy and I would prefer to use something FOSS. There's no question that Sharepoint is an incredibly powerful tool, and it's probably worth the cost. With that said, I know there's something good out there.

Throw some knowledge over here if you know of any true alternatives to Sharepoint. Bonus points if simplicity is a factor.

Thanks,
SoMuchToGrok
No PHP was not created as "stupid project" (meaning knowingly not a good idea), it was a very real project for Rasmus meant for his own webpages and after with a few other people. He merely didn't expect so many people to start using too.

Originally he was not creating a language, but a set a scripts for common features.
Towards the DAO Ecosystem
No offense but every comment in this thread reads like a shill.
I'll tell you one thing, I know nothing about you, but this person is considered by many the best programmer in the world, one thing is certain, compared to the good done to the world, he's various levels above you and me, he's the creator of daemontools, the way it follows the unix philosophy has been an inspiration, I'll refer you to this page about software law http://cr.yp.to/softwarelaw.html

It seems you don't read my comments, because I've edited binaries, and distributed patches of proprietary software, that's not illegal, only I didn't distribute the binary or code without permission. Let me tell you, having systemd source doesn't help me at all because it's a megalithic blob.

Is the GPL a good thing? Yes, BUT just because you license your junk with the GPL you don't deserve a Nobel peace price. You seem to think that had Hitler released a hello world program with a GPL license he would be a saint, and can't be criticized, "fork or shut up", you say?
If you're not cleaning off the overspray, you'll definitely get sticky brown residue from oil. Oil is only slippery after it's fully polymerized. If it's partially polymerized, it's a sticky mess. Oil on the sides of the pan will generally not fully polymerize without a cycle in the oven because there isn't enough heat being applied.

The lecithin might make it worse, though.
Uber: Rides of Glory
> And that last bit is something that computers have largely avoided by consistently disclaiming all warranties. When that changes, and programmers (or their employers) are held liable for the incidental or consequential damage caused by their bugs, you will see a much stricter code for hiring and employing people who write code that runs on other people computers.

My understanding is that life-critical systems have a pretty high bar today.

(Also, since we're on the topic - what do you think of having some level of Professional Association ala the Bar or the Professional Engineering association)
Please don't put "Show HN" in the title unless you're personally involved with the project.

Anything that anybody posts is technically being shown to HN, so if we didn't have this rule, Show HN would cover everything.
Explain, please.

What prevents an NSL from compelling Google from minting a new certificate (they are a CA), providing the keys to the bad guys, and distributing that certificate in Chrome? NSLs have been used in the past to compel positive action (c.f. Lavabit), so I really don't see how you think there's any practical limit to their power.

My understanding is that there isn't a limit. If I am wrong about this, then kindly reply directly here so we can all learn instead of giving the "read up on" non-answer.
The market cannot take into account to cost of externalities, unless there is some mechanism to charge for them (meaning tax them). The other option would be to eliminate the concept of externalities by making everything owned by someone, but I don't see how that could work. You would have to come to an agreement with whomever owns air quality before you polluted and come to an agreement with whomever owns temperature before you caused warming...
Show HN: WEDG – Personal Cloud – Final Two Days
I think momentum has a lot to do with it (sellers go there because the buyers go there and visa-versa); but also Craigslist (while old-looking) is fast and easy for anybody to understand. For those of us who grew up with classifieds newspaper ads, CL does not feel hard to search with at all...it's no frills but does the job.