skysight-inc/HackerNews huggingface dataset:
Academic code typically just has to work once or a handful of times, for a small number of highly expert users, frequently just for the author. Ease of update is of the essence - you'll rewrite most of it many times, as your understanding the problem change. You can use all sorts of ugly hacks so long as you get what you're after.

If any of it ever becomes commercially released or whatever, there'll need to be a complete rewrite that makes it usable and maintainable by people other than yourself. But most of the code will never get to that point because most of what you've done up until about a week ago is wrong and worthless, and the current, correct-until-next-week iteration is stuck together with duct tape.

Speed only matters on the infrequent hot paths, which is why Python is popular. The rule of thumb is nobody cares about speed / resource consumption until it needs to run on a cluster, but then you care a lot because cluster time is metered and simulations can get huge. Fortran is still fairly popular because many math libraries are on it and porting would require huge effort from a very small group of very busy people.

Most of the coders are not software engineers and don't know / don't follow best practices; on the other hand the popular best practices are not designed for their use-case and frequently don't fit. Versioning (of the I-don't-know-which-of-the-fifty-copies-on-my-laptop-is-the-right-one type) is a big issue. Data loss happens. Git/Github/etc has steep learning curve, but so does all the various workflow systems designed for research use.
Training it to mimic humans means it will always be worse than humans.

The success of AlphaGo says otherwise. The distinction is that you're not mimicking one human but some large set of humans and you're using your fitness function to guide you toward a maximum 'meta human'.

