skysight-inc/HackerNews huggingface dataset:
Ask HN: Blockchain: Is now a good time for smart contracts?
Hello Hacker News,

I'm a young entrepreneur and programmer. I go to HN more than 10x a day to keep up with new libraries and startups, and to stay relevant. I'm addicted to the viewing of a huge number of posts that get added daily to this site.

I'm posting on HN today to see if the project I've been working on for the last year is relevant in today's tech and consumer climate.

I have gained a growing interest over the past years in Bitcoin and it's blockchain, especially with recent news from Nasdaq regarding their planned prototyping of some sort of exchange system utilizing the blockchain.

As smart contracts are noted as being the "game changer" that the blockchain brings with it, I was curious how many of you had an actual interest in this space. Have you tried playing with smart contracts? Have you any thoughts regarding how the idea of smart contracts could change or supplement various business processes?

I'm really seeking to validate and scope out the market of the idea and driving force behind my new startup, Contracted (http://contracted.bitmountainfund.com).

I've been running BitMountain Asset Management (a quite small algo-based investment shop in NC, USA), but I've been seeing more and more of my time and interest being spent on my new startup Contracted, and the coolness and innovation it would add to the world of Bitcoin technologies.

I'm interested in what you all have to say regarding the "smart contracts" space and my questions above.

Thank you for your feedback on this question.
note that isNaN() will remain as it is today, coercing to a number (and so isNaN('LOL') will continue to return true). Number.isNaN() will have the new behavior, testing for actual IEEE 754 NaN values (and so returning false for Number.isNaN('LOL')). Such is the unfortunate price of backwards compatibility.
1. In a sense, anything LLVM supports. Some stuff is more first-class than others, of course. We test every commit on x86, x86_64, and ARM.

2. Exists, but isn't particuarly easy. The biggest hurdle is getting a copy of the standard library for the target platform, then it's pretty easy. It's gonna be a focus in the near-term.
Yea perhaps it's just not as easy as haskell. But I was trying to make the meta point that not breaking compatibility between releases can be a bit subjective.
I did research with Adam & Jim back in undergrad @ UCLA - I had a first stab attempt at creating these atomic switches & failed miserably. I'll see if I can get them to comment if there's a specific question here.
> Yes, up to and including blatant lies

I wasn't suggesting that people lie on their resume or cover letter.

> That puts anyone from a defense contractor, HFT firm, R&D group, and similar at a significant disadvantage.

I was a defense contractor and experienced this first hand. I found that good communication skills both verbal and written were able to overcome this. Since the hypothetical non-technical recruiter in the OP isn't going to understand the technical things that you can't talk about anyways, being able to communicate how you added value is even more important.
I like how you think that creating bitcoin was no work at all. Look at where it is now, isn't that a bit like mark Zuckerberg making a large fortune from creating Facebook? And they were not zero cost, initially they would have expense to make something that had no value. Only because he has the coins is bitcoin worth anything , he has them because the network required a miner, he turned them off when there was a stable network that didn't need his mining power,i
I think you're right that they weren't trying to do this with NaCl. They really were trying to do this with Dart, though.
Great points. The idea of having to switch companies to get any meaningful raise or using it as a threat is a misalignment of incentives that over the long term leads to bad culture
How easy is it for somebody to get your PGP key off a yubikey if they stole it? In particular since physical devices can be fuzzed, etc, it might be worse than an encrypted keychain on device for some people?
Apple Watch doesn’t need a killer app. It *is* the killer app
That they'll be coming in later releases. IO is a library concern in Rust, not a language concern.

There are already crates that offer some of this, like mio.
Congratulations to the team; it is nice to be around when a language is born. I remember when Ruby was born, and most people (that I knew) were like "Huh? Why Ruby, when we have Perl?".

