Show HN: Grassland – Real-Life SimCity - <AUTHOR> http://grassland.network <comment><USER2> This is truly interesting, but from a privacy perspective if mass adoption actually occurred, _extremely_ worrying.

Not "inverse surveillance" as stated, but just surveillance in the hands of people. At mass deployment, mass surveillance accessible by anyone. Since when does that protect anyone's privacy?

<comment><AUTHOR> The true problem with surveillance is the asymmetry of it all. Grassland uses Game Theory to remove that asymmetry. "...no party could maintain a parasitical, data gathering asymmetry (one-sided surveillance) so long as there are other parties acting in their own self interest. A 'scorched earth policy'".

It answers the question, who's watching the watchers? Everyone. And the network itself is paying them to do it.

> ...extremely worrying.

It seems to me this forces people into Nash Equilibrium. Say I now know everything about you and vice-versa and anything we do to each other would be broadcast around the world for all to see and irrevocably encrypted in a worldwide database. And since "...all nodes are anonymous, if it's computationally improbable to be sure of the identity and intentions of all parties who may end up with the data, then all parties are compelled to expand node territory for their own self interest and eschew behaviour leading to M.A.D. outcomes"

> Since when does that protect anyone's privacy?

It doesn't. And it doesn't care. I don't mean to sound rude but you'll have to throw away this veneration of privacy to grasp what this is really about; like esteeming the Divine Right of Kings, that's not going to work any more. People are fighting over the right to keep riding this precious dead horse while corporations and governments are riding over them in AI Ferraris because they know that the ones who'll will win are those who privately control the most data to train machines to do, well... everything that a human can do and more. They don't care about your privacy. It's long gone and turned into glue. People want to believe in it but it's dead. And the longer people think it's still out there somewhere waiting for them, the longer it'll take them to grasp the power that data affords any party that disregards that belief. Then one day they'll wake up and realize all their land is in the hands of the Conquistadors.

<comment><USER3> > _you 'll have to throw away this veneration of privacy to grasp what this is > really about_

I cannot disagree more strongly. Every day our need to fight for privacy increases.

All it takes is someone to take my actions and skew them in a political light. From there on it's tiny policy shift that could end up with me in jail for some fascist political crime that isn't a crime at all. Every day our governments take more and more: we really shouldn't be doing their work for them!

Look at what's happening in China: a whole religious cleanse is taking place: Muslim, Buddhist, and even simple meditation groups (Falun Gong) are being persecuted and imprisoned.

Russia has outlawed Jehovah's Witnesses for similar purpose, citing "extremist activities".

And this is before we even get to more "political" style actions, such as white hacking and security research. We need to be exceedingly carefully with public spyware!

<comment><USER4> If Xinjiang were under _public_ surveillance, with the results accessible to the whole world, the Chinese government might tread more carefully.

As is, one of their biggest enablers is being able to effectively deny access to the area.

 _Edit_ : I'd note this is generally an effective tactic of oppressive regimes. It takes dedicated, brave, well-funded people to access an area that's even semi-denied. Much less regularly. And the internet / world's attention is fickle. No updates, no photos, no video? No one pushing for justice.

<comment><USER5> > If Xinjiang were under public surveillance, with the results accessible to > the whole world, the Chinese government might tread more carefully.

Not really. The world already has a pretty good idea that China has incarcerated millions of people for what wouldn't be considered offences or adequate standards of proof in the West as part of wider political struggles. And livestreaming is going to end at the point of arrest. A system tracking the full history of every one of those millions of individuals' movements prior to incarceration would add no useful insight into the nuances of the conflict or rhetorical weight to arguments to take any form of action against the Chinese government, but would be exceptionally useful to helping said government in tracking down anyone that has ever interacted with $PersonOfInterest or visited $Place.

There's a reason that people campaigning for the world to take interest in human rights issues in their region do so by broadcasting explanations of their cause and how brave and inspiring their missing friends are rather than broadcasting their whereabouts.

<comment><AUTHOR> You're looking at something and calling it 'surveillance' because you don't yet have a word to describe the entire thing. It's too new so you see it through your 'old eyes'. You noticed there was a camera involved and you knew what that was so you ran with it.

It's the proverbial blind man whose hand has happened to land on the tusk and he tells his companions, "It's a spear!". You're not seeing the whole elephant because you've never seen one.

It benefits you when other people have knowledge about the world. It benefits you if other people have the knowledge to drive safely. It benefits you that your neighbours have a basic knowledge of germ theory and don't throw their sewage in the streets like medieval peasants. It benefits you that your fellow voters have at least a basic education and can make somewhat informed decisions. It benefits you that medical knowledge isn't locked away in some vault in Alexandria but it's in the mind of the doctor whose preventing an outbreak of some disease you happen to be susceptible to.

Did you not read the things I was able to learn just from my first node? We can give so many people free access to information that would push back darkness, fear and superstition just a little further. And these people would do and build things that would make your life better.

So instead of channelling the Archbishop of Canterbury telling Bible translator John Wycliffe that too much knowledge will corrupt the commoners, open your eyes.

</comment></comment></comment></comment></comment></comment><comment><USER6> It seems technically interesting but societally problematic. For example it appears to greatly simplify stalking and harassment. How can a domestic violence victim avoid their attacker if their movements are so easily monitored? Perhaps use this to identify people walking away from a gay bar or a political meeting to set up a bashing? Note when somebody leaves home in order to rob their place? And bear in mind that for some individuals the cost of being identified back won't outweigh the value in being able to locate their victim.

<comment><AUTHOR> The situation you're describing means you can know exactly what your stalker/harasser's routine is too. You can also prove undeniably that they are a stalker or harasser. In fact, Grassland will be watching them even when you can't. It can make statistical predictions to you about when they sleep, where they work, where they're going to be at 11 tomorrow etc etc.

It's a two way stalker street.

<comment><USER6> Yes, but you don't know your stalker exists until you are attacked and perhaps they just don't care if their routine is known. Consider that your stalker/attacker may enjoy the power of forcing you to monitor them back. So now we have a new avenue for trolling.

The system as described empowers the obsessive aggressor far more than improving the lives of people who don't care to focus on the minutiae of the lives of others.

<comment><USER7> To join the hypothetical, I'd imagine you can deploy AI/ML to try to avoid your stalker(s). Google Assistant already tells you when to leave for work and which route to take, imagine having it vary the time and the route to avoid stalkers it has noticed from the data it gathered.

But then the stalkers would also have the same system to try to figure out what your digital bodyguard recommended to you.

<comment><USER8> that's a cool side project "ninja steam" where you randomize Google Assistant routes to cover up your tracks :D

</comment></comment></comment></comment></comment><comment><USER9> Hi David, I posted an issue on GitHub with a few questions, but I have one better asked here: what's with your license? I _think_ I understand it generally in that it looks like you want the right to harass people who integrate grassland with social media; but what is the Deep Paranoia text generation thing you refer to? And can you talk about how your group theory link relates to the project?

<comment><USER10> > Any abuse of this software and/or algorithm(s) evinced by parties engaged in > violation of this Agreement, if discovered will be taken as aknowledgement, > consent and agreement by those parties to allow any member of the Grassland > community to attempt to seek out and identify such parties in order to > target and generate any digital news, social media content or other types of > information that the household and/or family of the members of such parties > may consume using the 'Deep Schizophrenia' narrative

It reads like, "if you break this license, we'll dox you and your family"

<comment><USER11> Wow, wtf.

<comment> crooked-v I'm getting some TempleOS vibes here.

<comment><USER12> I was thinking timecube, myself.

<comment><AUTHOR> The words you guys use "dystopian", "doomsday", etc. etc. are all from fiction. These are literally categories of genre-fiction. You're seriously trying to make straight faced predictions about the future using what is literally in the book store under "Fiction". Something that is by definition not real, a fabrication, a lie. How can you possibly expect me to take you seriously or grasp what it is that I'm doing? You've taken stories you know are fake and mapped them to the real world. How is that any different from religion? I'm giving you guys mathematical arguments and you're giving me Dr. Seuss. And you've put words in my mouth to suit your narrative. The story you want to believe. A story that's fake by defintion.

Don't you see how messed up that is? Well, Hitchen's Razor says that, "What can be asserted without evidence can be dismissed without evidence". Here's my razor, "What can be asserted with fiction can be dismissed with fiction". This is a bulwark against those who insist on living in a world of fantasy and superstition. But for the rest of us, those who want to live in reality, I'm giving you the real world.

</comment></comment></comment></comment></comment></comment><comment><USER13> I agree there are a lot of privacy concerns here, but isn't this what governments and mega-corporations are already doing? This way at least the data will be accessible to more than just privileged groups.

Furthermore, it seems reasonable to hypothesize that this could add a whole new depth to the market of privacy and security. If this "Grassland" became the norm, then privacy concerns would be less niche, the effectiveness of our privacy efforts would be more obvious as we would have immediate feedback, and it would, therefore, be easier to ensure we're maintaining privacy from governments/corps (or anyone else for that matter).

So rather than reflexively lashing out at this as a "scary threat to privacy" maybe this is actually a counter-intuitive evolution to enhanced privacy and connectivity.

<comment><USER6> At least there are some limits to the use of the data when it is restricted to a few elites. When any loony or malcontent can use it then it just makes things much worse for those at the bottom of the heap.

<comment><AUTHOR> You're looking at something and calling it 'surveillance' because you don't yet have a word to describe the entire thing. It's too new so you see it through your 'old eyes'. You noticed there was a camera involved and you knew what that was so you ran with it.

It's the proverbial blind man whose hand has happened to land on the tusk and he tells his companions, "It's a spear!". You're not seeing the whole elephant because you've never seen one.

It benefits you when other people have knowledge about the world. It benefits you if other people have the knowledge to drive safely. It benefits you that your neighbours have a basic knowledge of germ theory and don't throw their sewage in the streets like medieval peasants. It benefits you that your fellow voters have at least a basic education and can make somewhat informed decisions. It benefits you that medical knowledge isn't locked away in some vault in Alexandria but it's in the mind of the doctor whose preventing an outbreak of some disease you happen to be susceptible to.

Did you not read the things I was able to learn just from my first node? We can give so many people free access to information that would push back darkness, fear and superstition just a little further. And these people would do and build things that would make your life better.

