skysight-inc/HackerNews huggingface dataset:
Marx agreed with you:

> For it to become an “intolerable” power, i.e. a power against which men make a revolution, it must necessarily have rendered the great mass of humanity “propertyless,” and produced, at the same time, the contradiction of an existing world of wealth and culture, both of which conditions presuppose a great increase in productive power, a high degree of its development. And, on the other hand, this development of productive forces (which itself implies the actual empirical existence of men in their world-historical, instead of local, being) is an absolutely necessary practical premise because without it want is merely made general, and with destitution the struggle for necessities and all the old filthy business would necessarily be reproduced

(The German Ideology, first chapter, section 5)

Though he was writing about the pre-conditions for socialist revolution, a central tenet of his writings was this idea that redistribution in any form first becomes tenable under advanced capitalism, because never before have we been close to be able to produce so much that we could conceivably reach a stage where redistribution doesn't simply make everyone poor (or feeling poor).

And unfortunately we got to see the consequences of ignoring that warning many places where attempts at forcing through socialist revolutions in places that did not meet the preconditions failed spectacularly.
Ask HN: Open-source mobile apps worth checking out
I work for a mobile consulting firm and while doing many heterogeneous and diverse projects feels like we get to learn and touch many different concepts and technologies, I also get the feeling that some of the architectural principles and foundations behind our apps are somehow to be considered. We might be doing something wrong project after project.

In order to learn more about what the rest of the industry is doing, I was thinking about organizing meetups to check interesting Open Source projects - e.g. kickstarter engineering team made public their apps some time ago and posted in HN: https://kickstarter.engineering/open-sourcing-our-android-and-ios-apps-6891be909fcd

Do you guys have any suggestions on Open-Source Native or Hybrid apps worth checking?
Read this, the best advice about insurance that I've read in any place:

https://np.reddit.com/r/personalfinance/comments/43iyip/our_...

To quote a bit:

Remember to list everthing-- even the most mundane fucking bullshit you can think of. For example, if I was writing up the shower in my bathroom:
Designer Shower Curtain - $35
Matching Shower Curtain Liner for Designer Shower Curtain - $15
Shower Curtain Rings x20 - $15
Stainless Steel Soap Dispenser for Shower - $35
Natural Sponge Loofah - from Whole Foods - $15
Natural Sponge Loofah for Back - from Whole Foods - $19
Holder for Loofahs - $20
Bars of soap - from Lush - $12 each (qty: 4)
Bath bomb - from Lush - $12
High end shampoo - from salon - $40
High end conditioner - from salon - $40
Refining pore mask - from salon - $55
I could probably keep thinking, and bring it up to about $400 for the contents of my shower
It doesn't miss any lesson. It's a trade off. The headline feature involves a default mode of operation that's fundamentally incompatible with GNU grep. Full stop.

ripgrep is an evolution on ag, which in turn is an evolution on ack. All three tools have similar defaults, so in fact, ripgrep preserves some amount of backward compatibility with previously established tools in terms of the default mode of operation. Just not GNU grep.

This goes further in that the intersection between ripgrep's features/flags and GNU grep's features is quite large---certainly much larger than the differences between them, which is just another form of preserving backward compatibility. This was done on purpose for exactly the lesson you're claiming I missed: backward compatibility eases transition.

(The context of this conversation was a 100% backward compatible version of ripgrep with GNU grep. See my other comments on ROI. Just because I can argue against 100% backward compatibility doesn't mean I've missed the importance of backward compatibility.)
> Almost everything in a unix system could be better served with some kind of standard system of typing.

Lightly typed data (like strings you must parse) is more future proof at the expense of leaving more potential for bugs (escaping whitespace).

Strongly typing requires the shell designers to provide more opinions. More opinions provide more opportunities to be wrong about what needs we will have in the future decades.
From having spent a bunch of time working on wrapping crypto libraries for Python, the author’s name (Thomas Pornin) is one that I regularly saw providing in-depth answers on the Cryptography stack exchange: https://crypto.stackexchange.com/users/28/thomas-pornin.

