Google vs iPhone and Facebook - <AUTHOR> http://scripting.com/stories/2010/08/04/googleVsIphone.html <comment><USER2> "I was disappointed that the iPhone wasn't... a phone that ran Mac software."

What? I admire Dave Winer's idealism, but really?! Would anyone else enjoy using the full Mac OS X interface on the iPhone? (Ignoring the iPhone's performance and power limitations, which negate this possibility.)

Does he _really_ want a phone to run applications that were designed for _much_ larger screens, with mice and keyboards?

If you know how to write a Mac app, it's not a terrible leap to write an iPhone app. If you want compatibility with Mac apps, look for iPhone apps like OmniFocus, Things, &c. that have been retooled for a mobile use case. If anything, the iPad comes closest in this regard, with some of it's near- desktop-class apps, e.g. iWork, OmniGraphSketcher, OmniFocus, OmniGraffle, &c.

<comment><USER3> Exactly. The touch paradigm is completely different than the mouse and keyboard one, phone usage patterns are completely different than that of a Mac, the distance from the screen is different, proportions are all different... Imagine looking at a Mac application, that has to be displayed in ultra high resolution in a small phone, in direct sun or while running and trying to click that 3x3 millimeters button to close the window.

An application's phone interface has to be different than the desktop one, and since there is no programmatic way to adapt the desktop interface to the phone, it has to be rethought and then reimplemented.

</comment></comment><comment><USER4> The thing about Google is that it is like a hyperactive child who can't concentrate. NOTHING ever gets FINISHED.

1) Why can't I delete ALL spam in GMail at once? 2) Why do the numbers for my Bookshelves in Google Books disappear? 3) Why bother to OCR tons of books if you have no intention of cleaning up all the errors?

Those are just three that hit me personally.

But it makes me wonder what a mess the long-delayed and ever-upcoming Google Editions will be like -- which independent bookstores all think will save them from being wiped out by eBooks.

<comment><USER5> Re: 1: Go to the Spam folder and click the Delete All Spam link.

<comment><USER4> Thanks for the help -- but that link must only exist for advanced GMail. I use the HTML version because it is wicked fast on my PC and there is nothing like that I've ever seen.

<comment><USER4> I see the downvotes. Unfortunately, I have no spam at this time so a screensnap would be useless because people would say the option shows up only when there is spam. What a time not to have spam!

<comment><USER6> I can't speak for the people that downvoted you, but I found your use of "advanced" a bit off... According to google what you call advance is standard and html only is basic. So, you're missing some features in the basic version, and use that as your primary argument for google not being able to finishing anything...

</comment></comment></comment></comment></comment><comment><USER7> "It's as if Google, not knowing who is winning the war, is fighting it everywhere, just in case it turns out that's where the true enemy is hiding."

That's a great quote. It seems that once a company becomes undisputed champion of a particular area they redeploy their resources trying to find something else to dominate.

Eg Microsoft nailed the desktop, then went chasing the Internet and mobile. FAIL

Aol had a good grip on Internet access, then went to become a destination site, or content generator. FAIL

Google dominate search and advertising, now going for mobile, desktop (chrome), social. ONGOING

Facebook own social networking - where is their folly going to be? Fb credits?

Any other examples?

<comment><USER8> >That's a great quote. It seems that once a company becomes undisputed champion of a particular area they redeploy their resources trying to find something else to dominate.

Or they realize that their domination is fragile.

Google worried about the mobile space because it was an area where they could be cut entirely out if one commercial interest dominated, even if their product was what users wanted, had the best features, whatever. With Android it's notable that it's _intentionally_ a very "fragmented" ecosystem, and the reality is that any of the vendors have the full right to pull Google hooks right out of the product if they so desired.

One company dominating mobile is a threat to their search business in a way that could completely undermine their entire business model, especially as the mobile space continues to gain relevance. Note that Android did originally target the RIM ecosystem as the original indications were that RIM would dominate.

Google worries about social media in the same way: To a lot of people Facebook is, sadly, becoming "the net". Businesses, from big to small, advertise their Facebook page more than even their own websites. People email and message on Facebook, game, read and post reviews, and so on.

It is a serious threat to search, which of course means it's a threat to advertising: Google's model is built around a long-tail, very distributed web, and Facebook is completely turning that upside down.

I think Google has far less interest in dominating these areas than they want to simply shake things up to avoid anyone else dominating.

<comment><USER7> I don't think mobile search/advertising threatens web search - it's a new industry. People aren't going to search less on their PC because they have a phone that allows them to search. Google moved into mobile because they wanted that additional opportunity, not because their old one was shrinking.

Likewise with Facebook - though the threat there is that more people sitting on Facebook = less people looking at Google ads.

I think there's a difference between a threat to existing dominance and a threat to future opportunity.

<comment><USER8> >I don't think mobile search/advertising threatens web search - it's a new industry

I imagine someone in the buggy whip industry said that when cars started to hit the road. A more adept business mind would have probably try to adapt their business for the obvious future.

Mobile devices are getting more powerful and more usable. Google is a hundred- plus-billion dollar company built around search. The landscape of how people search is changing. Of course they need to pay very close attention to it, not for today but for tomorrow. Voice search on mobile devices is brilliant, as an aside.

>I think there's a difference between a threat to existing dominance and a threat to future opportunity.

Indeed, when you're a small company that's the general thought process. Google is a very large, very successful company. They don't want to be AOL or MySpace or Excite@Home. They want to continue to be successful by adapting to the world, and ensuring that the world adapts with them. Their Android initiative has no hope of ever making them any more than rounding figures on their balance sheet, but it does ensure that they remain engaged in search and mobile advertising.

It's interesting that you mentioned Microsoft because almost everything Microsoft does can be tracked back to concern about Windows and/or Office. Microsoft got into gaming not because they saw it as a lucrative opportunity (they've been pissing away billions on it), but because gaming and convergence represented a beachhead that could upset their domination of the home. It goes on and on and on.

</comment></comment></comment></comment><comment><USER9> > This would be a late-but-interesting zig to Apple's zag, esp if (shudder) > they open sourced Windows. Don't worry, it'll never happen.)

I wonder why people want MS windows to be Open Source. Actually, it's very flexible and customizable from top to bottom. I don't have an idea about Windows Mobile, but the fact that HTC has integrated their HTC sens in it, means that it has a great degree of flexibility.

I wonder why do you want Windows to be Open Source when you can pretty much customize anything.

</comment><comment><USER8> "Apple has never tried to lock-out their competitors, they've never designed their product strategies for market share."

This statement is absolutely crazy insane.

Of course Apple design their product strategies for market share. EVERYTHING about how the iPhone was delivered to the advertisement to the application model is built specifically for building market share, and locking it in, building a network effect where it replicates even against alternatives. While people like to conveniently pretend that the Apple/AT&T relationship is some sort of anchor around Apple's feet, in reality it is the reason the iPhone shot to dominance so quickly, AT&T going all in on the iPhone, putting tremendous muscle (and nationwide coverage) behind a single device in a manner never before seen. Even Verizon's laggardly response was nowhere near as committed.

The iPod, iTunes, the iPad -- it's all about marketshare and lock in, and it has served Apple quite well, making it the largest most valuable tech company in the world.

I'm finding many of these "of course Android was going to overtake the iPhone" articles extremely curious. 6 months ago there was no "of course". One year ago, a very large portion of the tech industry was singing a very, very different tune, chuckling publicly about the futile efforts of the awkward upstart. While I suppose you need to adapt with the changing reality though, please don't insult everyone by revising the past.

<comment><USER10> I think he meant "dominant" market share, of course a new product needs a plan to create and/or take market share. But Apple (under Jobs anyway) is much more interested in profit share, nowadays they own maybe 5-10% of the computer market but their profit/unit dwarfs any other manufacturer.

On the lock-in I'm with you, but I do think the whole iTunes store/Fairplay was a happy accident that the music companies forced Apple to do. The music companies inadvertently helped Apple lock consumers into the iP*d platform, Apple leveraged it for the app store that pundits/developers were demanding (remember when iPhone first came out and the outrage about having to use web apps?)

<comment><USER8> >But Apple (under Jobs anyway) is much more interested in profit share

Microsoft blazed a trail of both incredible profit margins _and_ dominant market shares. I have absolutely no doubt that Apple was dreaming of the same scenario.

