Transform Data by Example [video] - <AUTHOR> https://www.microsoft.com/en-us/research/project/transform-data-by-example/ <comment><USER3> You know what this reminds me of? Those trained neural-net things which, however many training examples you give it, always seem to find some way to "cheat" and not do what you want while still obeying all your training data correctly.

Something like this: Suppose we have a table of strings of digits, some including spaces, and we'd like to remove the spaces. From

      123 456
      234567
      345 678

to

      123456
      234567
      345678

Now, what happens if it encounters, say

      4567890

Would the result be unchanged (as we would probably want), or would it "cheat" and remove the middle "7" character, giving "456890"?

<comment><USER4> This is why I want any ML device to be able to explain itself. It could train on your before-and-after examples and come up with a list of what it thinks you want it to do.

For your example, it could list:

        "Remove interior spaces from each item"

or it could say:

        "Remove the middle character from any 7-character strings to make them 6 characters in length"

You would be able to do something with that.

<comment><USER5> Neural nets are infamous for not doing this.

Learning algorithms that produce decision trees are usually used in this situation.

<comment><USER6> This might be a dumb question, but let's say that for whatever reason on a specific problem it's much easier to train a neural network that generalizes well than a decision tree. Why not train the network, then build an equivalent decision tree that just tries to reproduce the network's output? When building the tree from the network, overfitting would not be a concern. In fact, you'd _want_ it to overfit.

You could even say that it only needs to approximately reproduce the output with some tunable error threshold, which might give you leeway for finding more comprehensible and simpler trees.

<comment><USER7> > This might be a dumb question, but let's say that for whatever reason on a > specific problem it's much easier to train a neural network that generalizes > well than a decision tree. Why not train the network, then build an > equivalent decision tree that just tries to reproduce the network's output? > When building the tree from the network, overfitting would not be a concern. > In fact, you'd want it to overfit.

You haven't fixed anything here. You've just encoded your training data in a neural net and then presented the same problem to the decision tree learner. Unless you're planning to transform your training data somehow?

<comment><USER8> This solves the problem of interpretability. You can't interpret the weights of a neural network, but you can easily follow along a decision tree and see if it's doing what you want.

Actually that's somewhat less true for big decision trees. But the general point is that you can train interpretable models to mimic the output of uninterpretable black boxes.

The biggest issue is that decision trees only work for data with fixed inputs and outputs. Recurrent NNs work on a time series and possibly even have attention mechanisms.

<comment><USER9> No, it doesn't make sense. The training data (inputs and NN-predicted outputs) that you're feeding into the DT is at best the same as the training data (inputs and desired outputs) you had originally.

<comment><USER8> You can generate infinite training data with the NN by feeding in random inputs and seeing what outputs it gives. You can then train whatever model you want on it without concern for overfitting.

But more importantly, the decision tree will model the behavior of the NN, not necessarily the original data. Which is what you want, if your goal is to understand what function the NN has learned.

<comment><USER9> The point about infinite training data is potentially useful. The other one I still don't agree with. Your goal is only to understand the NN insofar as it models the original data. Any errors the NN is making are not worth learning about. So it would be better to train the understandable method (DT) on the original data.

<comment><USER8> >Any errors the NN is making are not worth learning about.

But that's the whole point of this method! To understand what errors the NN might be making. It's also quite possible the NN's errors aren't really errors, if there are mistakes or noise in the labels.

