Anvil: full stack web apps built only with Python - <AUTHOR> https://anvil.works/ <comment><USER2> I love it. But seeing this now, in 2017, is a bit depressing to me.

For the last 15 years Microsoft has been putting out the same RAD tools, but based on ASP.NET/C#/Visual Studio. Things like drop-in provider-based OAuth, editing versioned database projects, WYSIWYG UI, etc. Publishing to the web, even the flow of clicking on a button to edit its handler looks like it was based directly on Winforms which is a 12 year old technology.

Why aren't there more of these things out there?

How much time now is spent learning the latest and greatest framework/toolkit/etc. only to spend more time configuring individual components and cobbling them together vs. just getting the product finished and published to users? I don't mean to be cynical but I wish there was some way all these different tools somehow built on each other instead of constantly resetting the dev stacks.

For example, Create React App - I'm constantly impressed by how it has eschewed configuration in favor of getting things done while still having a lot of flexibility. It draws on a lot of great, previous past projects and seems to define the train of thought for other react projects. It seems to me that people like Dan Abramov, Brent Jackson, and others are on the same wavelength which is incredibly powerful for the react community.

There should be a way for that sentiment to extend beyond React, into the database world, the IDE world so that we can collaborate and create more nice things like this.

<comment><USER3> I am the developer of Solvent IDE, which attempts to tackle this problem in a comprehensive way, ie from the ground up as a platform: [http://codesolvent.com/web-dev/](http://codesolvent.com/web-dev/)

It is not as easy a problem as it seems...beyond the technical hurdle, a major obstacle is developers :)

While you like this paradigm, I am afraid a lot of developers generally scuff at these types of products.

<comment><USER4> Regarding...