I haven't followed Rust much, but as a total n00b: what are some practical reasons why one would choose to learn Rust? What features does this language have which others (pick: C, C++, D, etc.) don't have? What does it do better than the aforementioned languages? (Please don't take these as a challenge, but as a desire to learn more). Thanks!
Have you tried 3rd party push companies like Urban Airship or Parse? Looking at those two options Vs. building it ourselves... Any advice would be welcomed (expecting about 5-10k pushes/day).
14paninta's comment is dead again - shadowban? Anyway, I'll repost and respond:

> asm.js doesn't support threading.

asm.js supports threading, actually, through Web Workers and SharedArrayBuffer.

> it can't run native code.

This is true, but asm.js is relatively close to the metal. It's not very far from assembly language.

> it doesn't support meaningful debugging.

This is a tooling issue. While the situation is bad at the moment, it'll surely improve.

> it doesn't have a post-DOM API surface like pepper.

Why do you need a "post-DOM API surface"? If you just want to blit stuff to the screen, the DOM is actually no less efficient than Pepper: you can directly pass it pixel buffers, or call OpenGL routines.
Yes, but they are not being charged for the time. It is the fact that US politics allows essentially unlimited spending on broadcast advertising to consumers that creates the corrupting influence of lobbyists on the scale we are seeing.

1 on 1 conversations with industry, media, union reps, etc. is part of doing business in a democracy. Mass broadcasts to sway public opinion isn't required.

> In the United Kingdom the Communications Act 2003 prohibits political advertising on television or radio; parties are instead allocated broadcast slots (usually around five minutes long) free of charge on broadcast channels using a formula set by Parliament
>You could already get a satellite into geostationary orbit for about $70 million -- or rather, you would have been able to, if politics hadn't intervened.

Yeah well, then you couldn't.
First deceased jockey to win a race (1923)
How will you verify the released projects if the person only worked in-house?

I think that the issue is not only about predicting future success but about trust as well.
I work in an industry that would fire then sue me for taking samples of my actual work.
Hmm, imagine nature evolving "non-technological" creatures capable of space-flight... but I better leave the reasons for and implications of such developments to ppl. like N. Stephenson ;)
Do birds have a ground control crew? Maybe I need to go outside and see.

Edit: I apologize for implying the natural world is superior. Hurrah for infrastructure, bureaucracy, and humanism!
If I understand the article correctly, the people they are talking about don't hold public office. They are private citizens who are pro-NSA and who have corporate ties to the NSA, and are speaking publicly.

So I don't think this article is an example of politicians having corporate motivations, but rather talking heads on TV having corporate motivation.
Safe is a relative term in medicine. It is unquestionable that for the vast majority of people when vaccinated as directed getting vaccines is much much safer than not getting vaccines. Furthermore, getting vaccines protects society as a whole.
It was served through a proxy script, but actual ES instance was accessible to anyone and yes anyone could delete documents, groovy dynamic scripting was also enabled. Stupid setup I know... Our documents were not touched, but our servers were used to ddos something.
Adobe Creative Cloud Crack and Serial Number Free Download
I don't think it is fair to write-off research based on the journal it was published in.
> Alice's email needs to be sent as plaintext

Thanks for your explanation! Though in your hypothetical Carla uses Gmail, and Google supports SMTP TLS. So the email would be encrypted in transit to Google's servers.

The problem, which the previous poster may be alluding to, is when a lavaboom user emails a non-PGP user with an account at an email provider that fails to support SMTP TLS. When I wrote about this for CNET two years ago, Hotmail, Yahoo, and AOL did not support it:
http://www.cnet.com/news/how-web-mail-providers-leave-door-o...

Now it looks like all three of those companies do, so the question is: Which providers still fail to, two years post-Snowden disclosures?
No, it doesn't. Government money is like 90% of SpaceX revenue. If NASA says "I want a Y in your name", they WILL rename themselves to SpaceY.
In addition to the other answers, there is also RustDT https://rustdt.github.io/ if you like using Eclipse, and SolidOak https://sekao.net/solidoak/ .
Well, Dart would've been one other language in the browser, sure. But it's a language not that different from JavaScript in actuality. The benefits seem few for the work needed to support two different languages. Compiling to JS, which fits Dart quite well (probably because it was designed to compile to JS well), seems more productive to me.