We don't need self driving cars to be perfect drivers. If they're better than any human driver then that's a good enough reason to replace human drivers.
I know that Consensys (who is looking to hire hundreds of engineers https://consensys.net/open-positions/) is working on a special smart contract language that would be easy for lawyers to learn. The language compiles into EVM bytecode.
A study conducted for the New York Times study shows that Americans, especially women, have quite negative views of being alone with members of the opposite sex.

We Americans have always been said to be puritanical. Originally, this was based on religious morality adopted by society. Now, it seems to be based on the constant overhanging fear of men as potential abusers. (Is a constant overhanging fear of men as abusers much different than a constant overhanging fear of brown people as potential criminals? There are statistics to support both.) As a victim of sexual abuse as a teen, I'm well aware of the potential for bad things to happen out of the view of society. However, the frequency with which weird intentions have been erroneously ascribed to me strikes me as a bit off kilter. I've even watched a woman weirdly freak out on me and ascribe such things to me for doing and saying absolutely nothing.

One thing you pick up, if you read enough history, is that people ascribe clandestine evils to people as a means of aggression or attack. The Salem witch trials had an economic/resource allocation basis. (Resource allocation problems bring out the worst in people. Jared Diamond's analysis of Rwanda is another example.) There's also a history of women of higher status using such accusations as a means of "punching down" on men of lower socioeconomic status, often across racial lines. Such accusations are particularly potent for being lurid. In mentioning this, I'm not trying to imply that all accusations are weaponized false accusations. What I am saying is that human nature just as much applies to both men and women, both the good and the bad.

So what to do, if you live in a world that simultaneously contains innocent people, clandestine evils, and the opportunistic false accusation of clandestine evil? The solution lies in a society that emphasizes openness, truth, and the protection of the individual. The presupposition that someone is prone to do something based on an inherent trait is particularly dehumanizing. It's just as epistemically bankrupt and dehumanizing to presuppose bad intentions to someone on the basis of sex as it is to presuppose bad intentions to someone on the basis of their race, their religion, their sexual orientation, or their place of national origin.

We call out countries that would throw individuals under the bus for their purposes. We should also call out ideologies that advocate throwing individuals under the bus for their purposes. (The protection of the individual is, after all, the foundation of liberal values.)

(P.S. You can tell if someone is too far gone as an ideologue if you set a trap for their presuppositions, and they can't help but blunder into it.)
This is Sokal level writing. If this was a random person trying his hand at a writing class, whatever, but this is the guy writing the code behind your crypto coin.
foo :: a -> (b -> c)

Not saying it's wrong, but "foo is a second-order function" is a distinctly minority opinion.

To a useful first approximation, Haskell works as a cartesian-closed category, which basically means we have tuples and that tuples harmonize with functions so that foo behaves just like

uncurry foo :: (a,b) -> c

which is a first-order function.

So the majority opinion calls foo a first-order arity-2 function.

Here's a bar function that's truly second-order:

bar :: (a -> b) -> c

In general, the order of a function is the count of parens nesting the leftmost innermost arrow. It is invariant to currying/uncurrying as well as permutation of arguments.

The same counting principle applies to other invariants such as ranks and kinds.

"How high can the order of a function go?" is the question explored in this blog post [0]. Note how the author's definition of order -- essentially the same given here -- got left and right mixed up.

[0] http://math.andrej.com/2006/03/21/interesting-higher-order-f...
Blue Apron shares plunged more than 17% in their first week on the market
Not until we have cryptocurrency bootcamps and people pursuing degrees in cryptofinance.
I wasn't aware of Sokal. I'm going to include this concept on the "scammer" page.
?? it's not something that's hard to do, it's like the foundation of my career. I use the principles all the time. my whiteboard /verbal / code solutions are based on that.
It's one shard per node though, right? So you're talking about SERIOUS cost when you want to store _actual_ big data.
I said it was per node (which is a shard), it's not a limit per table. Did you read the original article or my reply? Both of them state this is per node and how DynamoDB decides when to shard to more nodes.

Edit: Sorry, I did mention 10GB originally in relation to a table. That was incorrect of course.
This doesn't seem to do it for me. The multiple explanations it offers are all either:

1) Extremely vague and handwavy, or

2) Links to extremely long documents.

Neither one is an explanation, something that hits the key points and gives you enough to know what to ask to get greater detail.

Edit: toned down criticism.
Soon, whatever deluded tribe gets their hands on the rudder will drive the ship of state until it hits the rocks of reality.

There's a word for this happening throughout human history. It's called "government."
How would that help? The same user id will still hash to the same thing.
according to who?? like there are people who post stuff like this all the time, but it's just the anecdotes of a small population. companies have tried many different techniques and this is currently working the best. no top notch engineer is going to do a 8 hour take home test for every interview
There's one point in particular that took me a while to grasp: while you can write code that runs on the Ethereum network, every single node has to process that code.

So if, for example, you had a big 3d animation sequence that you wanted to have rendered, you would not just send that code off to the network to be processed. You would have to pay to have every single person on the network process that job for you, and it would be so big the network wouldn't even accept it. Rather, you would create a simple contract that says "if you render this animation for me and prove that you did it right, I'll pay you X amount of Ether". Someone would take the job and the Ethereum network would process your contract and handle the payment. You would end up paying that person to do work for you, and you'd pay the network (using something called gas) to process the contract.

You could use Ethereum to create all kinds of interesting contracts for financial purposes, voting systems, insurance, or whatever else. But it's not some giant compute cluster that will run some big program for you.
It's generally accepted today that neurogenesis does occur in the adult brain.

That said, probably the main activity in the adult brain is developing interconnections between existing neurons, which requires generation of new dendrites and axons and whatever other structures.
Be my guest: http://github.com/Breefield/whatthefuckisethereum
It's supposed to be a combination of layman information, reference material, and humor, I agree some of the content was rushed.
Confessions of a Slang Coder at Goldman Sachs
That sucks for the rest of us who actually don't take things that don't belong to us.

Thanks for spreading the theft
You don't pay per node. In fact, the concept of a node is not exposed at all. Each shard is technically on three nodes for high availability. You pay for provisioned capacity and data storage per GB.
Or is it simply that public focus is limited and ever shifting. Artists cannot recapture the previous glory because it is fickle.
I bought a DSPTCH Daypack a couple years ago and it's pretty amazing. I don't know if you'd get a good layout inside the pack (there's a couple pouches, a small zipped pouch at the top, and a couple bottle pouches on the side inside the main compartment, but that's all. That aside, it's only a couple pounds, super tough and comfortable, and not gaudy. The laptop pouch fits a new 13" MBP AND a ThinkPad x220, but it expands well so things don't just rattle around in there.
The existence of workarounds for this behavior on Facebook's part makes it zero less shitty of them. Those images are mine (the general me); Zuck, et al, do not get to leave me a down-rezzed, EXIF-stripped version as a parting gift, in the event I choose not to play in their sandbox any more.

Except, of course, that they do. Because we let them.
So it's fine as long as I precompute the full transaction to apply to the key, then do it all at once? I expect large overall transaction volumes but am happy to only issue one DB change per user interaction.
From personal experience as an software engineer who's been in the field for around 5 years now. I have interviewed over 15 people in the past year for each of these positions and hired around 7 of them. (Mid west, other locations may varry.)

Software developers code programs based on an engineer or architects specs. They normally come from a scale up coding facility. Don't not all think about future selves but how to get things done right now. Usually understand business goals pretty well.

Software engineers have a deep knowledge for common design patterns, probabilistic programming, and semi-fast prototyping. They also shine bright when data mining or artifical intelegence comes into play. Not normally very focused on the business goals, but strive to know more. Normally hired directly out of college or after 5+ years experience as a normal developer.

Software architects do little coding but are normally software engineers on steroids. They have a vast knowledge and understanding for how systems work together along with having around 15 years of SEexperience. Normally they have a good understanding and connection to the businesses success.
As soon as I understand ethereum, I will!
I just added more to it. That's all. If you want to ignore condoms, then we're at an impasse.
Tesla to build world's largest lithium ion battery system in Australia
Thanks. In your example, how could one hope to prove they had rendered the animation correctly? Presumably each node must be able to verify the correctness of this in order to process the contract?
I remember reading Indians of the Northeast planted corn, beans, and melons together. So switching to polycuture crops should have advantages.

One other thing I've read is that annual plants were the easiest plants to domesticate because the short life cycle results in faster evolution. However perennials are likely way less environmentally destructive.
Sometimes uncovering truth can disrupt previous certainties.
The profession that will still be around for my 2-year-old son
And that answers the big question running around in my head. Thanks !
Gandi's been a long-time supporter of Debian[1], providing preferred pricing (their best "bulk rates") for years. I assume the CA migration was also donated.

I'm personally quite glad the SPI CA is gone, and that we removed CACert[2][3]; stopped a lot of "works on my machine" confusion, and made the project more welcoming to people not already running a Debian derivative.

[1]: https://www.gandi.net/supports/debian/
[2]: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718434
[3]: https://bugs.launchpad.net/ubuntu/+source/ca-certificates/+b...
Why companies announce "deals" without doing anything?
Definitely a very constrained system to write in. For anyone who loves to write compact optimized code though, Solidity is very fun to write. Squeezing out every last little bit of gas. With the Viper language in development being even more low level there could be a good market for developers who can create solid contracts. VISA recently posted a job opening looking for a Solidity developer. I think with how rare those developers are, you would be in a really great place to negotiate your salary.
Dynamodb has a nice js interface and is a good helper store for various small aws specific automation projects.

It's not a good choice for various read heavy enterprise apps (and frankly for write ones neither). It also doesn't scale - it doesn't even have a cross region active/active support (highly surprising for a key value store when cassandra supported it for ages).

Don't use it for anything serious.
Type systems /don't/ underly the technology we use every day. The vicissitudes of real computer architectures do -- and those ain't type systems.
Well, it is a trivial example. In reality, such things would be hidden in the complexity of the code. One could argue that if the correctness of the code cannot be accepted by the type system then it would also be confusing for a human to look at, and should therefor be refactored; which is why (in practice) this is a non issue.

For a less trivial example, consider the expression "f(x) + g(x)" where both f and g can return either a number or a string. It is conceivable that for any given x, they would always return the same type, but a type system cannot detect every such case.

Or consider a program like:

x = 1
print_int(x)
x="a"
print_string(x)

I have seen code just like this in dynamically typed languages. You can also run into a simmilar situation that is not obviously correct if, for example, x is a global variable while the program is running a state machine. You can then view each state a transitioning the type of x. Determining if such a program is correct would involve knowing each state transition, what type of x is expected when control enters a state, and what type x is when control leaves a state (and a given state might have multiple output (or even input) types. I have seen one program that actually worked like this; and it was not fun to modify.

Of course, a type system is no guarentee that you do not have this sort of problem. For example, you could say, in the first example, that x is a union type of Int and String (and print_int and print_string are defined to operate on such a union). In this case, the program is well typed, but has partial functions, so the type system cannot guarantee that there will not be a runtime error when you call them (it won't, however, be a type error, since the type system missed it).

You could also have x be an untagged union. In this case, I don't see a way of doing any better than undefined behavior.

A completely different type of example, is C code such as:

*0x01 = 0

which means "set the memory at address 1 to 0", but is poorly typed.
Or job postings asking for a minimum of 5 or 10 years of experience working with Solidity and Ethereum
"Practical" is the key word here, I believe.
What about a format for code localization for code repos? A bit like a `.pot` file for string translation, but instead it applies to names.

For reading code in another language, you apply the .pot file to the code base in a separate branch and it does search and replace in the source files so you have the same code base localized (assuming utf-8 everything).

When running code with localized identifiers, any single word, underscore_connected, and CamelCase identifier is "looked up" and "symlinked" to the correct identifier in the default locale (English). Think "search and replace" at the AST level of the language.
A framework for creating ponzis
What a great piece!

I wish the author would expand on this piece with either more installments or a even short book.

I find myself interested in type systems as it relates to programming language design but I haven't found much middle ground between the basic types described in introductory texts about a language and the opposite extreme heavy academic texts such as the ones the author is breaking down in this article.

Can anyone recommend any other such middle ground resources on type systems and type system theory?
Did SF/Valley figure out how to deal with its new wealth? That same answer applies here. The exact same thing that happened in SF and the valley is and has been happening in Seattle for quite some time, just on a slightly lesser scale. Hell, even the geography of the two places is extremely similar. Of course the results are similar. If I want to see Seattle's future, I look at SF's present.
At least each example in that sentence there already has one or more teams implementing it and actual working code you can run on top of Ethereum.
Amazon Prime is getting closer to Jeff Bezos’ dream
> You keep attempting to avoid the fact that you must tie losses to a specific entity being lost. You lose productivity because a specific person is no longer being productive. It's as simple as that.

This is a delusion that exists only in your own mind. You don't have to account gains and losses separately; most of the time you want to net them out, because you only care about the difference. Net losses are still losses -- that's why they're called "losses".

Think of it like accounting for mutual fund shares on an average cost basis.
Zuckerberg for president!
also maybe look at https://nodesecurity.io/
Maintainability. A lot of academic code only has to last long enough for one project or thesis, and the only maintainer will be the original author. Real-world code will last longer[1], and be worked on by more people, including people of lesser skill without the original author around to guide them. Often, that code also has to run in more environments. This difference is reflected not only in the code itself, but even more importantly in the infrastructure around it - source control, tests, documentation, bug trackers, etc.

Ironically, an academic might get to spend a higher percentage of their time on pure coding than a professional coder does. They have other concerns. Maintainable code is not part of the desired outcome. It's consumable and expendable, not durable, so any time spent making it any better than "just barely good enough" is wasted. Why build a tank when all you need is a bicycle?

[1] At least the expectation. Some academic code lives on far longer than its authors intended, and some non-academic code vanishes pretty darn quickly. But in general, both the intent and the expectation is that non-academic code will live longer.
The article ends with a tldr to help with that:

"In wrapping up, I am deeply sorry to any contribution my actions have had on women in this ecosystem by giving permission to the kind of behavior we are trying to change."
Shoot! Explainer site missed the target.
I wrote the "average person" page to be quite high level. Unfortunately the "nerdy" page became a little too nerdy.

I should work on an "I'm a software developer who wants an intermediate technical understanding" or something like this.
If you want to do more intense computation, https://truebit.io/ has a cool solution. It's exactly what you said, it allows you to pay someone to do the computation for you and publish the result to the contract. After the result was published, anyone can verify that it's correct by re-running the computation. If the published result is not correct, you can interactively prove this to the smart contract because the smart contract is able to simulate 1 step of the computation. If there are N steps in the computation, it is possible to prove to the contract that the original person who did the computation cheated with log(N) transactions. After the contract is convinced that the original person cheated, he would punished by destroying his deposit.

Read the whitepaper and watch the videos if you want to learn more.
Hi, I am currently paying 15$ for 75MB of data. Thank you very much to everyone who obsessively optimise their web code, as it is worth it for weirdos like me.
As a python programmer, I found R's pdftools to be indispensable for messy text based PDFs. I couldn't find a python lib that worked as consistently across variously different formats.
Please edit your original comment. Particularly, remove the blame on her and the calling her "scum"
I really don't think they have an axe to grind. What do they say that's incorrect? Their point is that much of what we see as type theory is inaccessible to the average programmer.

When we say that some field is inaccessible, we don't blame the reader trying to understand. At the same time we're not saying that the field is wrong either, but that communication could be improved.
Nitpick: You can only use ACM with ELBs/ALBs/Cloudfront Distributions.
We've had good luck with some academic code bases in production -- ETH Zurich puts out some great code [1,2].

[1] https://github.com/libigl/libigl

[2] https://github.com/pybind/pybind11
Startup founders need someone to talk to who isn't board, team, or spouse
Follow-up: https://falkvinge.net/2017/06/11/right-money-bitcoin-hits-30...

No numbers anywhere, but if he held on to it (and didn’t get stolen/lose it/etc), that’s retirement level even with 1k invested
The problem with ether isn't the tech of contracts but the implementation of the network. There are very concerning scalability issues that have not only not been addressed, but who's 'plan' for resolution are either untried systems in development (sharding) or have significant architectural issues (proof-of-stake) that very smart people think will never be resolved. I hope they overcome these obstacles, but the jury is still well and truly out.
Man, if he did that in 2011, and held onto it until now, he's made a killing! (Click “all” on http://www.coindesk.com/price/)
Hello all. After going through several of my own startups and writing several startup books I have a (small) amount of wisdom to share and the belief that founders often need an unbiased listener. So that is the service I'm offering. Simple pricing and nowhere near what an corporate executive coach costs.
What’s the Greatest Risk Cities Face?