This technique has been called "dark knowledge" and is really interesting. See [http://www.kdnuggets.com/2015/05/dark-knowledge-neural- netwo...](http://www.kdnuggets.com/2015/05/dark-knowledge-neural-network.html) They train much simpler models to get the same accuracy as much bigger models, just by copying the predictions of the bigger model _on the same data_. In fact you can get crazy results like this:

>When they omitted all examples of the digit 3 during the transfer training, the distilled net gets 98.6% of the test 3s correct even though 3 is a mythical digit it has never seen.

<comment><USER9> Ah, very interesting! I agree that would be useful. But I think this thread has ended up with a proposal very different from the one I started replying to.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> This is a great product idea. If you ask any Excel power users, by far the most time-consuming and hard-to-automate task is text and date manipulation.

The beauty of this product is that its adoption strategy is baked into the product itself: I'd share this with all Excel user friends of mine because I want the algorithm to get smarter, and I might even learn a bit of C# myself so that I can contribute and scratch my own itch. This in turn makes the product better (because of the larger training data), lending itself to more word of mouth.

One concern I have is security: I'd love to hear from folks who built this/more familiar with this about how to ensure the security of suggested transformations.

<comment><USER11> I, too, wonder about security. Just as important: performance/scaleability. What happens when this runs on 100K rows against a service some guy stood up as a weekend project? Now what happens with 100 people hitting that service?

Either way, this looks very useful. Having spent more than my fair share of time massaging data prior to import, this looks pretty great.

<comment><USER12> > What happens when this runs on 100K rows against a service some guy stood up > as a weekend project? Now what happens with 100 people hitting that service?

Then they complain to Microsoft, who helpfully suggests the product they should upgrade to. This has always been a strong spot of Microsoft's. "I see you've scaled beyond the capacity of [Product A]. Well, fortunately for you we have [Product B] which can handle it, with a nice import wizard to get you started painlessly." It typically goes Excel > Access > On-prem SQL Server > Azure.

This sounds very negative and I swear I don't mean it that way. It's a great sales tactic if you offer products at every level of scale.

<comment><USER5> SQL Server lite < SQL Server

</comment></comment></comment></comment><comment><USER13> I wonder if it uses Z3 under the hood for solving constraints. Very nice of MSFT to MIT license Z3. It's super useful for problems that result in circular dependencies when modeled in Excel, and require iterative solvers (e.g., goal seek). I use the python bindings, but unfortunately it's not as simple as `pip install` and requires a lengthy build/compilation. Well worth the effort, though.

[https://github.com/Z3Prover/z3](https://github.com/Z3Prover/z3)

[https://github.com/Z3Prover/z3/issues/288](https://github.com/Z3Prover/z3/issues/288)

<comment><USER14> Love Z3. It is easy to use and very decent performance! I don't think MS is using Z3 on this product though, looks more like the smart enumeration based program synthesis

<comment> c-cube I think most of the enumeration-based synthesis tools rely on a SMT solver (Z3 or CVC4, say) to learn from bad solutions.

</comment></comment></comment><comment><USER15> Check out MagicHaskeller which figures out list processing functions from examples: [http://nautilus.cs.miyazaki-u.ac.jp/~skata/MagicHaskeller.ht...](http://nautilus.cs.miyazaki-u.ac.jp/~skata/MagicHaskeller.html)

For example, given the rule `f "abcde" 2 == "aabbccddee"`, it even figures out the role of the parameter `2`, so `f "zq" 3` gives `"zzzqqq"`.

</comment><comment><USER16> Wait, Excel had this built in since 2013!

[https://support.office.com/en-us/article/Use-AutoFill-and- Fl...](https://support.office.com/en-us/article/Use-AutoFill-and-Flash- Fill-2e79a709-c814-4b27-8bc2-c4dc84d49464)

<comment><USER17> I recall a joke from someone... Can't remember who, that went like, "does your startup compete with Excel? Did you just rediscover pivot tables?"

</comment></comment><comment><USER18> Is this related/a commercial application of the 'Deep Learning for Program Synthesis' post[0][1] from Microsoft Research on HN a month ago?

[0][https://www.microsoft.com/en-us/research/blog/deep- learning-...](https://www.microsoft.com/en-us/research/blog/deep-learning- program-synthesis/)

[1]HN Discussion: [https://news.ycombinator.com/item?id=14168027](https://news.ycombinator.com/item?id=14168027)

</comment><comment><USER19> Oh man, we did it before Microsoft!

[http://comnsense.io/](http://comnsense.io/)

[https://youtu.be/ALF9GY2K-wc](https://youtu.be/ALF9GY2K-wc)

</comment><comment><USER20> I'm playing around with a client-side js implementation of this at [https://www.robosheets.com/](https://www.robosheets.com/)

It's not production ready / launched yet, but it's getting there.

I'd be interested to finds (or really doesn't find) this useful :)

<comment><USER21> I wasn't able to figure out how to use the app, but I did want to drop in to say that I like how you've placed the "Upgrade to enable" notices in cells past a limited range.

</comment></comment><comment><USER22> This was also included in the query editor of Microsoft's Power BI in the release a month or two ago. First you select the columns to be used as a source then start writing example values to the new column to be generated. It also shows the generated M/PowerQuery expression.

It can't do miracles, but this is time saving in many cases like when you want to concatenate values from different columns in a new format into a single column and so on.

</comment><comment><USER23> See also [http://www.transformy.io/#/app](http://www.transformy.io/#/app)

Ok, just realized somehow the site has vanished. Not working archived version: [http://web.archive.org/web/20161028231256/https://www.transf...](http://web.archive.org/web/20161028231256/https://www.transformy.io/#/)

<comment><USER24> [https://apps.synesty.com/transformy/en- us](https://apps.synesty.com/transformy/en-us) this might be it

</comment></comment><comment><USER25> Humans are really good at taking a vague description of a task and using a small number of examples to disambiguate it.

For example, "sort all of the folders, so that it Alan goes before Amy, etc". The rule ("sort") is pretty ambiguous, but one simple example in the context gives enough information to realise you probably mean alphabetically by first name.

Is there something like this example that could be combined with NLP to make things like these "intelligent assistants" we have now much more useful for data processing tasks?

It would be great to describe data manipulation to a machine the way that I would describe it to a colleague: give an overview of an algorithm, watch how they interpret it, and correct with a couple of examples in a feedback loop. Currently describing such things for a machine requires writing the algorithm manually in a programming language.

<comment><USER26> Isn't just because we've already been trained on that since learning the alphabet? Imagine giving a human the same question, but sort "aa" before "bb" but after "cc".

<comment><USER27> Maybe it's "just" because of previous training, but it's still a very useful ability, which programs do not have.

Being able to solve quickly the most common cases (which rely in such "common knowledge") would automate a lot of work that now requires writing a complex program in advance, and would allow the user to concentrate on the outliers that require more thought.

</comment></comment></comment><comment><USER28> It would be nice if it indicated where it was making stuff up (in the zip code example, for the rows that were missing some data, it just makes it up - <USER2> rows are not distinguished visually from the rows where it did not add data not in the input.)

What I mean is if every row had a date like "12 May 2002" and you wanted it turned into 2002.05.12 then it would be nice if it indicated when it added data. For example if one of the rows just read "15 May" then, since there is no year, it would not be completely absurd if it transformed into 2017.05.15 - or if all of the other data is 2002, then adding that. But I really think _silently_ adding data that was not in the input is going too far. A transform shouldn't ever silently inject plausible data with no indication that this is interpolated. Bad things can result.

Otherwise great demo!

</comment><comment><USER29> I believe this is the implementation described in this paper published at POPL 2016:

[https://www.microsoft.com/en- us/research/publication/transfo...](https://www.microsoft.com/en- us/research/publication/transforming-spreadsheet-data-types-using-examples/)

Though it probably also uses more recent work from the same group:

[https://www.microsoft.com/en- us/research/people/sumitg/](https://www.microsoft.com/en- us/research/people/sumitg/)

</comment><comment><USER30> Excel is a really powerful tool. If you are fine with needing Windows or Mac (e.g. not Linux) and you are ok with their licensing constraints it's pretty hard to beat.

<comment><USER31> the addon supports "excel online"

</comment></comment><comment><USER32> Relationship to FlashFill feature in Excel: FlashFill is a popular feature in Excel that also uses the example-driven paradigm to automatically produce transformations. While FlashFill supports string-based transformations, Transform Data by Example can leverage sophisticated domain-specific functions to perform semantic transformations beyond string manipulations. For examples, see: [https://www.microsoft.com/en-us/research/wp- content/uploads/...](https://www.microsoft.com/en-us/research/wp- content/uploads/2017/02/Sample_Reduced-1.xlsx)

</comment><comment><USER33> I hacked together something similar that learns row/column offsets for different fields in a text file, and converts it into a normal CSV, i.e. a normal table.

[https://github.com/trustly/fixed2csv](https://github.com/trustly/fixed2csv)

</comment><comment><USER34> There is a paper describing such a method (not sure if that is what was implemented):

"Zhongjun Jin, Michael R. Anderson, Michael J. Cafarella, H. V. Jagadish: Foofah: Transforming Data By Example. SIGMOD Conference 2017: 683-698"

<comment><USER32> No, the paper co-incidentally shares a similar name, but the capabilities are different, and there is no relation in terms of people or underlying technology. [https://www.microsoft.com/en- us/research/project/transform-d...](https://www.microsoft.com/en- us/research/project/transform-data-by-example/)

</comment></comment><comment><USER35> Seems similar to [http://openrefine.org/](http://openrefine.org/)

</comment><comment><USER36> That's great, I always loved Auto Fill in Excel, and this brings it to the Mac.

<comment><USER36> * Correction. I meant Flash Fill. And this is isn't an exact replacement, but it's pretty close.

</comment></comment><comment><USER37> I would love something similar for Google Spreadsheet.

</comment><comment><USER38> I want this in Vim :)

This would be great for refactoring code.

</comment><comment><USER39> alas it is too late, it transformed our genes to dates, no sequence for Bill

</comment><comment><USER40> not usable for companies and secured networks. :-( too bad

</comment><comment><USER41> There's a huge opportunity in making excel better..</comment>


Show HN: 3D Spatial Partitioning Demo Used to Optimize Games (WebGL, Three.js) - <AUTHOR> http://nickyvanurk.com/spatial-partitioning/ <comment><USER2> Nice, very informative!</comment>


UK government proposes fine or block if website fails to tackle "online harms" - <AUTHOR> https://www.bbc.co.uk/news/technology-47826946 <comment><USER2> Jeremy Wright, "Secretary of State for Digital, Culture, Media and Sport in the UK" penned an op-ed in CNN about this. [0] The closing line is particularly infuriating to me: "That is an objective on which the British Government, Sir Tim Berners-Lee and Mark Zuckerberg would all agree."

No, I don't think TBL would agree on this. The cited organization started by him explicitly calls for the opposite [1]:

\- Ensure everyone can connect to the internet so that anyone, no matter who they are or where they live, can participate actively online.

\- Keep all of the internet available, all of the time so that no one is denied their right to full internet access.

\- Respect people's fundamental right to privacy so everyone can use the internet freely, safely and without fear.

[0] [https://us.cnn.com/2019/04/07/opinions/uk-government- online-...](https://us.cnn.com/2019/04/07/opinions/uk-government-online- regulation-wright/index.html)

[1] [https://fortheweb.webfoundation.org/principles/](https://fortheweb.webfoundation.org/principles/)

<comment><USER3> >without fear.

Do they mean fear on the consumer end or the content creator end? There is a natural tension there which must be resolved. A fearless internet for content creators means lots of ungood content out there (sometimes doubleplus ungood!). A fearless internet for passive consumers means they won't run across this ungood content, unless they go through great efforts to seek it out.

<comment><USER4> > A fearless internet for passive consumers means they won't run across this > ungood content

That's one way to generally interpret "fear" but not in its context of a right to privacy. "Without fear" in this context must mean fear of what happens when you don't have privacy, that is chiefly: embarrassment and persecution.

<comment><USER3> Thanks for the clarification, that makes a huge difference in meaning. Appreciated.

</comment></comment></comment></comment><comment><USER5> I find it baffling how western nations can't understand how they're now providing ideological justification to the same stances Russia and China are taking towards the internet.

<comment><USER6> Not really. It's not the same ideology. It's the same tool.

<comment><USER7> Leads to the same place.

</comment></comment></comment><comment><USER8> This looks like negative news for the Facebooks & Youtubes, but I think it's the opposite. Whenever the law, Facebook & Youtube will adapt - they have the resources to do so. Smaller players, and potential future competitors, will not be able to adapt.

This just draws a moat around existing behemoths that will protect them against future disruption.

<comment><USER9> Yes, it's called regulatory capture and it's the reason big players push for regulation and government involvement.

<comment><USER10> This is indeed favors FB and YT. They will censor and blame it on the government, and they won't take any responsibility.

</comment></comment></comment><comment><USER11> > But it also covers harmful behaviour that has a less clear legal definition > such as cyber-bullying, trolling and the spread of fake news and > disinformation.

So, basically any site with user content can be fined/blocked at any time at the official's discretion.

<comment><USER12> This child-porn and terrorism is the propaganda catch-phrase to make people agree with it. Like the UK porn-filter.

While it never will happen, this rule would mean that the BBC should be banned too. It published fake news that started the Iraq war, and one of the famous hosts was a child molester.

Instead they will ban sites that disclose the military propaganda that is published by the government media. Will they now try to block wikileaks and other similar journalism?

My greatest fear is that these waves of censorship are there to remove resistance against a 3rd world war. The US, Israel and UK are currently very aggressive.

Just as an example: Propaganda on Iraq and Venezuela [https://www.youtube.com/watch?v=n7eW4ASIo3I](https://www.youtube.com/watch?v=n7eW4ASIo3I)

<comment><USER13> Iraq is an interesting example because we only found out it was false after the fact. In the run up to the war, perhaps questioning the sources and information provided by the government would have been labeled fake news.

<comment><USER14> > Iraq is an interesting example because we only found out it was false after > the fact.

What? 100,000+ people marched in the street against it[0]. We knew the UK Government stole a student's essay for their "Dodgy Dossier" and tried to re- package it as intelligence before too[1].

We knew full well it was false before invasion. It didn't stop them.

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

[1] [https://en.wikipedia.org/wiki/Iraq_Dossier](https://en.wikipedia.org/wiki/Iraq_Dossier)

<comment><USER15> >100,000+ people marched in the street against it[0]

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

These just seem to be anti-war protests. I'm not seeing anything that suggests they knew it was false, or that that was the reason for the protests

<comment><USER14> I was part of the protests. It was widely reported in the media that WMDs weren't found, that Iraq was cooperating with the UN, and that the government's evidence was debunked.

The "anti-war" thing was just a big-tent message that most of those against the war could agree to (with each group having their own reason for being against it).

</comment></comment></comment></comment></comment></comment><comment><USER16> Fuck this country.

They will implement it without any trouble. No one cares because they don't realise what they already have.

Most media outlets will report on it as a "good thing" of course which doesn't help either

</comment><comment><USER17> I hate to say it, but large online social platforms are really giving governments way too much ammunition to start regulating and censoring the now largely centralized Internet.

Very, very scary but interesting times ahead.

<comment><USER18> Because of the internet, a lot of people are becoming aware of stories like how the CIA watched over the "get Gary Webb team" of industry experts who said "we're going to take away his Pulitzer," before Webb died by "suicide" by two gunshot wounds to the head.(1) Just one of thousands of outrageous stories questioning where global power lies and what those who have it are doing with it.

Iraq lies were territory of "fake news" and conspiracy theories, same as a lot of what Tulsi Gabbard is saying about the US military industrial complex.

Every group of individuals will always have psychopaths whom try to cheat to exert control over others. Obviously many powerful people in the world dont want a democracy of individuals sharing ideas freely.

[https://theintercept.com/2014/09/25/managing-nightmare- cia-m...](https://theintercept.com/2014/09/25/managing-nightmare-cia-media- destruction-gary-webb/)

</comment></comment><comment><USER19> OK lets say this article harmed me in some way. If I don't need to prove it then this law lets me shut down the BBC? How do you deal with thousands of "online harms"? If I do need to prove it, given the law is so vague on what that is, I can never succeed since big sites have fancy lawyers, and small sites will just go out of business, and the law is a waste of time.

<comment><USER20> I think you are over stretching. The lae has dealt for hundreds of years with idea that one person might harm another. Such laws tend to be a little vague, then build up case law, at least in the UK.

<comment><USER21> A lot of commenters tend to think of the law as an API, and frame all discussions about it as such.

"So what, I just have to POST [https://law.uk/onlineharm](https://law.uk/onlineharm), and I get to take down the BBC? That's ridiculous!"

Any given strawman is ridiculous.

</comment></comment></comment><comment><USER22> Here's the white-paper (pdf):

[https://assets.publishing.service.gov.uk/government/uploads/...](https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/793360/Online_Harms_White_Paper.pdf)

Also, the published code of practice:

[https://assets.publishing.service.gov.uk/government/uploads/...](https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/793324/Code_of_Practice_for_providers_of_online_social_media_platforms.d.pdf)

Statement and parliamentary discussion:

[https://parliamentlive.tv/event/index/4576d30e-52ad-42d9-b5c...](https://parliamentlive.tv/event/index/4576d30e-52ad-42d9-b5c4-22e1723c47de?in=17:21:02)

</comment><comment><USER23> America is founded on the idea that personal determination and defending individual liberties are paramount to a moral society. But now it seems we're taking our new digital plane of existence and giving up a lot of that self determination for convienience and protection from exposure to things we don't like.

I'm not sure how this will shake out in America versus Europe, but this seems as paradigm shifting as the civil war or the new deal. The next decade will be critical for Internet freedom.

<comment><USER24> _America is founded on the idea that personal determination and defending individual liberators are paramount to a moral society_

I wonder what US citizen Anwar Al Awlaki would have said to that argument. The truth is that political free speech has limits, even for the United States.

[https://www.nytimes.com/2015/08/30/magazine/the-lessons- of-a...](https://www.nytimes.com/2015/08/30/magazine/the-lessons-of-anwar-al- awlaki.html)

<comment><USER25> This seems a strange response, since the extra-judicial killing of an American by the Obama administration was widely regarded as a serious breakdown in American norms — precisely by the same crowd who says things like GP.

Your link then would be support for their point, not a refutation.

Generally speaking, point out something in the past few years that's an example of what the person is talking about isn't a way to refute that things are changed — that you can only point to recent ones is evidence that things _have_ changed.

Of course, Obama has no respect for American traditions, broadly: he's the first president in history not to leave the capital and to continue to be politically active during his successor's term.

His actions certainly aren't what I'd put forward to someone claiming that American values used to be something, but have recently changed — Obama in general is an example of that collapse in principles.

<comment><USER24> I never bought into Obama's hype machine, but the drone strike was carried out by the United States armed forces, who are required to not follow illegal orders; via a chain of command. There is a different party in power now: have there been any prosecutions?Presumably there was a lot of legal advice that sanctioned the hit on a US citizen exercising his ostensible free speech rights,[1] otherwise it would not have happened.

[1] My personal opinion is that praising terror and "inspiring" others is not free speech, but I don't pretend otherwise

<comment><USER25> There was a lot of pseudo-legal justification and lack of prosecutions for the Bush torture program as well, which was another violation of American norms.

You have a very idyllic view that people can't break the rules and get away with it: Obama murdered an American in violation of the law, but there is a tradition of not holding presidents accountable for their crimes.

Personally, that lack of accountability seems to have led to a ratcheting level of presidential misbehavior and a collapse in societal norms — precisely what this thread is about.

</comment></comment></comment></comment></comment><comment><USER26> Theresa May did an Op Ed[0] in the metro[1][2].

[0] [https://www.metro.news/exclusive-by-theresa-may-we-are- leadi...](https://www.metro.news/exclusive-by-theresa-may-we-are-leading-the- way-on-making-the-internet-safer/1510510/)

[1] pdf about audience - [https://d212k0qo5yzg53.cloudfront.net/wp- content/uploads/201...](https://d212k0qo5yzg53.cloudfront.net/wp- content/uploads/20190107104636/audience-metro-2019-01.pdf)

[2] [https://en.wikipedia.org/wiki/Metro_(British_newspaper)](https://en.wikipedia.org/wiki/Metro_\(British_newspaper\))

</comment><comment><USER27> The issue here will be securing a conviction or affecting actual change. I suspect the cost to conviction/prosecution (for the Uk taxpayer) will be so high, and the fines/action so small for the respective platforms, it will hardly be worth the effort. Most likely companies will be fined retrospectively for a bit of government PR.

</comment><comment><USER28> Assuming all the best intentions in the world, this will most certainly be abused. Where do they think all of the people they want to silence will go? They will no doubt go to the darker web and concentrate there.

<comment><USER4> I find this argument similar to: regulating the construction of buildings will just lead to seasteading.

The issue isn't really about silencing people, but removing their access to a mainstream audience.

<comment><USER29> > The issue isn't really about silencing people, but removing their access to > a mainstream audience.

Those sound approximately like the same thing to me. What about the difference do you see as relevant?

<comment><USER4> In the scenario of forcing speakers underground, those speakers have not been silenced (they may still speak to a large audience) but they will not speak to an audience which has not elected to listen to them.

Conversely, if you're popular on Youtube, you will be suggested to people who are not looking for your speech.

The difference is subtle, and that was my original point. Such acts of government will indeed not silence speakers, but it may as well do, because it stifles their ability to reach a greater audience.

</comment></comment></comment></comment><comment><USER30> Would that include the Daily mails website :-)

<comment><USER31> The UK should delegate which media gets banned to the Queen so therefore it never happens.

<comment><USER32> > The UK should delegate which media gets banned to the Queen so therefore it > never happens.

The UK already does that with some decisions (which is technically the Queen- in-Parliament delegating to the Queen with the advice of the Privy Council), but that doesn't stop action (Orders in Council) on those matters from occurring. Of course, in practice this is almost exactly delegation from the Parliament to the government.

</comment></comment></comment><comment><USER33> Or Vices as the Victorians would call them.

</comment><comment><USER34> a bit late but could be extremely helpful

</comment><comment><USER35> It's funny how this is such a popular topic on sites like HN who heavily censor users themselves based on their political opinion.

HN put shadow bans on hundreds of users for non-conforming posts. It seems like anyone who had a wrong stance on the whole "NPC meme" is affected, even if they only found it mildly amusing.

Source: I found it amusing, openly said so and I'm shadow banned on this IP.

<comment><USER29> My impression is that HN moderators mostly focus on civility. IME stance- related silencing occurs only via downvotes by regular users.

<comment><USER25> There's a strong, intentional skew in their enforcement:

dang has previously said that they're more critical of people who perturb the groupthink, and take action against them for things people supporting popular opinions would be excused for.

That's what it means when they say they censor to keep "civility": if the groupthink finds you disruptive, you will be silenced by arbitrary application of rules others (who subscribe to groupthink) are excused for — and in this way, an insistence on civility always favors groupthink.

The pretense of censoring for civility here is merely dishonest gaslighting about their ideological policing, in favor of groupthink.

It's precisely the same kind of dishonesty you see in YouTube, Twitter, and Facebook's censoring of conservative voices: hyperpartisans screech, and complicit moderates use that as a pretense to enact their biases.

<comment><USER36> I've not said that. If you're going to make such a claim, you should provide a link so readers can make up their own minds.

The other claims you make aren't really falsifiable, though I can tell you we go out of our way not to moderate HN based on ideology, and I can also tell you that for whatever ideological position you'd care to name, people loudly complain that we're biased against it.

<comment><USER25> You have, to me, in reply to contentious things I've said.

Repeatedly.

<comment><USER36> All my replies to your comments can be found in this subthread, and plainly do not match your description.

[https://news.ycombinator.com/item?id=19345439](https://news.ycombinator.com/item?id=19345439)

<comment><USER25> > Especially: "Comments should get more civil and substantive, not less, as a > topic gets more divisive."

> dang has previously said that they're more critical of people who perturb > the groupthink, and take action against them for things people supporting > popular opinions would be excused for.

Your entire moderation policy is based around precisely what I claimed, as you yourself stated: the arbitrary application of increased standards for comments which disrupt groupthink, or to use a euphemism, are "divisive".

<comment><USER29> @FakeComments: I'd like to share an idea you may find helpful.

I too am sometimes frustrated by how HN conversations go. There are numerous times where I know I'm taking a contrary position on HN, and despite my best efforts to present my argument politely and succinctly, the audience seems unable or unwilling to honestly engage with my logic. It's doubly vexing when my comments are downvoted without clear justification. (To be clear: I'm talking only about downvoting, not thwacking from the site admins.)

But I also think there's plenty of evidence that taking a harsh tone in the discussion is unproductive in such conversations, and is ineffective at curbing the behavior of (what I perceive as) unjustified penalization of my comments.

So here's my idea: How about treating this as an intellectual challenge? The goal is to study the form and substance of these contentious discussions, and identify trends regarding successful vs. failed presentations of contrary viewpoints. And then see if adopting those forms results in more satisfying discussions of the points you're trying to raise?

If you're able to nail that skill, especially with a sometimes-fickle audience, you may find it benefits other areas of life as well.

<comment><USER25> You admit your comment is non-responsive to my point, which is that dang ideologically censors posts.

Do you believe a non-sequitur ad hominem was a constructive comment?

I'd prefer not to learn that style of social skill.

Your comment is also factually wrong: the reason that censorship for civility developed as a strategy is that it's maximally effective suppressing ideological conversion for the amount of speech it suppresses. Your comment then becomes nothing more than "working under adverse conditions teaches resiliency", which is true — but not a reason to stop questioning the censorship policy.

People do not rationally switch positions — they switch positions during an emotional cascade after a sufficient number of rational reasons have accumulated. That "avalanche" where an emotional spark triggers the awareness of a substantial shift in your beliefs.

These criticality events necessarily require an emotional trigger such a failing to be able to substantively reply to provocatively phrased arguments or the inability to factually correct mocking humor.

Civility suppresses precisely that: the emotional barbs in arguments and the mockery which might provoke a person to change their stance, in a substantive manner.

Rationality alone is all powder, no spark.

<comment><USER29> I'm _assuming_ that we all want roughly the same thing: we each want to believe all true facts, disbelieve all false facts, and hopefully help others achieve that as well.

I think your point about cascades is interesting, and it seems to jive with my experience. And I can see how censoring for civility would, as a result, be an impediment to changing minds.

I also believe @dang's point that _not_ stifling incivility leads to unproductive flame wars. Which, I'm guessing, _also_ results in conversations that fail to change minds.

So where does that leave us regarding HN discussions? Can you think of an approach that addresses both your _and_ @dang's points? Are we stuck with having HN admins try to find the optimal censorship policy that somehow balances the issues you and @dang have raised?

Please also consider the possibility that you may have a greater appetite for (hopefully productive) acrimony than the majority of HN's target community. In terms of your theory of changing minds, the HN owners may wish for this site to be where people can discuss the logical / empirical aspects of issue in a calm and pleasant manner, and leave the mind-chaning, emotional stages of the discussions for other forums.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER37> Since David Cameron days, the UK government has had every intention of turning UK into another China, at least as far as surveillance and censorship goes. They just can't do it so obviously, so they do it in a round-about way like arguing for "porn filters" and later for other "serious crimes". And then you wake up one day that they use the filters for whatever they want.

</comment><comment><USER3> Once people accept that it's fine for social media to censor political speech, it's only a small mental leap to hand over that same control to the government. This development should come as no surprise as government officials see the thunderous applause heaped on media companies when they ban "problem people".

</comment><comment><USER38> What is it with the obsession about "hate speech" in some random internet comment section? Report that user, ignore it, turn off the screen, whatever. How in the world is it worth spending actual policing resources on this nonsense?

<comment><USER39> Well, the justification - mind you, I don't agree, I'm just answering your (rhetorical?) question - is that speech can sway opinions, opinions can shape behavior, and (the wrong sort of) behavior can lead to chaos, so it's best to nip the wrong sort of speech in the bud before it cascades into genocide. The problem with that sort of "slippery slope" thinking is that it always ends up slippery-slope-ing in the other direction: hate speech regulations designed to silence nazis calling for genocide are almost immediately applied to reasoned, principled, thoughtful people like Jordan Peterson whose conclusions are outside the mainstream.</comment></comment>


Ask HN: Online C++ Resources? - <AUTHOR>

I'm working on a side project that uses C++, so I'm finding myself having to relearn it.
I bought Accelerated C++ by Koenig and Moo, and I've been working through it.  It's a great book for picking up the language quickly.  I highly recommend it.  However, now that I've learned a few languages from online resources, managing both a book and a laptop feels clunky and awkward.  I can download Why's (poignant) Guide or php.net or the CSS spec and work on it with no effort on a plane or whenever I feel like taking a short break from my "real" work.
Anyone know of an online C++ training that you'd recommend? <comment><USER2> Here are some references I review whenever I need to work with C++.

* The GNU C++ Library Documentation - <http://gcc.gnu.org/onlinedocs/libstdc++/spine.html>

* Scott Meyers TR1 Information - <http://www.aristeia.com/EC3E/TR1_info.html>

* Association of C & C++ users - <http://accu.org>

* C++ Library Reference <http://www.cplusplus.com/reference/>

* Guru of the Week archive - <http://www.gotw.ca/gotw/index.htm>

These are a little older:

* Lysator (Linköping, Sweden) - <http://www.lysator.liu.se/c/index.html>

* Brad Appleton's C++ Links - [http://www.cmcrossroads.com/bradapp/links/cplusplus-links.ht...](http://www.cmcrossroads.com/bradapp/links/cplusplus-links.html)

</comment><comment><USER3> <http://www.boost.org>

The next time you find yourself saying "I wish C++ let me do _X_ " or "I wish the STL had a library for _Y_ " take a moment to search through Boost. You might find something that fits your needs.

I've read a lot of hate for Boost. I personally make a point to use it everytime it provides functionality I need. The libraries often have a learning curve - sometimes a significant one. But they're also usually powerful.

</comment><comment><AUTHOR> Accelerated C++ is here: [http://www.amazon.com/Accelerated-Practical- Programming-Exam...](http://www.amazon.com/Accelerated-Practical-Programming- Example-Depth/dp/020170353X/tag=foohack-20/)

And, of course, there's the STL, but it's more a reference than a how-to: <http://www.sgi.com/tech/stl/>

<comment><USER3> For an STL reference, I find the one pointed to by bayareaguy (<http://www.cplusplus.com/reference/>) easier to browse.

<comment><AUTHOR> Yeah, it's easier to browse, but it confounds wget for some reason, making it nearly impossible to save for offline viewing. The SGI reference is available in a tarball, even.

<comment><USER3> You prefer doing that? I just have a bookmark on my toolbar. I never code without an internet connection, so it's easier to look at it online than store it locally.

<comment><AUTHOR> Yeah. I have why's guide, the function info from php.net, the erlang guide, and a few others.

The best way to learn a new language, I find, is in a park on a sunny day, without being distracted by IM or email or… ahem… news voting sites ;)

<comment><USER3> I find the best way to learn a language is to do it when I should be getting other work done.

Sunny parks are not meant to have computers in them.

</comment></comment></comment></comment></comment></comment><comment><USER4> If you want training, I recommend books (which teach you very efficiently).

If you want the latest tips, tricks, and ways of thinking, then I recommend blogs (which are highly inefficient).</comment>


Team wants to sell lab grown meat in five years (2015) - <AUTHOR> http://www.bbc.com/news/science-environment-34540193 <comment><USER2> I am really really excited about lab grown meat making it into the mass market and ultimately becoming cheaper than traditional meat. The environmental benefits will be insane; how much of the earth is currently devoted to either raising animals or growing feed to feed animals? If we can centralise the production of meat, suddenly we have huge swathes of land that, perhaps naively, I hope can be reforested.

<comment><USER3> Am I the only one here who probably wouldn't buy artificial meat? I'm not a massive meat eater, but when I go shopping, I tend to buy better quality stuff without caring too much for the price. I'd give it a try, but would probably still buy "the real deal".

> Suddenly we have huge swathes of land that, perhaps naively, I hope can be > reforested.

Those plots would still be owned by farmers, and planting trees on them would bring in close to zero revenue.

<comment><USER4> You'll probably change your mind. If/when synthmeat becomes both economical and palatable, it will rapidly become socially unacceptable to eat real meat.

<comment><USER5> I'm not sure about the social aspect of it, but I can see it becoming more of a "real meat for special occasions or if you're rich enough". Demand for real meat, especially for processed meat products, will drop.

<comment><USER6> It will probably be similar to having real fur coats, vs faux fur. Distasteful in some social groups, but other people still do it.

</comment></comment></comment></comment></comment><comment><USER7> Ethical considerations won't take this far. Need it to become cheaper than real meat the day that happens it will take off on its own. Meat or cattle raising plays a big role in the worlds methane production decreasing that would be huge achievement as with more people getting out of poverty every year meat production and consumption is increasing.

<comment><USER8> I could see another angle in the meantime, which is exotic lab grown meats. I'd be interested in trying bald eagle meat or polar bear or any number of animal meats where it's either illegal or impractical to culture full animals.

Presumably you can also make meats that scale disproportionately with the size of the animal, like sparrow burger or lobster steak.

<comment><USER9> Yes, or human.

<comment><USER10> It's actually a fun question to ask people, whether they would eat a synthetic meat that was designed to taste like human meat. You will perhaps understandably get a lot of weird looks and squirms.

<comment><USER8> I'm not sure if you can call it "designed to taste like human meat" when it's actually human meat that just wasn't produced in a human, though that's another interesting breakdown.

</comment></comment></comment></comment></comment><comment><USER11> As a vegan, I feel the day fast approaching when I must choose whether I'll eat this "vegan" meat or not. Either way I'm rooting for them on behalf of the environment and all the animals caught up in our current industrial food system.

<comment><USER12> I'm vegan too. My reason for being vegan is entirely on the basis of sustainability. If lab meat is produced in a sustainable fashion then I'll be all for eating it.

<comment><USER13> I really doubt lab grown meat will ever be as sustainable, as a normal plant based diet.

<comment><USER14> I wouldn't be so sure, it takes a lot of water to grow food.

</comment></comment></comment></comment><comment><USER15> I predict synthetic meat will be hugely successful simply because it avoids all the gross parts of dead animals. No blood, no connective tissue, no risk of abscesses or parasites, no worries about cross-contamination, the exact same size every time. If I can buy a sterile and perfectly uniform slab of synthetic muscle and marbled fat, to me that's a better product than natural meat. I don't even care if it tastes slightly worse. Put some ketchup on it and it'll be good enough.

"Inferior" technology very often wins because of convenience. People preferred LCDs to CRTs long before they'd caught up with CRT image and motion quality. Touch screen phones are more popular than those with physical keyboards. More people use ballpoint pens than fountain pens despite the higher writing pressure and lack of flexibility in ink choice. Synthetic meat can be the ultimate convenient meat and that's enough to make up for a lot of other flaws.

<comment><USER16> I'm not so sure. The problem is that any kind of processed real meat, like almost all other processed food, tends to be absolutely horrible from a culinary point of view and is often bad from a health-related point of view, too.

It seems unlikely to me that lab-grown meat would fare better in that respect than, say, processed compressed chicken remains that are sold as an ingredient in a vast variety of processed food.

I also don't think that lab-grown meat will have substantially less potential for biological contamination.

<comment><USER15> I'm confident contamination won't be an issue for consumers because AFAIK no current or proposed synthetic meat has an immune system. This means it will have to be grown in sterile conditions. Contamination will be a huge problem for producers, but they'll have to figure out a solution because the cost of losing whole batches would be too much if they don't.

</comment></comment></comment><comment><USER17> It's unclear what methods they're using to make these burgers, but often you need many animal-derived products to culture cells. Fetal bovine serum, growth media, all of these have animal products in them. If they make an ethical argument, then they'll have to solve that too. They might have, but it's not clear in the article.

<comment><AUTHOR> I saw in a documentary that with only a sample of the skin they can grow like 10k burguers, and the animal won't even notice, it's like an injection. I don't remember the doc but it seems pretty ethical IMO.

<comment><USER18> It's not just the initial cells, the growth medium contains a lot of animal products - even culturing human cells for research uses lots of bovine products.

</comment></comment></comment><comment><USER19> Reminds me of Frederik Pohls "The Space Merchants" published 1952 where he describes a huge mass of cultured chicken breast cells fed with algae

[http://www.technovelgy.com/ct/content.asp?Bnum=1002](http://www.technovelgy.com/ct/content.asp?Bnum=1002)

<comment><USER20> Interestingly, the original experiment that spawned these stories (Alexis Carrel allegedly kept a culture of chicken heart alive for 20 years) was never replicated, and it's suspected that fresh cells were added to the mass to keep it going.

Attempts to replicate it lead to the discovery of the Hayflick Limit, which observes that most animal cells can only divide a limited number of times before dying.

</comment></comment><comment><USER21> The ethical argument for the adoption of artificial beef is always brought out during these stories. But they forget to mention that the lab grown meat only contains lean meat cells and in order to make it taste good they need to add animal fat. As in, fat from farmed and slaughtered animals.

<comment><USER22> Human fat. Just build the meat lab next to a liposuction clinic. Problem solved.

In fact, if you build a burger joint there as well, you've got a perfect Fat Cycle. People can go to the clinic to get their flab hoovered off, then head into the restaurant and eat it all back in burger form.

<comment><USER23> Thanks Tyler.

</comment></comment></comment><comment><USER24> A US company called Modern Meadow is trying to do the same thing, but is starting with a more commercially viable first product: leather. This seems like a better way to develop the technology stack you need to crush the cost so that you can make it available for food.

</comment><comment><USER25> Sounds like a job for a Kickstarter. They'll make a lot of money, maybe create some new science and then when they fail they can close up their shop without a single repercussion.

</comment><comment><USER26> That's pretty good, but even if you buy now it will just be obsolete in a week.

</comment><comment><USER27> This is year-old blogspam. bigthink.com spins every article out into nine self-linked articles, and also leaves out all the interesting details. Also they don't source the $11.36 figure, and all the other sources I've read give prices to about 1 significant figure, not to four, so I suspect that's made up.

If you're interested in this subject, read this WP piece from 18 months ago, or this BBC piece that was the actual source for TFA from 13 months ago, both of which contain more up-to-date facts than TFA.

[https://www.washingtonpost.com/news/wonk/wp/2015/05/20/meet-...](https://www.washingtonpost.com/news/wonk/wp/2015/05/20/meet- the-future-of-meat-a-10-lab-grown-hamburger-that-tastes-as-good-as-the-real- thing/)

[http://www.bbc.com/news/science- environment-34540193](http://www.bbc.com/news/science-environment-34540193)

Or, for more background, here's the 3-year-old piece from Time that raised a lot of discussion, and which gives the context for the price drop.

[http://science.time.com/2013/12/16/the-triple-whopper- enviro...](http://science.time.com/2013/12/16/the-triple-whopper- environmental-impact-of-global-meat-production/)

Or you could read this, from 6 months ago. Note that it looks like a bit of a biased piece to me, but it appears to be directly sourced, rather than just regurgitated. It also is specific about Mosa's price _targets_ , saying that they think that $29.50/lb will be their launch price, and they speculate that $3.60/lb seems like an achievable goal for later (currency not specified, though probably they mean USD, but note that the company is not American).

[http://www.takepart.com/feature/2016/05/23/cultured- beef](http://www.takepart.com/feature/2016/05/23/cultured-beef)

<comment><USER5> _" Also they don't source the $11.36 figure"_

And did I miss it, but are we to assume that's $11.36/lb? Some other unit?

<comment><USER28> Generally, random numbers like this come from unit conversion. My guess is that it started at $100/kg.

$100 per kg = $11.34 per 1/4 lb burger

You get $11.36 per 1/4 lb if you use 2.2 lb = 1 kg, instead of the exact conversion.

<comment><USER29> I assumed 1/4 lb burger, just because it's the common burger size that provides the most favorable comparison. It's a bullshit comparison though. A burger is more than just a patty, and upscale burgers (which they are targeting with prices like that) rarely are just a 1/4 lb of meat. I initially thought the $11.34 price was pretty good, because I eat $10 burgers all the time, but a 1/3 or 1/2 pound burger made with this meat would cost about $50 in a restaurant.

The best argument for this burger is that the moral cost of killing a cow is much higher than the added price of the artificial meat. I'd find that argument pretty convincing, but I don't make enough money to be that moral.

<comment><USER30> > a 1/3 or 1/2 pound burger made with this meat would cost about $50 in a > restaurant.

More than that. A 1/2 burger would cost, using the 30% food cost rule of thumb for restaurant pricing, nearly $80 assuming that everything other than the patty had no food cost.

<comment><USER29> I didn't realize the rule of thumb was 30% for a restaurant. I've always worked in retail, where a 100% markup is always a good rule of thumb.

<comment><USER30> Restaurants aren't reselling packaged goods, they are also assembling from raw, so there is both amortized cost of production equipment and labor costs associated with production that retail lacks.

</comment></comment></comment></comment></comment></comment></comment><comment><USER31> Reverse sticker shock as clickbait, there's a new one.</comment>


Ask HN: Worth pursing web development if you have a criminal history? - <AUTHOR> I'm facing DUI and Felony ASSAULT charge. MY life term goal is To become a web developer is there a good chance to work and make money in a field like this with criminal background? Maybe I could Freelancing ? is that possible? <comment><USER2> One of my favorite employees had almost identical charges to you. I never once hesitated to hire him (I've hired him at 3 different companies over the years). I have, once, had to write a note to hr saying I would take on the liability as a manager for having an employee who has a prior record.

Now, the reason he hasn't had trouble is because he speaks brilliant English, he's honest about his past, he presents himself well, and his technical skills are top notch. If you have those, you'll get past this!

</comment><comment><USER3> "facing" as in accused but not yet convicted? The DUI is a big deal in that you should stop doing that but not a big with respect to employment except maybe in jobs requiring you to drive. As for the assault, wait till it plays out if its not resolved yet. A good lawyer can probably plea this down to a lesser charge and most employers wouldn't care as long as it isn't a pattern, i.e. if you actually have a long "rap sheet".

</comment><comment><USER4> What's the alternative? Go for it!

You might not be able to do work requiring a government security clearance or at companies that do a background check, but I'm sure you could get freelance, contract work and apply at small companies.

Lots of places don't even have a formal employment form and just hire based on your resume and interview.

Once you show you're an asset and make a positive contribution you won't have an issue.

I would be honest about it if asked but I wouldn't advertise it either. If they do have an employment form asking about it check the box and give an explanation.

Polish your skills and be sharp in interviews!

Good luck.

</comment><comment><USER5> Yes. Startups may not have requirements as strict as bigger, more established companies. For example, at the 2 startups I've worked for, there was no traditional job application, so no questions about criminal history or background check. Early stage startups are typically so focused on finding product market fit, and not on HR policies. Getting in early will let you bypass even having to answer questions about your criminal record.

Freelancing is the other option, since working for yourself means you don't have to answer to someone else about your criminal background.

</comment><comment><USER6> Hey, I am a college student and going through a felony charge as well. I'm really worried about my future (lawyer says there's no way I'll do time in jail at least!) but this thread gives me hope to. It's hard to forgive yourself and move on especially now that everything is connected and information is easily available, but it's worth a shot.

</comment><comment><USER7> Yes. It is worth it. You may run into problems if your startup is acquired by a tech giant, I believe when my company was acquired by adobe they dug into our histories. I am not sure if a criminal history would have made a difference with them, but they are the only tech company in my life to ask.

</comment><comment><USER8> I have an email address in my profile. We should talk.

</comment><comment><USER9> Don't see why it shouldn't be possible. Go for it

</comment><comment><USER10> Find a startup and prove your worth. Totally possible!

</comment><comment><USER11> For context, the US Army wouldn't hire you.

<comment><USER12> What kind of context does that provide?</comment></comment>


Comments on the MISRA C coding guidelines (2011) - <AUTHOR> http://www.knosof.co.uk/misracom.html <comment><USER2> A nice complement (and a generalization) of the MISRA C guidelines are the NASA/JPL C guidelines [1], which are also a very beautiful read. They can be succinctly summarized as ten simple rules [2] :

1\. Avoid complex flow constructs, such as goto and recursion.

2\. All loops must have fixed bounds. This prevents runaway code.

3\. Avoid heap memory allocation.

4\. Restrict functions to a single printed page.

5\. Use a minimum of two runtime assertions per function.

6\. Restrict the scope of data to the smallest possible.

7\. Check the return value of all non-void functions, or cast to void to indicate the return value is useless.

8\. Use the preprocessor sparingly.

9\. Limit pointer use to a single dereference, and do not use function pointers.

10\. Compile with all possible warnings active; all warnings should then be addressed before release of the software.

[1] [https://yurichev.com/mirrors/C/JPL_Coding_Standard_C.pdf](https://yurichev.com/mirrors/C/JPL_Coding_Standard_C.pdf)

[2] [https://en.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Dev...](https://en.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Developing_Safety- Critical_Code)

<comment><USER3> A lot of these are pretty similar to the restrictions built into the IEC 61131-3 'Structured Text' programming language ([https://en.wikipedia.org/wiki/Structured_text](https://en.wikipedia.org/wiki/Structured_text)). It's basically just removing things that commonly cause problems.

<comment><USER4> To a great detriment to the expressive power of the language. How do you do anything non-trivial without heap and function pointers?

<comment><USER5> You can fly rockets without heap and function pointers, and that is definitely non-trivial.

More precisely, however, heap allocation is usually accepted during the initialization phase (the moment when you can still abort the process with no consequence if needed, i.e in the case of a rocket, before it takes off).

<comment><USER6> In the realm of software, flying rockets is pretty simple. The hard parts of flying rockets is not the software.

</comment></comment></comment></comment></comment><comment><USER7> The most inconvenient part about MISRA, for me, is the fact their stance is open source tools can't state or paraphrase the rules [1] for copyright reasons.

Which is why the writing of this blog post is so bizarre, telling you that Rule 9 is pointless but not saying what Rule 9 is.

Admittedly the document is fairly priced at £10 per user - but good luck getting a rule added into an open source project like clang analyzer when you _can 't tell them what the rule is supposed to do_

cppcheck has been making an effort in this direction - giving you the unique opportunity to back a kickstarter [2] that can't say what it's doing.

[1] [https://www.misra.org.uk/forum/viewtopic.php?t=1189](https://www.misra.org.uk/forum/viewtopic.php?t=1189) [2] [https://www.kickstarter.com/projects/3300446/add-all- missing...](https://www.kickstarter.com/projects/3300446/add-all- missing-10x-misra-rules)

</comment><comment><USER8> Picking up one of these safety critical guidelines with the intent to raise your own quality standards as an engineer or team is certainly a great idea. There is a lot of thought put into these documents and it's likely there are at least a few things you haven't thought about or perhaps you discount too quickly.

That being said, this isn't a spec for good software. It's more of a spec for auditing software that _has_ to work in a predictable way. The main consumers for this are, yes, software engineers and managers, but it's especially useful for framing quality assurance efforts.

It's entirely possible to check all the boxes while still cranking out swill. For instance, I'd be surprised if the Volkswagen software that famously assisted in cheating on emissions tests was properly MISRA reviewed since a lot of the guidelines have to do with making sure the code does exactly what is intended, no more or no less. A full review with someone who could read code would either require the reviewer to ask "this is the code that cheats on the test, right?" or to be oblivious as to the full purpose for the code.

<comment><USER9> I agree with this point. The MISRA standard is mainly there to discourage use of the parts of C that most often cause faults. You can comply to MISRA C while ignoring some of the rules if you determine the risk to be justifiable.

Ideally, these un-safe methods would be removed from the C language, but then that would be removing the low level ability from C that it is very suited for. So these guidelines exist to note the most dangerous parts of C, but it is still up to the developer to determine how to use it safely.

</comment></comment><comment><USER10> > Rule 9: This precludes the use of a construct that is not supported by the C > standard. As such it is a pointless rule.

I'm not sure that's true. Compilers (let's say, MSVC++) tend to support a mismash of standards and de-facto standards. If you are forbidden from using a construct not supported by the C standard (under which you are building) you are in fact specifying _strict_ compliance with a _particular_ standard, which is meaningful.

</comment><comment><USER11> MISRA and other such standards are great places to start thinking about reliability and safety. That said, I think there is a danger in believing that code which complies with a certain set of standards is safe. Attempting to bring non-safety code into compliance with MISRA may increase safety, but safety, like security, is something that needs to be designed in, both to the software and the overall system. Standards compliance is often just a CYA move to avoid legal and financial liability. Often, trying to make a codebase compliant with a standard like MISRA will reduce overall code quality as good software design practices take a backseat to compliance metrics and QA reports.

<comment><USER12> While many items in MISRA are sensible (some I do find quite counterproductive, if code quality in terms of readability and maintainability is also a concern), I have seen MISRA standards being applied to a legacy embedded codebase with terrible effects. What was being done, for example, was putting explicit typecasts everywhere a warning popped up respective mismatched integer sizes or similar, instead of refactoring the code to improve variable typing.

The best end result was largely unreadable code. Why? Because the junior developers tasked with the MISRA compliance efforts were measured by reducing the number of warnings instead of improving code quality.

The bonus was actual breakage in the field, as the test coverage of the legacy code being converted was particularly abysmal. But not to worry, another junior dev was tasked with creating unit tests for every function! With a codebase unsuitable to unit testing through fuzzy interfaces, that effort was about as effective as one would expect, too. </rant>

</comment></comment><comment><USER13> I think a lot of misra rules are bullshit and not account for improvements in computer science.

\- goto is useful for error handling and when you have to double break

\- function pointers are useful and easy to read state machines and also for functional programming, which is sometimes easier to comprehend and produces better patterns

\- "Restrict functions to a single printed page." in my experience does not work. I would rather partition functions by topic or by level of "zoom"/abstraction

\- "Use a minimum of two runtime assertions per function." that doesn't really say anything useful imho. Use as much as experience tells you too.

I agree with the rest

<comment><USER14> I think your fourth rule is better stated along the lines of requiring constraints on both input and output (Performance?)

a la

bool noNaNs(float[] test); bool isSorted(inout float[]); float[] sort(float[] input) in(input.noNaNs) out(o; o.isSorted) { return input; }

Not sure about goto, I'm not sure what I prefer between goto or a while loop and a very big switch statement (let's say) to implement a lexer.

</comment></comment><comment><USER15> I was thinking recently about a related problem: suppose all I care about is feeding my C compiler with code which is entirely free of undefined behaviour. How would I do that?

MISRA C doesn't get me there - it _helps_ , but isn't enough to _guarantee_ the absence of undefined behaviour, despite its 'rule' to avoid UB [0] (which is not mechanically verifiable). It would presumably be possible to use a Turing-complete subset of C, defined such that compliance to it could be verified automatically. I imagine such a subset might be awfully claustrophobic, but my intuition is that this should be possible.

Another approach would be to write code in a different language entirely - either one defined to be free of undefined-behaviour, or one where the absence of it can practically be established statically/automatically. We could then transpile to C code. The transpiler could then guarantee never to generate C code with undefined behaviour.

It seems to be possible to do this today by writing Ada SPARK code and using the (proprietary, terribly pricey) _CCG_ transpiler. [1] (SPARK is a fine choice here. When programming in the SPARK subset, it's impossible to invoke Ada's equivalent of undefined behaviour [0].)

Is there a 'tidier' answer to this problem, or perhaps something obvious that I'm missing?

A related question: is there a 'tidy' way that I can be certain my C code is insensitive to platform-specific behaviours (what C calls _unspecified_ ), such as the evaluation-order of argument expressions?

[0] [https://learn.adacore.com/courses/SPARK_for_the_MISRA_C_Deve...](https://learn.adacore.com/courses/SPARK_for_the_MISRA_C_Developer/chapters/07_undefined_behavior.html)

[1] [https://www.electronicdesign.com/industrial- automation/artic...](https://www.electronicdesign.com/industrial- automation/article/21807302/ada-compiler-generates-c-source)

</comment><comment><USER16> > Such issues are not important in machine generated code (because such code > is never read by humans).

A does not imply B. There's often broken generated code that is read by humans. Readability of generated code can be helpful and often essential, in finding bugs.

<comment><USER17> Yep, sometimes we have to do without cushy debuggers and easy reproducibility in a test environment. A registers dump and a top few stack items may very well be all you have for figuring out a bug.

</comment></comment><comment><AUTHOR> I found this a while ago, after reading the guidelines and wanting to hear the opinions of others on it. Interestingly, the reason I found out about them to begin with was George Hotz during an interview going something like "I thought MISRA guidelines were stupid but then I actually read them and like, these are by really smart people, man!"

I just pulled it up and here's what he said in the interview ad verbatim:

 _" All of this code is Open Source, readable, and I believe now it's all MISRA C-compliant, too."

Interviewer cuts in: "What's that mean?"

"Um, MISRA is like the automotive coding standard. At first I—you know, I've come to respect—I've been reading, like, the standards lately, and I've come to respect them, they're actually written by very smart people!"

[The interviewer says something irrelevant to the point here that I don't feel like typing up and that Hotz didn't seem to agree with and that I don't really agree with.]

"MISRA's written by, like, computer scientists. And you can tell by the language they use—you can tell by the language they use, they talk about like whether certain, uh, conditions in MISRA are decidable or undecidable, and I and I and I...you mean like the halting problem? And, yes! Alright, you've earned my respect, I will read carefully what you have to say, and we want to make our code compliant with that."_

He obviously worded his praise a bit strangely, but a standard written well enough to tame someone like George Hotz is fairly alluring. I was probably as surprised as he was when I found out _how_ good they were. They set the bar so high that very little matches it as far as technical writing goes.

<comment><USER3> No matter what else you think about the guy, he's certainly never shown any signs of low self esteem. >.>

</comment></comment><comment><USER18> I downloaded the actual document and spent 10 minutes reading every 20th page. This is a staggering effort of technical writing.

I feel like I'm reading "The Pact" from the Silo series of sci-fi (Wool, Switch, Dust). Hopefully you get the reference.

This goes far beyond coding guidelines. It reads more like THINKING guidelines, fallacies to decision making to resource allocation.

Who is the target audience for this?

<comment><USER19> > This goes far beyond coding guidelines. It reads more like THINKING > guidelines

Well, yes. That's the "safety culture" influence, the idea that there is not really such a thing as an "accident". With careful thought all the possible outcomes should be forseeable, and mitigation should be in place for all risks. This includes what might be called affordances for the programmer - tools that are prone to misuse and mistakes should be avoided. Guardrails around thought.

This chafes if you got into programming for the freedom, but is a lot more reassuring for people driving the car.

(edit: my own personal benchmark for technical writing is the dully-named "App Note 47: High Speed Amplifier Techniques" by the legendary Jim Williams. From its own preface:

"This publication represents the largest LTC commitment to an application note to date. No other application note absorbed as much effort, took so long or cost so much. ... We intend to supply useful high speed products and the level of support necessary for their successful application(such high minded community spirit is, of course, capitalism's deputy)."

It is 132 pages including photographs, illustrations, screenshots of osciliscopes, equations, and a few jokes.)

<comment><USER20> Safety critical systems aren't places that tolerate clever hacks for the sake of being clever. But meeting application requirements while staying within the safety guidelines can be an interesting challenge in its own right.</comment></comment></comment>


The Death of the Login - <AUTHOR> https://medium.com/@rameshdot0/the-death-of-the-login-b274b22e27a9 <comment><USER2> "The primary use cases for requiring a login are customization, multi-device sync and being able to reach out to the user."

No, the primary use case for a login is when you need to actually authenticate to be authorized to access secure data.

<comment><USER3> That cannot be right, that explanation doesn't contain enough buzzwords and web-2.0 nonsense. Almost sounds very 1980s...

But really, does anyone else find that quote eye-rollingly tech-hipsterish?

<comment><USER4> I've been desensitized enough that it doesn't seem that bad. At least he wrote "reach out" rather than "initiate the onboarding funnel."

<comment><USER5> I prefer the term 'lead gavage'

</comment></comment></comment></comment><comment><USER6> Everything in the article until the topic of "Multi-device support" is really just talking about how locally installed software has worked long before the Internet and SaaS.

If I buy and install a piece of software like Photoshop (pre-Adobe subscription Photoshop), I don't have to login to use it. It "remembers" my settings and customizations simply by storing them in a file on my computer. There's nothing stopping an app on my phone or tablet from doing the same.

When talking about "Multi-device support" we're really talking about device synchronization. You could consider a web browser/web app as a "device" for the purposes of this discussion. Since most devices can't do peer-to-peer synchronization, we often rely on the software vendor to provide centralized services. This requires identification and security which is typically implemented with username/password credentials.

</comment><comment><USER7> > _Multi-device support is when users are using your app on multiple > devices...For most apps, this is really an over-rated feature._

Uhh, it's not? What happens when a user upgrades their phone? Or loses it? Since the OP has basically admitted they'll fall back on logins at some point, I think they're going to have a much harder time explaining to users that they need to add an email address later in the process (or worse, try to retrieve someone's data when it's too late). On the other hand, it is interesting to think that maybe there is a decent strategy here, where you gracefully migrate an app user without a login (high conversion) into identifiable user (lower conversion).

<comment><USER8> Agreed. What the poster doesn't seem to realize in the analysis on multiple device users is that the use case is _not_ only about using multiple devices concurrently, but transferring from one device to another.

</comment></comment><comment><USER9> > The primary use cases for requiring a login are customization, multi-device > sync and being able to reach out to the user.

And security, which is kind of a big deal if you have data the user would prefer be kept in their own secure space.

<comment><USER10> Agreed. I think it's important to keep in mind the context of your application when considering implementing a system like OP mentions. Although, it would interesting to provide the user a choice between a password/"secure" login and a device/"anonymous" login (with the option to later switch).

<comment><USER11> One caveat to the cookie-to-password switch: I am very good at saying, "Tomorrow." "Yeah, yeah, I'll do that tomorrow." Tomorrow comes and goes, I or a friend clear my history, whoops! Session lost.

At that point I am easily discouraged enough to stop using it.

E.g.: this happened to me with Khan Academy. I had watched so many videos on that cookie-only session, by the time it disappeared I'd long forgotten which ones I'd seen. Feeling a little discouraged, I thought, Okay, I'll get back to Khan tomorrow. Tomorrow never came.

If more people are like that, that could be a good reason not to allow cookie- only sessions for too long.

Or am I the only one?

</comment></comment></comment><comment><USER12> "Been a few days since you have come back to the app? You get a nice welcome back notification."

Do any users actually like these sorts of notifications? It's clear to me why application authors use them, but do users really like this stuff?

It is notifications like this that make it so that whenever an app asks for permission notify these days, I say no.

<comment><USER13> I was thinking this as well. I wonder, there must be statistics that show that annoying your users gets results, or they wouldn't be used so frequently.

</comment></comment><comment><USER14> I'm a big fan of the "email-only" login. Type your email address, hit login, switch to your email app, click the link, and you're logged in forever. If you don't have a password manager, it's probably what you do most of the time anyway via the forgotten password interface.

<comment><USER15> Passing tokens around via email isn't very secure. Its not like email is encrypted.

<comment><USER4> Right, but an expiring, single-use link that will send a second email saying "someone from X place just logged in, so contact us if this wasn't you" is still good enough in most cases. To see that, ask which sites will send you a password reset mail when you forget your password. My bank certainly won't -- I have to talk to a person -- but most others do, making their passwords useless.

</comment></comment></comment><comment><USER16> I'm not sure if it's just me, but I'm getting tired of the blog post formula:

> The Death of XYZ that is actually not really going anywhere for most people

The death of login, gamers, angular, react, PHP, etc, etc.

<comment><USER17> It's the current fad.

A few years ago, it was "Why I quit my job, and why you should too".

Then it was "Why $social_network sucks, and why you should leave".

Every now and then, you see "Why X sucks, and why you should stop using it (alternatively: X considered harmful)".

Now it's "The death of X"

<comment><USER18> Not just that, but "The death of X" (title)... then blablabla, then conclusion: "This really isn't the death of x".

:\

</comment></comment></comment><comment><USER19> This piece is the least thought-out piece I've seen either on Medium or HN in a while. Why all the upvotes?

</comment><comment><USER20> So, in this scenario, losing the device (phone, tablet, computer) will mean losing access to the account right? It is coupled to device ID or some cookie right?

<comment><AUTHOR> I am going to add an addendum about this which I will do now. On the app we are developing, the app installation has a unique id. Every once in a while, all of the "history" is stored in a secure fashion back on the server. So a device migration can be done. I must admit, losing a device is trickier because you wouldnt which id to use to restore on a new device. Let me think about this a bit

<comment><USER21> Have you considered adding logins? :)

But seriously, this is literally the problem that logins were designed to solve. With a login, you are defining an external concept of "user" that is distinct from the device.

Available security factors are: something you are, something you possess, something you know. Right now, you're using something you possess (the device). The problem is, if I lose the device, I've lost my security credential, and no longer "own" my account.

To fix this, you could collect an email, and when installing your app, you could prompt the user if they want to use an existing account or create another. But then, you probably want to add some security in the form of a password... and then you've created a login.

</comment></comment></comment><comment><USER22> "Does this mean the login is dead? Of course not." Ugh.

</comment><comment><USER23> We have this on JotForm. You can use JotForm fully without creating an account. I think it is important to give people freedom to roam your product freely before making a decision to create an account.

</comment><comment><USER24> All my devices and apps seem to cache logins, so for the login is dead (missing) until I need to change devices (and then there is the cloud-backup)

</comment><comment><USER25> the "login" has even more lives than cat.</comment>


Nestlé's Half-Billion-Dollar Noodle Debacle in India - <AUTHOR> http://fortune.com/nestle-maggi-noodle-crisis/ <comment><USER2> Never underestimate the power of corruption in India; You'll be vindicated if you bribe appropriate Politicians/Judges in India; [https://en.wikipedia.org/wiki/Caste_politics_in_India](https://en.wikipedia.org/wiki/Caste_politics_in_India)</comment>


What are some tips and tricks of hiring offshore development? - <AUTHOR> Curious on what folks are finding to work or not work when hiring offshore software engineers?  I'm looking to start small, scale as business needs scale, but would like to make sure I'm getting experienced developers in cloud / AWS at a reasonable price. <comment><USER2> I assemble and manage international teams for our customers. My advice is to (a) thoroughly vet whoever might be look like a good fit and (b) focus more on value added than on price; the ratio value/price is more important in the long run than price alone. In fact, I don't know a single company succeeded in trying to significantly reduce cost with offshoring. Value is more important.

</comment><comment><USER3> Communication and timezones can be difficult, I'm probably going to discontinue at the end of the contract</comment>


GHEdit: a better way to browse, search and edit GitHub repos - <AUTHOR> https://github.com/spiffcode/ghedit/blob/master/README.md <comment><USER2> This is really cool. This makes it possible to use Visual Studio Code in the browser, and that means you can use Code on a Chromebook. Perfect for editing Markdown.

</comment><comment><USER3> It installed and built on Ubuntu 16/Node6 but I couldn't connect to a repository

</comment><comment><USER4> This is awesome. I can use this to make quick updates to my static sites!</comment>


Encryption Everywhere: Symantec Announce Free DV SSL Certs - <AUTHOR> https://certsimple.com/blog/encryption-everywhere <comment><USER2> Where's the announcement on Symantec's website? This links to a marketing blog promoting a different service.

There's a PDF in the third link going to Symantec's website, is that meant to be their official announcement? There are some pretty hefty conditions on this 'offer' and I wouldn't be surprised to see many opt to integrate Let's Encrypt into their hosting platform.

Look at this garbage, it's hardly appealing:

      Program requirements
      To participate in the Encryption Everywhere program partners must meet the following requirements:
       Be a partner in the Symantec Website Security Partner Program
       Agrees to an annual sales commitment
       Be a Hosting Provider or sell to a Hosting Provider who has at least 200,000 websites under management
       Enable DNS authentication
       Commit to execute regular campaigns to achieve agreed upon upsell targets
       Participate in quarterly marketing and business planning
       Bundle encryption into web hosting packages
       Provide first-level support to your customers
       Provide marketing and implementation support to your resellers, if any

EDIT: Here's Symantec's page offering DV certs, with prices starting at $399: [https://www.symantec.com/ssl-certificates/](https://www.symantec.com/ssl- certificates/) I don't see any free ones there, did I overlook them?

<comment><AUTHOR> 'Encryption Everywhere' is being offered via traditional 90's style web hosting control panel, and was announced at WHD (whd.global), a big hosting conf in Germany: both the certs and Symantec's various upsells are integrated into the hosts control panels. Hence [https://www.symantec.com/products/theme/encryption- everywher...](https://www.symantec.com/products/theme/encryption-everywhere) is targeted at hosting providers - no agreement with Symantec, no certs.

</comment></comment><comment><AUTHOR> Author here: we announced this back in Nov, but the trigger only got pulled earlier this week. At least one other major CA will make the same announcement shortly.</comment>


Ask HN: Where to find UI designers by region or zip code? - <AUTHOR>

This problem keeps coming up on almost every project I work: where can we find good user interface designers? I know a lot of designers, and they know how to make things pretty, but they are not what I am looking for. What I want is specifically designers with experience designing user interfaces. That is, people who can design software (its visual interface), rather than design a website (or a print publication).
And also, I need to find them in my area.
There are sites like http://dribbble.com/ that allow me to find good designers. However, this  is a mix of designers who are good at all different kinds of things, not just UI design. And I do not thing I can sort by them by region or zip code.
UI design tends to be the kind of thing where face-to-face communication among developers and clients is important. In the Agile Manifesto http://agilemanifesto.org/  it says "The most efficient and effective method of conveying information to and within a development team is face-to-face conversation." I find this to be most true when figuring out the interface.
When I was in Florida, my clients asked my recommendation for good UI designers. But I did not know any good UI designers in Florida. When I was in Virginia, my clients asked my recommendation for good UI designers, but I only knew one who was truly good and he was more than fully employed. It was difficult to find anyone else.
Now I am in New York. The people I work with are asking me to recommend someone who is good at UI design. Again, I'm having trouble thinking of anyone. Again, I only know one who is truly good and he is already happily employed at Arc90.
It is easy to find a designer who can take a WordPress or Joomla template and tweak it for a sites purpose and have it look good. It is difficult to find someone who understands the importance of visual information and is also willing to think hard about what a given piece of software is trying to do.
Does anyone know a place, online or offline, where I can find good UI designers, and sort them by zip code, or region? <comment><USER2> Not that it is ready yet but, I and a few other developers are working on an invitation only site where existing members can invite new developers and designers. They will amass a reputation score based on projects thy complete from project sponsors as well they will have a recommendation score that will be calculated on the reputation score of developers and designers they invite.

If it gets too low we assume that their opinion on other talent is not that good and remove their permission to invite people. It is our hope that it will promote a community of the best of the best.

Anyway, the reason I post is that we had discussed providing location based searches that listed people based on their reputation. It does not help you know and for that you could use <http://www.hnhackers.com/> .

They allow location search and it is a site composed of freelancers that frequent HN. I don't know if that is a substitute for reputation but there are a lot of talented people that frequent this board.</comment>


MySQL Founder Leaves Sun Microsystems; Will Work on MySQL Outside of Sun - <AUTHOR> http://blog.internetnews.com/skerner/2009/02/mysql-founder-monty-leaves-sun.html

<comment><USER2> _Widenuis was livid about the way that the MySQL 5.1 release happened which he thought was incomplete and loaded with bugs. Sun countered that Widenuis was entitled to his opinion, but in their view MySQL 5.1 was a solid release._

I've been working with SpringSource code lately, and this seems to be a common issue. If your business model depends on selling "Enterprise level support", making the user experience easy and bug-free just isn't in your interests...

<comment><USER3> MySQL historically had a very good reputation for fixing bugs and taking care of the users when they first started out, but as their focus shifted taking care of the users became less of a priority.

The weird thing is the bugs that Monty claims were 'riddling 5.1' were there for a lot longer than they should have been anyway, plenty of them predated the buyout by SUN.

<comment><USER4> Perhaps it was thought that the long list of bugs would finally get the attention they needed after the Sun buyout.

It's now been a while since the buyout and I'm sure more than one person is a little frustrated with the way things have turned out at this point; for better or for worse.

</comment></comment></comment><comment><USER5> this is a very common problem that i've seen on projects, even my own. as they grow larger, you almost inevitably lose focus on the stuff that matters. i think he has every reason to be mad that they were releasing buggy versions, and i'm glad he left.

too many people get complacent when you grow, and they forget that you can't slack off just because you've gotten somewhere. the fact that you even GOT to be one of the leading database solutions in the first place should suggest that you were doing all of the right things up to that point.

i saw this happen recently in a project i was involved with. it's funny the way people just sort of "stop caring" after a while, especially about small details.

bill gates has a point when he says "nobody is forced to buy our software, and unless we improve the next version, people won't buy it. so there's a serious incentive for us to keep innovating and pushing the software forward." i'm not taking sides, but the guy has a point. get complacent, and die. note to trolls: do not digress into debate about why microsoft sucks.

</comment><comment><USER3> I think my comment about a divorce in the making in that thread about drizzle the other day wasn't too far from the mark.

When MySQL got acquired by SUN there was a lot of speculation how long the honeymoon would last, it seems that with a fork underway and a founder gone that the honeymoon is definitely over.

Now I'm starting to get really worried because what with mysql being the M in LAMP it probably is just as important to the continued development of the web as any of those 3 other packages (with the 'p' being your scripting language of choice).

<comment><USER6> Say hello to the LAP stack. Linux, Apache, Perl/Python/PHP/PostgreSQL.

<comment><USER2> Wouldn't that be LAPP, meaning Linux, Apache, Perl/Pythong/PHP, PostgreSQL?

<comment><USER7> Technically, I think it would be Linux, Apache, PostgreSQL, Perl/Python/PHP

</comment></comment></comment></comment><comment><USER8> Funny thing is, I seem to recall that Sun engineers used to be able to hold off a release of a product until they thought it was really ready to go.

Which sounded like it really helped quality and got the team involved.

Sadly, either I heard wrong, they stopped, or they didn't implement that for MySQL.</comment>


Radical new input system coming for mobile devices: 8pen - <AUTHOR> http://www.the8pen.com/

<comment><USER2> Another day, another mobile device input method :-)

Looks interesting, I'll give it a try when it goes live.

<comment><USER3> This page claims it goes live tomorrow. I'm looking forward to trying it out on my X.

<http://www.the8pen.com/index.html>

</comment></comment><comment><USER4> I am looking forward to trying this out. I have been a complete convert to Swype since getting my DroidX, so I am totally sold on the idea of trying new interfaces.

</comment><comment><USER5> This is a lot like one of the input methods for iPod Linux (back when it was still around).</comment>


How to estimate Covid-19 infectiouness in the French contact tracing app - <AUTHOR> https://hal.inria.fr/hal-02641630/ <comment><AUTHOR> And in the source code: [https://gitlab.inria.fr/stopcovid19/robert- server/-/blob/fea...](https://gitlab.inria.fr/stopcovid19/robert- server/-/blob/feat-scoring-algorithm-v2/robert-server- batch/src/main/java/fr/gouv/stopc/robert/server/batch/service/impl/ScoringStrategyV2ServiceImpl.java#L110)</comment>


Ask HN: Wireless HDMI for Macbook to TV - <AUTHOR> are there any wireless hdmi devices that would allow me to stream a video on my macbook pro to my TV's hdmi while still letting me use my macbook to do other things? <comment><USER2> [http://www.amazon.com/s/?ie=UTF8&keywords=wireless+hdmi+tran...](http://www.amazon.com/s/?ie=UTF8&keywords=wireless+hdmi+transmitter&tag=googhydr-20&index=aps&hvadid=91664569447&hvpos=1t1&hvexid=&hvnetw=g&hvrand=5376662936756750628&hvpone=&hvptwo=&hvqmt=b&hvdev=c&ref=pd_sl_942f4mvm6h_b_p3)

It would honestly be cheaper to buy an Apple TV in most cases and just use AirPlay to stream the video. Plus - the added functionality of Apple TV.

With the latest version of OS X / Safari, most video sources can be streamed directly over AirPlay via the app their running in while not tying up the entire laptop.</comment>