Some were excited Dart might lead to some sort of bytecode VM being added, but that didn't lead anywhere. And since then, JS has become more bytecode-like, so it doesn't really matter now anyway.
Nulecule: making compound Docker apps portable
Hi,

I don't fully understand this sentence:

>Most people on welfare really don't get jobs paying above the welfare limit, so it can't be that they are refusing to work, get some extra money, and higher social status because the wages are so low.

My best guess is that you may want to familiarize yourself with the concept of a welfare trap.[0]

As for the German system of forcing welfare recipients to take work when offered, I'm not sure how it would apply to these free housing initiatives. Also I believe that if the system is appropriately structured the desired behavior should be naturally emergent rather than forced.

How does the German welfare agency not allow people to refuse jobs?

[0] http://en.wikipedia.org/wiki/Welfare_trap
This isn't a bad idea. Even for people with a CS degree.
Usually in a CS degree there are a number of optional upper level courses you can take.

You need to take some number to graduate, but can't take all of them unless you delay graduation (By years). Having a well laid out path to learning subjects you didn't cover in a CS degree is a benefit.

Machine learning/AI wasn't taught at nearly the level it is now when I was in school. We've learnt a lot formally about distributed systems, etc. So kudos.
비2어? B2어?
As someone who tried it for a bit, it really is not the right use case. : P
> the goal is to reduce US power.

Better put: the goal is to reduce US abuse of power. Accountability is the focus, not disarmament.
Pimp my CVE
Why It's Vital to Kill Your Own Ideas
This vulnerability sounds similar to the issue I described here: https://crashcoherency.net/posts/perils_of_source_based_sand...

tl;dr: If you're doing sandboxing by blacklisting specific strings in your input, you're doing it wrong. Java actually has good sandboxing capabilities. Use them!
ClojureScript is pretty cool!
My question was: When do you switch off your transpiler and serve native ES6? In 2020?

Today we can use native JS5 and use polyfill for JS1-3 browser. In future (e.g. 2017) one will have to rely on a transpiler or stay with JS5 for many years - right?
Yeah, a made-up term that was ripped off from http://en.wikipedia.org/wiki/Zero-knowledge_proof because it sounded high-tech, yet has nothing to do with ZKP and merely means "you encrypt everything client-side and we store binary blobs on the server for you".
Image for the TGF-β pathway, in case you're into that kind of thing: https://www.qiagen.com/us/products/genes%20and%20pathways/pa...
Thank you for such a prompt answer.

EDIT:

Quick googling revealed that Rust doesn't work with musl libc yet. It will be really nice when it will be fixed.
More in School, but Not Learning
Congrats on 1.0! If you thought language design was hard before wait until you try to keep doing it without breaking anything. :)
A system like this exists called "positive train control". It is expensive.
This makes me want to write a glossy trade paper "self-help book" about "Your Spiritual ATP Cycle" But I just can't bring myself to be that cruel.
The out of band pleasure/pain signal is a super interesting idea, but it's still fundamentally materialist, which is in direct contradiction with from the author's (IMO silly) central claim that consciousness is a phenomenon based in some non-physical medium.
You're right, that site should be updated with those as other parts of the ecosystem that aren't yet mature.

There's work on non-blocking IO at https://github.com/carllerche/mio, which is looking like one of the more promising approaches, as well as https://github.com/carllerche/eventual which provides higher-level abstractions over it.

There has been some discussion of adding some language support for something like async/await/yield from other languages, but nothing concrete in the near future on the language front.