It is encouraging to see BearSSL at beta stage. I believe the last time I saw it, Thomas still considered it to be alpha. The promise of a small, MIT-licensed crypto library, written by a solid cryptographer who understands implementation details is nice. I’ve used libtomcrypt in the past, but as a non-expert, I’ve always wondered how resilient and well-written the code base is.
The thing is, any "working category theorist" can see the objects and morphisms of a category from a mile away and don't really need these things pointed out. This paper seems to be a fairly superficial dressing of some computer science ideas using category theory language. No mention of natural transforms, which is the real meat of category theory (or at least, the first layer of meat.) No mention of monads or adjunctions. And these things play a big part in theoretical computer science (eg. Denotational Semantics.) I'm not saying it's a bad paper, but it doesn't deserve this title, or at least, needs much more justification for why it should have this title. Digging a bit deeper I do see some limit diagrams, but still, this is fairly easy stuff to see for the expert.
As an artist, Discover Weekly has been the best thing to ever happen to me. Every Monday I get a big infusion of listeners (around 5,000)— many of who stick around and check out my other music :)

Prior to that, the best press I could get was the tedious process of cold-emailing bloggers (a practice which is now dying off).
Yeah, I was surprised when I read the start of the article. On Mondays, I will start the day by playing my discover weekly playlist and I'll usually have it running throughout the day, saving 1-4 songs from it to my library. Sometimes none.

I just checked and this week I didn't even save a single song for example.

I guess it doesn't help that I do listen to really different types of music depending on what I'm doing. If I'm at home, I'm not listening to the same thing as if I'm at work (developer). When I'm reading, I'll also be listening to something different from normally. I wonder if that makes my discovery much more "basic", since it's a mix of pretty much everything.
Neural programmer: AI that writes code
> I don't understand this conversation at all.

Welcome to America!

Seriously, we don't understand it either - but we sure will fight about it. No matter how tenuous, we can blame anything on our favorite causes.

Everyone seems to want to spend time blaming and fighting instead of actually picking up a broom and cleaning. Our journalism competes with reality television and our political parties are treated like sports teams.

I don't understand it either, and I live here.
Again, this just sounds like the cost of doing business. You’re not always going to be able to have everyone working on the ideal goals. Sometimes a developer will have to be working with auditors (be they from the private or public sector) or lawyers on something other than their typical project.

I also don’t think a search protocol would be a part of this request, as much as a dump of redacted data.
I sometimes suspect it's because most web development is boring and to make it interesting smart devs make tools and frameworks instead, even when it's not really appropiate.

Is the Facebook interface today significantly better than it was 5 years ago? No. But they've invested a huge amount of time in React in that time, so why isn't it?
Take a pic of your creditcard and get a call from the fraud hotline in 30 mins
I guess with that in mind, an addition to the todo-list is to go through each room with a digital camera and carefully photograph everything, including each cupboard and each drawer.
The notion that voice recognition is still hard enough to require doing it on a server somewhere still bothers me a lot. IMHO there should be no excuse for this today. I understand that the device needs to be connected to the internet anyway, but this whole thing is such a gimmick it's not worth the privacy risk.

[edit] to clarify I think speech to text can be done on a device today, that's why this bothers me.
Heirloom Code
His code is creating an infinite promise chain. Did the author really expect it would not eat all his memory and crash?

If the author had written the same code with callbacks, a stack overflow would have been thrown.

So misunderstanding of promises (and/or async coding) is the problem here, not promises.
With encrypted SSH traffic, there are normally three kinds of keys involved. The traffic is encrypted with per-connection symmetric keys, usually 256 bits. These keys are obtained through a Diffie–Hellman key exchange or similar, which uses per-connection randomly-generated keys. Finally, the long-term "SSH key" is used to sign these randomly-generated keys (and other things).