I do think there is a bit of lost perspective in all of this. Just a mere six months ago when people discussed Android desperately clawing for a slice of marketshare, universally there were comments that everyone everybody knows owns an iPhone, and no one owns an Android device. Effectively there was a short period where the iPhone absolutely owned the smartphone arena (I simply ignore RIM phones as generally they're work provided, or they're purely used as messaging phones, neither of which really qualifies). Major organizations were turning significant focus on iPhone applications: If you didn't have an iPhone, you were simply a second class citizen. Case in point -- CIBC here in Canada that spend millions of dollars advertising their iPhone application, while their terrible mobile web site withered.

</comment></comment></comment><comment><USER11> Cheap punches at Android's flashiness with no details or actual complaints? Check. Endorsing Apple's review policy for magically making apps better, which is of course silly. Check. Refusing to understand that companies make money on OSS and that Google even competeing with Facebook is better than sitting there allowing them to grow as an advertising competitor. Check.

Why did I read this article?</comment>


Facial recognition: The need for public regulation and corporate responsibility - <AUTHOR> https://blogs.microsoft.com/on-the-issues/2018/07/13/facial-recognition-technology-the-need-for-public-regulation-and-corporate-responsibility/ <comment><USER2> I am certain that someone will say, "In public there is no expectation of privacy".

Would any law prevent an organization from creating a facial recognition system that could track the identity and location of all people, for anyone to use?

I envision an API call that could query children by age, gender, physical characteristics, whether they are with an adult or alone. What could go wrong?</comment>


Visual Studio Code – May 2018 Update - <AUTHOR> https://code.visualstudio.com/updates/v1_24 <comment><USER2> As a non-JS dev, it is kinda boring update for me this time. But I am excited when looking at the preview updates, such as the new settings editor and grid layout.

I hope the new UI for settings would also applies to extension settings. It is quite cumbersome to set up extension at the begining.

</comment><comment><USER3> Does anyone has the same issue when VSCode is a bit agressive, adding closing brackets, or closing "" when it's not really necessary (because it's already closed or something)?

<comment><USER4> Yes, sometimes when editing existing text (as opposed to writing new lines sequentially.

OTOH, I have had that same issue occasionally with every editor that auto- closes that kind of element, haven't you?

I assume there's a performance tradeoff you have to make there, around how much parsing you want to do on every one of those keystrokes (including the weird-and-fuzzy kind of analysis required for code that is being typed and perhaps isn't yet in a valid state).

<comment><USER3> I wonder what's the best way to solve this, apart disable it.

</comment></comment></comment><comment><USER5> Such a great release! Lot of improvements for JS/TS, a new outline view and the grid editor layout.</comment>


Real-time Latex and markdown in the cloud. - <AUTHOR> http://cheetah.io/

<comment><AUTHOR> Hey guys Im currently building cheetah.io, if you have any suggestions or ideas be sure to post them.

</comment><comment><USER2> Do use pandoc to convert from markdown to pdf directly? Or some other tool.

<comment><AUTHOR> wkhmtltopdf for the pdfs, and pandoc to convert to .tex, or .doc</comment></comment>


Ask HN: Anyone is using a comment system? - <AUTHOR>

I am looking for better management of comments on a current project and I am thinking of integrating either
http:js-kit.com/ or http://disqus.com/ and I am wondering if anyone has any feedback. <comment><USER2> If you're worried about disqus going away, then export your comments periodically so you have a backup of them somewhere.

</comment><comment><USER3> I custom coded. When I built my latest project I always intended to have comments (but they are not a key feature) and for the most part assumed I would drop disqus in.

Ultimately I couldnt figure out a nice way to integrate disqus tightly into the site - so the custom code added more value. It took about 100 lines. :)