So, there's usable third-party libraries for it (at least, if you're on a Unix like platform), language support is in the realm of "it would be nice someday".
Self-flying drone camera follows you around [video]
Congrats! I've been excited about Rust for a while now, and this gives me a good reason to look into it a bit more. A quick question, though, if it's appropriate in this context:

It seems to me that the borrow checker disallows behavior that I (perhaps naively) wouldn't be concerned about. For example, if I have this C snippet:

{ // Safe C
int *ptr = NULL;
int val = 42;
ptr = &val;
}

Everything is hunky-dory. Translating this to Rust results in this (I think):

{ // Malformed Rust
let ref: &i32;
let val = 42;
ref = &val;
}

Now the borrow checker tells me that "val" doesn't live long enough, because the reference comes to life before the value. It seems like this should be safe behavior, because the reference isn't bound to the value until after the value comes to life.

Can anyone shed some light on this for me? I'm all for safety, but this in particular seems like something that I should be allowed to do.
> What features does this language have which others (pick: C, C++, D, etc.)

The shortest answer is 'memory safety without garbage collection.' C and C++ don't have 1, D doesn't have 2. D is working on 2, but then it won't have 1.

Secondary reasons: newer, better, more standard tooling, (in some cases, not others: IDE support, not nearly as good. Build system and sharing code? Way better.) Similar concepts in a more orthogonal package. Lack of legacy baggage. Easier (hopefully) for non-systems programmers to get into, as the compiler is there to help. It really depends.

Reasons those languages are better than Rust: adoption, ubiquity, more tutorials and a bigger community.
I'm giving Lotus a try for an api. I'm looking for something a little more lightweight than Rails. I'm hoping for a fun experience.
i tried filing a support ticket about this a couple of days ago and haven't heard back, but i'm unable to get my inbox to decrypt on my second computer. the computer i set the account up on works fine, but it just tells me that it doesn't have a private key when i try to look at my inbox on my laptop. i tried uploading the .json file that i guess is my keypair that downloaded when i set up the account, but it doesn't seem to do anything, just keeps saying no private key. chrome on ubuntu on both devices.
The introduction in book (linked in announcement) actually explains exactly this, very nicely.

It sounds like this:

Rust is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead, while eliminating all data races. Rust also aims to achieve ‘zero-cost abstractions’ even though some of these abstractions feel like those of a high-level language. Even then, Rust still allows precise control like a low-level language would.
Good point, that's pretty true. Much like software, there's a projected image which involves the ideal of 'meritocracy', and much like software that's not how it works on the inside.

Unlike software, nobody who's been in or involved with academia for more than a year or two (read: grad students) holds on to that illusion or parrots that brand of nonsense.

My suspicion about software's need to maintain a veneer of meritocratic legitimacy is that there's a lot of money being tossed around, and a lot of founders/entrepreneur types making and losing money. Those who succeed have the loudest voices, and they don't want their successes to have been be influenced by the whims of fate or chance. So we end up with this Horatio Alger mythos born of the dissonance between success and merit.
If you talk to any professional or decent amateur of the board game Go, he or she will tell you that mastering the basics is fundamental, and is used at every possible moment in the game. In the same vein, this is how I often view programming: having strong knowledge of the fundamentals allows for immediate and precisely correct planning and action in the moves to come.

In one of my favorite Go books entitled Lessons in the Fundamentals of Go, the author Kageyama expresses the same sentiments: mastering the basics is fundamental for progression at every point in the player's career. He begins the book with what is very much an exercise taking some time and thought: there were no shortcuts to solve this problem for the beginner this book is aimed for. It is the same in programming: mastering anything (even the fundamentals) involves much time and effort.

As I become stronger at the game, I am finding new wisdom in the same advice Kageyama gives. I can read the same paragraph a few months apart and get different tangible results out of it. I have often had the same experience programming: I can use certain expressions and programming constructs without knowing the intricacies of them, but as I progress in my programming career, I am also able to understand these constructs, often at a lower level, to my great benefit.