So instead of channelling the Archbishop of Canterbury telling Bible translator John Wycliffe that too much knowledge will corrupt the commoners, open your eyes.

<comment><USER14> Exactly. The real world is comprised of data, and the more we restrict it to private interest, private interest gets to reap more benefits. Information is only leverage against you if it's not public.

<comment><AUTHOR> Absolutely!

It's funny that the words they use, "dystopian", "doomsdayish" etc. etc. ... are all from fiction. these are literally categories of genre-fiction. They're trying to make straight faced predictions about the future using what is literally in the book store under "Fiction". Something that is by definition not real, a fabrication, a lie. How can they possibly expect me to take them seriously or grasp what it is that I'm doing? They've taken stories they know are fake and mapped them to the real world. How is that any different from religion? I'm giving them mathematical arguments and they're giving me Dr. Seuss.

That's messed up. Well, Hitchen's Razor says that, "What can be asserted without evidence can be dismissed without evidence". Here's my razor, "What can be asserted with fiction can be dismissed with fiction". This is a bulwark against those who insist on living in a world of fantasy and superstition. But for the rest of us, those who want to live in reality, I'm giving you the real world.

</comment></comment></comment></comment></comment><comment><USER15> That sounds really terrible from a privacy point of view. That reminds me of the technology SeeChange at the core of the dystopian novel The Circle.