[http://bitbucket.org/errant/startupwiki/changeset/e36c46169c...](http://bitbucket.org/errant/startupwiki/changeset/e36c46169c5c/)

[http://bitbucket.org/errant/startupwiki/changeset/287adfec70...](http://bitbucket.org/errant/startupwiki/changeset/287adfec7009/#chg- views/user/comments.php)

<comment><AUTHOR> Yes, is not so hard to add a few extra lines of code and a couple of fields in the DB, but I think going with an outside comment system makes integration with twitter etc. so much easier and less maintenance in the future.

Thanks for the links, I see you using Kohana, I am still with CodeIgniter on this one - too much down the road to change :)

</comment></comment><comment><USER4> Disqus seems to be pretty much becoming the accepted comments system.

It works well, there's a ton of options to allow users to sign in (Twitter, Facebook, OpenID, Yahoo and others, and I recommend it.

<comment><AUTHOR> Thanks, that's actually what attracted me with a few lines of a script I can have Twitter, Facebook, OpenID and Yahoo!

</comment></comment><comment><USER5> I use Disqus for everything. I can't say enough great things about them. Totally easy integration and all the sexy features that you'd want in a comment system.

The only thing I would be concerned with is how they plan on making money in the future. Would suck to pick them and have them go out of business.

<comment><AUTHOR> Thanks it seems like the consensus to go with Disqus. I wouldn't worry too much about them monetizing the concept at this stage. At worse I will have to just add some more code onto the application!

</comment></comment><comment><USER6> Just thought I'd add +1 for Intense Debate. We've used it on our site's blog for a little over a year and we're quite satisfied.

</comment><comment><USER7> I'm using Disqus and it's working out well.

</comment><comment><USER8> +1 Disqus</comment>


A Colorful Interactive Graphic Captures 200 Years of U.S. Immigration - <AUTHOR> http://www.citylab.com/housing/2015/03/200-years-of-us-immigration-in-1-colorful-infographic/388571/?utm_source=atlanticFB <comment><USER2> Note that this data set counts only _known, legal_ immigrants; it does not even estimate undocumented entries.</comment>


Bosque Programming Language - <AUTHOR> https://github.com/microsoft/BosqueLanguage/blob/master/README.md <comment><USER2> The language doesn't seem like the interesting part here. Bosque appears mainly to be a vehicle for exploring a different way of thinking about compiler IR. From the MSR site[1]:

> In the Bosque project we ask the question of what happens if the IR is > designed explicitly to support the rich needs of automated code reasoning, > IDE tooling, etc. With this novel IR first perspective we are exploring a > new way to think about and build a language intermediate representation and > tools that utilize it. Our initial experiments show that this empowers a > range of next-generation experiences including symbolic-testing, enhanced > fuzzing, soft-realtime compilation with stable GC support, API auto- > marshaling, and more!

[1] [https://www.microsoft.com/en-us/research/project/bosque- prog...](https://www.microsoft.com/en-us/research/project/bosque-programming- language/)

<comment><USER3> I know that Microsoft are all about grabbing as much developer mindshare as possible these days, but does nobody remember Steve Yegge and is Grok system at Google? It's basically this, just ten years ago. Having the IR not throw away anything so that the tooling can have a richer interaction. I guess the best way to be successful is to bury your sources.

<comment><USER4> The Roslyn C# compiler also doesn't throw anything away - you can recreate the source from the AST, completely with white-space and comments. This is necessary to support safe refactorings, so I don't think this is a novel idea. IntelliJ must have supported something like this for ages.

Bosque sounds like something beyond Roslyn, but it is not clear to me what.

</comment></comment></comment><comment><USER5> The snark and meanness in this HN thread is totally uncalled for and why people don't publish code. I can't believe this thread is on the front page together with [https://news.ycombinator.com/item?id=23157783](https://news.ycombinator.com/item?id=23157783) . Go read that, especially the ending comments on open source.

> I made this thing that I thought was cool and I gave it away, and what I got > back were occasionally friendly people who nicely requested things from me, > but more often angry users who demanded things of me, and rarely anyone > saying thanks.

<comment><USER6> The issue here is the link; it doesn't do a great job of explaining _why_ Bosque is breakthrough. A bold claim like that needs evidence.

What's special here? From glancing at the code snippets--which is really all we have in the way of evidence on that page--I see an interesting language concept, but it's not entirely here how that relates to the initial claim.

There are definitely some interesting elements, though. It looks like it borrows a lot from TypeScript and C#, then attempts to make the resulting syntax a bit stricter with various forms of contracts. I think the goal is to make stronger guarantees at compile-time and promote better design practices. That, in turn, can result in faster applications because the compiler can make more assumptions.

If that is the goal, it needs to be explained more clearly in the readme before receiving widespread publicity, and there needs to be text explaining how each feature achieves that goal. A big part of developing a new programming languages is selling it: you have to convince a lot of opinionated people that it's worth their time and energy to invest in learning your technology.

Ideally, these arguments would be written during the design process before implementation even begins, so I don't think it's unreasonable to expect that they be available in the readme.

This might be a better link for the HN post: [https://www.microsoft.com/en- us/research/project/bosque-prog...](https://www.microsoft.com/en- us/research/project/bosque-programming-language/)

<comment><USER7> Stronger assumptions at compile time allows for higher quality code, invariants are amazing.

<comment><USER8> >Stronger assumptions at compile time allows for higher quality code

this depends very heavily on your definition of higher quality code. I really hate this new trend in language discussions of declaring subjective benefits to be objective.

Stronger compile-time assumptions, by definition, reduce the scope of runtime dynamism, which, for many people is an important feature of say dynamic languages.

Stronger assumptions at compile time are part of a trend of attempting to verify programs formally ahead of time, which is not the only way to produce robust software, but seems to be increasingly treated as such.

<comment><USER7> What can you do with runtime dynamism that I can't do with a language using a strong type system with dependant types? You need to know _something_ about the dynamic data else you can't do anything with it and that starts to suggest there's a structure you can declare, right?

And what methods do you think are as capable as formal verification? What I mean by that includes formal specification, property based testing, theorem provers etc.

Edit: This reads argumentative but that's not what I wanted, I'm genuinely interested.

</comment></comment></comment></comment></comment><comment><USER9> > is a _breakthrough_ research project

[citation needed]

In all seriousness, each time when I see a project self-describing itself as a breakthrough, it is a red flag. No matter if it is programming, mathematics, arts, or anything. (Of course, unless used ironically.)

Either, it is a huge ego and a total lack of self-skepticism (vide Stephen Wolfram's recent Theory of Everything) or fiddling of the marketing department.

<comment><USER10> Cool. Could you maybe just read ahead and evaluate the claim for yourself and then post a comment about that if you end up agreeing/disagreeing with it?

<comment><USER11> I read through the whole readme. I can't figure out which part of this they think is the "breakthrough".

</comment></comment></comment><comment><USER12> At this point any new systems language aiming at productivity has to prove itself not just superior to C++, but superior to Rust, without being significantly worse in any aspect. It's already suspicious by virtue of having a hand-wavy "Int" type (what size/signedness is that?) and it appears to be object-oriented (so we have to rely on compiler optimisations to remove dynamic dispatch) and garbage-collected (so by default any non-trivial type is heap-allocated). These are just ways in which it is worse than Rust as far as performance goes, since "ergonomics"/"productivity" is so subjective. It seems to improve on C++ only by taking the most common C++ patterns and building them into the language so the language doesn't have to be so immensely complicated, while also improving the syntax. That's simply not enough for a modern language to be competitive.

<comment><USER13> > It's already suspicious by virtue of having a hand-wavy "Int" type (what > size/signedness is that?) and it appears to be object-oriented (so we have > to rely on compiler optimisations to remove dynamic dispatch) and garbage- > collected (so by default any non-trivial type is heap-allocated). These are > just ways in which it is worse than Rust as far as performance goes, since > "ergonomics"/"productivity" is so subjective.

While I agree that this language doesn't seem to be differentiated enough to compete, I disagree with your apparent premise that new languages need to be as fast as Rust. I personally would welcome a new language that gives me full- spectrum dependent types with great tooling and moderate performance. There are many aspects to programming languages beyond raw speed.

The world has enough cookie cutter procedural and OOP languages. I'd love to see a new language from a different paradigm succeed.

<comment><USER14> For 'moderate performance' surely JVM based languages are what you're looking for? There's great tooling and a very low barrier to creating new languages.

Creating a new systems programming language like C++, Rust or Zig is by contrast a lot more effort and means having significantly worse support for debugging and IDEs unless you put a lot of effort in (generating good DWARF debug data for a new language is hugely complex).

<comment><USER13> > For 'moderate performance' surely JVM based languages are what you're > looking for? There's great tooling and a very low barrier to creating new > languages.

Not sure I understand what you're suggesting. I was asking for a language with dependent types (or anything that isn't just another procedural/OOP language). Such a language could use any runtime, whether it be the JVM or anything else.

<comment><USER15> I'm working on a language that will hopefully meet both of your criteria, so at least you can take encouragement that you are not alone.

I'm working on a language based around the recent work of Pfenning, Reed, and Pruiksma (Adjoint Logic) and Krishnaswami's Dependent/Linear research (both of which go back to Nick Benton's '94 work). It is definitely not OOP, it is a compositional language (a lot like the concatenative language family) and is rooted in explicit parallel and sequential composition. With one of the adjoint logics being the type theory implementation of Intuitionistic Logic (Martin-Lof Dependent Type Theory).

There are people working on things all over the non-OOP and the advanced static types spectrums, don't loss faith in progress yet. I have plans to release the 0.1 website and 'compiler' before July 1. Of course it is going to be a bumpy road, but I'm having a great time working this project.

</comment></comment></comment></comment></comment><comment><USER16> Hi, project owner here, great to see this on HN and always happy to hear from folks here and on the GitHub repo.

We also have a webinar with Q&A scheduled for Thursday morning ([https://note.microsoft.com/MSR-Webinar-Programming- Languages...](https://note.microsoft.com/MSR-Webinar-Programming-Languages- Bosque-Registration-Live.html)) which may be of interest as well.

<comment><USER17> The use use of '=' here scares me:

       function add2(x: Int, y: Int): Int {
           return x + y;
       }

       add2(2, 3)     //5
       add2(x=2, y=3) //5
       add2(y=2, 5)   //7

The language already supports '=' operator for assignment of variables in the current scope, so should you use the same operator for denoting value assignment formal parameters in a function call? This can lead to a lot of confusion between variables in the scope and formal parameter names in a function that is called from the current scope.

<comment><USER18> Python, one of the most popular languages, uses this syntax, so I'm guessing the vast majority of people don't find it scary (I certainly don't).

</comment></comment></comment><comment><USER19> Yeah, but what is it?

> The Bosque programming language is a breakthrough research project from > Microsoft Research.

Tells me nothing useful about it.

> Bosque simultaneously supports a high productivity development experience > expected by modern cloud developers, coming from say a TypeScript/Node > stack,

It's a web language then?

> while also providing a resource efficient and predictable runtime with a > performance profile similar to a native C++ application

Or a back-end dev language?

Come on, _what is it for?_

<comment><USER10> Does a language really have to aim for a specific use case?

<comment><USER20> It would be good for its own sake to provide some motivation for why you'd bother using it over the dozen established alternatives with mature ecosystems and tooling.

<comment><USER21> It's a language research project.

> In the Bosque project we ask the question of what happens if the IR is > designed explicitly to support the rich needs of automated code reasoning, > IDE tooling, etc. With this novel IR first perspective we are exploring a > new way to think about and build a language intermediate representation and > tools that utilize it. Our initial experiments show that this empowers a > range of next-generation experiences including symbolic-testing, enhanced > fuzzing, soft-realtime compilation with stable GC support, API auto- > marshaling, and more!

<comment><USER19> Then tell us this. In fact stick it somewhere obvious.

Also please talk straight, please don't mention "next-generation experiences", that's just marketing nothingspeak to HN techies.

"enhanced fuzzing" \- as opposed to what?

"soft-realtime compilation" \- meaning...?

"stable GC support" \- oh thank god for that, finally GC is reliable and can be used in production. thankyou thankyou thankyou for banishing GC instability.

<comment><USER22> > Then tell us this. In fact stick it somewhere obvious.

The first sentence of this page:

> The Bosque programming language is a breakthrough research project from > Microsoft Research.

"Microsoft Research" is in italics, even.

<comment><USER19> And I quoted exactly that line. In my first post.

<comment><USER21> Why are you asking unrelated questions then? The goal is not to motivate you to use it, especially not you who seem to be uninterested in both the goals and the ways the team has proposed. On the other hand I like the direction - but I am not going to use it on a daily basis either, maybe in a few years.

<comment><USER19> The base question was, _what is it for?_ That is the ultimate purpose of this language. That's not an 'unrelated' question.

> The goal is not to motivate you to use it, especially not you who seem to be > uninterested in both the goals and the ways the team has proposed

I knew neither the goals or nor the ways of this team. Tell me and as a guy interested in languages, I will be interested.

> I like the direction

So what is the direction?

All I'm asking for is information on this project, clearly given and not wrapped up in idiot marketing drivel ("stable GC support" FFS)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> > As a result of these design choices there is always a single unique and > canonical result for any Bosque program. This means that developers will > never see intermittent production failures or flaky unit-tests!

So Bosque programs are not allowed to receive input from the outside world?

> When an error occurs in deployed mode the runtime simply aborts, resets, and > re-runs the execution in debug mode to compute the precise error!

Again, no interaction with the outside world? Or are all inputs recorded during the entire execution?

It doesn't seem like this could work as specified in many real-world scenarios...

EDIT:

> This compiles recursive functions into a CPS form that uses constant stack > space, eliminating any possible Out-of-Stack issues

So recursion cannot depend on input from the outside world?

Either 1. I'm missing something, 2. Bosque programs indeed cannot receive input from the outside world, or 3. these claims seem a bit exaggerated...

<comment><USER24> The Bosque paper says the following:

> JavaScript took an interesting step by decoupling the core compute language > in the JS specification from the IO and event loop which are provided by the > host [...]. We take the same approach of decoupling the core compute > language, BOSQUE, from the host runtime which is responsible for managing > environmental interaction.

So it seems that Bosque doesn't do IO directly, but instead specifies how a given input is mapped to some output.

<comment><USER23> From what you're quoting and from what you're saying, it seems that Bosque (the core compute language) can indeed receive input from the outside world, even though it comes from the runtime (which Bosque considers the outside world).

Which means that some of the claims I quoted don't seem entirely accurate, and the other one only seems possible if the input (and possibly some state) is recorded...

</comment></comment></comment><comment><USER25> I like it already. But the page has a mix of statements ending with ';' and not. Which is it? Pick one and stick to it ;), it triggers my ocd more than naming interfaces 'concepts' and classes 'entity' for what seems like the heck of it. It does look swiftish and ceesharpy. But hey, if I can get something that looks like that, compile down to a small binary as fast as C++, I'll call your interface 'concepts' all day.

<comment><USER19> I agree about the arbitrary renaming just to make the language syntactically a bit distinct from other languages, while messing around the user. It really is not a big issue but the fact they chose to make it an issue at all by picking a new name for an existing concept is worrying.

</comment></comment><comment><USER26> This is pretty cool. This project has a long way to go before it's mature, but as someone who uses Typescript every day professionally, the promise of the ease and safety of Typescript coupled with the speed of C++ is really compelling.

<comment><USER27> You can already play with something like that, Static TypeScript, used on MakeCode for targeting embedded devices.

[https://www.microsoft.com/en- us/research/publication/static-...](https://www.microsoft.com/en- us/research/publication/static-typescript/)

Microsoft MakeCode: from C++ to TypeScript and Blockly (and Back)

[https://www.youtube.com/watch?v=tGhhV2kfJ-w](https://www.youtube.com/watch?v=tGhhV2kfJ-w)

[https://www.microsoft.com/en-us/makecode](https://www.microsoft.com/en- us/makecode)

<comment> 52-6F-62 This is cool, thanks for sharing. I'm rather in the same boat as OP.

</comment></comment></comment><comment><USER28> Looks like Stainless Scala, mixed with Rust, and given a C++ syntax.

This mix looks interesting as such.

But of course Wadler's law applies: Why THIS syntax? Looks like a blast-from- the-past, bloatty and complex. Modern languages go mostly for some more lightweight look-and-feel. Usually more "pythonic". This would be imo also here the better idea.

<comment><USER29> A lot of punctuation, most of it painful:

      * arrow and double arrow
      * arrow and double colon
      * apparently random semicolons

Not all syntax choices are bad (for example, consistently declaring types after things with a colon as a separator), but certainly not coherent and elegant enough to compete with Python, C/C++/Java, Lisp, etc.

</comment></comment><comment><USER30> This is another PL I won't try (not that the authors should care).

I'm still waiting for a good "system programming language" that

\- has compile time execution that can call a compiler API to allow compile time code generation

\- full compile time reflection, optional runtime reflection

\- doesn't have any kind shape or form of automatic memory management

\- has decent discriminated unions

\- is not much more opinionated than C on how I should live my life

\- operator overloading: define at least common operators (+, *, -, etc...) for user types. Sometimes I like the idea to be able to define infix/postfix functions in general while also assigning a priority and an associativity (totally possible with a hand made parser), but I think that could easily lead to a mess if miss-used by the community.

Zig is spot on for some of those. JB's Jai on others. For the rest it looks like there aren't many people that are bothered by the things I'm bothered with.

<comment><USER31> Take a look at Jai. It's not released yet and doesn't cover all your bullet points but it promises speed and getting out of your way, especially if you are a game programmer who loves build pipelines and data oriented design.

[https://inductive.no/jai/](https://inductive.no/jai/)

</comment></comment><comment><USER32> I gotta say you lost me at args->allof

It's 2020, if you're really serious about building a new language, shouldn't you at least pick a reasonable naming case convention? (allOf, AllOf, all_of, all-of would all work)

(Not talking about the fact that allOf doesn't seem very consistent with other languages...)

<comment><USER33> all-of should not work unless your syntax for basic arithmetic is something heinous.

<comment><USER34> Or you're Lisp

<comment><USER35> Or The Language Formerly Known as Perl6 [1], where it won't cause much friction as variable names ordinarily start with a sigil.

[1] [https://docs.raku.org/syntax/identifiers#Ordinary_identifier...](https://docs.raku.org/syntax/identifiers#Ordinary_identifiers)

</comment></comment></comment></comment><comment><USER36> At first site, it seems like a Swift clone. However, there surely be some reasons that I cannot catch.

<comment><USER18> preconditions, looks like they try to "prove" them by using Z3 theorem checker

</comment></comment><comment><USER37> This is laughable - pretty much a buzzword soup.

Whenever I see "this language/tool does A and B well", it turns out it can neither do A nor B well enough.

>The Bosque programming language is a breakthrough research project from Microsoft Research.

Breakthrough according to who?

</comment><comment><USER38> How does the verification work? I see the Z3 prover in there; is there more detail on how that works with this language?

<comment><USER16> The design of the language is done in a manner that allows us to translate the code (and all conditions) into very friendly SMTLib code -- that we don't need to add a lot of additional checks like frame rules or havocs and where the set of theories (and their combinations) are well behaved.

We have some info on this in the research papers section and documents but are planning on a full paper focused on how this is done (particularly in the presence of union types, dynamic records/tuples, etc.)

</comment></comment><comment><USER39> Is the type system at least as rich (or richer) than TypeScript's?

Can I do stuff like `Partial<T>`, `Omit<T, K>` intersection types, etc? Is structural typing the "default"?

</comment><comment><USER40> I don't believe one can claim to have created a systems language if it doesn't have trivial or seamless integration with the system's C ABI.

<comment><USER40> Ha, downvoted.

Show me a successful "systems language" without such C ABI compatibility.

</comment></comment><comment><USER41> The first feature says all values are immutable, but then the very next one mutates a variable. What?

</comment><comment><USER42> I wonder if the bones of this language came out of the work Microsoft put into Sing# 15 years ago.

</comment><comment><USER43> _cross eyes to the syntax...._ confused:

-is this a crossover between C and Pascal?

</comment><comment><USER44> Hyperbole aside perhaps we should tinker with the language first thereby walking a mile in the creator's shores before passing judgment that its a terrible language.

</comment><comment><USER45> I don't wanna type function to define a function.

</comment><comment><USER46> Why did you name your language on "woods"?

<comment><USER47> In English "bosque" is a specific type of forest/woods ... [https://en.m.wikipedia.org/wiki/Bosque](https://en.m.wikipedia.org/wiki/Bosque), could be named for that too. (Bosque is a generic "woods" in Spanish/Portuguese.)

</comment></comment><comment><USER48> I stopped reading at "from Microsoft Research."...

</comment><comment><USER49> Why would someone use this over Kotlin? Seems like Jetbrains has a big head start over this project without much difference in stated objectives

</comment><comment><USER50>
      typedef Letter = /^\w$/;
      typedef Digit = /^\d$/;

Shades of Perl5. Paging jwz!</comment>


Show HN: Compile Time Reflection in C++ for Serialization Functions - <AUTHOR> http://cwoodall.com/blog/2018/02/24/using-clang-and-python-to-generate-cpp-struct-serde-fns.htmlw <comment><USER2> correct URL is [http://cwoodall.com/blog/2018/02/24/using-clang-and- python-t...](http://cwoodall.com/blog/2018/02/24/using-clang-and-python-to- generate-cpp-struct-serde-fns.html)

<comment><AUTHOR> Thanks for the correction.</comment></comment>


Europe's GDPR Is Killing Email Marketing, to the Disappointment of No One - <AUTHOR> https://gizmodo.com/europes-gdpr-is-killing-email-marketing-to-the-disappo-1826880645 <comment><USER2> The EU essentially forced me unsubscribe from all the emails which I didn't want anymore but was too lazy to unsubscribe myself.

I am okay with this.

<comment><USER3> Especially the ones that required extra hoops be jumped through in the past.

<comment><USER4> And without sending any "yes, this address is actually used" signals!

</comment></comment></comment><comment><USER5> > Under GDPR, companies are still free to send emails to customers who have > purchased a product from them in the past

Are they? Of course they can't unless I explicitly allowed them to. Why would Gizmodo spread this information is beyond me. Buying something from you doesn't allow you to put me on your permanent spam list unless you received my explicit permission to do so.

<comment><USER6> From the UK regulator, the company may be able to use "legitimate interests" to send marketing mail.

[https://ico.org.uk/for-organisations/guide-to-the-general- da...](https://ico.org.uk/for-organisations/guide-to-the-general-data- protection-regulation-gdpr/legitimate-interests/when-can-we-rely-on- legitimate-interests/#marketing_activities)

GDPR does not force consent, even for marketing. And if it's not legal under GDPR it was probably already illegal for the past 15 years under PECR.

<comment><USER5> I read this section and it seems that e-mail communication is indeed excluded because of PECR:

> If you intend to process personal data for the purposes of direct marketing > by electronic means (by email, text, automated calls etc) legitimate > interests may not always be an appropriate basis for processing.

They even prepared a table listing marketing methods and "Emails/text messages to individuals – without 'soft opt-in'" is marked as "not likely to be appropriate".

By the way, they definie "soft opt-in" like this:

> The term 'soft opt-in' is sometimes used to describe the rule about existing > customers. The idea is that if an individual bought something from you > recently, gave you their details, and _did not opt out_ of marketing > messages, they are probably happy to receive marketing from you about > similar products or services even if they haven't specifically consented. > However, you _must have given them a clear chance to opt out_

So there are quite a few (very reasonable) conditions. If I bought something from you and didn't explicitly agreed to receive marketing e-mails, you are not allowed to fill my mailbox with spam.

</comment></comment></comment><comment><USER7> Previously: [https://news.ycombinator.com/item?id=17324785](https://news.ycombinator.com/item?id=17324785).

</comment><comment><USER8> David Brin's recent book Existence explores a sort of interstellar spam that sapient species use to communicate with others. Applied to something like email marketing, it makes one wonder why advertising is such an arm's race.</comment>


"A Horrifically Bad Idea": Smartphone Voting Is Coming - <AUTHOR> https://www.vanityfair.com/news/2018/08/smartphone-voting-is-coming-just-in-time-for-midterms-voatz <comment><USER3> If we think that not enough people are voting, the way to solve this is NOT through get-out-the-vote efforts, voter registration drives, and tools like this to make it easier to cast a vote. These are not the bottleneck.

Voting may be a duty, but it's one that carries a lot of responsibility. Getting ignorant people to cast poorly-informed votes does not help our society. And I think that people realize this. So when they know they haven't invested enough in fully understanding the issues and the candidates, they spare us the chance of their error by not voting.

If you want to get more people actively participating in democracy, the right path is through transparency in government and other efforts to make it easier for people to understand what they're voting on. Today it's a big investment in time to get oneself up to speed, and so making that information more accessible and useful would lower the cost for a citizen to make an informed vote.

<comment><USER4> Moving voting day from a Tuesday to a Sunday would also make a big difference. There are many people who have have informed opinions but can't afford to take off work (write-up for being late to work/take off early, lost income, transport issues). Also that would avoid removing a school day since most public schools are used for polling.

Another option would be to switch to make mail-in ballots only.

<comment><USER5> how do you validate mail in ballots? I am more worried about votes where we have to verify an absent voter simply because the chance of fraud increases. Fraud not only in not knowing if it is the actual voter but also because we cannot insure their vote was not forced.

my state had early voting for weeks so there really isn't a "voting day" issue here. (Georgia). Now I have not looked but how many other states offer early voting?

We need multiple issues fixed in US voting. (just a random list)

1) spreading the number of days to vote across a week or more 2) providing an easy method to confirm a person is eligible to vote and vote on the candidates they want to vote on.

3) providing a means to vote from outside your district for your own district, this is mostly solved by expanding the voting period.

4) providing in clear language what non candidate reforms are being voted on

5) randomizing how candidates appear on a ballot

6) removing one party votes. people need to choose, we don't need drones

7) removing the primary system which exists to stymie third party options

<comment><USER6> Oregon's had voting by mail exclusively, and, it _automatically_ registers voters in a number of places, so unless you are fully off the grid, you're pretty much gonna get a ballot. Consequently, Oregon has had consistently higher turnouts in most elections.

Each vote gets the signature reviewed by a person, one at a time. I actually had my ballot put on hold this year because the signature wasn't quite close enough - likely, since I probably just flippantly scribbled something on the package. They quickly mailed out another registration form where I basically re-signed the ballot for additional information.

Ballots can be dropped off into several boxes, that don't even go through the postal service.

Additionally, most counties have phone and email notifications for you to track your vote. That's how I got my notification, 2 days after mailing it in, that my ballot was under review.

<comment><USER7> No two signatures I've ever written actually look the same. I do wonder how this might affect people like me!

<comment><USER8> Gotta agree. My signature is chicken-scratch. Much like my handwriting in general. Yes, it's a personal failing. But, if it disenfranchises me, I'll be pretty upset.

</comment></comment></comment></comment></comment></comment><comment><USER9> > _The Boston-based company raised $2.2 million earlier this year, helped > along by buzzwords such as "biometrics" and "blockchain," which it claims > allows it to secure the voting process. Its app reportedly requires voters > to take and upload a picture of their government-issued I.D., along with a > selfie-style video of their face, which facial-recognition technology then > uses to ensure the person pictured in the I.D. and the person entering a > vote are the same. The ballots are anonymized and recorded on the > blockchain._

This is horrible on so many levels.

<comment><USER10> ...and it doesn't address one of the key issues with votes being cast in places other than a booth in a polling station where you are alone: Coercion.

What's to stop a family member (OK, not much of an issue for overseas military personnel, one would think) or another person from hovering just outside the camera's capture area with a blunt object, ready to -ahem- influence your vote?

Granted, this would only affect individual votes; there are bigger potential issues with electronically tallying votes, but I'll leave those be...

<comment><USER9> > _What 's to stop a family member...[from] influenc[ing] your vote?_

This is also a problem with mail-in ballots. (It's why I believe early votes should be allowed to be overwritten by in-person votes.)

The issue with smartphone voting with selfie verification is almost everyone's phones contain selfies. (Americans overseas are also likely to have a photo ID on their camera roll.) So controlling the phone means controlling a vote. That's a scalable risk.

Moreover, if the app is anonymising after verifying, it means the app developers have been deputised by the Board of Elections to verify voters and count their votes. (Whether you voted is public, in America. For whom you voted is not.) That's a big deal!

The blockchain add-on is worthless if done right, dangerous or illegal if done wrong, and increases the cross-section across which the above issues get amplified.

<comment><USER11> > It's why I believe early votes should be allowed to be overwritten by in- > person votes.

It's an interesting idea, though how would you maintain the secret ballot? If you ask them to make a "negative vote" they can suddenly vote three times without any chance of being caught.

<comment><USER12> You could keep the ballot sealed but tied to the voter's ID. Once the polling center closes for every mailed-in ballot they check if they have an in-person vote. If so, they discard it, otherwise they add it in the urn before it's opened for counting.

<comment><USER13> This is actually how it works in Sweden. They check the voter list whether the person already voted during the day and discards the mail-in if so.

</comment></comment></comment></comment></comment></comment><comment><USER14> There needs to be a paper trail. Newer technology is not the answer for voting.

What would be a good idea is a team to do UX on voting ballots, nationally. Solve this problem once and take into account all the variations of local things (bonds, amendments, etc.) Then pick a company to make ballot readers, open source the software and use best in class info-sec practices.

We don't need instant results, people don't take office at midnight of election day. We need accurate, transparent and verifiable results.

Also, make it a national holiday, close schools and just use them all as polling places.

<comment><USER15> "There needs to be a paper trail. Newer technology is not the answer for voting."

I agree. Voting systems need to be extremely simple and understandable - <USER2> auditing the system, or the votes, needs to be a task that any person pulled randomly off the street could accomplish.

</comment></comment><comment><USER16> Democracy only works with a well informed voting base, and while you may disagree with the current state of politics, it has always been my belief that people that do not know the candidates or issues should abstain from voting. I will often vote in some races but abstain from others, simply because I don't know the issue or candidate well enough. I wish more people would do that.

Making voting easier for the highly ignorant is not a good path. If someone isn't willing to mail in a ballot, drive to the poll, etc I don't think they care enough to know the issues.

I know there are some circumstances where people can't get off of work, but those people generally just don't know their own rights. Most states legally obligate employers to give people 2-3 hours off to vote.

<comment><USER17> This sentiment is a part of what drove literacy tests as part of voter law.

Making voting harder tends to benefit one political party over another; it doesn't across the board lower turnout evenly.

Sometimes it's enough to understand the macro issues of the party. You can't really know how an elected official will vote on your behalf, so it's all guesswork. But making voting harder is just going make our government less democratic.

<comment><USER18>
      his sentiment is a part of what drove literacy tests

No, _racism_ is what originally drove literacy tests as a result of manumission. Whites were generally exempt. See the origins of "Grandfather Clause".

</comment></comment></comment><comment><USER19> My town has annual "Town Meetings" where everyone pours into a gymnasium (turnout is up to 800 voters in a town with population ~15,000) to vote on all the "articles" of which there can be upwards of 20. The annual meeting often extends multiple evenings as much discussion is permitted on each article, and traditional voting can add several hours to the process when vote counts are close.

Instead of shouting aye or nay, raising hands, or standing to be counted, we hand out wireless handsets which have a yes/no buttons and a small display to confirm your vote. Then a screen at the front displays the total.

The cost of renting the devices is non-trivial at around $15-20k (having trouble finding our towns specific budget line item for this) so I often pondered why we couldn't use smartphones that everyone is surely already carrying, and maybe carry a small stock of devices just for people without phones.

The idea would be a local WiFi network which was not connected to the internet, where an app on the device would connect to a local server over that WiFi network to place the vote, after someone checks you in at the front desk.

I have no reason to trust the devices we use now any more than an open-source public domain phone app and backend container combo that the town could setup.

Over thousands of towns and tens of years the TAM is pretty large, but more to the point a non-profit coalition developing and maintaining this solution could provide a lot of value.

<comment><USER20> Yikes, I can see a lot of our TMM's having trouble with phones. It'd be better to just invest in dedicated phones and not allow BYOD. In fact, I can see some TMM's trying to get away with voting remotely (attendance is sometimes challenging).

That said, the remotes are amazingly useful for going back and looking over the results.

<comment><USER19> To be clear, they are wireless remotes, but you have to be in the room. And even these dedicated devices are not entirely frustration free, sometimes they have to revert to hand counting.

I don't think anything is saved within each device, just the totals. They say there's no way to know how each individual device (and therefore device- holder) voted.

I doubt strongly there is any actual crypto guaranteeing this though.

</comment></comment></comment><comment><USER21> We trust our financial system and it already has decades of fraud detection. Our voting system should be through something similar with all history, fraud detection, voter verification and more.

Our current voting system is already rife with fraud with little remedy and recounts are difficult, we need to expect fraud and move to a digital system that does have fraud detection in it similar to our financial system. This system can track all your votes and have a paper trail, you can opt out if you want and deliver it in person.

Our current system is such a patchwork of systems it it security by obscurity and broken, recounts are difficult and if we moved to a common system that has records for every vote in every state in a consistent format, then research could detect anomalies and fraud as well.

Digital records that are as secure as financial records, and tracked, are easier to find fraud and recount, no security by obscurity. Noone would trust banks that keep paper records and aren't verifiable anymore today, voting shouldn't be that way either.

We all use the financial systems, credit systems, and trust them. Even with their problems people trust that the amount they have and what they use is recorded correctly in terms of financial data. We should expect the system to be hacked and have fraud detection to match it just like in the financial system. Until we do move to digital voting with fraud detection then our elections will be secure only by obscurity, and lots of games being played with no recourse and lack of trust in possible fraudulent counts and recounts.

<comment><USER22> Banks solve a different problem. The reason why banks can be computerised does not apply to voting.

Bank functioning is _observable_ by the people concerned: You can see if money you didn't spend left your account, and if you failed to get paid. Failures are detected very quickly.

Voting has two key differences:

* Voting is _anonymous_ (to render intimidation and bribery of voters ineffective).

* It's not sufficient that citizens votes are counted correctly, it is necessary that no spurious votes are also counted.

The means by which electronic banking is rendered safe are therefore much harder to apply.

Voting must also not just be secure, but be demonstrably secure _to the voters_. With paper voting, you can go and watch the votes being counted. At every stage of the process, the answer to 'how do you show the public that the process has integrity' is helped by the fact that the votes are on macroscopic objects whose movement is obvious. Electronic voting systems lack this feature.

<comment><USER21> > _Banks solve a different problem. The reason why banks can be computerized > does not apply to voting._

I disagree, fraud detection and security is the best we currently have and people trust it due to these areas.

> _Bank functioning is observable by the people concerned: You can see if > money you didn 't spend left your account, and if you failed to get paid. > Failures are detected very quickly._

I can observe my votes were recorded correctly, others can't see them, data would be anonymized/fingerprinted/hashed when counting.

> _Voting is anonymous (to render intimidation and bribery of voters > ineffective)._

Financial systems do not allow other people to see your data/account amounts and more.

Who people vote for is easily determined by metadata and you really think security by obscurity on our current system is really that private? Lots of holes and ways to get voter data in security by obscurity. You don't think the voting machines and secretary of state offices/recorders have that data? No need if digital and verifiable.

I think people have a false sense of security how private their votes are.

> _It 's not sufficient that citizens votes are counted correctly, it is > necessary that no spurious votes are also counted._

You can easily anonymize data when running reports and fingerprint/hash results. Patterns and anomalies are much easier to find in a data based system, just as fraud is detected by the digital financial system.

> _The means by which electronic banking is rendered safe are therefore much > harder to apply._

Agree to disagree.

> _Voting must also not just be secure, but be demonstrably secure to the > voters. With paper voting, you can go and watch the votes being counted._

People trust their financial system but wouldn't if it was all on paper by some individual counted and just given their word that it was correct...

There can still be a paper trail and reports/vote records can be kept forever.

> _At every stage of the process, the answer to 'how do you show the public > that the process has integrity' is helped by the fact that the votes are on > macroscopic objects whose movement is obvious. Electronic voting systems > lack this feature._

There wouldn't be any blackbox or hackable machines to trust, you trust that your vote was securely counted online, in an app or if you want down at the paper ballot and entered into this system. But again, financial transactions are trusted, I don't trust random ATMs that are like random voting machines, I trust the app/site where my financial data resides. The middle man is security by obscurity and more insecure currently than if it was truly online/digital.

Our current elections system are all a patchwork of hackable areas. If we had a better standard voting system that expected hacking and fraud, like financials, we'd be better off on security, verifiability and reliability without election day games and suppression filled with security by obscurity.

Votes currently go into the ether, into various unverifiable counting systems, counted by people who have biases, entered into black box voting systems that are hackable, transferred differently from these precincts to the recorder and there are so many holes along the way it is not trustworthy in any way. Your vote could go down the memory hole and you'd never know.

</comment></comment></comment><comment><USER23> > Critics call it "the Theranos of voting."

I'd go so far as to call it the "Thanos of Voting."

With just a snap of the fingers, half of all of the votes could be wiped out.

</comment><comment><USER24> The problem with "meta" democratic decisions is that we can only discuss them honestly in the abstract. Once it's a live agenda decision, gerrymandering implications are all that will matter. The quality of the proposal becomes irelevant.

Lets imagine that security issues are 100% solved. The app can go live. Pollsters will figure out how this (inevitably) changes voting patterns. Young, or rural or some other group will vote more, to the benefit of some party.

At this point the only relevant factor determining most politicians' stance on this will be determined by good/bad for my side, in the short term.

</comment><comment><USER25> Yeah, this is the opposite of the correct way to solve the problem. What about, instead, you had an app that you could just plug in what time you wanted to vote and it would find the nearest polling place and give you the google maps directions and maybe even allow you to order an Uber ahead of time? It could reminds you how and when to register, it could even help reduce wait times by directing you to polling places with little traffic or at time when most people are not out voting.

We could make voting easier in a million ways that are not literally allowing you to vote on your phone.

<comment><USER26> > _What about, instead, you had an app that you could just plug in what time > you wanted to vote and it would find the nearest polling place and give you > the google maps directions and maybe even allow you to order an Uber ahead > of time?_

Uber basically does this now. It had a big call to action yesterday to take me directly to my nearest polling place.

</comment></comment><comment><USER27> I think the way the private sector solves problems and the way voting should be done are diametrically opposed- the more inefficient voting is, with the more people involved, the larger a successful conspiracy must be. Trust a lot of people a little over a few people a lot.

</comment><comment><USER28> As an Estonian who has voted online and via mobile ID for years, couldn't imagine going to vote in a physical location, using pen and paper.

<comment><USER29> Pen and paper is hardly done in the US except provisionally. All my votes were cast on a touchscreen with a printed paper recipes that I could look at and confirm of my choice. The paper ballot is kept by the board of elections.

Whose to stop bad actors from manipulating electronic votes? Whose to say your vote was even tallied? It is far easier to manipulate elections electronically. If Russian operatives are able to penetrate election systems in the behemoth of the US, do you feel confident that they are leaving your Estonian system in their immediate sphere of influence alone? It would potentially take one engineer and one computer to manipulate an electronic election. It would take a team of people, equipment, trucks, incinerators, fake ballots, whatever to do the same manipulation to millions of physical paper ballots stored in secure facilities.

<comment><USER30> > Pen and paper is hardly done in the US except provisionally.

Every state in the US can have a different system in place for the actual voting process. These systems also change over time. Pen and paper is used in plenty of the US, just not necessarily in your district.

Of course the pen-and-paper system is designed to be electronically scanned, at least.

</comment></comment></comment><comment><USER31> No offence to Americans reading, but speaking as an outsider, it seems to me that voting in the US is fucked up in so many ways that need to be fixed first before starting on "smartphone based voting".

I saw this short twitter thread listing some of problems that are especially apparent from a foreign perspective:

[https://twitter.com/MackieJonathan/status/105996240724471808...](https://twitter.com/MackieJonathan/status/1059962407244718081)

<comment><USER32> That's a pretty good list. (Copypasta below.) I can only think of a few omissions (eg poll taxes, destroying all the evidence asap).

No one considers the USA's elections fair, transparent, accountable. Why most foreign election observers don't even bother.

And yet, American exceptionalism. Point out the emperor has no clothes and the serfs lose their minds.

\--

If British elections had:

Parties drawing up constituency boundaries

Polls closing at 6pm

Councils recording voters party support

Government-funded selection meetings

Returning officers standing for election

Zero regulation on election spending

Votes counted in secret

Hours-long queues to vote

Barely surmountable criteria to stand for election

No national rulebook for national election admin

Lunatic criteria for voter registration

A minimum of a dozen elections happening at once

Referendums to approve building a school

Voting machines hackable by 10 year olds

Electoral data sold to the highest bidder

Etc etc etc

Folk would go ape. But here we all are watching CNN as if this were a proper democratic election with a stats guy using a giant iPad and everything.

And that results are declared while some states are still voting

</comment></comment><comment><USER33> Voting is a solved problem: fill in some box on paper. What is automating it ever going to solve?

<comment><USER34> Increasing participation? I won't drive out of my way and queue somewhere to vote. Sure, many people think the solution to this is shaming me for not caring enough about democracy, but it is obviously not working. If it were easy and safe to vote from my phone, I may be more inclined to vote.

<comment><USER35> Would you be more inclined to educate yourself on the candidates and the issues on the ballot? If increasing voter participation is just about having more ignorant voters, or stuffing the ballot box with people from given demographics, then quite frankly, I am not in favor of it. I wouldn't qualify myself to be sufficiently educated to really vote on any of the issues I voted on yesterday, but hey, I did my civic duty and got my sticker. I don't have the foggiest idea what the difference between the two candidates for county clerk is, or what the material results of amending one sentence in the state constitution with what reads to me as different synonyms will be...

I don't think that is a solvable problem.

And I would be terrified of throwing smartphones into the mix, because they are just terrible (I think the iPhone has made the world a worse place, on balance...). Any API endpoint that is setup to handle the traffic is going to be attacked, and it is going to be broken; people are going to be on shitty LTE connections, and their votes aren't going to go through. The data is not going to be properly anonymized. Software is terrible, and it is going to have bugs and fuckups and gaping holes that would be horribly exposed under the stress and scale of a real election.

Voting is basically a solved problem, and I don't see that piling complexity on top of it is a worthwhile endeavor. You go to your polling place, you grab the sheet of paper, you fill in the bubbles with the sharpie, you drop it in the slot. There are some simple, low-tech ways to improve things if you want; make voting day a national holiday, open more polling places, hire more people to staff them. None of that requires a boondoggle IT project.

<comment><USER34> >Would you be more inclined to educate yourself on the candidates and the issues on the ballot?

Yes, definitely.

>Voting is basically a solved problem

Not sure what's your definition of "solved problem," but, as far as I'm concerned, it's not solved if it fails people who would be inclined to vote and educate themselves on voting if it were easier to vote.

>open more polling places, hire more people to staff them.

That would be an alternative, especially if they could open polling place at each workplace and near each home with infinite staff. Alternatively, technology and automation could be used to scale UX, but, as you mentioned, current tech does not appear to be fit for this, which makes voting not a solved problem.

</comment></comment></comment></comment><comment><USER36> I know how to solve this problem. Upload a speech by each candidate to YouTube on election day. At the end of the day whomever gets the least downvotes wins.

Google's CAPTCHA and profiling will protect us from election tampering and make sure only the people who are allowed to vote will vote.

Might need CAPTCHA 4, though. The one where you go through a DNA test to verify your uniqueness, then get an RFID implant for truly secure 2-factor authentication. I'm not sure where blockchain and IoT will come in play, by I'm sure we will will find a place to plug them in.

(If by this point you didn't catch on that this was sarcasm, I'm not sure there is anything I can do.)

There is a much simpler solution for increasing participation. Don't punish busy people. Hold voting on a weekend, over the entire 2 days. You will get a massive surge in participation. Yes, it will be more expensive, but that can be optimized. Heck, just add a checkbox on tax forms that says "if you support weekend elections, check here and we will charge you extra X dollars". You will get tons of money for this initiative.

<comment><USER37> You can early vote one weekend here in Texas, and that doesn't seem to radically increase turnout. This year i believe turnout was lower on Saturday/Sunday than during the week.

<comment><USER36> Do people generally know about this option? Nov 6 date was advertised everywhere.

</comment></comment></comment><comment><USER38> I would be in favor of software that makes it easy to pre-vote. Then, when I go to my polling place I could quickly print, review and submit my votes. Where I vote the process is tediously manual. If we could get, say half the voters in and out quickly, there would be more time for the election commissioners to assist everyone else.

</comment><comment><USER39> VBM and compulsory voting is basically the only way to get turnout > 90%. You can try to get people fired up about elections, but we're well past diminishing returns on that front. You can try to lower barriers to voting, but even in states like Oregon with auto-registration and VBM it's still lower than 70%.

If you look at any place with > 90% turnout, they have compulsory voting. And once you have that you have a strong impetus to make voting as easy as possible, so you get stuff like holidays, VBM, early voting, etc. The fixes are obvious, simple, and they'll save money; Republicans just want turnout to stay low so we won't get them. End of story.

<comment><USER40> Your comment was interesting until the very last two sentences. Please don't make low-quality generalizations like that, punctuated with dismissal.

<comment><USER39> I get where you're coming from, but it's a matter of fact that Republicans at all levels of government are consistently against expanding voting access. Take some time and look at what happens to those bills. It's 100% a partisan issue. It shouldn't be, but it is.

</comment></comment></comment><comment><USER5> Smartphone voting is no more bad than absentee voting is for people who are actually in their voting area. We have/had people voting with absentee ballots who just didn't want to do early voting and stand in lines

</comment><comment><USER41> This particular idea seems bad from a security standpoint. But we do need to make some major changes to level the playing field so that people who have small children, move often, work odd hours- in other words, everyone except for propertied old people- are able to vote.

I can see a few ways to make this happen:

1) make voting day a national holiday

2) automate voter registration when you file a tax return and make same-day registration the law nationwide

3) automatically mail everyone an absentee ballot

<comment><USER42> Just curious, why do Americans always talk about making it a holiday, wouldn't moving it to a sunday create similar effect, while being much simpler? This is how we do it here in Poland.

<comment><USER41> That would work too, but most customer serving businesses are open all weekend, so moving it to the weekend would mostly help people working 9-to-5 jobs, but not the young frequently moving people you are trying to target, who are also the ones working weekends and late nights. Whereas on federal holidays like Christmas, only gas stations and hospitals are open.

<comment><USER29> People working minimum wage jobs will still be working Election Day unless it's very strictly enforced. Plenty of places are open on federal holidays; McDonald's does not close on christmas.

<comment><USER41> Yeah, true enough..

</comment></comment></comment></comment></comment><comment><USER43> Making election day a holiday could help, but let's be honest - a lot of people are just going to smoke weed and play video games if they get that day off. It would help but it's not a solution to other issues like voter suppression & general lack of voter engagement. Although it seems like the increasing toxicity of our politics is at least getting more people involved.

</comment><comment><USER44> Voting Tek isn't the problem. In fact it's going to make a lot of problems. There is no real way to establish trust without making those votes personally identifiable.

Low turnout is because people do not feel compelled to vote. They need something to vote for. Policy better aligned with the needs of ordinary Americans will improve voter turnout.

</comment><comment><USER45> IIRC, when parts of Hawaii offered online voting - participation plummeted. People want to be seen voting as they view it as virtue signaling, and nobody sees you vote online. However, this could be contraindicated by Oregon+Washington State who have mail in ballots only and have very high participation.

</comment><comment><USER46> It seems hard to vote electronically in a way that can't be hacked and is fully private but for those that are not too bothered by privacy it seems ok. I mean I voted Labour in the last thing and aren't bothered if someone finds out. You could still go do the paper ballot thing if worried.

<comment><USER29> The worry isn't how you voted; in the US your party affiliation is already public. It's ensuring the vote count is correct.

</comment></comment><comment><USER47> If this were to ever become a reality I would like to see it be open sourced so all countries can use it & all citizens can test for security breaches.

Our government is meant to be transparent & this is something that I don't believe becomes better by being closed off.

<comment><USER48> 1\. All citizens aren't experts at auditing software, and won't be.

2\. In order to achieve anything close to the same transparency as existing voting systems, you would have to open the operating systems of all chips on the devices, the firmware, and the chip design, and then enable any citizen to verify that the device they have in their hand actually was built from those sources.

</comment></comment><comment><USER49> Haha, that "sample security test" is hilarious. Basically just a link to SSL Labs saying they meet industry standard. That's great, glad they can meet low hanging fruit. How about proving that they can do better?

</comment><comment><USER50> Why are people not turning out to vote? This is the key question, and I really, truly do not think it has anything to do with whether you can do it on your phone. This is a technological solution to a multifaceted problem.

</comment><comment><USER51> Oh yeah, so voting it will be no more anonymous and only the company holding the service know really who vote who...

Corporatocracy is coming, someone watched "Continuum" TV series and think it's a nice idea...

</comment><comment><USER52> It is hilarious and idiotic to see all these modern luddite think that somehow electronic X (in this case, voting) won't work or can't be secure.

And yes, paper voting has to be the best solution ever. /s

<comment><USER29> Every piece of software can be exploited given enough effort and time. Things are only secure until they are broken. In the year of spectre and meltdown exploits, you balk at the idea that electronics are insecure?

</comment></comment><comment><USER53> People who can't be bothered to donate 20 minutes of their time every 2 years should think about what democracy means for them.

</comment><comment><USER54> In Norway we can prevote several weeks before the election. Result is more people voting and shorter voting lines on voting day.

</comment><comment><USER55> Oh goodie. If you think the internet of unsecured things revolution was fun to watch, you ain't seen nothin' yet.

</comment><comment><USER56> The only way 'blockchain' would be beneficial is if it was on a public ledger.

</comment><comment><USER57> I don't like how this article tries to generalize smart-phone voting itself as the problem. The trouble is this particular app.

I personally think blockchain powered voting solutions with a PKI backed ID Card like my Estonian e-Residency card could be a fairly strong way of authentication.

<comment><USER58> Just like this app, you seem to focus on protecting against the voter (or someone using the voter's phone).

How do you protect against a compromission of:

* The mobile phone's OS (by a virus, by the manufacturer)

* The app's server code

* The app's hosting providers

We are speaking about governments, or very rich parties trying to change to outcome of elections here.

<comment><USER57> All wonderful questions, and maybe some of the tech needs to be refined. But I can already cryptographically sign transactions on my hardware Bitcoin wallet.

Embedding displays into cards isn't impossible, BofA does it for OTPs already. A combination could ensure that users know the vote they're casting by confirming it on a secure hardware token.

With that done, you could upload that vote to a blockchain based system that's auditable, but anonymized.

But I can't give you a good answer to "what if someone steals the phone and card". One solution is to have remote election officers that verify your identity via the camera in real-time as you cast the vote. They could look at your face, or even read your fingerprint off the camera (I know that's possible because my country lets banks do that).

You'd only be able to cast the vote through devices with good enough cameras and under good enough lightening and you may have to wait a little while, but it'll be secure and you won't have to travel — especially if you're registered in a distant state or district.

It's better than nothing.

</comment></comment></comment><comment><USER59> Could the Monero system be modified to create a voting system that maintains the secret ballot? From an engineering perspective, It seems like the currency and monetization aspects be pulled out/minimized and the untraceable transactions aspect used to record votes.

<comment><USER60> No. Vote buying and vote cohersion attacks have historically been the largest form of attack on voting systems. We need a voting system where you can be sure your vote was counted without being able to prove how you voted, even to yourself.

</comment></comment><comment><USER61> This will happen though. Will seem like a bad idea initially.

</comment><comment><USER62> Oh no then everyone would be able to vote, even the renters!

</comment><comment><USER63> How about we do Smartphone Taxes first?

<comment><USER29> The IRS could file your taxes for you automatically tomorrow if they weren't legally restricted from doing so. You can thank intuits lobbying.

</comment></comment><comment><USER41> One thing to note here is that it's not as if it's just coincidentally difficult for young people to vote, it's not just an unavoidable fact- it's part of an _intentional_ strategy. For certain portions of the American ruling establishment, democracy itself is an enemy to be vanquished by any means necessary. Review the history of racial segregation and you will see obvious parallels to many forms of voter suppression today. This is the next big issue facing the USA, from my point of view.

</comment><comment><USER64> Touch screens are a really great idea for voting.

No really.

[https://twitter.com/The_UnSilent_/status/1059962688338583554](https://twitter.com/The_UnSilent_/status/1059962688338583554)

</sarcasm>

</comment><comment><USER65> I strongly oppose vote-by-mail and vote-by-phone, but for a different and underappreciated reason: the secret ballot is absolutely essential for escaping from preference falsification traps.

"Preference falsification" is a social phenomenon in which, between choices A and B, most people prefer thing A but believe that everyone else prefers B, making it socially unacceptable to express support for A. If votes are public, then everyone feels compelled, upon threat of ostracism, to vote for B, leading to enactment of policy that's actually extremely unpopular. Under a secret ballot system, people can profess support for B while secretly voting for A, and if everyone does so, policy A ends up being enacted, concordant with the true preferences of the population.

If you can vote by mail, or vote by smartphone, nothing stops people from supervising each other's votes. That there's currently a norm against doing in vote-by-mail jurisdictions is purely a cultural holdover from the days of the true secret ballot, and it's only a matter of time before this norm erodes.

We live in an age of moral panic and socially enforcement of beliefs that are both unpopular and, in many cases, scientifically incorrect. Let's not make the problem worse by making it even harder to escape from the preference falsification trap.

</comment><comment><USER66> Good idea honestly, the security issues are greatly overblown - especially if we can simply make this a mailer with "if you want to vote for this candidate, enter this code/scan this qr code", where nothing about that code identifies the candidate they voted for.

And it'd definitely help to improve voter turnout, just look at studies on how poll lines impact future voting behavior...

<comment><USER67> > simply

That one word you can never use to describe electronic voting with secret ballot. Sure it may be made easy, but it won't ever be simple.

</comment></comment><comment><USER68> Why is HN harping on the blockchain aspect of this so hard? Vote counting IS actually one of the appropriate uses of it, considering it provides non- repudiation in a manner that can be verified by anyone. The biggest issue here is the initial assignment of 1 "vote coin" per person during the initial roll- out. Assuming they can solve that problem (and that's a big if), they can simply create new block chains for each election in which every potential voter is again assigned 1 vote.

I realize that this has the side-effect of killing off anonymous voting (at least to whoever doled out the tokens, you'd still be anonymous to your neighbors), but I think that is a good thing. While you can argue about what the side-effects that has on individual voters in extraordinary circumstances, fact of the matter is, anonymous voting makes it effectively impossible to verify the percentages each candidate achieved.</comment>