I frequently go back to this book and always find new wisdom to improve my game. I strive to do the same with programming: just because I know how lambda functions in Python work does not mean I should be ignorant of the possibility that I may not know everything about them and tangentially related concepts.
The second part of each line was the comment score/username after I clicked through link, I'll add a timestamp of when I viewed them

(submitted 33 minutes ago by so_srs) "The modern view on gender: Acceptable: Female and spending most of your time on the celphone, reading literotica, and playing candy crush. Unacceptable: Male and spending most of your time on the computer, watching porn, and playing World of Warcraft." [+25] (reddit.com) -> (at 1:16 CST)[–]comosayllama 68 points an hour ago

(submitted 3 hours ago by cakevodka ) things Hitler did were terrible for sure, but, at the same time, it would be intellectually dishonest to not call him a great politician and orator. The fact that he tried to wipe out a couple races and nationalities does not make his achievements in politics and economics any less significant [+66] (reddit.com) -> (1:17 CST) [–]_Pornosonic_ 144 points 7 hours ago

Those combined with the 3 earlier comments I posted make up the last five submissions to /r/shitredditsays(with the exception of one where the original comment was deleted), the first part is the linked comment and the second is the comment score(now with timestamp!)

I can't actually find a single instance from the front page where the score goes down after being submitted. The opposite is usually the case, where the score increases after being posted to SRS
Simple rules yield complex and unpredictable interactions. This is the nature of emergent behavior. An apotheosis of this axiom would be the behavior of leaf cutter ants. Are they conscious? I believe the concept of consciousness is deeply intertwined with the concept of randomness / sport. A machine defies this notion.
How to Follow pmarca on Twitter
I like explicit error handling. I don't want errors bubbling up automatically.

As I said, we'll just have to disagree.
Is there anywhere I can download a Rust tutorial in kindle format? I'd like to start learning Rust this weekend.

EDIT: To answer my own question: http://killercup.github.io/trpl-ebook/
sslmate is the one I'd suggest. They are cheap, easy to use, developer friendly, and no BS. https://sslmate.com/
A big argument for using systems programming languages is thay they are fast: you are writing code that is compiled once and run thousands of times per second on millions of computers. Why would I care so much about compile-time performance? If I need a faster compiler mode during development (though in my experience, the pain of C++ compile times is due to its muti-stage transformation and lack of separate compilation for templates, not its exception handling... I don't find my projects that turn off exceptions to compile much faster), the compiler can also implement a really slow mechanism for exceptions as an alternative.

I also maintain that requiring the developer to do manual error propagation to get errors from the point of failure to the point of reporting to the administrator or the operator (which is what happens to almost all errors, whether you are writing a command line tool, a graphical application, or a website) is "boilerplate". At the simplest, without changing the error model, littering the code with calls to try! that push the error upwards is automatable (and I have a friend working on a compiler plugin to accomplish exactly that).

An example: I like statically-typed languages, but as demonstrated by languages with type infererence, having to declare every type every time it is used is "boilerplate", especially if types are long and unwieldy. C++98 has typedef, which lets me take C++'s long and unwieldy type definitions and make them shorter. If you are used to typing them out manually, every single time, some might even claim this is "ergonomic". However, C++11's auto is much better, and as demonstrated by languages like OCaml and Haskell even that isn't as good as it can get. C and Go have long and unwieldy error propagation (checking flags and manually returning new ones). Rust provides macros and tooling for this that make it safer (no more "goto fail;" or "Rage Against the Cage" exploits) and easier (like typedef!), but that doesn't mean it isn't still "boilerplate".
Jesus...

In medical terms vaccines are incredibly safe. Medicine is a cost-benefits analysis. The risk of getting vaccines (as directed) is much less than getting the diseases vaccinated against.

You have to look at it as "what choice provides the most benefit?" which is how medical interventions work.