[http://blog.codesolvent.com/2017/03/what-happened-to- sharing...](http://blog.codesolvent.com/2017/03/what-happened-to-sharing-work- with.html)

... making it onto the front page of HN isn't some mysterious process, it's as a result of people who are viewing [https://news.ycombinator.com/newest](https://news.ycombinator.com/newest) when you posted an article voting it up. Due to the fast churn rate on the 'New' page (and to the lower traffic on the New page) it often a matter of luck if a post reaches the front page, but what it isn't is some kind of conspiracy to exclude new entrants.

That aside, your tech looks interesting. What licence(s) is it released under?

</comment></comment></comment><comment><USER5> So I've been working on a python flask web app in part time/spare time for my business for almost two years (in addition to running a company doing several million USD in sales over that time without the app.) In that two years, I've tracked my programming time with wakatime and I'm at >1000hrs now, more than 25 full-time 40hr work weeks of actual coding time. I'm running the app on a dedicated GPU server, as part of the apps function is to evaluate 3D CAD files. Time spent managing and running a dedicated server is not even counted in the 1000hrs. Of course, I've also had to learn to be a Postgres database admin and dozens of support libraries. And, certainly must have at least some javascript/jquery. Libraries like flask-admin and flask-security are great. But, when you need them customized for production, it takes weeks of time to dig in and actually learn how they are built from the inside out. Need to subclass and override much of it to finally have something usable. I literally just spent about a month hacking on flask-security to get the login/email- confirmations/email templates/argon2-hashing/2-factor-auth the way I need it. Then, I watch this video the guy replicates most of the functionality in six minutes. Nice work, definitely looks like heading in right direction.

<comment><USER6> My personal experience with Flask has led me to believe it's many times easier to expand on vanilla Flask then it is to try and incorporate any of the flask-* libraries.

<comment><USER7> Flask never really seemed like a very mature framework to me, it got so many strange inconsistencies and very dubious design choices I much prefer newer, significantly simpler frameworks.

One example is the way the request context works in flask, I venture to say thats just terrible software design in my book (from flask import request, g). And seriously to have your framework give you a "global" variable to put random stuff in, wth?

Also I rather not use Flask-SQLAlchemy since why should my database models be tied so incredibly closely to some library of my web MICRO framework, it doesn't make sense, I mean its not django why introduce this coupling?

It seems if you need all the dependent libraries (like webassets and wtforms) just use django from the get go instead of going through the pain of trying to cleanly integrate dozens of flask libraries.

To see how a proper simple middleware-based framework should look like consider express, koa (nodejs), or bottle, falcon. Aiohttp and tornado also have their place of course.

</comment></comment></comment><comment><USER8> This looks really really cool.

In the 90s we had RAD tools like Delphi or Visual Basic which allow you to create simple apps very quickly. I feel that we are missing RAD on the web these days. There are so many different moving pieces. To do a full modern web app you need to learn different languages and frameworks plus other technologies for hosting such as containers or AWS, etc. That might work for complex apps, but sometimes you just want to do something simple that you can easily design visually, use one language and hit one button to publish. I have the feeling that Anvil is moving in this direction.

And extra love for using Python :D

<comment><USER9> Were you at PyCon UK this weekend? Cause you just repeated our pitch, just about word for word :)

I started out on QBASIC and Visual Basic, back in the day, and as far as I'm concerned it's practically dereliction of duty that there wasn't something similar available for the web. Eventually, we got fed up enough to go and build it ourselves.

<comment><USER10> Are these websites responsive too ?

<comment><USER9> Yes! See our first walkthrough video, which includes a screenshot of the (unmodified!) sample app on an iPhone. ([https://anvil.works/learn](https://anvil.works/learn))

You can control which columns do and don't collapse on mobile or tablets. See this post from our user forum: [https://anvil.works/forum/t/how-do-i-make-my- apps-look-nice-...](https://anvil.works/forum/t/how-do-i-make-my-apps-look- nice-on-my-mobile-display/34)

</comment></comment></comment></comment><comment><USER9> Hi there! Founder here, slightly gobsmacked to see this top of HN. Do feel free to ask me any questions about the platform :)

We also have a bunch of tutorial-cum-demo videos at: [https://anvil.works/learn#tutorials](https://anvil.works/learn#tutorials)

<comment><USER11> Hi,

I'm really not a fan of Python client side. Or RAD. Or closed source services.

And I'm hugely impressed by the potential of your product.

Good luck.

I never though I would say that one day. But don't listen to people asking you to open sourcing it now. You can always do it once you are profitable. But right now, you need money to get this going. And if your product does what you say it does, people will be happy to pay.

Although not to be locked up on the long run. You will need to address that one day. One day.

<comment><USER12> > I never though I would say that one day. But don't listen to people asking > you to open sourcing it now

I want to second that, entirely.

</comment></comment></comment><comment><USER13> I am torn:

1\. Great idea, just what "we" need in the language we need. (Python cloud RAD).

2\. But I don't want to do all this work and be locked into your system forever. I want to be able to run this on Digital Ocean or AWS etc. if I want.

I think am open source version where you give people an option of hosting on your site at first would be the best compromise. Please consider it.

<comment><USER11> You are basically asking them: "I love your work. Please add an option so I can use it, benefit from it, then leave and never pay you again."

<comment><USER14> Yes, that's true. But that does describe Rails. A pure Python web framework, integrated, with a python to javascript transpiler is very likely to emerge, but I can say with almost total certainty that it will have to be open source.

I don't know any actual numbers, but I think DHH and basecamp almost certainly profited from the popularity of Rails. That's probably up for grabs, since integrated web environments in non-js languages may become a big deal over the next decade.

<comment><USER11> DHH and basecamp made money because they are explicitly not open source and you have to pay for it.

The fact they are built with RoR is an implementation details. 37signals was very good at communication, Ror or not. Their blog and books were fantastic.

ROR as a FOSS may have helped, but I doubt it was instrumental.

<comment><USER14> yes, exactly, they found a way to monetize a product other than their framework, and they used the OSS framework to draw attention to the non os project. Whether that was deliberate or unintentional, I don't know, but it certainly worked out.

EDIT: I agree with you that the product is good, and that the communication was excellent, but I disagree that the success of ROR was minor to the success of that company. It brought a tremendous amount of attention.

<comment><USER11> But here the RAD is the product. Their end game. Basecamp was the product, and ROR just a by product of it. Complety different.

</comment></comment></comment></comment></comment></comment><comment><USER15> Looks very impressive. Any plans of offering this a-la-gitlab: paid hosting + support OR free downloadble source but then you're on your own? Main concern is that for something to really become ubiquitous the community should be able to contribute and not just be in the hands of two developers (no offense, I think you did a fantastic job!)

<comment><USER16> I share this concern. I made a resolution not to tie myself to proprietary services for anything that I couldn't replace/move within a few days. I can move containers, databases and even serverless functions.

Starting from scratch seems to be the only option here, so I would hesitate to even start a small prototype. Which is a shame because I really like your model.

</comment></comment><comment><USER17> I stopped at the pricing model. The jump from $0 to $49 per developer precludes my typical "dip my toe in the water" approach with new platforms.

I'd ideally want to try it out in production with a real, small commercial job. But if I do and decide not to expand my use of the platform, then I'm committed to a $600/year hosting deal for a small client...

And I won't use it on a bigger client at first due to the risk of lock-in.

In fact - lock-in is the biggest problem with using this. It's a paradox. I'll only willingly get locked in to platforms that I'm 100% happy with and I am only 100% happy when I've been using a platform for a reasonable length of time.

Otherwise I risk having to rewrite a 5 year old website for a client out of my own pocket when you decide to pivot or you run out of cash/luck.

</comment><comment><USER18> Whenever i see these cloud apps that seem like a good idea, I just think of spiralling costs similar to the likes of firebase written about on HN before.

Their pricing page doesn't show anything about usage limits and if it is "per site" or "per domain" or "per project".

<comment><USER9> Pricing is per-developer-seat; we don't limit the number of apps you can build or publish.

Usage limits are pretty soft right now (depends heavily on what you do in your code and how hard you're hammering our servers), but the general intention is to charge you more as you scale up your team, rather than because you got a few thousand users.

<comment><USER18> Does Anvil render server-side or is it client-side only?

My issue is if being used for websites, on average our sites get ~50k visitors a month or even spikes with that amount.

The same goes for complexity of the system, for simple html sites it will not matter much but for very dynamic apps this will require a lot of CPU time.

<comment><USER19> Reading the docs, it says the Forms run on the client, so most rendering should run too. Client-side rendering - while it has its disadvantages - shouldn't be worse for the CPU time than server-side, though. What's your concern?

</comment></comment></comment></comment><comment><USER20> I can see this as an amazing teaching aid too. You can take away all the learning about tech stacks and platforms and various languages and server config etc. for a while and concentrate on developing the idea and developing a process.

Edit: My son is going to love this when he gets home!

It seems good enough that you could push the prototype live as an MVP.

I am interested if you grow to something to the stage where you want to move off this and onto something more customised, do you have access to be able to properly migrate the DB somewhere else?

<comment><USER9> No kidding! We were at PyCon UK this weekend, and we had an 8-year-old girl building database-driven web apps in an afternoon:

[https://twitter.com/anvil_works/status/924648315983155200](https://twitter.com/anvil_works/status/924648315983155200)

As to your second point - yes, that's a common pattern. We see people going "oh, let me just sketch out the UI...well, I'll add a bit of code...oh, look, it's in production and scaling!"

We do have a lot of support for integrating with external systems, so it's easy to gradually move off from (or on to) Anvil. External access to the database is just the start of it :)

</comment></comment><comment><USER21> Like many I'd be afraid for to much tie-in with this system. If I could export my code is a way that it's usable and based on open source libs, I have the liberty to extend it beyond what Anvil's limitations.

But now I'd probably still take the upfront cost to get a bigger app started without tie-ing in with a service. For rapid prototyping it seems awesome!

</comment><comment><USER22> This looks really nice, reminds me of what you could do with Visual Basic for creating GUIs, and I really liked that experience (though I did very little of it).

One thing I really don't like about it is how the free pricing level doesn't have authentication. Seems like I can't really build a toy project that I then "graduate" to a real app. Or maybe the plan is that you build it as a private app as a toy and then start paying $45/mo when you want to make it public and have auth?

I feel like if the free level was limited by something else, like database size or something?

I can understand why they want to drive people to revenue-generation. Just seems like a feature that hurts more than it helps, by keeping people from even trying it?

</comment><comment><USER23> Just a heads up, but this may run into some confusion amongst the Mac development community with the long existing local web server tool, Anvil.

[https://anvilformac.com/](https://anvilformac.com/)

I'm excited to try the Python-based Anvil for quickly prototyping interactions to share with my product and dev teams.

Edit: Typo!

</comment><comment><USER24> I love this idea. It reminds me a lot of old school .NET worked within Visual Studio, or the Delphi editor for Windows application forms.

.NET has evolved into a totally different beast so I don't use it any more. This framework brings back the simplicity that I feel has been lost from drag and drop tools.

Drag and drop tools exist for the web, but there's nothing that introduces and organises the use of simple programming languages within the mix - at least that I know of - so this is definitely going into my list of cool tools.

</comment><comment><USER25> Awesome! I work at Mendix where we've been building something similar for just over 11 years now. Companies in this space (rapid app development for the web) typically target the Enterprise market and are typically not open source, I think that's why they don't get much interest on HN.

The market is heating up though, we are growing fast and our competitors do as well. Moreover, Google (AppMaker) and Microsoft (PowerApps) have entered the race in the last two years.

Looking forward to seeing more of Anvil.

</comment><comment><USER20> I remember someone saying on HN that what the world needed was a way to make web apps that was as easy as making a Windows form in Visual Studio. Could this be that app?

</comment><comment><USER26> This looks amazing (speaking as an old Delphi programmer).

My three questions:

\- I have a client whose app sits idle but then gets hit by maybe 300 concurrent users, all reading and writing within a few seconds of each other - do you have anything in place to deal with that kind of spike in usage?

\- It looks like it's designed to be always online - any plans to make it offline-and-sync capable?

\- Any documentation or hints on automated testing?

</comment><comment><USER27> I can't wait to try this out! The introduction video is incredibly compelling and it looks like an amazing product. Nice work!

</comment><comment><USER20> I'm actually hoping that this will allow me to avoid a very grave situation, which is that we have some workflows which we were going to be pushed into handling with Sharepoint! I'll take Python any day!

</comment><comment><USER28> I only watched the video, so it is a bit early to judge, but I wonder: 1\. Why put that much effort in explaining it takes only 6 minutes in setting up a web app? Anyone who has done any serious web app knows how quickly you can set up a simple app really does not matter much for an app even of moderate size, let alone big ones? 2\. Why yet another attempt to abstract away everything and using one language (python) only? What happens when you need to debug nitti- gritty js/css/html/sql?

<comment><USER29> These tools are for simple CRUD apps for people who aren't necessarily strong developers to begin with but need to put together something anyway. That's why the demos focus on speed and only ever show the tiniest of applications.

<comment><USER9> I'd dispute that! There are much larger applications built on Anvil; it's just hard to build a two-week project for a demo video, and harder still to build a two-month one ;)

We're starting to post some larger examples (check out our "download portal" example at [https://anvil.works/learn#examples](https://anvil.works/learn#examples) \- I'm also working on a video series building a SaaS app over the course of a few hours). But the biggest apps are, of course, our customers', and we can't really publish them as examples.

<comment><USER30> What's the largest, most complex application running on Anvil today?

<comment><USER9> That I can talk about publicly? Probably [https://lightningai.com/](https://lightningai.com/).

Their control panel drives companies' entire online marketing operation - creative, targeting, performance, and more - across multiple advertising services. That's a whole lotta UI. Their back end drives the advertising platforms' APIs (eg Google and Facebook), and it all hooks into great big machine learning operations that run on big beefy servers out in EC2. Not just a pretty CRUD app, that's for sure.

(Unfortunately, they know what their services are worth, so I can't just point you at a live demo ;) )

<comment><USER30> So, the UI/front0end of their app was created with and runs on Anvil, but the backend is entirely under their control? That's interesting. Very interesting.

<comment><USER9> Their backend is partially inside, partially outside Anvil (eg I believe the campaign management backend runs in our hosted server modules, but the compute-intensive machine learning is offloaded). And it's _all_ under their control - it's their code!

The wonderful thing about the Uplink is that the boundary between "inside Anvil" and "outside Anvil" can be very fuzzy, because you use the same APIs. (See my "escape hatch" post above)

</comment></comment></comment></comment></comment></comment></comment><comment><USER31> Can the data be replicated to our own pg database from the built-in database? Close to real-time?

<comment><USER9> Absolutely - please ask about our Enterprise plans ;)

That said, even with the standard plans you can plug into your own Postgres database from server code (just `import psycopg` - it's only Python, after all). And using the Uplink, you can access Anvil's database from your code anywhere on the internet, with the same API as Anvil server code.

<comment><USER32> What you should really do is also sell anvil in a form that makes it possible to host on premise or in AWS or somewhere else. Even if you charge a 1000$for that people would pay up. You don't need to open source everything but you can sell the compiled c files instead with installations and support guidelines. I would love to use it but if I cannot control the infrastructure I feel my hands are tied.

<comment><USER9> We do exactly that! ([https://anvil.works/blog/anvil-on- site](https://anvil.works/blog/anvil-on-site))

Installing and running it is typically a single 'docker-compose' command. If you're interested in this option, please do drop us an email at firstname.lastname@example.com.

<comment><USER33> But unlike the other plans the pricing is not transparent.. even non enterprise customers may want this option.

</comment></comment></comment></comment></comment><comment><USER34> Is it possible to implement drag and drop functionality in an app? For example, I want to drag an object into a list of objects as in this example:

[https://forum.bubble.is/uploads/default/optimized/2X/8/856f6...](https://forum.bubble.is/uploads/default/optimized/2X/8/856f62afb8b68a957f40e0b6b59b0f6ff0dd5ca8_1_690x389.gif)

</comment><comment><USER35> What if I want to run my own custom Python server code...say I have some Cythonized modules or C extensions. Do you guys support this model?

<comment><USER9> Yes, we do! Check out the Uplink: [https://anvil.works/blog/uplink](https://anvil.works/blog/uplink)

It's a library you `pip install`, which lets you connect Python code running anywhere in the world to your Anvil app. Everything you can do from Anvil server code, you can do from your Python code, wherever it's running. You can define server functions, HTTP endpoints, access data tables, etc.

We have customers controlling IoT devices with it (like that Raspberry Pi video). We also have companies driving big machine learning jobs on EC2 servers with tons of GPUs - but with all the UI and housekeeping in Anvil.

<comment><USER35> Damn, that's cool. I'm going to give this a try now

</comment></comment></comment><comment><USER36> It's $50 a dev/month for custom layouts and user logins? What independent could afford $600 a year?

<comment><USER26> What is your hourly rate? Is it less than $50/hour?

<comment><USER36> I fail to see the equivalence. I'm not contracting with Anvil for development or support. I'm basically buying a tool, in this case a tool that is more expensive than my hosting costs.

<comment><USER26> Well - two areas.

One, if you're using it commercially, it's going to pay for itself pretty quickly. I rarely do client projects for less than several thousand pounds; I reckon I could probably churn a lot of them out using this in half the time.

Two if you're not using it commercially, it's still a very low cost; maybe more than pure hosting but it does a lot more than just hosting.

<comment><USER37> Honest question, this looks awesome but how would a contractor justify using it? Would you somehow swallow the risk of them going out of business for whatever reason and promise a rewrite for clients (is that something you can get insured for?) or would clients just be okay with the risk? It seems like you'd have to have already bought enterprise to be able to run this without them from what I can tell?

<comment><USER26> I don't know yet - I'm asking them a few questions.

I'm always upfront about the tools I use with my clients as the value isn't in the tool, it's in their requirements.

But being able to move away quickly is important to me because I have client relationships (and production code) that is 9 years old.

(I also don't consider myself a contractor, more a consultant - a semantic difference but an important one)

</comment></comment></comment></comment></comment></comment><comment><USER38> Looks promising but my biggest gripe is the visuals. Maybe in the future, you could support different themes or skins? It's great to be able to bootstrap a website quickly, but if this is going to be customer facing the design needs some love :)

<comment><USER39> +1. I know that enterprise might be your main focus and internal web apps don't need a lot of styling love, but just the ability to add Bootstrap or Semantic UI components would make this beautiful. Of course, hiring a designer to work on the Anvil website itself as well as the default styling couldn't hurt.

</comment></comment><comment><USER40> Can't help to think about Delphi. Good job! ;-)

</comment><comment><USER41> There's something comparable being developed by a company in Portugal: [https://www.outsystems.com/](https://www.outsystems.com/)

<comment><USER42> Outsystems has been there a while - I remember looking at it five years ago. It's kind of expensive - "starting at $2100/month".

<comment><USER41> Oh yes. I know some people who work with them, and they charge quite a bit of money. They're exactly like Oracle, they'll charge you for every single feature and these are not small amounts. Not to mention the pain you have to deal with once you want to do anything more complicated than their platform provides. I am not aware of anything stories in particular but I can imagine that migrating away from them is not an easy task.

On the other hand, I gotta give it to them that it does some things well. I definitely see it solving problems in industries that need custom software but simply don't have the resources or capital to get a completely custom, from- scratch system.

</comment></comment></comment><comment><USER43> Saw it demo'd at PyConUK this weekend and it looked v impressive!

<comment><USER44> Thanks! We had a blast at PyCon. We built over 140 demo apps in four days, and now we're waiting for our voices to return :)

</comment></comment><comment><USER45> Anybody know of any self-hosted alternatives to something like this?

<comment><USER46> It's an "enterprise feature" [https://anvil.works/features](https://anvil.works/features)

 _On-site installation_

 _For when you need to keep sensitive data or apps inside your firewall. Anvil on-site installations allow you to develop and deploy your apps entirely in- house._

<comment><USER45> I was thinking more in terms of ameliorating the risk of building a successful small business on this and them going out of business after gorging themselves on VC money and having a heart attack.

<comment><USER42> You could probably rewrite your thing in Django or similar in the event of that. Given that the majority of web apps don't turn into successful small business it might be a good way to try stuff.

<comment><USER45> My use case is closer to being a small dev shop doing webapps for other people. If they go out of business, I would have tons of Django/whatever work all of a sudden, but lots of pissed off customers when I don't have time to rewrite them all. Plus I (morally) would need to warn them about this risk when pitching/selling them, which would probably put a sizeable dent in sales: "Also, there's a chance that this completely separate company stops supporting their product and we have to charge you for a complete rewrite of your app".

</comment></comment></comment></comment></comment><comment><USER47> That looks like a fantastic app to be working on.

Also, a great job with the demo video explaining what it is.

The only feedback I could give for now is that the "Free" plan should include some extra feature from the paid plans (e.g. User Authentication, Custom Domains, etc.) as it seems way to basic and the first paid plan is quite expensive.

I may sound like a cheapskate but you'll pull in the right crowd if you tax other metrics like traffic/bandwidth/cpu/ram/etc.

</comment><comment><USER48> Hey, so there is another solution that is pretty popular out there that I'm sure you already know of: [https://bubble.is/](https://bubble.is/), and it doesn't seem to require any coding.

Can you explain what are the differences between Anvil and Bubble? I am currently using Bubble right now to make web apps. What makes Anvil better?

</comment><comment><USER49> Looks very promising! - Does anybody know what technology stack is being used here? Django + some JS stack for the front end?

<comment><USER9> Glad to hear it! Some details about the tech stack:

* Front-end code is compiled from Python to JS with Skulpt ([http://skulpt.org](http://skulpt.org))

* The back-end code runs in a custom Python sandbox. Calls to server functions go over a secure web socket (this lets us do fun things like returning database rows directly from server functions, rather than faffing with REST APIs all day)

* The built-in database (Data Tables) is based on Postgres, using its JSONB and GIN indexing to create a table you can search efficiently on any column. This also means that things like transactions are properly robust.

<comment><USER50> Interesting. I've been looking for alternatives to React or Angular for some time. I've enjoyed playing with Elm recently. My preferred back end is Python Tornado RethinkDB, so browser GUIs in Python is appealing. I looked at [https://github.com/skulpt](https://github.com/skulpt) and it looks like the compile to JS step happens on the client side, unlike Elm. What's performance like?

<comment><USER9> Strictly speaking, that compilation happens in JS, not necessarily client-side ;)

(Right now, it does run in the browser, but we'll be moving it to the back-end soon to improve performance. For now it's good enough.)

<comment><USER51> As far as I can tell, the footprint is around 1MB for the combined skulpt- min.js and sculpt-stdlib.js (not sure why the latter apparently isn't minified). That's pretty huge and makes for a large barrier against using Anvil for a public-facing app. Moving the compilation to the back-end would eliminate the footprint problem -- or would you still have the stdlib running in the client? Any further comments on footprint issues? As it is, we're talking about about two orders of magnitude bigger footprint than some javascript options.

<comment><USER51> Also, can you give any estimate at al as to when you'll have client-side compilation working?

</comment></comment></comment></comment></comment></comment><comment><USER52> the editor is really nice, it's ability to sense what I am about to type is borderline magic. It'd be cool if that were open sourced, but I understand if few to none of this is going to be since they're trying to bootstrap a business.

<comment><USER9> Thank you! When the PyCon UK lightning talks go up on YouTube, you'll be able to see my talk from last night about how we built that autocompleter.

Bottom line: Traditional web dev has starved us of decent tool support. Give us even a really basic autocompleter (especially one that knows about what's happening in the server and database) and it feels like borderline magic :)

</comment></comment><comment><USER52> I have been looking for this for a while now! Going to tinker with it.

</comment><comment><USER53> Who owns the source code?

</comment><comment><USER54> I searched the documentation URL with Google for the word "tenant" and it returned no results. Does this mean that Anvil does not support multitenancy, for SaaS sites?

<comment><USER9> Are you looking for this? [https://anvil.works/blog/multi-user- apps](https://anvil.works/blog/multi-user-apps)

Multi-tenant/single-DB is a pretty common and straightforward pattern with a lot of support in Anvil (eg restricted views, as described in the video).

I'm also currently working on a multi-part video series, showing the creation of a SaaS product, from scratch to monetisation. Sign up for our mailing list, and watch this space :D

<comment><USER54> Much obliged. I will look to see if this can be extended to provide logical groups of users for the same resource.

<comment><USER9> Yes, it can! Check out the "Secure download portal" example app at [https://anvil.works/learn#examples](https://anvil.works/learn#examples) \- it's got group-based access control.

(Nothing magic - it's just a database. Even user records are just table rows, so you can link or categorise them however you like!)

</comment></comment></comment></comment><comment><USER55> Sounds a lot like what [http://www.rubymotion.com/](http://www.rubymotion.com/) was doing for iOS apps.

</comment><comment><USER56> This is awesome! But, I wish there's one similar for Ruby - as I'm not sure if I want to learn Python now that Ruby is in my toolchain.

</comment><comment><USER57> Awesome work. Skulpt says it currently handles Python 2, and not the full 2.7. How long until that is fixed?

<comment><USER9> Compiling Python to Javascript is always going to be incomplete. (For example, it doesn't make much sense to open() a file from the browser!)

However, we run full CPython (2.7 and 3.6) on the server, so any language feature you like is just a function call away :)

<comment><USER57> Ok, so I can run 3.6 code on the server and return the output?

As Py2 is EOL in about two years it feels risky for anything to be built on it.

<comment><USER9> That's exactly what you can do! If you open up a Server Module, you'll see a drop-down in the top-right. That will allow you to select a Python 3.6 runtime.

The client-side code is Python 2 only for now, but we're already upgrading our Python-to-Javascript compiler to include Python 3 syntax.

<comment><USER58> Are you looking at Transcrypt [https://www.transcrypt.org/](https://www.transcrypt.org/) as a replacement for Skulpt at all? Because its here and it already works great for Python 3.6, it just needs more usage to develop workflows and examples around it and tools like Anvil are a great way to get started with any technology.

</comment></comment></comment></comment></comment><comment><USER59> This looks interesting but I would never lock in myself to a proprietary platform completely.

</comment><comment><USER60> Please do jupyter -> webapp. that's a ready market for you.

<comment><USER9> Funnily enough, we had someone build a web-app out of his Jupyter notebook just two days ago. And it only took him a couple of hours:

[https://twitter.com/anvil_works/status/924352019258920960](https://twitter.com/anvil_works/status/924352019258920960)

He just copied and pasted his code from the notebook into an Anvil server function, and it ran first time! It's all just Python, at the end of the day.

</comment></comment><comment><USER61> I would pay double if the app produced was a progressive web app.

</comment><comment><USER62> i met these guys at pycon. they are very responsive to feedback.

<comment><USER9> Hello! I don't recognise your username, but might recognise your face. Hope you enjoyed the con :)

</comment></comment><comment><USER63> This is Awesome,been trying to build something like this

</comment><comment><USER64> Doesn't seem to work with firefox :(

<comment><USER9> (founder here)

Urk? Firefox is an officially supported platform for the editor. What didn't work, and what version of FF are you using?

Once you've written an app, it should work in everything since IE11.

<comment><USER44> (another founder here!)

We've now been in touch by email about this bug, and we'll make sure a fix is pushed ASAP!

<comment><USER44> Update: Turned out to be an old version of Firefox. Upgrading made the error go away.

</comment></comment></comment></comment><comment><USER65> Is this like R's Shiny for Python?

</comment><comment><USER66> Am I the only one who things this is a really really bad idea?

The world does not need more interpreted languages on the backend.

Visual UI layout is cool for beginners but almost useless for serious projects. Plus if you're a beginner (or a non-programmer) maybe an existing CMS is better? e.g. WordPress.

If a project started with this tool was to ever evolve and get big, I can't imagine that maintaining it will be anything but a nightmare.

<comment><USER67> I am sure you are not the only one who thinks it is a bad idea. But I disagree with you. I think the future of programming (or I should say, one branch of it) is making programming easier, and letting the computer do more work. I definitely think working in this direction is a good idea.

Regarding CMS, I view those as high level languages. And in that regard I think we can improve on them a lot.

<comment><USER66> > I think the future of programming (or I should say, one branch of it) is > making programming easier, and letting the computer do more work.

I think this is already what is happening. Computers now are _orders_ of magnitude faster than they were 15 years ago, and yet fundamentally nothing really got better. We just have more people producing lesser quality programs. While producing something is easier than before, the new things are not necessarily of good value, because a lot of the tools that enable this are layers upon layers of abstractions and virtualization (e.g. Electron).

I'm not sure that this is any good.

And fundamentally this is not that different from VB6, for example.

<comment><USER33> There was a time when typing a document in your computer meant you have to know an macro language (remember wordstar?) ... the current state of programming is such and a big barrier for non programmers. We need to make it easy just like MS word made it easy to type complex documents in the computer.

<comment><USER66> Writing documents is a use case for the general public.

Writing code is not the same. In general, programming tools _are_ getting better (text editors, debuggers, IDEs, etc).

The only barrier to non-programmers is learning how to program.

It's the same with writing. The tools _are_ available. But you still need to know how to write. I mean how to put words together in a way that people would want to read.

</comment></comment></comment></comment></comment><comment><USER68> Coudn't find the download link inside the members area. How do you install it?

</comment><comment><USER69> Anvil looks like the Wix of python sites.

personally, I'm going to stick to flask and django.

this is nice and all... but you still have to learn python to get it going. My preference is to learn Python/Flask via books, tutorials, and as part of a big community (websites/forums, IRC, etc).

But... I really don't see the benefit of this, even after watching some videos.

the drag and drop stuff? that's just html and css (child's play)

python? that's still python.

I'd much rather just open a blank Ubuntu 16.04 server on DigitalOcean and pull my repository from github. I.e. work like a real developer :)

I wouldn't mess with Anvil, personally. I'd prefer to do code by hand, with a framework that has been around for a while.

<comment><USER11> I love Django and flask. I'm an expert at both. I train people at both.

But come on. 6 minutes with DB, responsive design, registration (including social auth or AD) and online deployment ? I can't top that. No even close. Even with boostrap and pythonanywhere. And I know the freaking API by heart while most people are just trying to figure out what's going on.

This stuff is amazing for somebody who just want to fiddle with a CRUD app. The ratio investment / return is crazy.

<comment><USER70> And the thing that a lot here are missing is the integration aspect. If you have team members who aren't coders, they can still participate with the drag- and-drop UI builder. Anvil is definitely on the right track here, I'm not a fan of drag-and-drop UI builders, but can definitely see how useful it would be for a product person on my team being able to jump in and make changes to the UI without needing to tap me on the shoulder. That being said, I'd prefer a code-based representation of the UI and didn't see anything like that -- would be interested in knowing if I can build UIs via code alone.

Wish Django had a mature integrated client-side UI toolkit like this, I'm amazed given how advanced django.contrib.admin is that the Django team hasn't already generalized much of the admin components. If anyone is aware of something like this already let me know, with React eating the world it looks like DRF + React is the only way to go these days..

<comment><USER9> _> would be interested in knowing if I can build UIs via code alone_

Yes you can! Check out all the code examples in: [https://anvil.works/doc#forms](https://anvil.works/doc#forms)</comment></comment></comment></comment>


Ask HN: Help me find a piece of advice given here about avoiding time-wasters - <AUTHOR>

There is a great comment here about weeding people who are time-wasters.
Someone described how most people that always want to meet and discuss things over coffee are all talk and no action. To separate the wheat from the chaff, the advice is roughly:
Say you're keen to meet up, but ask them to complete a small preparatory piece of work (this was phrased slightly differently). Ask them to get in touch when they're done. The majority of people don't follow through.
I have been searching for a good hour and can't find the source, which I remember as being a very well written piece of advice. If you have it bookmarked I would very much appreciate you sharing it with me. <comment><USER2> I don't remember the exact reference on HN but there was a similar discussion on Quora which you might find useful.

[http://www.quora.com/Etiquette/How-do-you-politely-turn- down...](http://www.quora.com/Etiquette/How-do-you-politely-turn-down-someone- who-wants-to-grab-coffee-sometime)</comment>


Open Location Code: Easier location encoding - <AUTHOR> http://openlocationcode.com/ <comment><USER3> Makes me think of what3words.com

edit: why they're taking a novel approach: [https://github.com/google/open- location-code/wiki/Evaluation...](https://github.com/google/open-location- code/wiki/Evaluation-of-Location-Encoding-Systems)

<comment><USER4> The big advantage over w3w is that this is open. Proprietary addressing systems are a bad thing for fairly obvious reasons.

<comment><USER5> The other advantage of this over w3w is that it the encoding makes any kind of sense.

w3w's feature where it moves an address onto a different continent because you forgot to pluralize a word is the worst idea for an address encoding.

<comment><USER6> It was actually by design, so you know you have the wrong place. We already have systems like postcodes where small changes result in small geographic offsets and they have major downsides too.

Geocoding seems really simple until you have to build one and have customers use it.

<comment><USER5> Geocoding is probably simpler if its users aren't "customers".

Lots of systems have checksums. It appears to me that what3words's complexity is designed to make it intentionally difficult for someone else to reimplement.

</comment></comment></comment></comment></comment><comment><AUTHOR> Additional info:

[1] [https://plus.codes/developers](https://plus.codes/developers) \- Plus codes are based on Open Location Code (OLC, for short), an open-source project initiated by a group of Google engineers.

[2] [https://github.com/google/open-location- code/blob/master/doc...](https://github.com/google/open-location- code/blob/master/docs/olc_definition.adoc) \- Definition document - <USER2> Location Code: An Open Source Standard for Addresses, Independent of Building Numbers And Street Names

[3] [https://github.com/google/open-location- code](https://github.com/google/open-location-code) \- Github repo

[4] [https://plus.codes/howitworks](https://plus.codes/howitworks) \- How it works

</comment><comment><USER7>
      Making a mistake with a code may simply display
      somewhere else - for example, on What3Words,
      "banana rabbit monkey" is a location in Argentina,
      "banana monkey rabbit" is in Russia.

Yes, and the open location code 6GCRPR6C+24 is in Nirobi, while 9GCRPR6C+24 is in Russia. Similar when I make a mistake in a UK postcode (N6 = London, M6 = Manchester)

<comment><USER8> So the real problem, then, is not the coding system, but rather that humans are involved at all.

<comment><USER7> A checksum would help and give immediate feedback that the code was entered wrong.

</comment></comment></comment><comment><USER9> Oh, it's like the Grid Square system that Ham Radio operators use: [https://en.wikipedia.org/wiki/Maidenhead_Locator_System](https://en.wikipedia.org/wiki/Maidenhead_Locator_System) Just with a greater precision since it seems to go down to a very localized area, such as a building.

</comment><comment><USER10> After reading their evaluation document, I kinda see the use case. I personally find the mix of letters and numbers a little annoying though.

I think it would be better to use only letters for the first 8 symbols (perhaps after getting rid of some particularly confusing ones like "I"), and only numbers for the rest.

This way you don't need the plus, can use all 10 digits without a chance to confuse them with a letter, remove more potential letter-digit mixups such as 6/G or 7/F in some handwritings, and most importantly make the whole thing a lot easier to say (e.g. over the phone), write (on a phone keyboard you would need only one switch between numeric and alpha layouts, you _do_ want this to be easily texted!), and remember (it's easier to remember a sequence of just letters followed by a sequence of just numbers, imo, even if it's one or two characters longer)

<comment><USER11> In many parts of the world they use different alphabets - Cyrillic, Arabic, etc

<comment><USER10> True, and definitely an argument to consider full numeric. I am sure they've thought about that already and decided against though, so I didn't want to go that far.

Also, in practice today there are not many people anywhere in the world who are not at least somewhat familiar with the Latin alphabet to the point they wouldn't be able to recognize/read/write the letters, and (possibly excepting a few old typewriters here and there) people would generally be able to enter letters of standard Latin alphabet into whatever devices they are dealing with.

</comment></comment></comment><comment><USER12> Is there an advantage over the already established Maidenhead Locator system? [1] Form a first look it seems very similar.

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

<comment><USER13> According to their evaluation [1]:

 _" Maidenhead Locator System codes explicitly represent areas, and can be truncated in a similar way to Open Location Codes. The accuracy and length of the codes is similar, but Maidenhead Locator System codes include vowels and so the generated codes include words"_

 _" Maidenhead Locator System codes are based on an interleaving of latitude and longitude, and so are truncatable, and nearby locations have similar codes. It is only formally defined to a length of 8 characters."_

This suggests (when compared with their 'desired attributes' [2]) that their innovation over it is increased precision, and a different symbol alphabet to reduce profanity.

[1] [https://github.com/google/open-location- code/wiki/Evaluation...](https://github.com/google/open-location- code/wiki/Evaluation-of-Location-Encoding-Systems#maidenhead-locator-system- mls) [2] [https://github.com/google/open-location- code/wiki/Evaluation...](https://github.com/google/open-location- code/wiki/Evaluation-of-Location-Encoding-Systems#desired-attributes)

<comment><USER14> How did you conclude from "The accuracy and length of the codes is similar" that it has increased precision?

</comment></comment></comment><comment><USER15> Off-topic, but does anyone know how this website was created? It seems too much of a coincidence that it looks nearly identical to [https://www.passwordstore.org/](https://www.passwordstore.org/).

<comment><USER16> GitHub Pages Slate theme

[https://pages-themes.github.io/slate/](https://pages-themes.github.io/slate/)

<comment><USER15> Thanks!

</comment></comment></comment><comment><USER17> > Each place has only one code.

This doesn't really seem to be true in practice. For a reasonably large building, it seems like I could end up with two codes which for all practical purposes, are equivalent.

<comment><USER18> "place" is very ambiguous. technically, a place might include several "regions". at the same time, a big building can have several entries, which can be referenced with different codes. and still, codes can vary in length and hence, resolution.

but I agree that the sentence itself is a bit confusing and very not technically meaningful or informative.

<comment><USER19> I think the point they're trying to convey is that no two codes resolve to overlapping rectangles.

In my town there are two zip codes, but both of these are handled by the same post office, so it doesn't really matter which one you use. This can cause confusion though. Ensuring that multiple codes don't resolve to the same place (i.e. rectangle) means that there isn't this confusion.

</comment></comment></comment><comment><USER20> latitude,longitude up to the 5th decimal point is easier to remember. and more intuitive.

<comment><USER21> lat,lon doesn't have any precision attached to it. Also, you might be surprised how many times people get them reversed. Hey, even geojson encodes it as lon,lat.

Also easily normalizing (lat,lon)s isn't so straight forward.

And then there's subtleties when people are actually not using the WGS84 but a crs/datum one shifted a few tens of miles.

Sort of surprised that nobody compares this to geohash[0], though.

I hope that Google will be throwing its weight behind it (seems so for now) and proposes a rfc for this so we can stop bikeshedding about geo encoding standards.

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

<comment><USER20> Geohash is a great idea, but at the end of the day all these systems are a mapping to latitude,longitude. The lat,lon precision can be derived from the number of digits after the decimal point. The main argument for the existence of these systems is that lat,lon is hard to remember. Here is a simple solution, convert any lat,lon pair to an easier to remember pair (ie a pair where numbers are repetitive, consecutive, etc).

for eg: 45.89988,-64.36288 -> 45.9,-64.363

and so on. It is a simple hack making ll memorable without sacrificing much accuracy.

[https://geocode.xyz/45.89988,-64.36288](https://geocode.xyz/45.89988,-64.36288)

</comment></comment></comment><comment><USER22> Good, now we just have one more format in addition to all the existing ones. (I'm too lazy to look up the xkcd link).

<comment><USER7> You probably mean the one about the 14 standards [https://xkcd.com/927/](https://xkcd.com/927/) but there's one even more relevant about creating a geohashing algorithm [https://www.xkcd.com/426/](https://www.xkcd.com/426/) Truly there's one for every nerdy occasion.</comment></comment>


Quick scan through lobsters's source code - <AUTHOR> https://localhostdotdev.com/lobsters/ <comment><USER2> This is a cool overview! One suggestion: if you want your links into the Github source to point to the same code in the future, you should change `.../blob/master/...` in all your links to `.../blob/a7cc60b902a2ad3e39f75ae9b4c3ef08712fc171/...` (I just picked the latest commit).

<comment><USER3> And you can press "y" to get that automatically when viewing a file on Github!

<comment><USER4> cool trick!

</comment></comment></comment><comment><USER5> I've been lurking on lobsters for some time now, I love it as a secondary layer to checking HN. I use laarc in a similar manner as well. Never seeked out an invite to post on it though.

Having tiers of popularity to the content you consume is important to me. It allows you to take in smaller and more meaningful input from people you are at least familiar with their names (and possibly personalities,) and allows you to inject your viewpoint on something just the same.

</comment><comment><USER6> Edit: thanks for the invite!

</comment><comment><USER7> Interesting note on PostgreSQL. I had tried to make it work before but had assumed it was a failure in my setup and I planned on going back to it.

Oh well. :(

<comment><AUTHOR> I removed it but I think quite a few people (including me) tried to make it work with postgres (I did a lazy attempt where the search doesn't work)

[https://github.com/localhostdotdev/lobsters- postgresql](https://github.com/localhostdotdev/lobsters-postgresql)

<comment><USER7> I found another more modified version here: [https://github.com/pyk/0xblockchain](https://github.com/pyk/0xblockchain)

They claim to be using PostgreSQL in production, certain irony that (at time of writing) their site is down. :(

</comment></comment></comment><comment><USER8> Why is reading my source code on the front page of HN? Oh, wait, never mind.

<comment><USER9> you're labster

</comment></comment><comment><USER10> I was expecting to read about mapping crustaceans connectome here.</comment>


Google Will Help Publishers Prepare for a Chrome Ad Blocker Coming Next Year - <AUTHOR> https://www.wsj.com/articles/google-will-help-publishers-prepare-for-a-chrome-ad-blocker-coming-next-year-1496344237 <comment><USER3> This is somewhat concerning to me. While I'm all for blocking obtrusive and obnoxious ads, I'm not sure I want Google using it's position as a web giant and browser vendor to push these standards by default via Chrome.

An open web means I can host whatever (legal content) I want on my website and people are free to view it or not view it if they find it undesirable. Current ad blockers play well into this scheme because they protect the end user's right to view content in the way that they want.

This move by Google on the other hand is telling websites that they have to play by Google's content rules or have their website broken by default.

I'm not sure that's the web that I want to live in.

<comment><USER4> This move is mainly about making sure their own ads don't get blocked because of people trying to escape the bad behavior of others. But like you, I have doubts about an ad blocker created by an advertising company.

<comment><USER5> _I have doubts about an ad blocker created by an advertising company._

Right. Once Google gets this deployed, watch them remove ad-blocking add-ons from the Google Store.

<comment><USER6> i'm concerned about this as well, but i'm fine letting Chrome function simply as a dev tool and actually browse with Firefox, Opera, Servo, etc. w/uBlock Origin & uMatrix

<comment><USER7> Firefox has some pretty nice dev tool extensions.

<comment><USER8> It won't for long when they deprecate their extension API and move to Chromes...

<comment><USER9> The dev tools are built into Firefox by default. So what do you base your claim on?

<comment><USER10> pretty sure he was talking about the extensions that extend them though. firebug comes to mind.

<comment><USER9> Firefox DevTools was built from Firebug, which is why they no longer develop Firebug. See the Firebug website: [http://getfirebug.com/](http://getfirebug.com/)

And here's some more history: [https://hacks.mozilla.org/2016/12/firebug- lives-on-in-firefo...](https://hacks.mozilla.org/2016/12/firebug-lives-on-in- firefox-devtools/)

<comment><USER11> No, Firefox Dev Tools is a completely seperate project historically. Firebug version 3 and up built on top of it, but that's the only connection (beyond commonality in tool function).

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> I used to work for a small company that did print (and web) medical journals targeted at dentists and dental professionals. We handled all the ads ourselves and hosted the images on our server as any other image. This meant we were basically impervious to adblock. Except for the occasional iframe embedded ad that was given to us by the client we basically never had an issue with adblock.

Same thing on a nightlife website I worked on. Ads hosted by others were blocked but our own hosted ads were never a problem.

Granted our own ads also had zero chance of being hijacked by a bad actor since they were simple  ads.

If only everyone did this we wouldn't be having this arms race.

<comment><USER13> I wonder if eventually ad companies will just host the content themselves. Or at least route it through their servers. The ads then get served through the same domain and can't be blocked that way.

But that only defeats simple adblocks that blacklist domains. It's theoretically possible to make an adblock that detects ads through machine learning and removes them. Doesn't matter where they are hosted.

But advertisers can run scripts to detect modifying the web page and stop it. So adblock would have to move to having a headless browser that renders the page, and then copies it and removes the ads.

Then the advertisers would have to try to trick the machine learning itself. Adversarial machine learning is a thing, with neural networks trained to fool other neural networks. And images that are highly optimized to exploit subtle defects in other neural networks.

As ML ad detection improves, the only way for ads to get past it will be to make ads that look more and more like real content, even to the human eye. Perhaps in the limit, ads and content will become completely indistinguishable.

<comment><USER14> > I wonder if eventually ad companies will just host the content themselves. > Or at least route it through their servers. The ads then get served through > the same domain and can't be blocked that way.

This is already happening. Further, embedding paid for content in the middle of original content at the server side is also already happening.

> As ML ad detection improves, the only way for ads to get past it will be to > make ads that look more and more like real content, even to the human eye. > Perhaps in the limit, ads and content will become completely > indistinguishable.

This is also already happening. Brand placement deals are nothing new to advertising and they are basically table stakes to most content purveyors.

The real question isn't if those things are going to happen, its how those sorts of deals will handle the analytics side of the equation. How will you prove that your instagram feed is the best place for the yoga pants provider to spend their marketing budget?

</comment></comment></comment><comment><USER15> Google's official announcement on their blog: [https://blog.chromium.org/2017/06/improving-advertising- on-w...](https://blog.chromium.org/2017/06/improving-advertising-on-web.html)

IMO, if Google's goal is to improve the web experience, it would be much better if Chrome was spun off into a non-profit of its own, and not controlled directly by Google.

A non-profit not directly controlled by Google would eliminate the major conflict of interest that is:

1) Google is the biggest ad publisher/network in the world. 2) Google controls the majority of web browsers today. 3) Google will control how ad blocking is implemented, managed, corrected, adjusted, etc., as they see fit.

<comment><USER16> Google already made Chromium completely open source. Anybody's free to fork it and move it in any direction they want.

As for Chrome, it's likely worth many 10's of billions of dollars. It would be absolutely indefensible to throw it away, especially when there are so many yet unexplored avenues to improve the web without requiring such massive and unneeded sacrifices.

<comment><USER17> So how do I go about e.g. removing telemetry from Chrome's mainline?

<comment><USER18> Chrome isn't open source. I'd say that if you decide to use Chrome you're accepting fact that you're using closed source program with Google's proprietary telemetry baked in.

<comment><USER17> That's basically my point re GP's claims that it is open source (1) and therefore no split were needed (2)

</comment></comment></comment></comment></comment><comment><USER15> "auto-playing video ads with sound and "prestitial" ads that countdown before displaying content."

I guess Google will have to block ads on Youtube as well, not only does it have auto-playing ads with sound, but they block the display of content (prestitial/pre-roll).

Oh wait, Google standards never affect Google.

<comment><USER19> I think there's a clear difference between an ad that plays sound as part of watching a video with sound, and as part of browsing a website that doesn't have sound / where the ad plays sound over the actual content.

<comment><USER20> So all you would need to do to make your autoplay video ad acceptable is place some of your content after it?

<comment><USER21> News websites already do things this way (have a text version of a news report, with an auto-playing video version of the same report embedded somewhere on the page, that has a pre-roll ad.) I'm not sure how Google will view that—I think it might come down to whether the user was _expecting_ the video version of the news report.

</comment></comment></comment></comment><comment><USER22> This is a good thing. Ad blockers as they are today don't work because the "block everything" approach is not sustainable.

Advertising is a good model, it works, but the implementation leaves a lot to be desired. Ad blockers, by being selective, can actually act as an agent of change by forcing the market to move towards the formats people actually prefer.

Ad Block Plus attempted to do this with their pay-per-play whitelist approach but that obviously has major issues since it didnt have realistic goals, wasn't transparent, and clearly let crap through anyway.

I wish the ad standards also included outstream video (the autoplaying video ads inside of an article) but this is a good start.

<comment><USER23> Ad blockers work just fine. It's very rare for an advert to make it past the filters, and it will be quickly fixed if it does. The preferred format is "no ads". The web existed before ads and it will exist after ads. It's not my problem if you've built a business around the unethical practice of manipulating people into buying things against their own interests.

<comment> tuna-piano Wow.

A- Ads do not manipulate people into buying things against their own interests. Businesses who sell great products that people want don't just magically find their customers. They find customers with ads.

B- You're free to use an ad-blocker, and websites are free to block your use of the site.

C- I assume you enjoy the web, and that a lot of effort is put into the sites that you enjoy. Do you expect all of this for free?

<comment><USER24> A - counterpoint: Great products can succeed without ads. The customers find YOU. Crap needs to be advertised.

B - yup, and bye

C - <USER2>

"Content" of any type is just not worth much anymore. It's plentiful and cheap. What's worth something is eyeballs.

As the price of content, of all sorts, approaches zero, the work is taken over by amateurs. Old timers have seen an amateur web and are absolutely not afraid of its coming back.

<comment><USER22> > Great products can succeed without ads.

This is exceedingly rare and anyone at a major company will tell you that marketing and sales is usually more important for success than the actual product and it's qualities.

<comment><USER25> Prime example: oracle

</comment></comment></comment></comment></comment></comment><comment><USER26> This is such a giant genie to try to put back into the bottle with Adblock usage growing 30% last year and accounting for 10-12% of total worldwide users. How do you convince those people to worsen their experience - but only slightly - toward the noble goal of letting content producers monetize? Or do advertisers just consider that a lost cause at this point?

The real question is whether Chrome will get more draconian and start preventing competing ad blockers in the browser.

[1] [https://pagefair.com/blog/2017/adblockreport/](https://pagefair.com/blog/2017/adblockreport/)

<comment><USER13> They don't need to be more draconian. Just like they do now, they make their adblocker the first option in search results and the webstore.

</comment></comment><comment><USER27> This sounds like a conflict of interest. [http://www.investopedia.com/articles/investing/020515/busine...](http://www.investopedia.com/articles/investing/020515/business- google.asp)

On the other hand, I feel like we've been here with Google before, and they've generally done The Right Thing[tm]. How do we generally feel about people using this? Has Google done enough right that we might feel comfortable with them doing this? The general sense of other comments looks fairly bleak.

<comment><USER28> Why would it be a conflict of interest? They're probably going to block all ads that aren't their own/"approved" or something similar to that.

<comment><USER29> It's impossible for them to treat competitors' ads different from their own. That chrome update wouldn't have time to download before they got dragged to court by every ad network, the European Union, and the Department of Justice.

<comment><USER30> _maybe_ the European Union.

The DOJ has clearly given up the ghost of even _attempting_ to regulate US companies, and the current political news is just more evidence in that direction.

Google can draw out these lawsuits for decades while continuing their practices with impunity. They already have two _incredibly well studied_ playbooks to draw from: Microsoft v DOJ and SCO v IBM.

</comment></comment></comment></comment><comment><USER31> I think the next move will be disabling other ad-blockers from the chrome plugin store with an excuse that it "will interfere with native chrome functionality"

<comment><USER32> There are no plugins available for mobile chrome anyway, which is where I do 90% of my surfing. If anything this half-assed ad blocking will drive people to Firefox where you can block ads (and trackers and auto delete cookies etc) properly.

<comment><USER33> You can use system-level addons that will filter a web traffic, providing that you can trust the publisher.

</comment></comment></comment><comment><USER34> Considering Chromes market dominance I think this move is highly problematic from a legal point of view, as it will allow Google to effectively ban certain ads from the web at its own discretion. While this might be a great idea if it's really targeted at "obnoxious" ads, it also gives Google a perfect handle to force publishers into their ad ecosystem (because surely Google ads could never be obnoxious) while driving down impressions and revenue for its competition.

I would be highly surprised if this will not incur a swath of class action lawsuits and another anti-Trust investigation by the European Union and possibly the US.

Again, ad blocking is good and important, but the people who build the ad blockers should not run an ad business on the side.

<comment><USER35> I agree but I wouldn't be surprised if nothing happens in terms of anti-trust. Google has a monopoly on search in EU, and is leveraging this monopoly to gain a monopoly in other areas (e.g., ads on the Google Search homepage telling people to use Chrome), which I think is clearly problematic. This has been going on for years but nothing happens about it...

</comment></comment><comment><USER36> Ad-supported tech company employee#1: Users are blocking ads.

Ad-supported company employees: Uh-oh.

Ad-supported tech company employee#2: We can use this as an opportunity to block our competitors ads!

Ad-supported tech company employee#3: We might win some goodwill with users, too!

Example tech companies: Apple Brave Google etc.

Naive user: Oh well, I guess we just have to accept whatever the tech companies give us.

Real answer: No, users are actually the ones in control. That is why ad blocking is causing these companies to take action.

</comment><comment><USER37> As was previously discussed when this was first rumored, this is just begging for an anticompetition lawsuit of gigantic proportions as Google is using their dominant control of web browsers to block their competitors' ads from working.

It is one of the most clear examples that the only way to remediate the differences between Google and a law abiding corporation is to break it up.

EDIT: I think the strong feedback from everyone I've seen when this was first rumored was that this idea was concerning and likely illegal, and yet Google is proceeding anyways. I feel that should dismiss any notion that Google or the industry as a whole has the ability to self-regulate.

To detail, I think Android and Chrome need to both be legally/forcibly detached from Google. Android could easily operate on funding from the OEMs that use the platform and the Play Store, which would go with it, and Chrome could use Mozilla's model, including letting companies like Google and Yahoo bid for the default search. (And obviously, would be prohibited from picking Google Search if it isn't the highest bidder.)

Dominant platforms being tied to dominant services is just too large a conflict of interest.

<comment><USER29> It will be illegal only if and when they actually treat competitors' ads differently than their own.

A good case study is AMP, which allows embedding ads and was, from the beginning, made to be integrated with competing ad networks.

The potential for anti-competitive behaviour is so obvious, that Google probably takes a lot of care to crossdot all its legal i's and t's.

<comment><USER37> But bear in mind: They're largely responsible for setting the standards by which these ads will be treated. Therefore, the standards will obviously be set in a manner that all their own ads will comply, and other businesses must change their business to suit Google's expectations or be blocked.

Bear in mind, ads are like over 95% of Google's business, they would not be doing this if they thought it would impact their own ads _at all_.

And since, by design, the standards will never go after Google ads, as a site owner, your best bet to not have your ads blocked will be to 'just' go with Google as your ad provider.

</comment></comment></comment><comment><USER38> Companies that sell both the poison and antidote are not remembered fondly in history.

</comment><comment><USER39> I don't care about "popup ads". I already use adblockers so I never see them.

What I want to really see is blocking those popup "sign up for newsletter" modal.

<comment><USER40> What's even worse is that special Chrome feature where the site asks you to allow it to send you notifications. It's a tiny window with a single button "accept" and a minuscule "x" for closing it that is light gray on white (hard to even see). What is missing is an option to reject all site subscription/notifications and never have to deal with that kind of intrusive offers again. They're not even popups or in-page popups, they are part of the browser UI. So it's an officially allowed way to send "popups" and pester people for subscribing. Many newspapers in my country use this shit technique.

<comment><USER41> Doesn't the "Do not allow any site to show notifications" setting cover that?

chrome://settings/content#notifications-section

</comment></comment></comment><comment><USER42> News like this makes me glad I've moved entirely to edge. It has ublock and lastpass and RES. It's as fast as Chrome and much more responsive than Firefox. There are some bugs but Microsoft is doing a good job of gradually ironing those out. That's enough for me.

</comment><comment> real-hacker I think the ad-based business model for internet companies could possibly be toppled in the next few years: 1\. The ads are becoming increasingly ineffective, the CTR keeps falling, even as the ads are being personally customized. People are growing biological ad-blockers that block ads subconsciously. There is an interesting theory of "Peak Advertisement": [http://peakads.org/](http://peakads.org/). 2\. The value of digital assets/services are being recognized, and people are more willing to pay for online services.

So maybe in the future internet companies will rely more on customer's subscription fee + ads that are more transparent (sponsored content).

<comment> real-hacker Also, this is a video that argues for ad-blockers from an ethical perspective: [https://youtu.be/bltoTMJZetc](https://youtu.be/bltoTMJZetc).

</comment></comment><comment><USER43> From the article:

      > While blocking pesky ads is appealing to consumers,
      > it also threatens a vital source of revenue for publishers

Are "pesky ads" really "a vital source of revenue"? Is there any data? Everyone I know hates them, especially the autoplaying videos, animations, and pop-ups (the "pesky" ones). Are you saying that there are people who see these things and say, "Oh, that's interesting," and clicks the ad? Furthermore are you saying that there is a "vital" number of these people in the world?

I believe that if anything, depeskifying ads will bring advertisers more success. I have always believed that intrusive ads were a lose-lose proposition. Not only do readers lose by being bothered, but advertisers lose because such ads make people just look away. Furthermore it makes people hate your website, tarnishing the brand. I, for one, am starting to remember at least some websites that are especially rude with ads, and I won't click the link if there is a choice (like on Google News).

I remember many years ago when Google first insisted on text-only ads, relegated to the right side of the page so they were clearly advertising. Everyone thought Google was crazy. Billions of dollars later, people think Google is on to something. It was the most tempted I've ever been to click an ad (I still don't think I did, though). Because they weren't flashing, I didn't immediately ignore that whole area, an automatic response that most of us have developed. And so some of them I actually read. And because they were narrowly targeted ads, based on the words in my search, they were more interesting.

In other words, if publishers switched to text-only ads, I bet their click- rate would go up. Maybe a tasteful still picture would be okay. I'm thinking of what is in newspapers and magazines. I actually used to look at some of their ads (back in the ol' paper days). I even enjoyed some of the more artistic or clever ones. The only times they annoyed me is if there were too many of them or it was those loose-leaf subscriptions cards in the middle of a magazine (pre-internet pesky ads).

<comment><USER22> Yes, those "engaging" ads as marketers say tend to have better metrics precisely because they're designed to.

All these autoplaying videos have more video starts, completion rates and more time in view - which is obvious since it's forced and not voluntary - but add in layers of agencies and clueless CMOs and you have the situation today where this kind of format takes over the market.

Also not every or even most advertising is about sales or direct response. There are billions spent on general awareness and top-of-funnel product consideration so clicks and other actions beyond viewing the ad are not necessary.

<comment><USER44> The problem here is that marketers are only measuring click through. If they measured other metrics in addition I wouldn't be surprised if these ads had negative value. I personally put any company that engages in annoying advertising on my mental shitlist, and avoid purchasing anything by them whenever possible. Unfortunately, that behavior doesn't show up clearly on analytics.

<comment><USER22> They're not, as I mentioned in my comment. Clicks are common but not the only metric. Plain old impressions are still widely used and with video it's usually time played or views (completed play through).

Annoying advertising shows up great in metrics because it gets so much attention (which is what makes it annoying in the first place). It's a self fulfilling prophecy for advertisers and agencies and a result of a major lack of proper oversight, incentives or regulation in this industry.

</comment></comment></comment></comment><comment><USER45> I feel like "Help" and "Ad Blocker" need scare quotes around them.

</comment><comment><USER46> I'm trying to understand Google's new rules... From what I can tell they have published the set of prohibited practices here:

[https://www.betterads.org/standards/](https://www.betterads.org/standards/)

It weird language... they say things like "Included ad experiences tested: Auto-playing in-line video with sound" and "The Better Ads Methodology has not yet tested video ads that appear before ("pre-roll") or during ("mid-roll") video content that is relevant to the content of the page itself."

I _think_ that means pre-roll is OK if it fits into the content, but auto- playing inline video with sound is not.

It would be nice if they could just say explicitly what the rules are. Instead I guess you are supposed to use the Ad Experience Report tools: [https://www.google.com/webmasters/tools/ad-experience- deskto...](https://www.google.com/webmasters/tools/ad-experience-desktop- unverified?hl=en)

<comment><USER47> > The Better Ads Methodology has not yet tested video ads that appear before > ("pre-roll") or during ("mid-roll") video content

Funny that they would have a special rule for this kind of ads, that's exactly what Youtube does ... (Except that for me it usually is completely irrelevant, like ads for cosmetics or video games in the middle of a chemistry video.) I'm not expecting them to include this type of ads in the methodology any time soon except to find that they are totally fine.

</comment></comment><comment><USER48> Google can use the ad-blocking thing to stamp out ad-network competition.

</comment><comment><USER49> I don't know.

On one hand I applaud Google's decision[1] to put its weight against autoplay videos, prestitial ads, and huge above-the-fold ads that are the main driving factor for me and many others to install an ad blocker in the first place.

I would love to live in a world in which ad blockers are not necessary, everyone displays tasteful ads and every party involved gains something in the end.

On the other hand advertising companies are still hell-bent on tracking and profiling people by whatever means necessary to target them better with ads. They amass huge amounts of information that, if put in the wrong hands, could lead to a disaster.

This is what still makes (and will still make) blanket ad-blocking a necessity, IMO.

\---

[1] I'm ignoring the _huge_ conflict of interest for the sake of argument here.

</comment><comment><USER50> Nice ad you've got there. Be a shame if someone came along and blocked it.

</comment><comment><USER51> I would love to switch to Firefox if it only could run a little faster.

</comment><comment><USER52> That is not adblocking, it is enforcing Better Ads Standards in Chrome.

It might be useful to detect and block clickfraud sites.

Imo it will be very hard to sell it as pro user change. I would not be surprised if few would even go further and call it insulting to think people are that gullible.

For reference, the _companies_ that make up the Better Ads Coalition [https://www.betterads.org/members/](https://www.betterads.org/members/)

</comment><comment><USER53> It's kind of crazy to hear that the first mainstream browser to have a built- in adblocker turned on by default is going to be Google Chrome.

<comment><USER54> Only a dominant player could pull it off. Detecting ad blockers is kinda hard, but sniffing user agents is easy. If Edge blocked ads by default some sites might choose to block Edge users entirely.

<comment><USER55> Not really - detecting ad blockers is pretty straightforward, try to insert a DOM node that triggers their ad pattern matching then check if it's been blocked.

Not to mention spoofing your user agent is very easy! It's built into the devtools of most desktop browsers (including Edge), or can be modified by a proxy like Fiddler.

I wouldn't ever want to rely on useragent to identify a browser if the idea was to completely block that software from accessing your site.

<comment><USER54> Disagree. As blockers actively try to thwart ad block detection. Especially for popular sites, it's a losing proposition. And Microsoft is never going to ship a browser that completely steals another browser's user agent.

<comment><USER55> It's a catch 22 really - If adverts are modified or removed, the dom will reflect that. If you completely spoof that you effectively break the dom for everything else.

If you only spoof the advert's own properties, you can infer state from other inline elements.

If you block domains you can check for their response on the client.

If you proxy the incoming asset before it hits the browser and replace it's content is harder to detect client side but the ad provider will be able to see what happened and would most likely not display your modified content, taking you back to the conventional detection strategies.

</comment></comment></comment></comment></comment><comment><USER56> Blockchain will destroy ads as we know it. Can't wait for Google and FB to go downhill :D

<comment><USER57> But how? I am genuinely curious.

</comment></comment><comment><USER58> Yandex.Browser (also Chromium base) already has one. Works perfectly well, but at the same time you can't block ads from Yandex.Direct network at all. uBlock, Adblock or whatever - they will just reappear after you apply a new rule.

</comment><comment><USER59> Is that the main problem with GA or are there others: [https://news.ycombinator.com/item?id=14441740](https://news.ycombinator.com/item?id=14441740)

</comment><comment><USER60> what about porn sites blocking for kids? can chrome have a parent control mode somehow that kids can use chrome "safely" on android and on the PC these days?

<comment><USER61> This exists for Android: [https://families.google.com/familylink/](https://families.google.com/familylink/)

</comment></comment><comment><USER62> If ad revenue wasn't based on impressions and clicks no one would want to shove them in their users faces. Ad networks like Google's are the cause of the problem.

<comment><USER63> Google's tracking can be a terrible thing and we can still acknowledge that advertisers unrelated to Google do awful shit and always have. Advertising can be unethical even when payments aren't tied to clicks. Click-driven advertising makes it _worse_ but isn't _the_ cause of all problems.

<comment><USER62> Regardless of how they are presented, all ad networks do awful shit. It's an entire system built on distrust and the users machine is responsible for fixing it. It's an absolutely insane business model. Show me an ad network that doesn't work that way and I might consider it acceptable, until then all of them need to be universally disabled.

<comment><USER63> I agree with you 100% there.

</comment></comment></comment></comment><comment><USER64> So we've come full circle. The biggest ad peddler on the world and a predominant distributor of malicious ads (because ain't nobody got time to check that stuff) is now integrating an ad blocker and offering tools for publishers to check their sites for the bad ads they themselves offer.

<comment><USER65> Why is this person being so vehemently downvoted? Anyone who has ever tried browsing the web for more than a couple minutes on a computer without an ad- blocker has run into fake download button ads. As they point out in a later comment, getpaint.net has them: I literally just went on there right now and what do you know: [http://i.imgur.com/Ygjyn3H.png](http://i.imgur.com/Ygjyn3H.png) . If I go to Sourceforge, another malicious Google ad for "antivirus" software that at best just scams people out of their money then does nothing: [http://imgur.com/a/WlcQB](http://imgur.com/a/WlcQB) .

Once while visiting my family I happened to be at the dinner table with my parents when my mom mumbled something about a message prompting her to update. Just out of curiosity I walked over and saw her about to click on a completely fake Java update message that would have almost certainly installed malware... served by Google.

It's counterproductive to live in denial of this massive problem. The original commenter has posted evidence; if you want to deny this claim, you ought to be prepared to supply some of your own.

<comment><USER41> Eh? I don't see much content in revelation's comment?

As for the images you posted, I checked out EasyPhotoEdit and thetop10antivirus.com and neither site appears actively harmful (the former looks like an online photo editor and the latter an antivirus comparison page), so while the ads may be distasteful I'm not sure they should be called malicious ads since that's usually reserved for actual malware.

</comment></comment></comment><comment><USER66> This will hurt professional journalism. Print is gone. Journalists survive on ads - and the only ones that work are quite obtrusive. Removing these annoying ads and moving to standardized google ads will just tighten the journalist's budgets. This will help the fake news blog outlets spread like the cancer they are. Sad.

<comment><USER67> There are other ways to monetize without (intrusive) ads. Produce quality content and people will be happy to support it. If your entire business model only revolves around ad-driven revenue and it doesn't work any other way, then perhaps that business model simply offers nothing of value.

</comment></comment><comment><USER68> If it means good ads, without tracking, without popovers/unders, basically without all the bullshit that most ads do now, it'd be a good thing. Content creators need to eat too, you know.

<comment><USER37> This is Google we're talking about. "Without tracking" is definitely not part of the equation here. Tracking is their entire business model.</comment></comment>


2500 Flag Icon Set - A Flag For Every Major Country In The World - <AUTHOR> https://www.gosquared.com/resources/flag-icons <comment><AUTHOR> Via Functionn - Open Source Resources For Web Developers & Designers: [http://functionn.blogspot.com/2012/12/2500-flag-icon-set- fla...](http://functionn.blogspot.com/2012/12/2500-flag-icon-set-flag-for- every-major.html)

P.S. Functionn contains a whole lot more of awesome resouces like 2500 Flag Icon Set. There only a fraction of them I can post here at a time. Take a look if you're interested, and subscribe:

<http://functionn.blogspot.com></comment>


Bots Help Moderate Stack Overflow - <AUTHOR> https://stackoverflow.blog/2019/09/17/meet-the-bots-that-help-moderate-stack-overflow/ <comment><USER2> I can't help but think of Tesla.

They added all these automated ways to schedule service for your car through the app or website, and after _they_ got comfortable with it, they made it the ONLY way to schedule service. [good for tesla, not good for community]

The problem I see is that Stack Overflow tries to be an exclusive community.

I think maybe instead of automated ways to flag bad things, maybe they can figure out automated ways to praise people, be inclusive especially with new users and redirect mistakes into constructive avenues.

<comment><USER3> I'd argue that these sorts of efforts do help move things towards a better community.

The site relies quite a lot on knowledgeable people to review and edit things, and the more grunt work that entails, the more you have to really care about being a part of the site to commit to it. The types who are interested in shouldering that burden will tend to be the ones who are extra hardcore, who are also more likely going to be impatient with mistakes and newbies.

<comment><USER2> I think the sentence that got me was:

"Natty started to flag answers automatically once it had detected a particular answer as a non-answer with considerable accuracy."

It might be that I don't understand - does Natty flag something directly, or flag them for the moderator?

On the other hand, the Heat Detector bot sounded it was punitive too, but in a way that might strengthen the community. (interesting thought - could it flag moderators?)

<comment><USER4> Flagging doesn't mean deleting. It brings those non answers to attention.

I spent an hour looking through them today and I've only seen one false positive and of course someone reported it instantly.

It's pretty useful. One of the questions I saw today was from few years ago and no one had answered it. Someone added a "me too" answer that wasn't helpful. I flagged that answer and provided a new answer to the question, and now it may help someone in the future.

</comment></comment></comment></comment><comment><USER5> Cool tools to leverage human effort in effective ways. I'd love to see a "smells like homework" tag or review queue to catch the questions that sound a lot like homework assignments from first courses in programming, so willing respondents can more readily draw out the querent's understanding. ("print the squares of the first 10 integers", "swap the first & last line of the input", and similar)

</comment><comment><USER6> As much as people love to rip on StackOverflow for being unfriendly, it is in an entirely different plane of existence from all the little php forums that it replaced.

You haven't seen arbitrary, shitty moderation unless you were on the internet in the early 2000s.

The craziest thing is, those people are almost all still on the internet, but they've aged out of the worst of the terribleness.

<comment><USER7> On the other hand you could switch communities if one style didn't suit your taste back then. It often seems like this was replaced by a choice between large communities like SO and something fringe.

</comment></comment><comment><USER8> Maybe stop banhammering newbies simply because you think their question about obscure arcane algorithm #44462 is too similar to an even more arcane question 10 years ago about algorithm #783429 and its immediately obvious to a regular with a pH.D in quantum statistics.

The only major support site I'm aware of with a 'stupid questions' punishment policy. Which isn't a bad thing in and of itself except its implemented in such a draconian and nontransparent way. Demerits never seem to expire, even after years of no 'stupid' posts and theres no explanation where they come from.

The bizarre thing is even with this and newbies banned left and right it seems the admin is on another planet running some other website as all they want to talk about is social justice and how evil heteronormative SO users somehow can psychically tell who is a woman or minority and supposedly harassing them to epidemic proportions but nobody somehow ever sees this.

Maybe get a handle on a few real basic problems before you start crowing about your geewhiz new bot.

<comment><USER9> > Maybe stop banhammering newbies simply because you think their question > about obscure arcane algorithm #44462 is too similar to an even more arcane > question 10 years ago about algorithm #783429 and its immediately obvious to > a regular with a pH.D in quantum statistics.

You don't get banned for questions closed as duplicate, what are you talking about?

<comment><USER8> Yes you do. Among other things. Its one of the things that counts toward your 'demerit' score. Or at least it certainly appears to. Theres people who haven't done anything but ask a couple 'stupid questions' that were answered before that were modded. Of course their moderation policy is so opaque only the admin could tell you exactly what happened.Or maybe not since they seen keen to adapt the 'Google approach' of having their bots take over sight unseen.

<comment><USER9> I stand corrected on the fact that there's no ban procedure[0]. But there's also a provision that this ban lasts 6 months, not indefinitely.

And it's not about questions getting closed, it's about downvotes.

And from that to saying that the procedure is opaque, I'd say you'll have to provide some sources about that.

[0] [https://stackoverflow.com/help/question- bans](https://stackoverflow.com/help/question-bans)

<comment><USER10> The procedure is opaque because:

He posts questions that are duplicates but are only obvious duplicates if you're have a PhD in quantum statistics. And he attracts downvotes and gets demerits. Most SO users don't have PhDs, therefore most of the the downvotes and demerits must be due to something mystifying.

The procedure is not opaque because:

Well, maybe his questions may be regarded differently by other people, and then it makes sense.

There's a rule on meta.stackoverflow.com that each such complaint must point to an example question. A good rule.</comment></comment></comment></comment></comment>


This creepy video game lets you start an Ebola plague in the U.S - <AUTHOR> http://www.dailydot.com/geek/ebola-plague-inc-video-game/

<comment><USER2> I remember playing this as Pandemic on one of those flash gaming sites at least 6 or 7 years ago, or longer. It's a little odd that the article complains about the "timing" of the game.</comment>


Show HN: A bullet-hell game made in Haskell - <AUTHOR> https://gilmi.me/nyx <comment><USER2> Mostly it seems like a well put together game, and I'm always down for a bullet hell game. But this is HN, so here come the nitpicks:

In Windows, the screen is taller than my monitor. It's also frustrating that the game doesn't support a mouse, and getting through the text prompts was a bit unintuitive (I kept expecting the enter key to work.)

The initial dialogue scene was a bit interminable - I didn't want to retry the game if it meant going through that again - you might want to add an option to skip it, or just start the first level after it plays once.

I also think the player bullets are too difficult to see and move too slowly.

Also, when I died, the level just continued.

If this is _just_ a POC for a game in Haskell, then it works, but honestly just fixing a few things would make it a decent actual game. And since it's a bullet hell, _more bullets!_ If you really want to impress people with the power of Haskell, do something more like this[0].

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

<comment><AUTHOR> Thank you very much for the feedback. I haven't really gotten much feedback on the game so I appreciate it.

Regarding the resolution - what is the resolution of your monitor?

There is a hidden option to go to a level of your choice - press 'R' 5 times to get the hidden menu option. I should probably write that down somewhere. And I should probably revisit the opening scene and make it a little less bland.

Regarding the player bullets, I have tried a few options and thought this was ok, but I will try a few things again. thanks.

I let the level continue for two reasons, one is to let the player regroup before retrying if needed, second is to let them see a bit more of what's left. But I can understand if that makes it a bit weird.

To be honest it is basically _just_ a POC. I haven't received a lot of feedback on the game so haven't really planned on adding more polish or extending it. Your feedback is appreciated because it gives me some ideas on how to improve it.

I didn't really want to add as much bullets as I could because I was afraid it would completely frustrate anyone who played. Earlier prototyping stages had more[0] bullets. But maybe I'll add another level with more interesting pattern.

[0]: [https://www.youtube.com/watch?v=qh62jESSRT0&t=0m28s](https://www.youtube.com/watch?v=qh62jESSRT0&t=0m28s)

<comment><USER2> >Regarding the resolution - what is the resolution of your monitor?

sorry for taking so long - 1366 x 768

<comment><AUTHOR> Not at all - thank you.

I have created an updated version of the game available for download which includes the following features:

* Automatically restart the level on death

* Updated bullets opacity and speed

* Enter key can be used to progress textboxes

* Scale down window size using the F12 key (unfortunately this somewhat messes up the fonts, but it's the best I can do at the moment)

Also a reminder that you if you press 'R' 5 times in the main menu, a new hidden menu will appear where you can select a specific stage of the game to play.

Thanks again for your feedback!</comment></comment></comment></comment>