If you hold the traffic until 2030 and want to decrypt it, you have to break either the symmetric keys, or the key exchange. Breaking the "SSH key" would allow you only to forge a new signature, but that doesn't help decrypting past traffic.

That's the difference between the models: a key used for encryption, once broken, allows you to decrypt. A key used for signing, once broken, allows only forgery. And for SSH, forgery must be done while the forged key is still accepted (known_hosts or authorized_keys).
Ask HN: Ethics vs. competition?
I fell in love in one of the startup ideas that I found recently. They are already in business, making great money.

I thought I want to create a similar business, or even better.

How do you guys see it? Stealing? Or competition is a natural, healthy thing?
I know that competition is natural, but I feel somewhat ashamed to do it anyway.

The business model and the application functionality would be very, very similar.
Guido may dislike many things, but filter and map are still there, so what's the problem?
I see it the other way round on Twitter; it's hard to go a day without seeing something offensive or annoying, even if it's just somebody retweeting the latest Trump outrage to complain about it. If you step on a controversial subject and/or present as a woman you can get aggro in your mentions up to and including death threats.

I see contrary opinions all the time. What I rarely see is well thought out contrary opinions presented as the conclusion of reasoning from a set of reasonable looking premises.
it's 3 of 9 barcode (https://en.wikipedia.org/wiki/Code_39) that says "BearSSL"
I adore Discover Weekly. No lesser adjective will do.

Now turn the data into a dating/social app so users can discover the cools that share their exceedingly good taste in music.
> You will not be able to put out a lie for very long until it actually becomes debunked.

But you can lie at a higher rate than the debunkers can keep up with. Because debunking takes more time and effort than lying. This tactic even has a name: "Gish Gallop".
I read this title like you.

Danger for democracy + the fact one will not ask everybody to stop facebook indirectly implies more control over the people...
It's not even a particularly unexpected leak. When you create unbounded recursion, you leak memory. This is true if you don't use Promises, and remains true when you do.

This is really just another complaint about lack of Tail-Call Optimization. This issue has come up for any number of languages and libraries. Often I think that the "O" in TCO is a misnomer. If it was really an "Optimization" it wouldn't affect correctness of the program, but there are many cases where a program is correct if TCO is happening but undefined if not. It's more akin to lazy/strict evaluation: equivalent in simple cases, a major correctness issue in more complex ones.
> Render large expensive items temporarily useless - if example maybe you can't take your new 50" TV but maybe remove one of circuit boards on the connector panel, same with washing machines on control panel, expensive juicer (just a difficult to replace small part), and so on.

I can't think of anything more pointless than choosing to damage your items which are all easily replaceable and covered by insurance.
Show HN: Register for Dust's 48-Hour MVP Hackathon on October 18
> No programmer I know would want to use a visual programming language at all, even with an option to fall into a full text-based programming language.

I started with C and then turned to VVVV [0] for a while (now using Python). VVVV enabled me to do a lot of media-related things, that I would have had a hard time doing otherwise. It still has a special place in my heart :)