<comment><AUTHOR> Please see my answer to jaredmsmith -> [https://news.ycombinator.com/item?id=19532560](https://news.ycombinator.com/item?id=19532560)

In addition to that, and I'm going to approach this delicately because some people are uncomfortable with facing this fact. But since you're on here I'm sure you know this. If you have a cell phone, used a credit reporting agency (Equifax?) or used almost any website in the past 10 years, you're already being tracked and your data has already been stolen in, on average, one data breach a month to advertise or politically manipulate you. The horse has already left the barn. Your life is right now being sold and resold every millisecond.

But I'm doing you a favour. Because I'm giving your life away for free.

And that data is freely disseminated to everyone not just because it stands as unassailable proof an AI performed a difficult computation on human behaviour and earned those coins but because it's important that everyone knows the truth about events in the natural world for science, democracy, health, justice and all rational decision making. An embargo on stupidity and ignorance in that node's corner of the world at least. Advantage must then come from helpful innovation not parasites rent seeking on people's data.

<comment><USER16> You're obviously a very intelligent and talented individual to have created this, frankly amazing, system, and to articulate your reasons for doing so.

But I fundamentally disagree with the notion of total surveillance as a remedy to asymmetric surveillance. You obviously think this would benefit the world, but the endgame looks like a _dystopian nightmare_ to me.

I really wish you would have used your talents for "good rather than evil", looking at ways to _prevent_ surveillance rather than increase it.

<comment><AUTHOR> You're looking at something and calling it 'surveillance' because you don't yet have a word to describe the entire thing. It's too new so you see it through your 'old eyes'. You noticed there was a camera involved and you knew what that was so you ran with it.

It's the proverbial blind man whose hand has happened to land on the tusk and he tells his companions, "It's a spear!". You're not seeing the whole elephant because you've never seen one.

It benefits you when other people have knowledge about the world. It benefits you if other people have the knowledge to drive safely. It benefits you that your neighbours have a basic knowledge of germ theory and don't throw their sewage in the streets like medieval peasants. It benefits you that your fellow voters have at least a basic education and can make somewhat informed decisions. It benefits you that medical knowledge isn't locked away in some vault in Alexandria but it's in the mind of the doctor whose preventing an outbreak of some disease you happen to be susceptible to.

Did you not read the things I was able to learn just from my first node? We can give so many people free access to information that would push back darkness, fear and superstition just a little further. And these people would do and build things that would make your life better.

So instead of channelling the Archbishop of Canterbury telling Bible translator John Wycliffe that too much knowledge will corrupt the commoners, open your eyes.

<comment><USER16> I think what you've done here is interesting, fascinating even - but also terrifying, and better belonging in the realm of sci-fi, rather than the real world.

You talk about undeniable benefits knowledge, giving specific examples - yes, there are many examples where knowledge is useful and can improve lives, but I really don't see how knowing what time my neighbour takes a dump will benefit myself or humanity (a crude example, but you get the idea).

> Did you not read the things I was able to learn just from my first node

I guess you mean the "Use Cases" section on the linked page. Yes, I read those, and they played a large part in my comment you are replying to. For example:

> A citizen or public servant who wants to know what any citizen or (rival) > public servant is doing at this moment or has ever done before

Sorry, I value my privacy and that of others. And this was the nail in the coffin:

> I now know most of my neighourhood's average height, individual walking gait > identification pattern, estimated salary based on car model, family > structure, daily schedules, how many (visibly) pregnant women, on what days > in July the guy across the street mowed his lawn, the pattern he mowed it in > the 8th time and that it was the same day my other neighbour had 5 guests > over for a get together. I can rewind and replay it from multiple angles in > 3D. If I really want, I can convert it to spreadsheet format, etc.

Just.... no. Please.

<comment><AUTHOR> That data may be trash to you but to a sociologist, to an economist, to an epidemiologist, to an anthropologist, to a historian, to a city planner, to a property developer, to an investment firm, to an insurance company, to a kinesiologist and on and on... it's TREASURE.

<comment><USER16> ...and I treasure my privacy.

<comment><AUTHOR> Then don't install a Twitch streaming video camera in your bathroom. And don't order a custom t-shirt with your banking password printed across the chest. This isn't rocket science.

If you're out and about in view of others, you don't have privacy. By definition of what we call "privacy" that is the exact opposite of privacy.

[https://media.giphy.com/media/NPyHgTkMStCXC/giphy.gif](https://media.giphy.com/media/NPyHgTkMStCXC/giphy.gif)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Future generations will look upon this like we look upon the guy who disassembled a bunch of smoke detectors in order to turn his back yard into a radioactive superfund site.

</comment><comment><USER18> Looking for a link to the PDF of it, but I'm reminded of David's Gelernter's "Mirror World" [0] concept from the 1990s, was lucky enough to encounter it in one of my classes.

Hadn't thought of the proposal as more than sci-fi but here we are :)

[0] [https://en.wikipedia.org/wiki/Mirror_world](https://en.wikipedia.org/wiki/Mirror_world)

<comment><AUTHOR> I didn't have a name for the type of software that Grassland is and that's why the first sentence on the site is so long. I'd never heard of this "Mirror World" concept before but the similarities are surprising now that I've read a bit about it. I've added it into the description as "A world mirroring system..."

<comment><AUTHOR> On second thought. The man who coined the term seems like he's got some uhmm... issues.

[https://www.youtube.com/watch?v=zDfBLFyTBM4](https://www.youtube.com/watch?v=zDfBLFyTBM4)

</comment></comment></comment><comment><USER19> Kudos for the concept. Intriguing form of counter-surveillance that could actually work in a lot of existing surveillance states. Had a few questions :

1\. Who in the system is responsible for maintaining and updating the object detection model? It seems like a centralized point of failure for an otherwise decentralized system. Might want to check out existing techniques for Federated Learning for ways to counter this. ([https://www.openmined.org/](https://www.openmined.org/))

2\. How possible is it to mount a Sybil attack on this system? Why did you select PoW considering it's weaknesses? One possible problem could be that early adopters will necessarily have to be co-located for the system to have any value(Hence consolidating value in a certain geographical area, making it very easy to regulate/shut-down).

<comment><AUTHOR> 1) Yeah, I'm not sure how Federated Learning would solve the problem. Federated learning still requires someone to decide on a single model and it's still trained under the coordination of a central server[1]. And how do you ensure the data people are giving the model is good? You need some sort of scheme to determine that. So how do you decide on the scheme? Decentralization? Isn't this decentralised-turtles all the way down?

2) I'll explain in detail how it prevents Sybil attacks later. But It involves signing all the tracklets and digest tuples (see website) as well as a sort of Russian Nesting Doll of hashes. PoW is the only viable one we have. I like to use systems that are battle tested. I don't know what you mean by PoW weaknesses. Could you clarify? You don't need to co-locate. Read what I learned about my neighbourhood with just one node under "Use Cases" on the site. As to people shutting it down, I have clearly delineated on the site's front page what my theorem predicts will happen if they do. They're handing data, unprecedented knowledge of human behaviour and AI dominance to those who don't. So yeah, shut it down. Fill your boots, mate...([https://i.imgur.com/rDJWv5E.gif?noredirect](https://i.imgur.com/rDJWv5E.gif?noredirect)).

[1] [https://towardsdatascience.com/whats-new-in-deep-learning- re...](https://towardsdatascience.com/whats-new-in-deep-learning-research- understanding-federated-learning-b14e7c3c6f89)

</comment></comment><comment><USER20> The one saving grace of such a system is that it should make it trivially easy to identify who is running these nodes, so that they can be forcibly ejected from your community.

<comment><AUTHOR> Grassland software is just the proof of a theorem whose 3 postulates/axioms I clearly outline on the front page of the site. My theorem predicts that a population that shuts it down is just concentrating cryptographic money and an AI with perpetually increasing and unparalleled knowledge of human behaviour into the hands of those that don't. In short, the rest of the world would react with -> [https://i.imgur.com/rDJWv5E.gif](https://i.imgur.com/rDJWv5E.gif)

</comment></comment><comment><USER21> It says "successfully submitting fake data in the network is so computationally intractable that any self-interested node would find it more profitable to be honest", but that doesn't sound quite right.

I see the diagram and how it should enforce that the input frame is valid wrt the hidden layer, but it seems I could generate a fake overlay animation (for n POVs) and superimpose it over (or object detect and scrub it from) the input frame sequence.

<comment><AUTHOR> You'd have to do this repeatedly. Many times a second. And you could have to always have a different one each time. And you'd still have to hash the hidden layer so you're still spending money. And you'd still have to make sure your objects didn't behave on the map in a funny way. They couldn't walk through walls or fly off into space. Or walk into the ground. Because other nodes will see that. It'd too difficult to maintain over time.

<comment><USER21> But I'm speaking to the set of cases where there is some external economic incentive (outside of the crypto token value) to either incriminate or exonerate some actor's behavior.

I think the scrubbing/exoneration scenario is straightforward, and the physical anomalies you mention (for the incriminate overlay attack) would be handled by CG or 1:1 offline model recording.

Maybe the network needs to report on cases where sensors disagree and visualize/surface these n different versions of history.

Any thoughts on leveraging something like Golem for the compute and Streamr or Erasure for the payment/sponsorship?

<comment><AUTHOR> > I think the scrubbing/exoneration scenario is straightforward, and the > physical anomalies you mention (for the incriminate overlay attack) would be > handled by CG or 1:1 offline model recording.

You could but it would take a lot of effort even if you just wanted to scrub the data of one. You'd also have to know what you're about to scrub before you even do it. You'd also have to make sure there weren't other nodes around too. Keep in mind, every few months the power requirements of the models increase. The next model will have semantic segmentation ([https://medium.com/nanonets/how-to-do-image-segmentation- usi...](https://medium.com/nanonets/how-to-do-image-segmentation-using-deep- learning-c673cc5862ef)) so by Eon 1 things are going to be much, much harder to fake than Eon 0, which we're at now.

I'll admit, it's never going to be perfect. But as you mentioned, we can find ways to make it better. But one thing I believe we can guarantee mathematically is that if someone's going to make an attempt to submit fake data into the Merkle Tree, we're going to make them have to pay out the nose just to attempt it. So they have to have a lot of resources at their disposal. But in the end, they're also involved in raising the value of Grassland's currency for everyone else. Because they're funnelling more compute costs into the system, trading their money for Grassland's coin. So everyone else in the network is, in a certain sense, rewarded from the penalty extracted from the attacker's dishonesty.

> Maybe the network needs to report on cases where sensors disagree and > visualize/surface these n different versions of history.

Yes, I'll think about this... Do you have further thoughts on this?

> Any thoughts on leveraging something like Golem for the compute and Streamr > or Erasure for the payment/sponsorship?

I don't really know much about them. Most of the 'blockchain' stuff out there seems quite overly complicated to me and I'm not sure what they even do to be honest (Not to disparage these systems in particular. I think I've only ever heard of Golem before. And the other two I've never heard of). But I'd rather work with systems that I know and aren't going to be changed from under me because of the whims of some other dev team. And Grassland has quite a unique problem space so it was necessary to build the system from the ground up so I know exactly what each piece is doing and what it could potentially do because I don't put in any more code than I need to.

<comment><USER22> I'm not sure I follow the reasoning that making attacks expensive is strong enough protection. State actors have plenty of resources to throw at this, much more than private citizens - doesn't that mean this effectively becomes one way surveillance again? Since if the stalker has enough resources, you can't effectively stalk them back

</comment></comment></comment></comment></comment><comment><USER23> One interesting tweak you could consider, don't know if it's possible: it would be great if everyone could see logs of access as well. If everyone is giving up privacy symmetrically, it might be an interesting dynamic if everyone can also see who accessed their information (or, if it's anonymous, simply know that _someone_ accessed it).

</comment><comment><USER24> Neural networks plus proof of work is interesting, but there is one, foundational problem: cryptocurrencies have no particular value. Bitcoin has a bubble of people who held a particular ideology and didn't understand currency, and folks who needed money laundering took advantage of that. Without a similar bubble, it's hard to convince someone to give you a currency that you can, say, pay taxes with in exchange for some numbers that you can prove were hard to calculate.

Beyond that, it's pretty straightforward to shut down. If a municipality decides it doesn't like this, you pass a law against it. You can't fully anonymize sparse nodes because the appearance and disappearance of objects under various situations lets you pinpoint where it is and either send the police up to break it or give the company running the poorly secured security camera an injunction to fix it.

<comment><USER25> > Bitcoin has a bubble of people who held a particular ideology and didn't > understand currency, and folks who needed money laundering took advantage of > that.

I'm pretty sure that the Bitcoin ideology specifically seeks to enable money laundering. It's not like people who needed money laundering took advantage of a design flaw; the point is to let people launder money.

<comment><USER8> actually all money transacted is transparent because the blockchain is public domain. What is used for money laundering is dollars. It's a common fallacy that there is a lot of money laundering with Bitcoin disproved by EU studies (google them).

</comment></comment></comment><comment><USER26> What are the privacy implications of such a system?

<comment><USER27> It may allow organizations and governments to hold each other accountable, because generally there's an inappropriate coordination or centralization of the data-gathering machinery and the political/financial machinery.

As for privacy, I think it will serve to add more players to the data game, balancing the powers.

<comment><USER26> Sorry, let me just list the first use case:

"A citizen... who wants to know what any citizen... is doing at this moment or has ever done before"

uh

<comment><USER28> More power to those who have the resources to get the digging done for them. Even with a perfect AI interface, you could only ask "Alexa" so many questions in 24 hours. Lowly individuals would gain absolutely nothing, they have better things to do than sniffing each other's data trails. That investment of time would in the overwhelming majority only be worthwhile for malicious use cases.

Even in the simple stalker/stalker evasion scenario: the stalker would enjoy digging into the data, but for the stalkee, keeping track of the stalker for avoidance would be a terrible chore.

</comment></comment></comment></comment><comment><USER29> Wouldn't most of those use cases be illegal? For instance tracking license plates of cars is already illegal as far as I know.

<comment><USER30> Where is gait identification or license plate tracking illegal? If you're visible to the naked eye from a public space in the US it wouldn't be a bad idea to expect it.

<comment><USER31> Because laws are able to make these distinctions that seem arbitrary when broken down.

"How can child porn be illegal when its just ones and zeros on a magnetic disc"

"How can harassment be illegal, if you are in a public place you should expect words in the form of sound waves to enter your ears"

<comment><USER30> I condemn child porn and verbal abuse. Have you no shame?

</comment></comment></comment></comment><comment><USER32> Love it love it love it.

Can it work with existing public webcams? I'd love to track the comings and goings of every politician in Washington.

<comment><AUTHOR> I'm glad you like it. Yes it can :) Keep in mind it's still beta. There's still more work that needs to be done. But if you have any questions just open up an issue on github or email me. My email is on the bottom of the website.

</comment></comment><comment><USER33> Quite amused to see that Presto card! Always great to see something done here in Ontario. On the other hand, the privacy/security implications of this are very frightening.

<comment><AUTHOR> :) You know I heard saying once. I think it goes something like this, "Every mathematician receives their best ideas in the three 'B's. 'Bed', 'Bath' and 'Bus'"

</comment></comment><comment><USER34> Can you put this on a car to get a full 360 view of what's going on?

<comment><AUTHOR> Unfortunately, no. Not at this time. Your node calibrates itself and interprets what it sees in each 2D video frame into the real 3D world by 'knowing' where its 'virtual self' is placed in the 3D map of the real world that you'll find in the GUI. When you set up your node, you have to do set this calibration once, manually using the GUI and its accuracy in space is down to half a centimetre on the earth's surface and its accuracy in time is down to a millisecond.

If it was on the top of the car, the node would have to be constantly updated automatically. But GPS is no where near that accurate. I guess you could use a combination involving LIDAR to constantly tell the node where it is so the car's position is updated in Grassland.

But it would make more computational/economic sense for the government and economically self-interested citizens (interested in mining Grassland's coin) to line the streets with ip cameras which grassland nodes can read from to analyze and broadcast car and pedestrian locations/speed etc. etc. millisecond by millisecond. Which self driving cars could pick up and 'know' everything going on around them even things they can't 'see' themselves.

<comment><USER35> What's stopping me from finding all the unsecured IP cameras in my city and using them to "mine" data? Further, if I could do that what's stopping others from reusing the nodes that I set up?

<comment><AUTHOR> > What's stopping me from finding all the unsecured IP cameras in my city and > using them to "mine" data?

Absolutely nothing.

> Further, if I could do that what's stopping others from reusing the nodes > that I set up?

Right now, nothing. Nodes could overlap other nodes. But they're still using compute cycles so they're still spending money. The only issue is, who gets theirs into the tree first. And if the hash is the same, you better be first or you're just wasting time.

Keep in mind, I've still got a lot of work to do. And until today, I've been working on this by myself. And pretty much since last summer. You can see the list of tasks that I need to complete on the site under "Beta Version".

<comment><USER35> Thanks for answering my question. And I want to say I appreciate what you're doing. Information is power and it's being leveraged against individuals practically unchecked. If I had to guess some state actor would have come up with (or already has) with a technology like this eventually. Everything in that system would be kept private and be leveraged against the individual without consent.

Tools would be built with it that contain their own biases and uses. The appeal of using this system against others would be too great, either for those in power or those who seek to sell the ability. For that reason I like the ubiquitous access _everyone_ would have.

Distributing this to everyone reminds me of the end of "The Stars My Destination"

To continue with my original question though; I'm guessing whatever system has faster compute cycles will win the race of who hashes first? Will you be able to tell who's hash gets there first

<comment><AUTHOR> > I'm guessing whatever system has faster compute cycles will win the race of > who hashes first? Will you be able to tell who's hash gets there first

Yes, but it's not just about hashing power though. And there's no nonce like Bitcoin. It's mostly about deep learning inference power. You can see the process described on the website under "Unrewriteable History And Reasonable Storage Requirements" (though I'll probably change that title soon and call it "[something] Merkle Tree"). I've copied the last bullet point here...

* The process of producing the next Merkle Tree is a competition any node can compete in. A person who cultivates real trees is an Arborist so we'll use that term. Our "arborists" will also need to perform inference on the frames that were randomly selected for evaluation based on the last Merkle root, and will need to publish each frame's digest tuple and the "reserved digest" (see diagram). If the original node holding the reserved digest signs the arborist's digest, it generates that node's reward coins and a percentage goes to the arborist. But that will only propogate if that arborist's tree is also accepted by a majority of the network. Therefore, as long as (1) there is always active competition to compute the Merkle Tree by statistically verifying the work of all other nodes and (2) over 50% of every active node prevents inflation of the money supply by rejecting trees that don't pass their proof-of-work, then all rational (self-interested) nodes will have to be honest.

</comment></comment></comment></comment></comment></comment><comment><USER36> Interesting project! You could run the neural networks directly on the pi. Expect 3 fps for object detection, try ncnn or deepdetect + ncnn for ease of use. That's without GPU. With a Jetson Nano expect up to 50 fps. You could detect more classes as well, as needed.

</comment><comment><USER37> The opening description has to be the most informative, amazing run-on sentence I've ever seen.

<comment><AUTHOR> I'm going to screenshot this comment and send it to my high school English teacher.

</comment></comment><comment> bjelkeman-again The video isn't viewable on an Ipad.

<comment><AUTHOR> Sorry, I'm going to change the video format later. Maybe a GIF or something. But I don't want to touch it now while so many people are looking at it just in case I mess things up.

I've uploaded the two of them to Gyfcat for now. Let me know if that works for you

[https://gfycat.com/BigGraveCricket](https://gfycat.com/BigGraveCricket)

[https://gfycat.com/EqualGreatDarklingbeetle](https://gfycat.com/EqualGreatDarklingbeetle)

<comment> bjelkeman-again Thanks. That worked.

</comment></comment></comment><comment><USER38> Interesting idea to create a currency of proof of work for a task of intrinsic value. I had thought about creating a currency around making successful predictions, some computational activity that is not random but has some demonstrated value.

</comment><comment><USER39> Wow, very cool and inspiring stuff.

<comment><AUTHOR> Thank you. Much appreciated :)

</comment></comment><comment><USER40> This is incredibly interesting! Real time simulation at scale!!

</comment><comment><USER8> this is a prime example of what blockchain can do

</comment><comment> 70122-_6 needs an odroid, tudder extension completing.</comment>


Intel just open sourced Stephen Hawking's speech system - <AUTHOR> https://github.com/intel/acat <comment><USER2> "Intel just open sourced Stephen Hawking's speech system"

The post title is incorrect, ACAT has been open-sourced quite some time ago. August 14, 2015[0] is the oldest source I could find within a quick Google Search.

[0] = [https://blogs.msdn.microsoft.com/cdndevs/2015/08/14/intel- ju...](https://blogs.msdn.microsoft.com/cdndevs/2015/08/14/intel-just-open- sourced-stephen-hawkings-speech-system-and-its-a-net-4-5-winforms-app-that- you-can-try-for-yourself/)

</comment><comment><USER3> One of the first GPS systems I used had a voice synthesizer probably very much like Stephen Hawking's. It was a weird sensation of having him as my co-pilot.</comment>


Lunch Lady slammed for serving food that is too good - <AUTHOR> http://m.thelocal.se/43656/20121006/

<comment><USER2> This is one of those cases where a story fits very cleanly into a pre-existing narrative. It's a useful exercise in those cases to try to stretch your mind and figure out what parts might be being left out.

No, no knowledge of the incident beyond the article, but Sweden is hardly a Harrison Bergeron society.

<comment><USER3> Try to withhold your ideologically motivated commentary until you have said knowledge.

</comment></comment><comment><USER4> "because it was unfair that students at other schools didn't have access to the unusually tasty offerings"

Sweden: welcome to socialism. Everything has to be equally bad.

<comment><AUTHOR> I don't believe this kind of reaction can be solely attributed to socialism. It's endemic among "entitlement" oriented individuals. But the real failure here has little to do with what is fair. The thinking here is badly flawed at many levels.

</comment></comment><comment><USER5> It's very sad that instead of trying to figure out how and where this person went right in terms of preparing food, and trying to adopt those practices across the country, they chose to stifle it instead.

That's classic bureaucracy at its finest.

It's easy to say that it's because Sweden has a socialist nature, but I have a feeling this type of thinking is common in the US as well.</comment>


Omniref (YC W15) Adds JavaScript to Its Code Annotation Platform - <AUTHOR> http://techcrunch.com/2015/01/27/omniref-adds-javascript-to-its-code-annotation-platform/

<comment><USER2> Does anyone know if this annotates actual JavaScript implementation (V8, SpiderMonkey) like it does for Ruby?

<comment><USER3> We don't pull in the C code yet, but that's coming soon. We actually have the ability to do that (we do it for Ruby, clearly), but we need to do some more work to make it happen for Javascript.

<comment><USER2> Awesome. looking forward to it.</comment></comment></comment>


Red Hat Quietly Joins the OpenStack Effort - <AUTHOR> http://www.readwriteweb.com/cloud/2012/01/red-hat-quietly-joins-the-open.php

<comment><USER3> Aeolus is different from OpenStack.

. Aeolus is GUI for controlling and migrating workloads across heterogeneous clouds. eg. Start your loads running on AWS, migrate them to Rackspace or another OpenStack cloud.

. OpenStack is a (kind of) open source equivalent of AWS, so you can run a private or public cloud on your own equipment.

As for Red Hat's involvement. Well, code and contributions talk. Hot air from Microsoft and others, walks ...

<comment><USER4> OpenStack isn't an open source AWS, it's also vm management. It works with XenServer, KVM and ESX. I can't speak for Aeolus, but OS had 3 components last I checked (Nova - the app server, Swift - storage, and Glance - <USER2> catalog). I think they were working on an auth module (Keystone?) and network virtualization (Quantum).

I don't think they support migrating between heterogeneous cloud types (which is a complicated beast), though. Does Aeolus really do that?

Love what you said about code + contributions vs. lip services!

<comment><USER5> If anything, OpenStack is more of a competitor to oVirt, though there are significant differences between the two.

<comment><USER6> They touched on the interaction of the two at a recent workshop:

[http://www.ovirt.org/wp-content/uploads/2011/09/Ovirt- WorkSh...](http://www.ovirt.org/wp-content/uploads/2011/09/Ovirt-WorkShop- Invitation.pdf)

        The oVirt project is focused specifically on Data Center
        virtualization management, related technologies and
        tooling. oVirt brings the richness required by Data Centers
        to an open-source platform. OpenStack is focused on
        cloud which requires a minimum around virtualization
        richness and rather focuses on cloud features.

        In addition oVirt will be an open virtualization management
        ecosystem, and may use components from OpenStack or
        any other community project in achieving that goal.

        OpenStack and oVirt can be seen complementary in the
        same way OpenStack has VMWare driver support.</comment></comment></comment></comment>


Ask HN: Are there any good open-source OneNote alternatives? - <AUTHOR> I use OneNote to make notes on and organize whatever I'm reading. But I would prefer to use an open source alternative(which I could self-host). Also, I sometimes have a sync issues with OneNote, making it difficult to rely on. Any ideas?<p>A pure markdown based solution isn't really ideal. I like the rich text formatting of OneNote and the ability to insert media, draw over it, etc. <comment><USER2> Take a look at [https://tiddlywiki.com](https://tiddlywiki.com)

</comment><comment><USER3> Notion.so Cannot recommend enough

I mean its not open source but its also 5 guys in a garage and not a giant megacorp

<comment><AUTHOR> The free version seems to have "1000 free blocks". How far does this go? Do you think its worth the annual fee of $60?

<comment><USER4> Personally, yes. I'm sitting around 50% right now, but have no reservations upgrading if/when I reach the need to. It's something you'll have to play with yourself to see if you can get it working in a way that makes sense for you - I know a few people who felt it didn't provide enough structure for them.

</comment></comment></comment><comment><USER5> Notion - learned from hn

</comment><comment><USER6> also check out Joplin</comment>


Vuetify - Material Component Framework for VueJS 2 - <AUTHOR> https://vuetifyjs.com/ <comment><USER2> Looks cool, unfortunately like many of these UI frameworks, the more advanced functionality has been left out so far. Compared to [http://semantic- ui.com/modules/dropdown.html](http://semantic-ui.com/modules/dropdown.html) which has searching and filtering etc.

Hard to move to anything this unless it's the most basic of applications.

<comment><USER3> The advanced functionality is left out because it's very difficult, and quite a waste of valuable developer time, to reimplement essentially the same widget set over and over and over again for each framework.

That's just one reason why it saddens me to see so many proprietary frameworks out there with more all the time, especially ones that are so close to being compatible with Web Components. If Vue just used and produced Web Components, it could use a common Material Design component set. The investment in fewer component sets by more people would result in much higher quality and free up developers to work on higher-level things.

<comment><USER4> And Semantic UI is far too large for a site that wants to be snappy.

</comment></comment></comment><comment><USER5> Could actually see a "flash of unstyled content" on my desktop PC. No biggie, but that makes me think about just how overkill I want to go with VueJS. (edit: wondering also if they precompiled those templates with vue-loader?)

I'm super excited about VueJS, and start using it on my site. But when I see a component for a _button_ , you know, just a regular styled link... I wonder if there is really a purpose to that? How do you strike the right balance of what should be a component, and what can be handled as plain html with perhaps some backend helpers to output in view templates?

Also just as a general criticism I think it's not welcoming for a Vue component framework to have such a strong opiniated design built in. It would be much nicer to have the theme something relatively easy to change. It may be don't get me wrong... but my first impression is "Can I even use this? Without changing tons of style rules?".

For this I think the relatively simple design of Bootstrap is a strength. Give me the same components with a barebones design, with cheap flat buttons with some rounded corners for "pzaz" and then I feel much more confident about bringing that into an existing project. Even if I started a site today, I don't want to use Material design.

<comment><USER6> > But when I see a component for a button, you know, just a regular styled > link... I wonder if there is really a purpose to that?

Why shouldn't there be a component for a button? Buttons can have endless styles and animations. They have a myriad of behaviors. For instance, there are differences in how they could respond to touches versus mouse clicks. They have a standard interface. With a component, you could keep them consistent across an application and share them across applications.

</comment></comment><comment><USER7> I disabled the use of custom fonts and have to say that the material style of Google makes websites unreadable. Just like this framework does.

This is because the span inside an icon has a huge font size. And they use ligatures for characters (so I'm seeing the huge ligatures).

Why would someone choose ligatures over CSS classes?

Edit: I was thinking about problems with screen readers and so on. A CSS class is just styling, but what Google uses is content.

<comment><USER8> Could you provide a screenshot of the problem you encounter?

<comment><USER9> Just disable the "Material Icons" font in DevTools and you'll see it.

</comment></comment></comment><comment><USER10> What would be helpful is a comparison to all the _other_ Vue Material frameworks that already exist. (see github.com/vuejs/awesome-vue for example) ie, why should I switch? Why did this project get created from scratch instead of adding on to the existing ones?

<comment><USER11> A handful of those other frameworks wrap Material Design Light and/or Materialize in Vue components, so this eliminates that dependency and (theoretically) provides a cleaner API.

But [https://vuematerial.github.io/](https://vuematerial.github.io/) looks to have pretty similar "features" and is "Vue native" as well.

</comment></comment><comment><USER12> I'm not UI expert, but the fact that the buttons don't have any animation change (or change in colour) when pushed down is a little grating...

<comment><USER13> ty for the feedback.

</comment></comment><comment><USER14> Hmm I thought I could use this and add a few Material elements to my project here and there. But only including the CSS completely changes the styling of everything on my page (buttons, inputs, etc..). I mean not even Bootstrap changes the appearance of <button> until you add 'btn' class.

</comment><comment><USER15> While this is useful to have, I would argue that layout should be left to css frameworks (material css in this case) and components only used for functional parts of the app.

No one is forcing us to make everything a component. What would be a benefit of having a footer or header a component for example?

<comment><USER9> If you don't want to make many modifications I prefer having it like this, with each component being completely self-contained with no global CSS dependencies.

</comment></comment><comment><USER16> I love Material Design and so does everyone else,so I'm definitely in the target group. Thank you for making this.

</comment><comment><USER17> This page had an ugly flicker as the page loaded, with the unstyled left-side navigation displayed before the CSS rules were loaded.

It's not a huge deal, and honestly I have built some sites like that as well, but when you're pitching front-end frameworks, stuff like that matters. I don't want anyone to think that that kind of flicker is inherent to Vue.

<comment><USER18> What's the recommended way to resolve that these days? Render your primary CSS bundle in head?

<comment><USER17> I believe best practice is to sort out which of your CSS is needed to render above-the-fold content, separate that out into a smaller file, and serve that higher in the page or even inline it. The rest of the CSS can be served at the bottom, with the JavaScript.

If anyone has a better plan, I'm all ears!

<comment><USER13> That is correct. It can just be a pain to do intuitively as all sites are different. Vuetify Documentation runs off of the vuetify webpack-ssr vue cli template which I recently removed that functionality.

</comment></comment></comment></comment><comment><USER19> what's the big deal with "material"? Looks ugly as sin. I just don't get it.

<comment><USER20> Personally, I like material design, as do many others.

If done right, it makes the interface feel fluid and alive rather than just click and appear.

Whether or not you like that is personal preference.

<comment><USER21> completely agree.

[https://angular.io/docs/ts/latest/](https://angular.io/docs/ts/latest/) is the best material implementation i believe.

<comment><USER22> Try Google Cloud Console. Even better!</comment></comment></comment></comment>


Angular Universal PWA boilerplate now with CLI support - <AUTHOR> https://github.com/maciejtreder/angular-universal-pwa <comment><AUTHOR> Hello folks!

After couple of requestes, I am happy to announce that Angular CLI support is present in the Angular Universal PWA boilerplate (the only starter with Serverless environment support)!</comment>


New Higgs results bring relief—and disappointment - <AUTHOR> http://www.nature.com/news/new-higgs-results-bring-relief-and-disappointment-1.11837 <comment><USER2> > Instead, physicists must count up the number of particles that detectors > observe and tease out those that may have come from a momentarily existent > Higgs. If the Standard Model is correct, physicists know how many of these > daughter particles they should see.

I find this part very confusing: physicists count the number of _collisions_ that lead to a Higgs boson, but understanding whether a Higgs was there is not just a matter of counting particles. You need particle identification, energy measurement, track extrapolation and invariant mass calculation.

CERN has its share of bean-counters, but not that much :-)</comment>


PyPI Migrated to New Infrastructure - <AUTHOR> https://mail.python.org/pipermail/distutils-sig/2014-January/023522.html

<comment><USER2> Well, great news for pypi. As for using salt -- I thought: "Well, I guess it's time I had another look, they probably have their security story together now, after all.".

So I have a look at the "Masterless Quickstart" and "Installation" pages [1,2] and find:

       wget -O - http://bootstrap.saltstack.org | sudo sh

And the server answering on 443 on that host doesn't have a certificate for that domain, or the bootstrap script (clearly it's not configured for a ssl vhost by that that name/id -- through SNI or otherwise).

So, just run some code downloaded over plain http as root on all my servers? Great plan!

edit: I think I'll stick with Ansible for now.

edit2: For those wanting a look at the salt states, from the thread[3]:

> Where are the states stored?

[https://github.com/python/pypi-salt](https://github.com/python/pypi-salt)

1: [http://docs.saltstack.com/topics/tutorials/quickstart.html](http://docs.saltstack.com/topics/tutorials/quickstart.html)

2: [http://docs.saltstack.com/topics/installation/index.html](http://docs.saltstack.com/topics/installation/index.html)

3: [https://mail.python.org/pipermail/distutils- sig/2014-January...](https://mail.python.org/pipermail/distutils- sig/2014-January/023531.html)

<comment><USER3> On the Installation page you linked to it clearly mentions:

PLATFORM-SPECIFIC INSTALLATION INSTRUCTIONS

These guides go into detail how to install salt on a given platform.

A QuickStart is just that. Something which serves its purpose as a QuickStart. If you have security concerns then read the source code or test it out in a VM.

<comment><USER2> It doesn't change the fact that running code that's downloaded over http,unverified by any kind of signature, as root -- is a very bad idea, and just having it there in official documentation for package whose purpose is managing systems gives me a very poor impression of the projects security goals.

</comment></comment></comment><comment><USER4> They are using salt to configure their infrastructure now instead of chef, interesting!

[https://github.com/saltstack/salt](https://github.com/saltstack/salt)

<comment><USER5> They felt dirty using a ruby project.

<comment><USER6> Ansible would be another awesome python solution to use in this case.

<comment><USER7> as a solo developer doing my own devops, ansible has been fantastic for its near-zero infrastructure overhead.

</comment></comment></comment></comment><comment><USER8> I'm impressed how little infrastructure they where make due with previously. PyPI hasn't been too bad considering the backend.</comment>


Microsoft Research contributes code to MediaWiki under GPL & Apache 2.0 licenses - <AUTHOR> http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/WikiBhasha/README.txt?view=markup

<comment><USER2> it's not that weird like "zomg micro$oft contributes GPL code zomg zomg" ... Microsoft Research is, at its core, an academic research lab that publishes in academia. it's no more surprising than if a university contributes GPL code back to some open source project. (of course, people at MSR do often hack on proprietary projects that they can't open source, though)

<comment><USER3> basically agree... but it is at least a little more surprising considering MS is still pumping out this trash mms://msnvidweb.wmod.msecnd.net/a10026/e1/ds/us/CMG_US/CMG_Microsoft/9e361baf-9952-4d5e-9a9a-4b0bd0179d8d.wmv (if you have silverlight [http://www.microsoft.com/showcase/en/US/details/faaf9eb8-77c...](http://www.microsoft.com/showcase/en/US/details/faaf9eb8-77c6-4bed- bc08-c069a7bfbb04))

<comment><USER4> _it is at least a little more surprising considering MS is still pumping out this trash_

Microsoft is a huge company.

I doubt Office Marketing and Microsoft Research coordinated their release of a marketing video and GPL code, respectively.

</comment></comment></comment><comment><USER5> What does this extension actually do? Allow for unicode to be used in mediawiki?

<comment><USER6> Unicode's already supported and widely used, so can't be that. It seems to have something to do with UI support for finding/translating text between different Wikipedia languages.

edit: Fairly comprehensive documentation (PDF): [http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/W...](http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/WikiBhasha/doc/WikiBhasha_Beta_Ext_User_Doc_1%200.pdf?revision=74892&view=co)

<comment><USER7> Looks like a fairly comprehensive tool for translating articles from other Wikipedias into a target language. Includes tools for discovering source material, as well as something called the "Collaborative Translation Framework" for crowdsourcing translations of individual sentences.

Looks nifty. Small Wikipedias will _love_ this.</comment></comment></comment>


Apple is done, say teens - <AUTHOR> http://news.cnet.com/8301-17852_3-57563665-71/apple-is-done-say-teens <comment><USER3> _"This definitive information comes to me courtesy of research performed by Buzz Marketing, as well as three 14-year-olds who tried to rob me of my orange Puma sneakers."_

</comment><comment><USER4> CNET is done, says...well...everybody. Likewise "media gurus" who use the hackneyed word "buzz" in their name. :-)

</comment><comment><USER5> Don't want to sound like a dick or nothing, according to this article CNET has no credibility at all.

</comment><comment><USER6> This isn't surprising.

Apple is as much a fashion company as it is a technology company. And the thing with fashion is that no trends maintain coolness forever. The very fact that Apple is cool to the parents means that it won't be cool to the kids.

<comment><USER7> Apple is far more analogous to say, BMW than an apparel company - <USER2> companies produce highly refined products which elicit loyalty in their customer base and great resale values.

IIRC, BMW has been around for decades and still gets their customers to open their wallets in a big way, and still looks cool.

<comment><USER6> I'd say Apple is a bit different from BMW.

The main selling point of BMW is its "German craftsmanship." Apple, on the other hand, gets its products from the exact same outsourcing suppliers that everyone else is using.

If BMW were getting its cars from the same suppliers as Hyundai and Geely, I doubt it would be able to maintain its coolness for as long as it has.

Hence IMO Apple is much more analogous to Abercrombie & Fitch than BMW. Just like A&F, Apple sources its products from the same suppliers everyone else uses. And just like A&F, Apple's main selling point is design and logo.

</comment></comment></comment><comment><USER8> So teens without money favour surface over Apple. Clearly the sales back them up??? It ends tipping Nokia. Gee that research was worth the money

</comment><comment><USER9> This CNET article's title is a re-quote of a single line appearing in a Forbes article that originated from a 7-person "youth marketing agency" that lists a total of four technology clients: blogtv, unidentifiable logo, cybiko wireless, and verizon wireless (1).

(1) <http://buzzmg.com/clients/#lifestyle></comment>


A Brief History of Microsoft on the Web - <AUTHOR> http://www.microsoft.com/misc/features/features_flshbk.htm <comment><USER2> _A vendor who had only a passing knowledge of microsoft.com coding policies delivered the first Windows CE site. The first test on the site with Weblint, a tool used to check validity of HTML, returned 100 pages of errors. There was a harried pre-Comdex weekend in November 1996 where every link and quite a bit of other code on the several hundred page site was manually recoded by a handful of people so it could be published in time for Bill Gates' Sunday night keynote._

Amusingly, the w3c validator now finds 188 errors at microsoft.com.</comment>


Apple to bring back $200B in overseas cash to the USA says analyst - <AUTHOR> https://www.cnbc.com/2018/01/05/apple-tech-companies-to-bring-back-400-billion.html <comment><USER2> Title is misleading.[0] This is a prediction from an analyst, and not a statement by Apple.

[0] "Apple to bring back $200B in overseas cash to the US"

<comment><AUTHOR> Thanx, fixed now.

<comment><USER3> Still seeing the same original title btw.

<comment><AUTHOR> I edited it down to $200 B.

<comment><USER4> Title should be: "Apple to bring back $200B in overseas cash to the USA says analyst"

<comment><AUTHOR> fixed thanks.

<comment><USER5> Should add Apple could bring as it is just guess work by the analyst nothing substantial

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> An occasional "tax holiday", with the ability to keep profits overseas until the next tax holiday isn't so different from just being a tax haven.

Even more so considering you can issue bonds against that overseas capital and your investors can see it on the balance sheet.

<comment><USER6> Foreign profits are taxed immediately so there is less reason to hoard cash "overseas".</comment></comment>


A DNSCurve Forwarding Name Server - rw- http://curvedns.on2it.net/

<comment> mike-cardwell Sounds interesting. I'd never heared of DNSCurve before. What's the current level of rollout? How many sites are using DNSCurve? tens, hundreds, thousands? Any major sites? Wondering if it's worth my while looking into yet...

<comment> mike-cardwell My own research suggests there are very few sites using it currently. OpenDNS supports it, but only because they prefer it to DNSSEC as it allows them to continue to modify returned results whereas DNSSEC wouldn't.</comment></comment>


How $2 in debt almost turned into $90k - <AUTHOR> http://money.cnn.com/2013/11/13/pf/sheila-bair-store-cards.moneymag/index.html

<comment><USER2> This is kind of stupid. The mistake the author has could have applied to a regular credit card as well. Mistakes happens and when she found out, she should have promptly tried to fix it. Instead she left it running for 4 months and now blames store cards as if it's unique to them.

Disclaimer: I own 0 store cards. Never had any</comment>


Ask HN: who prefers the Chrome Offline GMail Reader to the new GMail interface? - <AUTHOR>

<comment><AUTHOR> Sorry about raising what I had hoped was a dead issue, but I tried the Chrome Offline GMail Reader (which obviously also works when online) today, and I really like the simple interface - I think that Google should offer this as a more public option.</comment>


Container Isolation Gone Wrong - <AUTHOR> https://sysdig.com/blog/container-isolation-gone-wrong/ <comment><USER3> I enjoy reading descriptions such as these that start with easily detectable problems and go into a level of debugging far beyond my skill level. Helps to illuminate some of those "unknown unknowns" that I didn't even ever consider before.

<comment><USER4> I had the same feeling, but this also reinforced my view that Docker and containerization in general (often used as a scapegoat to not have to do proper configuration management) 'for the masses' is more problematic than helpful. In most cases it doesn't solve anything but does add problems that can be hard to debug. The actual 'lack' of isolation wouldn't have happened with true virtualisation, and the method of debugging here is something most people that think they need containers won't have.

To me, debugging like this is something that should be far more important to people than slinging words like Docker and NodeJS around all day. (and then mostly on Discord, or to them, the older Slack, but not IRC because that is too hard for that crowd -- totally unfounded opinion/rant)

<comment><USER5> Docker didn't cause this problem, the point of the article is that Docker doesn't _prevent_ all such problems. On the other hand it does solve a lot of packaging, dependency and environment parity problems that traditional virtualization is too heavy to accomplish.

I'm old enough to also be frustrated with buzzword driven development, and it's pretty annoying that so many believe Docker invented containerization, but don't throw the baby out with the bathwater. Containerization is an awesome tool and orthogonal to config management.

<comment><USER6> Traditional virtualization is "too heavy", now, for solved problems like packaging? How and why?

<comment><USER7> For the reasons mentioned in the article:

\- slow (re)start times

\- greater resource consumption

Granted, "too heavy" is relative, but starting a few hundred VMs on a single host (assuming commodity hardware) is not going to work very well.

<comment><USER8> That works just fine. It's typical in a VM farm to have hosts with a hundred VMs.

<comment><USER7> >It's typical in a VM farm to have hosts with a hundred VMs.

Several things:

1\. We may have a different definition of "commodity hardware", but you're missing the broader point.

2\. The broader point is that VMs are significantly less resource-efficient.

3\. 1 & 2 notwithstanding, you're conveniently ignoring the issue of (re)start time

4\. It's fine to use VMs, but it's frankly _bizarre_ to fight tooth-and-nail over the ridiculous notion that they should always be preferred over containers.

<comment><USER8> I am simply addressing the fact that it's perfectly fine and common to have hosts with a hundred VMs and it works flawlessly.

VMs are memory intensive because they duplicate the operating system. The starting point is around 500 MB per VM. That's the only meaningful difference in resources compared to containers.

I am not discussing that they have different starting and stopping time.

<comment><USER7> >I am simply addressing the fact that it's perfectly fine and common to have hosts with a hundred VMs and it works flawlessly.

And that was never the point.

<comment><USER8> Yet that was your conclusion.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Ah, large directories and d_entries... the bane of any NAS operator. Having seen hundreds of OpenSolaris appliances being abused in similar ways, I can relate.

It doesn't seem like Kubernetes supports I/O resource limiting at this point [0][1].

In any case, after a problem like this is identified, a cluster admin can use pod affinity/anti-affinity to avoid both apps co-existing on the same node [2].

EDIT: For hypervisor-based container runtime, check Frakti ([https://github.com/kubernetes/frakti](https://github.com/kubernetes/frakti))

0 - [https://kubernetes.io/docs/concepts/configuration/manage- com...](https://kubernetes.io/docs/concepts/configuration/manage-compute- resources-container/#resource-types)

1 - [https://www.kernel.org/doc/Documentation/cgroup-v1/blkio- con...](https://www.kernel.org/doc/Documentation/cgroup-v1/blkio- controller.txt)

2 - [http://blog.kubernetes.io/2017/03/advanced-scheduling-in- kub...](http://blog.kubernetes.io/2017/03/advanced-scheduling-in- kubernetes.html)

<comment><USER10> Regarding why block io limiting isn't implemented yet in Kube - its really hard to make block io sharing work well without killing performance (it's easy for one workload to screw up another if it seeks at the wrong time, and ssds are fast enough that just having to check the io limits may severely limit your max throughout). If you read some of the proposals for io, the end goal is to make it easy to use multiple volumes per workload where possible, and have high level limits in place for other things like inodes, total writes, etc.

<comment><USER11> Isn't that what BFQ scheduler was designed for ?

<comment><USER10> Yes, although even the 4.12 code can have substantial overhead vs NOOP (phoronix benchmarks, as an example). It's not a complete slam dunk - <USER2> it on for io indifferent workloads might make sense, but not necessarily on all boxes.

[http://www.phoronix.com/scan.php?page=article&item=linux-412...](http://www.phoronix.com/scan.php?page=article&item=linux-412-io&num=2)

<comment><USER12> Phoronix tested BFQ in low latency mode on throughput. Results are obvious. There is a simple twiddle for that.

Of course they didn't test fairness or latency, that is too hard.

<comment><USER10> Yeah, I'd love to see comprehensive benchmarks of competing workloads on larger scale boxes. If workload isolation can be achieved with moderately low overhead (15%?), there would be a lot of interest in pushing a default setup with BFQ in Kubernetes once more stable kernel streams have it available.

</comment></comment></comment></comment></comment></comment><comment><USER13> Nice problem solving.

I'd classify the primary root cause as a kernel bug. It's good to make use of otherwise unused memory for caches, but not to the extent that the caches grow so large they slow things down.

Secondarily, there's probably something wrong in a system where you have to constantly poll and attempt to access large numbers of files that don't exist. (But probably 100% of systems that do anything useful have at least some weird cruft like this somewhere in them at any given time, so I'm not judging.)

<comment><USER14> The author notes that future kernels did decide to introduce limits that would've prevented the slowdowns from happening, but the customer was running an outdated kernel.

That's what made the article disappointing for me. Do all this impressive in- kernel debugging just to find out that you should've upgraded your systems first. Sigh...

<comment><USER15> But the fix was to limit the cache based on process memory constraints. jmull's point is that if a cache is permitted to blow out so big that lookups are impacting performance, then that cache is not really serving its purpose in the first place.

<comment><USER16> Other fixes would have been possible. If the hash table could be resized when necessary there would never have been a performance problem.

</comment></comment></comment></comment><comment><USER17> Really enjoyed this, thanks! One lesson I learned from this, and correct me if I'm misinterpreting the root cause, is that more memory is not always better. This is, to me a far more powerful lesson I gained from this article.

</comment><comment><USER18> What I want to know is why the 'trasher' was looking directly for so many different files. Could it not parse some output of finding/listing existing files to look for its targets?

</comment><comment><USER19> Containers != type 1 hypervisor with all-encompassing resource quotas, reservations and prioritization like VMware ESXi. The problem can be solved either using a hypervisor that deploys only one container per VM (with suitable paravirt/dedupe), or fix the OS to operate with much finer-grained resource contention and allocation knobs for each and every limited resource. The latter is superior when only a single OS is needed, because it reduces the need for virtualization as a crutch for inadequacies of the OS.

<comment><USER20> [https://www.vmware.com/products/vsphere/integrated- container...](https://www.vmware.com/products/vsphere/integrated- containers.html) and I've developed a small docker backend for Xen previously (which is vaguely similar to vic).

</comment></comment><comment><USER21> Lately I've learned to panic whenever a job candidate starts dropping Docker and Kubernetes in the interview.

<comment><USER22> Maybe if they think it's a one-stop solution to hosting problems, yeah. But penalizing candidates just for familiarity with new technology?

<comment><USER21> The issue is more on people dropping buzzwords rather than what they're actually doing it for.

<comment><USER22> In my opinion, that's entirely the wrong mentality. If someone gave me a pile of raw buzzwords, or told me they used entirely the wrong tool because of buzzwords, then I'd penalize them, sure.

But say they made something wonderful, and it was cleaner and more efficient because of their use of Docker/Kubernetes, and they had taken the time to figure out the tradeoffs inherent to that approach. Is that worth penalizing, from your point of view?

<comment><USER21> Of course not. My issue is with leading with the tool, rather than the problem it's solving.

</comment></comment></comment></comment></comment><comment><USER23> This was a great read, the conclusion of always monitoring, no matter what technologies one is using, should be obvious, but I've noticed that it really isn't, unfortunately.

Even I fall into the trap and sometimes I wish I knew about all this stuff but, alas, I prefer development.

</comment><comment><USER24> Close related to this other history: [https://blog.booking.com/troubleshooting-a-journey-into- the-...](https://blog.booking.com/troubleshooting-a-journey-into-the- unknown.html)

</comment><comment><USER25> What's the solution here? Can you limit d_entry table size per-process? Do you have to limit it globally? Is the answer to just not use containers?

<comment><USER26> OP here

The solution is very simple: as mentioned in the article, just use a newer kernel and always set memory limits for containers, the blog post is based on an older kernel (2.6.32) that quite a few people irresponsibly still use in containerized environments, mostly because EL6 is so popular among enterprises.

In newer kernels, allocations from object pools are now tied to the limits of the memory cgroups that requested them in userspace, if any, so you wouldn't incur in this specific issue and you would just effectively have a container not being able to use more than X MB of dcache entries (although there are probably other minor ones, for example related to sharing global kernel mutexes and such).

<comment><USER27> I couldn't understand two things from the article:

1\. If one of the two containers caused the issue, then the why you needed both of the containers to produce the issue? Why running just the offending one was not enough?

My guess is that "worker" container requested those non-existent files from a volume mounted by the other container, is it right?

2\. Kernel hash table implementation. The whole point of hash table is that it's size is O(N), where N is the number of elements it holds.

Capping the hash table size to some constant and putting all the excess elements to its linked lists makes it perform like a linked list divided by the constant, no surprise. So it sounds like there's a bug in dentry hash table implementation -- it should either increase its size accordingly to elements count, or stop accepting new/evict old entries.

<comment><USER26> > 1\. If one of the two containers caused the issue, then the why you needed > both of the containers to produce the issue? Why running just the offending > one was not enough?

Running just the offending one would have been clearly enough, since its effects would have caused the same increased latency for every other process in the system (including itself). However, using a second container to observe the performance degradation proves the point that one container is able to affect another one, which is sort of the gist of the article, since too many people think containers provide much more isolation than what in reality happens.

> My guess is that "worker" container requested those non-existent files from > a volume mounted by the other container, is it right?

No, the containers didn't share any volume, the dentry cache is effectively a singleton within the kernel, so even if the set of volumes is not overlapping, all processes in the system will see a performance degradation, regardless of where the files being accessed reside.

> 2\. Kernel hash table implementation. The whole point of hash table is that > it's size is O(N), where N is the number of elements it holds.

Your speculation is correct, however, there are sound reasons for doing such a thing in the kernel (and not allowing the main array of the hash table dynamically expand/shrink), so I wouldn't consider it a bug per se. I'll refer you to this excellent comment: [https://news.ycombinator.com/item?id=14660954](https://news.ycombinator.com/item?id=14660954)

<comment><USER27> Thank you. Very good article, thank you for writing it!

</comment></comment></comment></comment></comment><comment><USER28> I knew before I got into the meat of the article that it was going to be i/o contention. The first two sections talked about memory and cpu limits on the containers, but nothing about i/o rates. This was a Known Problem back in the 90s when a variety of filesystems (DEC's AdvFS being one) that were efforts to address the issues around dentries and inode. See also [http://www.starcomsoftware.com/proj/usenet/doc/c-news.pdf](http://www.starcomsoftware.com/proj/usenet/doc/c-news.pdf)

<comment><USER29> I think they're actually talking about blowing out the dentry cache, but sure IO contention is anoyher shared resource in containers. Depending on what you're doing you might run into issues in various networking limits (somaxconns comes to mind, as does what's left of the route cache), blowing out the page cache, or something eating up your memory bandwidth (maybe via some unlucky NUMA).

All for containers but they don't solve the hard problems folks often ascribe to them, really just shows in most cases you don't need to solve the hard problems. Most of the time what containers are buying you is an easy deployment method that leverages some nice features in the OS to make believe you're on separate machines.

<comment><USER30> >"Depending on what you're doing you might run into issues in various networking limits (somaxconns comes to mind, as does what's left of the route cache)"

I'm curious what issue(s) you might be referring to here with the route cache? Could you elaborate?

<comment><USER29> Sure - The route cache was largely removed in (IIRC) 3.8, but there's still entries that get stored[0]. There's a limit to how many entries Linux will store, and like any LRU-esk data structure rapidly cycling entries through it isn't going to do anything wonderful for your performance, never mind if you actually expected to use any of the cached data for a business performance 'feature'.

25g NIC is an awful lot of 60byte packets. I'm not saying this is going to be a common concern, just that like any other shared kernel resource cgroups and namespaces aren't going to help.

0: [https://www.systutorials.com/docs/linux/man/8-ip- tcp_metrics...](https://www.systutorials.com/docs/linux/man/8-ip-tcp_metrics/)

<comment><USER30> Sure, that makes sense and thank you for the link. I was curious about your comment:

>"25g NIC is an awful lot of 60byte packets."

Where are you getting that 60 number from? A minimum IPv4 header is 20 bytes and a minimum TCP header is 20 bytes. Also how would a tiny TCP packet relate to the route cache? Tiny TCP packet are certainly a problem with PPS that a NIC is capable I understand that. Cheers.

</comment></comment></comment></comment></comment><comment><USER31> Linux have all manner of oddities when it comes to IO it seems.</comment>


The VC Model, The Funded, and The Problem With Associates - <AUTHOR> http://www.manyniches.com/entrepreneurs/the-vc-model-the-funded-and-the-problem-with-associates/

<comment><USER2> "Go build something people want."

I love this post. Although I have no experience with VC's, what he is describing is a phenomenon I see all the time in my everyday life. I work in IT and there is no shortage of people who have some "great idea" but are unwilling to put in any effort to build it out. They would prefer getting somebody else to do the work for them. Unfortunately for them, the "techie guys" who can actually do the work know the raw deal they would be getting.

The big difference between these run-of-the-mill idea guys and VC is basically the size of their wallet. However, the entitlement (read "lazy") mentality remains the same.

I've even noticed this same phenomenon among some non-IT friends who think that if they could just come up with some brilliant idea, they could retire rich. They would just need somebody else to do the work for them once they found their idea.

<comment><AUTHOR> You bring up a very interesting point, and one of my top rules of things not to do if you want to avoid failing. Don't sit around on the couch talking about the startup you are going to do "someday." People come up with too many excuses _not_ to do something (economy, finances, wife, kids, etc). It's much easier to talk about the way things conspired against you, than to put your nuts on the table and risk failure.

<comment><USER3> I once tried putting my nuts on the table during a pitch to some VCs. It didn't work out so well.

<comment><AUTHOR> I once told a VC (after they intimated that they wanted to replace me as CEO) that it felt like they gave me a nutpunch. The VC didn't understand the phrase, and I actually had to explain it. Years later, it's how they greet me - "hey, nutpuncher!"

</comment></comment></comment></comment><comment><USER4> The 2% per-year annual management fee for vc funds makes me think of the 6% real estate commission. They both seem arbitrary, archaic, and ultimately doomed.

<comment><AUTHOR> The difference is (and I can already feel the flames coming on this one) any idiot can get their real estate license, so the supply of agents can eventually impact that number. Forming a fund is prohibitively expensive (legal fees), never mind actually convincing someone to give you their money. There's some protections that are afforded by that supply imbalance. The issue is further exacerbated by the fact that the hot deals go to the "best" firms, which allows them to prop up their performance...that's not necessarily true with house sales.

<comment><USER4> I'm not in any way meaning to imply that real estate agent and vc partner have similar competency requirements or barriers to entry. Rather, I'm implying that the fees of both are now highly out of sync with the current reality, where neither listing houses nor getting startup investment capital are as under the control of these middlemen as they used to be.

Furthermore, in both cases the fees bear no relation to the value-added provided by the real estate agent or the vc partner on the particular deals they make. This is the aspect that feels especially archaic to me.

<comment><USER5> What exactly do you mean by value added?

How do you think they should price their services?

At least with VC's (as opposed to index funds or others) the cost of investing rises with the amount investing. They can't double their position in their portfolio if their investors suddenly doubled. They would need to go out and invest in more companies.

<comment><USER4> The value added by the VCs is the amount of money the venture capital fund makes above and beyond what one would make from investing the same amount of money, over the same time period, in something low/no risk like, say, U.S. Treasury bonds. If a venture fund does poorly, the value added may be negative.

VC's should get a significant percentage of their value added. But 2% of the principle per year works out, over a ten-year period, to a good 20% of the principle, risk free. That sort of guaranteed return is sure to attract all the wrong sorts of people to be VCs.

<comment><USER5> The protection against that should be consumer choice.

<comment><USER4> In theory, yes. And in the great-great-grandparent of this comment, I'm essentially saying that I feel that the days are numbered for the 2% per year management fee.

But equilibrium often takes some time to re-establish itself. After a situation changes, customs take time to catch up with the new reality. At the moment, it looks like the common practice of VC fees is lagging behind where it will wind up.

Also, I think part of the problem is that the people making the decisions (the "consumers" of VC value-added, i.e. large endowments, pension funds, banks, etc.) generally also have no skin in the game. This means they have much less incentive to press for the absolute best deal they can get, common practice be damned, than they would were they investing their own money into these VC funds. This means that the change in common practice will take longer than it would were the consumers generally investing their own money.</comment></comment></comment></comment></comment></comment></comment>


DeepMind's AlphaZero on Carlsen-Caruana Games 1, 3, 5 and 8 (Sicilian Defence) - <AUTHOR> https://www.youtube.com/watch?v=VeqbDMzi_IY <comment><USER2> If you would like to use "AlphaZero lite" to analyze games you can opt for LCZero (Leela Chess Zero) [http://lczero.org/](http://lczero.org/) These guys have done a fantastic job on resources that's shoestring budget compared to AlphaZero.

Also our own clone BellaChess [https://code.aihello.com/aihello/BellaChess/](https://code.aihello.com/aihello/BellaChess/) it's not really "zero" as it started off with supervised learning of human chess games and then moved on to CPU+GPU engine

<comment><AUTHOR> Great! Thanks Ganesh.

</comment></comment><comment><USER3> AlphaZero has still not faced off against Stockfish on a level playing field, where the Stockfish operators can actually choose optimal settings. And the Leela effort, while very interesting, has not managed to reproduce a better- than-Stockfish chess player using the AlphaZero paper. There is a decent chance that the AlphaZero authors somehow p-hacked, perhaps inadvertently, to get their seemingly impressive results. Until the AlphaZero paper can be reproduced, or a fair competition occurs, I think Stockfish should still be considered the best chess-playing program.</comment>


Jupyter Notebooks to Web App - <AUTHOR> https://github.com/ChristianFJung/NotebookToWebApp/blob/master/article.md <comment><USER3> A mature implementation exists, called voilà, see [https://github.com/voila- dashboards/voila](https://github.com/voila-dashboards/voila), which is developed by members of the Quantstack.

</comment><comment> 0-_-0 Thanks for letting me know about _streamlit_ :

[https://www.streamlit.io/](https://www.streamlit.io/)

<comment><USER4> seconded. i have seen and heard the name but thought it was yet another python web framework -- like, you know, we be getting a lot of them lately.

i will definitely check it out because i always wondered that jupyter is fun and game, but how do you productionize your work after?

</comment></comment><comment><USER5> Here is a link to their forum: [https://discuss.streamlit.io/](https://discuss.streamlit.io/)

</comment><comment> vincent-toups Jupyter notebooks are a bitter reminder that worse is better.

I'm a data scientist and I hate them.

<comment><USER6> Can you elaborate why, I've heard mostly love for them.

<comment> vincent-toups My main gripe with them is that the dependencies between the cells are implicit and the results of each cell are resident in memory instead of a more durable form (like artifacts on disk).

The best way to understand why I hate notebooks is to contrast them with my workflow: when I do data science, each step in the process is represented by a Makefile target which lists its products and its dependencies explicitly. All products are represented as concrete objects on disk (json, csv, figures, or serialized representations in some form).

If I need to do reporting, its typical for various targets to generate fragments of latex and for the report (a pdf) to explicitly document which fragments of latex and which figures belong in the report.

Them a simple `make report.pdf` is enough to generate the final result. If I change something I can explicitly see which pieces need to be rebuilt and how.

I also believe that the structure of a notebook, which mixes code and reporting, encourages bad software design practices like copy-pasting - <USER2> doesn't naturally encourage refactoring of shared code into libraries or anything like that. Most jupyter notebooks are just a pile of shit, basically. The big problem is that all the cells in a notebook share one, big, mutable, global state. This is wrong.

They also don't work well with git, which I view to be the absolute crux of any successful technical project.

<comment><USER7> This is the big difference between 'data scientist' and 'software engineer'. Your workflow is almost certainly repeatable and verifiable, which is just better science.

The crux is is that Jupyter was not made for people with your skills, or more accurately, pattern. What you do is not inherently hard or complicated. Certainly not more than actual data science. It's a cultural thing mostly.

<comment> vincent-toups I'm prepared to argue that a data scientist who doesn't apply this level of rigor to their work is almost certainly doing a bad job, though they may deliver results that are good from moment to moment.

The key differences is how traceable and repeatable the process is.

</comment></comment></comment></comment></comment><comment><USER8> My personal opinion is just that I don't like jupyter notebooks... If your thinking of deploying the code as an app you really shouldn't be using notebooks in the first place. In fact for anything even modestly complex you shouldn't be using notebooks... Your never going to get the habit of writing good code... But different things work for different people I guess

</comment><comment><USER9> There was another cool streamlit introduction posted on hn some time ago: [https://towardsdatascience.com/coding-ml-tools-like-you- code...](https://towardsdatascience.com/coding-ml-tools-like-you-code-ml- models-ddba3357eace)

<comment><AUTHOR> Streamlit doesn't natively work with Jupyter however.

</comment></comment><comment><USER10> Streamlit's docs talk about magic, and their contributions guide mentions protobufs for Python and JS. Nowhere can I find info on how this actually works under the hood. Is it possible to extend without writing JavaScript?

<comment><USER11> Hey, Streamlit co-founder here! (I'm otherwise not related to this article, btw. Just saw it on HN. Super cool!)

If I understand correctly you're trying to extend Streamlit in some way? If so, we have some features coming out in a few months you will probably like. More news on what exactly in a few weeks. Stay tuned :)

If you have any other questions, check out our forums at [https://discuss.streamlit.io](https://discuss.streamlit.io)

Cheers

<comment><USER10> That for the info! More than I was hoping to see a page with a 30sec architecture overview of how your magic works so I'd know what's even possible.

</comment></comment></comment><comment><USER12> Great work! Would you know if this can be used to deploy interactive ML models?</comment>


Ask HN: Alternative Data to Google Search (Brainstorm) - <AUTHOR> I was inspired by https://news.ycombinator.com/item?id=20440079 thread regarding building a new search index.  Technically it is feasible with CommonCrawl + cloud map reduce jobs.  Clearly, you would be killed if you build google search, but I started thinking what kind of alternative data that you could build which could be valuable.
Here's some of my ideas:
- Ecommerce products ranking based on backlinks.
- Competitor analysis - most linked pages, total backlinks
- Most common scripts installed - you can see trending in integrations such as react, fb, intercom, etc. ( already been done, i know )
Comments? Any more ideas? <comment><USER2> In 2015 'it will be killed off by google' sounded feasible in my mind. Today I use Duckduckgo for 90% of time and Google only for some very specific (mostly local) searches, Google seems to only hold 'early starter and low moral privacy policy' advantage. They also seem to target typical 'new Internet user' now more than ever, I don't remember last time I found something useful or 'smart' with Google.

That being said, let Google have general traffic search because it fails on everything else. I agree with your approach to find a generic niche, first question is - who's end user? Will it be 'I want to buy this item' (e-commerce)? Will it be 'I want to find out industry specific information? (competitor). Will it be 'I want to know how to use X' (your last one).

Each has its own problems. And, most likely, each already has a solution - it's just probably a) too commercialized (e-commerce - comparison sites) b) biased (competitors - analytics engines used by whole industry) c) too broad

There is abundance of data and it interconnects heavily, there is more and more alternative data (social apps, images, maps etc) too. I think it would be nice to think outside of algorithmic approach (how do I find X in most optimal way) and start thinking about contextual approach (how do I find if X is right).

Uff, to the point - I think starting small, with something annoyingly hard or time consuming to find, would be best. For example, I always spend DAYS reading about basic house appliances before buying it and most of info I find is heavily commercialized therefore useless (affiliate programs). I don't say 'Do that!', but there is definitely a need for niche-specific-search- algo/aggregator.</comment>


This might seem silly: git pull - <AUTHOR> http://blog.sendapatch.se/2010/february/this-might-seem-silly-git-pull.html <comment><USER2> Fun article.

However, this is a harder problem than just bilingual Swedish English. There are many other non-english-language speakers using these. What to choose?</comment>


Obnoxicon – wide favicon bug in Firefox - <AUTHOR> https://obnoxicon.site/ <comment><AUTHOR> While making a favicon recently, I noticed it was scaling strangely in the Firefox Awesomebar. Turns out it wasn't a square icon - it was less tall vertically than it was wide - but Firefox scaled it up in both dimensions until it was 32 pixels high for display in the Awesomebar. I played around with this a little and put together this site to showcase the fun bug. I don't expect this will be around forever, but it's a few seconds of entertainment at least.</comment>


TechShop lets you use their shop equipment to fabricate anything. - <AUTHOR> http://techshop.ws/

<comment><USER2> That sounds fantastic. Wish there was a NYC location.

</comment><comment><USER3> I've been a member of Techshop since April. Please don't spread the word, it is getting difficult to schedule time on the laser cutter. ;)

</comment><comment><USER4> I'd heard about TechShop but never been to one (none in my area).The class catalog is absolutely amazing though. Seriously, just 40 bucks gets you in a class with a CNC plasma cutter. Incredible.

</comment><comment><USER5> Thanks for posting this!

</comment><comment><USER6> And they're coming to the Triangle in NC... awesome!

</comment><comment><USER7> I wish there was one near Boston.

<comment><USER5> The South End Technology Center (SETC) has an open-access lab in Boston. Thanks to their partnership with the MIT MediaLab, they have many of the same tools as TechShop.</comment></comment>


JQuery Rewritten, Ground-Up, for Mobile HTML5 on iOS and Android devices - <AUTHOR> http://www.jqmobi.com/

<comment><USER2> I would like to warn the community and fellow developers about this project. This project is full of misinformation, claiming "jQuery rewrite", "jQuery language compatibility" and so on. Besides all the buzz words, the disingenuous act of calling it "jQ.Mobi" is some kind of marketing scheme with a misleading name.

Claiming a 'rewrite' is quite a stretch considering jQ.mobi contains 15% of the methods that jQuery has. See <http://jsfiddle.net/danheberden/Gs7H8/>

Hope you all can take a few seconds and take a look at this issue on GitHub: <https://github.com/appMobi/jQ.Mobi/issues/8>

Upvote with caution. Thanks.

<comment><USER3> And i'm sure no one uses methods like on, off, live, delegate, data, splice, slice, eq, add, addSelf, prevAll, nextAll, next, prev, siblings, children, wrap, clone, detach, appendTo, serialize, animate, width, height, ready, type, $.when, $.data, $.Deferred and more.

</comment></comment><comment><USER4> Not Jqmobi's fault, but some transitions (Slide up, Slide down, Flip) don't render well on Android.</comment>