[0] http://vvvv.org
Jokes on them then. I'd 100% be on WP and not on Android if that was the case.
I wasn’t aware they had a constitutional right to a domain name. Nothing is stopping them from hosting their own website.
Is that a good long term investment? Honest question, given he's near the end of his life now.
The Folder of God
FWIW I find probably 1/3 of my music through DW, 1/3 through manually browsing related stuff on Spotify (if I discover a new artist and see they were featured on a compilation, I might listen to that compilation) and 1/3 from real life (friends' recommendations, unknown bands from festivals etc). For my pattern of use, DW is varied and absolutely amazing. I only listen to my DW probably 1 week in 4 though.
TLDR; A faulty button causes his mini to record without request
I know that's not the point of the article.

Why are they connected as root via ssh? Any good reason for that? Just to troll people like me?
I think this might be a communication problem, where more mature technology needs to be framed differently in order to reach a larger audience with a different background. Maybe this is a direct result of the technical complexities involved, so each engineering audience has a specific culture/lingo that needs to be taken into account when "selling" them a piece of technology or a certain approach.
The translation is a bit wierd but it's not totally Google's fault. "Map" in Icelandic also means "Card". And his name, Dagur, means Day.

But yeah, this guy takes a picture of his creditcard at 11:16 (a debit card but they all come with cc numbers as well now), because the numbers were so smudged that they were about to dissapear.

Then at 11:36, exactly 30 minutes later the local VISA company (Valitor.is) calls him. It is the emergency fraud hotline and informs him that someone in Indonesia is trying to use his card.

He used an iPhone and said the photo just went to his "Camera roll" and probably uploaded to his iCloud backup.

His card was immediately closed.
Deleting the word "social" from this article would make it more accurate. The UK Daily Mail and many many other media companies have been guilty of the same 6 things for years.

Terribly lazy opinion piece. We need to be aware that the traditional news media will be extremely effective at discrediting the entire tech industry to save their own skin.
>I find it annoying in these threads how people refuse to acknowledge that we have much stronger rule of law in the west.

No we don't. We have a stronger belief in the rule of law, but not an actual practice of rule of law. It's been getting worse and worse over the past two decades and at this point I see little difference between any particular western government and Russia's.

If you haven't noticed it, you've been willfully ignorant.
> I don't think any amount of tinkering with existing languages (maybe except a lot of it with Lisp) can make these languages as usable for shell as new language that was specifically designed to be a shell language.

I really am hoping that Lisp and specifically Racket can become the tool for the DSL since that is what they do really well.
That's it. It's like a stack overflow. The code contains a function which calls itself via a Promise. There's no guard which will eventually terminate the recursion.
Samsung Galaxy S9 may feature an 'Environmental Sensor' pollution monitor
"Compiled" as a negative side? Really? Compiler is my best friend, and that's why I don't like interpreted languages - you have to (mostly) actually run all the code paths to make sure they're correct.
> If there is no way to be productive there (aka jobs) they can and should move.

A possible problem might be that a failing area is likely to be undesirable and therefore have low property prices and concomitant taxes. Moving to a more desirable area might be unaffordable. Many people have a strong emotional connection to their home, and would find it difficult to sell it (perhaps at a considerably lower price than they think it is worth) and move somewhere smaller.

Further, there may be people who are "post-economy" in the sense that they have retired. From their point of view, they've paid their dues and have no need to follow the jobs any more. They may have built up local social ties that they don't want to sever by moving.

My point isn't that failing places need to be propped up indefinitely, but that there's a middle ground between "successful, valuable" things and "failing, worthless" things. And there are infrastructure projects (e.g: rural broadband) which can help retain jobs and communities in "failing" places relatively cheaply.
Google (Perfect) Forward Secrecy

There's a mathematical trick (actually these days several different ones, but the original idea is the same) which lets two people agree on a number without either of them saying what the number is OR any witnesses knowing what it is by watching the conversation. If you struggle with high school mathematics look for videos which demonstrate this trick using mixing paint, so you're not distracted by mathematics you don't understand.

This trick is routinely used in realtime communications (HTTPS, SSH, secure messaging protocols) to make a throw away transient key [actually usually two and sometimes four] used only for one conversation. Once the communication is over, both parties throw away their transient keys, and even somebody who knows the long term keys can never find out what they were because of Forward Secrecy.
But search engines and email services? Operating systems? Europe is really not on top of this game.
Five tips for harmony between dev rel and product teams
1C:Enterprise
But even with Tail-Call Optimisation the code would run forever. In which world is never-terminating hot running code «correct»?
I'm really happy with using F# to write true microservices using the Unix Philosophy.

F# makes me learn to be a better programmer and it's fun, so there's that. Coding using the Unix Philosophy gives me all the goodness that the author seems to want, all without having to install yet another shell. The only pieces of the bash shell I'm developing are the pieces that help solve the problem in front of me. Everything else is stuff that the next guy can't pick up off the web.

I don't like being a fanboy. Maybe next year I'll start playing around with Haskell. But rewriting/replacing the shell? E-gads. You'd have to make a tremendously better case than this author does. (Insert long discussion here about tools, frameworks, and bad coding discipline)
My partner works in the domain.
Good relation with a blog post i read recently: https://econimica.blogspot.bg/2017/10/the-tale-of-two-americ...
>No programmer I know would want to use a visual programming language at all, even with an option to fall into a full text-based programming language.

You'd be surprised. The biggest programming language in actual use is Excel -- which is a case of a visual programming language (turing complete at that), even if it has cells in a grid as opposed to some flow diagram.

And lots of people are programming with visual languages inside tools like compositing pipelines, musical environments like Max/MSP, CAD and 3D packages, business logic definition apps and so on -- with the most popular case perhaps being visual game engines.
IIRC, Mac systems used to use `\r` for line endings. It doesn't any more and instead uses `\n`.
How would switching to macOS provide any protection against an APT? Against Malware in general yeah sure but against the NSA or FSB in a targeted attack I don't see how that benefits you at all. If the NSA can put the screws on Microsoft then Apple should be no different. Apple refusing the FBI is one thing but faced with a gag order and an NSL their only recourse is to appeal to a secret court that basically always sides with the government.

Also as of late it seems like macOS has been nothing but security incident after security incident like the recent bug where encrypted disks had a password hint of the decryption password or when somebody found out that the system preferences app was basically using an undocumented API that had no authorization at all and gave root access. Or that keychain vulnerability that gave complete access to the entire keychain to anything running in a web browser!

I think an APT would have a field day if their targets started using macOS.
That's cute, you think you actually had democracy to begin with.
When you are jumping large numbers of pages, you usually don't care about exact page boundaries.

For example, you could have a background process that slowly paginates through the table and saves off the page boundaries, which you can then use for jumping into. They will always be a bit off especially near the middle of the table, but that's probably okay.

There's lots of ways to do this fuzzy jumping that don't involve scanning the full table synchronously.
> His code is creating an infinite promise chain. Did the author really expect it would not eat all his memory and crash?

Processing an infinite or really long promise chain is what ends up happening when you're working with streams and functional programming in general.

Yes, I expected it to not leak memory, because sane implementations don't leak. One such implementation is Scala's Future [0], using an implementation trick which I then ported in Funfix.org, so it's definitely possible.

> If the author had written the same code with callbacks, a stack overflow would have been thrown.

That's not true. For one, asynchronous calls will not trigger stack overflows. And a callback approach won't leak heap memory either, because you don't have to return a value-wannabe to the caller, so you're not building a stack.

> So misunderstanding of promises (and/or async coding) is the problem here, not promises.

I'm involved in no less than 3 libraries [1] [2] [3] implementing Promise and Haskell IO alternatives in JavaScript and Scala, so I'm pretty sure that I understand promises by now :-)

I'm also pretty fond of this article I wrote a while back, asynchrony being sort of a fetish of mine: https://alexn.org/blog/2017/01/30/asynchronous-programming-s...

[0] http://www.scala-lang.org/api/2.12.3/scala/concurrent/Future...

[1] https://monix.io

[2] https://github.com/typelevel/cats-effect

[3] https://funfix.org
I didn't say everyone, the audience on HN is far from 'everyone.'
Israel hacked Kaspersky
there's always find -print0 and many core tools support -z (-0 for xargs). but you have a point of course, YMMV applies.
The internet is full of "experts".

To really determine if you can do something, talk to people that have done similar things. I know at least 50 people that have done what I am doing, and loved every second. They all said without hesitation the only crazy thing would be not doing it!
Matching Pennies