How Azure scaled to 2,000 employees on GitHub - <AUTHOR> https://azure.microsoft.com/en-us/blog/enterprise-scale-github-at-azure/ <comment><USER2> Coming from a custom Gitolite [0] setup where I was able to protect branches and reject commits and do other basic or complex stuff with ease, GitHub looks like a joke. Their "improved" permissioning made me laugh. It doesn't even show signed commits, tags, and branches! Simply put, I like the "Hub", I hate the "Git" in GitHub.

[0] [https://github.com/sitaramc/gitolite](https://github.com/sitaramc/gitolite)

<comment><USER3> Definitely sounds like a cultural mismatch between your work environment and the expected github work environment.

<comment><USER4> I don't think that's the case. I work at a startup with a fairly permissive commit policy (forgiveness > permission), and because of how Github is architected, we have to put policies in place about which branches someone can/should commit to in READMEs (branch X should always build, branch Y should is where code get staged for tested, and so forth), instead of within the tooling.

As someone at Google once said, "If your policy doesn't exist in software, it doesn't exist."

</comment></comment></comment><comment><USER5> I've used this as an outsider to do some work with Microsoft and it's really slick.

I wish the Visual Studio Online team would look a little harder at Github and steal more of its Issues experience, and have something more lightweight than the backlog monster they've got now. I think it's not uncommon for VSO users to keep a Github sync of their code so they can use GH for issues and day to day code and VSO for builds and deploys.

<comment><USER6> I use VSO for the free private repos, but really it needs to be overhauled in a number of ways...a name change itself would go a long way. "Visual Studio Online" sounds like I'm actually going to be using an online version of VS like Office 365's online apps...but nope. It's a bit of a marketing nightmare. Even the guys from Microsoft were complaining about the naming making it hard to make people understand when I was at Build this year.

<comment><USER7> We just renamed it to "Visual Studio Team Services" last week. Yeah, everybody assumed it was an online version of Visual Studio.

[https://www.visualstudio.com/en-us/products/visual-studio- te...](https://www.visualstudio.com/en-us/products/visual-studio-team- services-vs.aspx)

<comment><USER8> Isn't it just a version of TFS online using a SAAS billing concept?

Wouldn't "TFS Online" be a better description if you want to stock with the Microsoft unimaginative naming policy? At least it says exactly what it is.

My personal opinion is that Microsoft should just go with the internal names. They are more interesting and memorable for customers. They are often one word, rather than five. Visual Studio Team System Online 2020 Developer Edition.... Sorry, started snoring after 3 words.

[https://en.m.wikipedia.org/wiki/List_of_Microsoft_codenames](https://en.m.wikipedia.org/wiki/List_of_Microsoft_codenames)

</comment></comment></comment></comment><comment><USER9> We are using [https://github.com/rapid7/github- connector](https://github.com/rapid7/github-connector) to sync github org users with an internal AD.

</comment><comment><USER10> The "inviting a person to the org" issue sounds like a failing on the GH side. Why can't you just invite someone by email and let them choose the account to use the invite with (or create one)??

<comment><USER11> You send me an invite. I choose to use it with my account that I set up while working at your competitor. Now your competitor potentially has access.

At least the way they do it now gives some control to the org as to who has access to their account. It's inconvenient but it biases towards making on boarding hard to make control and off boarding easier.

Also, GitHub wants to avoid the same person having multiple accounts. Their focus is the developer, not the org. So they want all your work to be associated with you.

I still have stuff on my account that is associated with Netflix and reddit. Because the account is tied to my personal account, those orgs can never "remove" my contribution.

<comment><USER12> A malicious employee can simply send the code to the competitor. There is no need to set up an account that is controlled by the competitor to evade access protections.

<comment><USER13> I think the point is that in this way it can happen without the employee intending it to happen.

<comment><USER10> How though? Can someone explain a situation where a GH organisation automatically gets access to another organisations' repos through a shared individual member?

</comment></comment></comment></comment></comment><comment><USER14> AWS has a horse in this race. Odd not to see it mentioned yet...

[https://aws.amazon.com/codecommit/pricing/](https://aws.amazon.com/codecommit/pricing/)

<comment><USER15> And they even named their product in a way so that people could understand what it is about! That is so unlike them!

</comment></comment><comment><USER16> Slight digression but I find it a bit odd they've used Safari in their screenshots.

<comment><USER17> When working with open source, sometimes it is best to use the tools appropriate to the projects you are working on or people you are working with.

I work in DX/Evangelism at MSFT and a lot of work around containers, etc, at the moment is easier on *nix than it is on Windows (for me). I've got both machines as well as a Windows VM on the Mac if I need something there...

<comment><USER18> > When working with open source, sometimes it is best to use the tools > appropriate to the projects you are working on or people you are working > with

Which would be Chrome then (since it dominates browser share), instead of Safari.

Perhaps the person making the screenshots wanted to use a *nix system, but didn't want to be caught showing off the competition's product.

<comment><USER19> I wasn't trying to make a browser politics statement in the post, but am glad to be able to work in the new Microsoft that is proud of whatever platform and tool works - including employees.

Personally I use Safari when I'm on battery all day (coffee shops, etc.), Chrome when I need multiple profile support, and I tend to split Chrome/Edge when in my Windows VM.

</comment></comment></comment></comment><comment><USER20> The tool is really well done and impressive. Yes, it exists to work around gaps in GitHub's functionality, but it's not like we're going to self host git repos and use gitolite...

<comment><USER19> My hope is that I can delete this in the future.

It's a scary place to be in when we're 1) dependent on a third party, 2) we have to follow GitHub and the API down the rabbit whole, and 3) we are just trying to enable our team to get going fast and hope in time GitHub can just give us all the right tools that check at least some boxes we need, i.e. very granular management to delegate decision making even more.

<comment><USER21> What's so scary about it?

Any data that is stored on GitHub (ex issues, PRs) can be pulled down via the REST API. So, it should be relatively easy to build a migration tool or alternate UI if necessary.</comment></comment></comment>


Show HN: RefurbMe ~ Refurbished Apple Products, Notifications and deals  - <AUTHOR> http://refurb.me

<comment><USER2> This is great, good job!</comment>


Ask HN: Can you share your problems? - <AUTHOR> Many of us are here in search of new business ideas. Maybe your problem can reveal a business idea. I don't think it will work, but it's worth trying. <comment><USER2> How about a spice dispenser that measures out the right kinds of seasoning for a recipe. If you are in the flavored rice section of the grocery there are tons of seasoned rice or grain products. Plain rice is much cheaper and probably better anyway. And those products could be threatened by the spice machine. Mexican rice costs about 2.50 but raw materials cost the company only a small fraction to produce it.

Adding value is a good way to have a business objective. If you take something cheap and sell it a high multiples you got something promising.

Disclaimer I am not a millionaire or anything.</comment>


Leaflet 1.0 – A JavaScript library for mobile-friendly interactive maps - <AUTHOR> http://leafletjs.com/2016/09/27/leaflet-1.0-final.html <comment><USER2> Leaflet is a great library, I never would've guessed that they hadn't reached 1.0 given the completeness (for my use case anyway) of the library, quality of documentation and it's ubiquity.

It might not be build on the latest reactive, functional style but I think it's one of most useful javascript libraries I've used.

<comment><USER3> I had the same experience and reaction. Leaflet is so nice and clean, it's a constant pleasure to use.

I miss coding maps... ;-) Are there ideas somewhere of things to do...?

<comment><USER4> You could go to the census fact finder, grab some data (scoped at census block level) and a few census block shapefiles for your state, and get to work. Repeat for counties, cities, etc. Census data is seriously cool, and easy to work with.

[0] [http://factfinder.census.gov/faces/nav/jsf/pages/index.xhtml](http://factfinder.census.gov/faces/nav/jsf/pages/index.xhtml)

[1] [https://www.census.gov/cgi- bin/geo/shapefiles/index.php](https://www.census.gov/cgi- bin/geo/shapefiles/index.php)

<comment><USER5> Are you familiar with PolicyMap?

[https://www.policymap.com/](https://www.policymap.com/)

<comment><USER4> I haven't heard of them. Looks pretty cool, thanks for sharing.

</comment></comment></comment></comment></comment><comment><USER6> Some years ago I created Mapturbate using the Leaflet and the Chaturbate webcam feed. Definitely NSFW.

[http://mapturbate.com](http://mapturbate.com)

<comment><USER7> Doesn't seem to display anything but the map for me. No points marked on it.

</comment></comment><comment><USER8> Leaflet is great, but I would steer clear of any library that attempts to wrap it to work with a different API (aka Angular-Leaflet). Several weeks of my life were spent trying to get our Angular app to play nice with Angular- Leaflet, and we ultimately decided Angular-Leaflet was too much of a mess to keep around.

<comment><USER9> I'm curious what approach you used after giving up on angular-leaflet? I've had a similar experience moving apps to Angular and working with Angular leaflet. Thankfully I work with a great consultant so didn't lose weeks but angular-leaflet is definitely not the clean experience that leaflet.js is.

<comment><USER8> I ended up writing an Angular directive that modified the DOM via jQuery. It was gross, but it took Angular out of the equation and allowed the implementers of the directive to still use Angular and still have the same functionality they wanted.

</comment></comment></comment><comment><USER10> Just used Leaflet for a client project - works great. I'm using the Mapbox tiling layer and it is a lot lighter & less cluttered than Google maps.

For the React crowd, check out react-leaflet:

[https://github.com/PaulLeCam/react- leaflet](https://github.com/PaulLeCam/react-leaflet)

</comment><comment><USER11> Kudos to Leaflet for putting "an open-source JavaScript library for mobile- friendly interactive maps" right there at the top of the page. So many projects that get release announcements here don't even mention what they do in the linked article, and you've got it right on top, and it's nice to see a project doing the right thing.

</comment><comment><USER12> A fascinating use of Leaflet is in LibreOffice Online. LOO uses Leaflet to load pixmaps of the document on demand.

[https://www.collaboraoffice.com/community- news/libreoffice-o...](https://www.collaboraoffice.com/community- news/libreoffice-online-questions-answered-what-who-how-and-when/)

</comment><comment><USER13> Leaflet is fantastic. Once my project got really big, I moved to OpenLayers and havent looked back. But I would start a smaller project using leaflet again. Very approachable library.

<comment><USER14> What about OpenLayers makes it easier to use for really big projects? I've used leaflet, never used openlayers, would love to hear.

<comment><USER15> OL3 can do map rotation, has Canvas and WebGL output on top of DOM like Leaflet, the projection with different CRS are better handled, more API to do geo calculation, but it has a bigger size.

<comment><USER16> You can (and usually should) make your own custom build: [http://openlayers.org/en/latest/doc/tutorials/custom- builds....](http://openlayers.org/en/latest/doc/tutorials/custom-builds.html)

<comment><USER17> Even a custom OL3 build which only has the canvas renderer, a WMS layer for background and a Vector layer for POIs does not get smaller than 200k. I think leaflet is half the size.

<comment><USER17> And I find this to be even more astonishing as OL3 uses Googles Closure compiler who's very advantage should have been better JS minification (not only minimizing/uglifying but actually removing JS parts that are not needed).

</comment></comment></comment></comment></comment></comment><comment><USER14> Is Mapbox moving away from Leaflet as they develop Mapbox GL?

<comment><USER18> Disclaimer: I'm the Leaflet author and I also work on Mapbox GL.

It's true that Mapbox currently focuses its efforts on GL, but they are not "moving away from Leaflet" — Leaflet will continue to be supported as one of the first-class clients to be used with Mapbox services (and GL-based styles have a raster tiles fallback). Leaflet is very mature, has a huge community, is suited for most simple mapping needs, is very easy to learn, and doesn't require a lot of development effort from the Mapbox side to support.

Mapbox GL on the other hand represents a vector rendering technology, which is very different. It is much more powerful than conventional raster tile based clients, and enables applications never seen before in the online mapping industry, but it's also many times heavier, more complex, and much harder to learn. Rendering vector data on the client is something Mapbox bets on as the future of mapping, but it's incredibly challenging to build, so it requires a lot of focus.

I'll continue to maintain both libraries — while they have some overlap, there's a place for both.

<comment><USER14> I love that I can ask a question like this here on HN and get an answer from the Leaflet author. Thanks for taking the time to respond.

</comment></comment></comment><comment><USER17> Congrats. As a longterm and happy OpenLayers user (version 3), what are the main advantages of Leaflet over OpenLayers?

<comment><USER18> Leaflet focuses on being lightweight, fast, easy to use and suitable for most mapping apps, while OpenLayers is more geared towards GIS/academics with its vast built-in support for different formats and standards.

</comment></comment><comment><USER19> I've used Leaflet in the past with superb results. [1] It truly is an amazing library. People have never had an issue with my map. I agree with chickenfries's comment. Leaflet has won that that niche silently with its A+ in every important facet they've tackled.

[1] [http://rsmap.net](http://rsmap.net)

<comment><USER20> Agreed. Fantastic tool. I've used it for everything including live maps, data visualization, and even as a layer for handing image zooming :P

</comment></comment><comment><USER21> Just recently I had to choose between Google's map offerings and Leaflet.

Performance wise, Leaflet is an order of magnitude faster when it comes to frequent bounds/location updates, speaking for itself. Great work!

<comment><USER22> Which basemap did you use? The biggest _disadvantage_ of using Leaflet is that you lose access to Google's maps and APIs. That said, Leaflet is much much easier to debug than Google.

<comment><USER23> No, you don't lose access. You just have to work around some nuisances. Have a look at [https://gitlab.com/IvanSanchez/Leaflet.GridLayer.GoogleMutan...](https://gitlab.com/IvanSanchez/Leaflet.GridLayer.GoogleMutant)

<comment><USER24> some nuisances? like having to load and use the google maps api.

I'm interested to know if this doesn't actually violate the google maps terms of service:

[https://developers.google.com/maps/terms#10-license- restrict...](https://developers.google.com/maps/terms#10-license-restrictions)

10.4(e): No use of Content with a non-Google map. You must not use the Content in a Maps API Implementation that contains a non-Google map.

<comment><USER24> That Terms contains some interesting junk.. for example is a webpage considered "software"?

10.5(f): No incorporating Google software into other software. You will not incorporate any software provided as part of the Service into other software.

</comment></comment></comment></comment></comment><comment><USER25> My only complaint with Leaflet is that they haven't done anything to support older versions. At an old workplace, we were stuck on an older version for a while due to incompatibilities, and having never used Leaflet before I needed to see how to use the specific version we were on.

I ended up having to clone the repo where the docs were, checkout the commit released for that version and build the docs myself. Maybe I'm spoiled by react-router's phenomenal handling of outdated docs, but it was a pretty terrible experience.

<comment><USER18> Yeah, sorry for that — now that we're using a much better docs system, and will archive docs for older versions.

</comment></comment><comment><USER26> Leaflet is fantastic. I was going to use it for a project, but then I didn't do the project, so I haven't had a need for it yet, but the system is incredibly approachable and friendly.

If you're wondering what the project was: I was trying to integrate a Pokemon Gen 2 (G/S/C)-style battle system into a Go style map. Why? because I really wish that Pokemon Go was less disapointing, and G/S/C was a nice middle ground between interesting and incredibly difficult to implement.

</comment><comment><USER27> Great news!

But upgrading all my maps to Leaflet 1.0 will take more time, because lots of broken plugins need to be fixed or replaced.

One of my maps for local realtime weather observation for sailing/surfing: [http://gis.ee/meri/](http://gis.ee/meri/)

For that map Leaflet is perfect, because its lightweight, fast, mobile friendly.

</comment><comment><USER28> Haven't used leaflet in just over a year - is it still limited to north-up only? Because I find it difficult to describe any map library as "mobile- friendly" if you can't rotate it to match the direction you're facing.

</comment><comment><USER29> Leaflet is amazing. The documentation is very straightforward and Leaflet makes it easy to produce high-quality maps in a short period of time.

I was doing most of my mapping work in R, but needed something interactive to use for a website and am very pleased with Leaflet so far. If you're interested in mapping I'd definitely try it out (interesting datasets would be city crime data and humanitarian data from here: [https://data.humdata.org/](https://data.humdata.org/)).

</comment><comment><USER30> So can I use this for the map in my game or should I look at something else?

EDIT: Looks like I can: [http://leafletjs.com/examples/crs-simple/crs- simple.html](http://leafletjs.com/examples/crs-simple/crs-simple.html)

Is Leaflet the best option for this though? I just want to show an interactive map on the web of a really big PNG I have (much bigger than the one in that example).

<comment><USER31> I don't think it's really designed for games. It's more for stuff like event maps, theme park maps, office maps, transit maps, etc.

<comment><USER30> Thanks. What's the difference though? I don't want to show it inside the game. It will be on a separate website.

<comment><USER32> Personally I think it should be great for such use, especially with some improvements version 1.0 has (like the crs-simple) you mention. You will have to split your PNG image into tiles though, and ideally have different zoom levels available too (leaflet won't do that for you, but there are tools floating around)

</comment></comment></comment></comment><comment><USER33> This makes interesting claims about performance but doesn't describe them. Are they all based on client-side javascript and graphics efficiency? I ask because it seems to me that the most important thing in map client performance is the ability of the tile server to quickly and consistently deliver tiles. Especially important is the tail latency. To experience this for yourself go to the Leaflet preview page[1] and change the base layer provider. It will be several seconds before all the tiles are drawn, even for several identical tiles in the middle of the ocean. Most of the tiles arrive in the first second but out of a hundred tiles on the screen there are the inevitable stragglers. And sometimes it just doesn't serve at all[2].

1: [http://leaflet-extras.github.io/leaflet- providers/preview/](http://leaflet-extras.github.io/leaflet- providers/preview/) 2: [http://pasteboard.co/8bnyEPXGC.png](http://pasteboard.co/8bnyEPXGC.png)

<comment><USER18> Of course the performance claims only relate to Leaflet itself, not the server performance — Leaflet is server-agnostic (you can use it with any tile provider). The improvements will be noticeable in dynamic map apps with lots of vector data, markers, tooltips etc. on top of the map.

</comment></comment><comment><USER34> We recently decided to move away from leaflet for our indoor mapping component. There are some things that we discovered that leaflet is not good for:

1\. Drawing annotations

There are plugin options but Leaflet editable is quite buggy and convoluted, and leaflet draw is still on 0.7 and we couldn't wait for their 1.0 upgrade.

2\. Large image overlays

There is an awkward space between an image that the browser should be able to handle even if it's quite large, and one that requires tiling. We fell into that space and there are some seriously nasty bugs in Chrome when imgs are huge. Since leaflet just uses an <img> tag for overlays this was a killer.

3\. Lack of map rotation

There is a fork that implements rotation, but we couldn't rely on that to stay up to date with mainline.

Overall I still really like leaflet and would use it in a heartbeat for any more normal mapping application.

</comment><comment><USER35> Awesome! Congratulations!

FYI, if you are trying to use this with Webpack and Webpack's css-loader, you'll probably run into the problem noted at [https://github.com/Leaflet/Leaflet/issues/4849](https://github.com/Leaflet/Leaflet/issues/4849).

<comment><USER18> Getting fixed in 1.0.1, to be out today.

</comment></comment><comment> mck- Awesome. The one thing that is missing in the open source mapping community is a good geocoder.

Once we have that, adoption will come in waves. At the moment, nothing beats Google Maps, and their terms require you to use their maps.

<comment><USER36> Pelias [1], from Mapzen, is supposed to be good, if you can accept the dependency on Elasticsearch.

Last I checked it wasn't great for autocompletion, and it lacked some important features that Google's has (the "bounds" attribute in the geocoding result, for example, which is super useful if you want to determine the precision of your match), but maybe it's improved since.

[1] [https://github.com/pelias/pelias](https://github.com/pelias/pelias)

</comment></comment><comment><USER37> somewhat tangental to the topic, but are there any examples of applications using a flat mapping like this or google maps or openstreetmap that allow an avatar to explore it like you would a game - not jumping around but linearly, with control of speed? I've got an idea but I can't come up with a good way to control the movement that seems intuitive and easy. Clicking with a mouse on your desired destination and progressively routing would work, but curious if someone else is already doing something similar.

<comment><USER33> What you describe sounds close to what you get from google maps using the arrow key navigation. Is that a reasonable starting place? It sounds like maybe you want the "avatar" to stay on streets instead of moving freely, which could be interesting.

<comment><USER37> right, something like a character walking down streets the way you would walk down a hallway in a top down game. Trouble with arrow navigation is how to interact with intersections, especially complicated ones - roundabouts, more than 3 exits, etc.

</comment></comment></comment><comment><USER32> Here's my simple project utilizing leaflet (1.0-RC1 actually) to display a procedurally generated infinite heightmap.

[https://github.com/Mchl/simplexnoisemapgenerator](https://github.com/Mchl/simplexnoisemapgenerator)

There's a link to a demo, but the machine it's running on is not really powerful, so expect poor experience. You'll do a lot better downloading and running the code on your own.

</comment><comment><USER22> Glad to see Leaflet is still being developed. AFAICT, the main developer was MapBox, who's now using a WebGL based stack instead of Leaflet [1].

1: [https://www.mapbox.com/gallery/](https://www.mapbox.com/gallery/)

<comment><USER14> there's more nuance to it - see this comment thread [https://news.ycombinator.com/item?id=12589647](https://news.ycombinator.com/item?id=12589647)

</comment></comment><comment><USER38> \- New L.Tooltip class for all your dynamic labeling needs.

\- Flyover animations (zooming and panning in a curve with map.flyTo).

\- Fractional zoom level support (map.setZoom(12.34)).

\- Much better tile loading algorithm with less flickering.

Seems like a lot of features come straight from Mapbox GL

<comment><USER39> Author of leaflet works on Mapbox GL, so that makes sense.

</comment></comment><comment><USER40> Leaflet is incredible, I've had to switch to using google maps for my last few gigs, but I still haven't found any other libraries that are as painless for mobile as Leaflet can be.

</comment><comment><USER41> It is one of the best things engineered I have seen for a long time.

</comment><comment><USER42> Yay, I'm mostly excited about this: "Much better tile loading algorithm with less flickering" as it means it's much more suitable for games now.

</comment><comment><USER43> Can't say enough great things about Leaflet. I have been using it for years as a lightweight replacement of OpenLayers.

</comment><comment><USER44> We used it on an analytic dashboard project: so far so good -- overall positive experience.

</comment><comment><USER45> Can you really have @ in urls? This is the first time I've seen this.

Their JS file url: [https://firstname.lastname@example.com/dist/leaflet.js](https://email@example.com/dist/leaflet.js)

<comment><USER46> [https://url.spec.whatwg.org/#url-code- points](https://url.spec.whatwg.org/#url-code-points)

Used in step 2.1 of [https://url.spec.whatwg.org/#path- state](https://url.spec.whatwg.org/#path-state)

</comment></comment><comment><USER47> Is mapbox going to work immediately with leaflet 1.0?</comment>


Eighth Circuit declares RAZR a computer under federal law - <AUTHOR> http://www.engadget.com/2011/02/12/eighth-circuit-declares-razr-a-computer-under-federal-law/ <comment><USER2> Wouldn't it be great if articles like this one actually included a useful link, like to the actual 8th Circuit decision, instead of useless internal links?

Here's the decision:

[http://www.ca8.uscourts.gov/cgi- bin/new/getDocs.pl?case_num=...](http://www.ca8.uscourts.gov/cgi- bin/new/getDocs.pl?case_num=10-1983)

</comment><comment><USER3> _Seems a bit silly to call a RAZR a computer_

Um... any definition of 'computer' that excludes a RAZR is just plain wrong.

<comment><USER4> Unless by computer you mean programmable computer or general purpose computer, which most phones aren't by the time they reach consumers.

For example, would the inclusion of the use of a cell phone render a method patent invalid under the machine-or-transformation test? Can any process implemented with a microprocessor satisfy the particular machine half of the machine-or-transformation test if the inclusion of the microprocessor makes the device a computer?

<comment><USER5> RAZRs are programmable. I've used some of the programs.

There's a difference between being able to program on a device and being able to program for that device.

<comment><USER4> I understand the difference between programming on a device and programming for a device. For most embedded devices like cell phones, end users aren't allowed to do either one, at least without jailbreaking or paying for developer privileges. And most embedded devices are similarly restricted about what kind of software you are allowed to install and run on them. Should such devices really be treated as general purpose computers in the eyes of the law?

</comment></comment></comment></comment><comment><USER6> From the comments:

"What you SHOULD be talking about is how, if smartphones are classified as computers, the Patriot act DEFINITELY ALLOWS warrant-less search and seizure of your smartphone at international borders."

If you care, you should definitely be carrying a "travel phone" on your trips.

<comment><USER7> RAZR != Smartphone. That's even part of the article. We're talking simple feature phones here, so I think your workaround does not help.

<comment><USER8> His point is that you should have a separate "travel phone" that just has only necessary contacts, no access to your email, a minimum of personal information, no old text messages, etc. That way, if it does get seized, there's little for the authorities to work with. Whether or not it's a smartphone isn't relevant.

</comment></comment></comment><comment><USER9> Its interesting to think about what is defined as a computer under the law. A great deal of devices are having computers placed in them and the law has to play catch up with technology.

</comment><comment><USER10> And? It is a computer. Why is this news/interesting?</comment>


Ask HN: Learning webdev - <AUTHOR> If you had to re-learn all that you currently know about webdev, what would your path toward re-acquiring that knowledge look like?
For example, which toy projects would you build as a way to learn it? Which tools would you focus on learning, and in what order? Which resources would you study?
To make this question interesting, assume that the learner is a competent hacker who wants to immerse themselves in webdev as quickly as possible, but knows nothing about modern CSS practices, which devtools to use, or anything else that you'd learn after working in the field for several years. <comment><USER2> learn something useful instead</comment>


Text is Forever - A multi-platform approach to living a life in plain text - <AUTHOR> http://marquee.by/alexcabrera/text-is-forever/

<comment><USER2> So, this is basically a thoughtful list of text manipulation programs for the Mac. And a great list at that.

I was astonished and slightly embarrassed to find out that my personal answer to all his use cases are Emacs.

Still, I fully concur with his sentiment: Text encoding issues aside, the only data format with sufficient longevity and compatibility for long time storage is plain text. It is what drives technology. It is source code. It is markup. It is the universal format for communicating with computers and humans.

That said, a smattering of HTML or LaTeX can go a long way to make plain text more printer/reading friendly.

<comment><AUTHOR> I think it's important to have your core text editor - the thing that makes you a living - be something that you can take with you anywhere. You're pretty much looking at vim or emacs in this case.

I think of HTML as an output format more than anything else. LaTeX, while powerful, is terrible for reading what you've authored. That's why Markdown is so appealing, it's a semantic syntax rather than markup; it's easy to write, easy to read, and has the added benefit of being programmatically processed.

Kudos for not reducing this to a vim/emacs flamewar.

<comment><USER2> One could argue that Sublime Text or JEdit could be an option, too.

</comment></comment></comment><comment><USER3>
      >> you put a text file in Dropbox, and it showed up as a formatted page on the web

It's pretty easy to configure a generic Jinja2 HTML template, then run the markdown and Jinja2 python modules on any markdown file to turn it into a web page.

A framework is hardly needed, but these exist if you don't want to configure a solution:

      Jekyll, Hyde: http://philipm.at/2011/0507/

      Pelican: https://pelican.readthedocs.org/en/latest/

<comment><AUTHOR> Jekyll and Hyde are both awesome. I played around with Pelican a while ago, and it seemed solid.

Droptype wasn't much more than that. It used Dropbox's then-new revised API to look at Dropbox/Apps/Droptype and then displayed any Markdown files as a list. If you added a README file, it would render the contents of that. It was a quick and dirty Django app.

There wasn't any control over the design or any web-based editing capabilities. Others are doing interesting stuff in that space, most notably <http://scriptogr.am/> which is probably a lot like where Marquee would have ended up if we continued to go keep going down that route. They're doing a very nice job with it though.

That said, we're looking at Dropbox/GitHub integration as more of a feature than a product. We're approaching the problem space from a somewhat different direction; the focus on our authoring environment is the first step to getting there.</comment></comment>


Intro to Python Introspection and Dynamic Programming - <AUTHOR> http://wdvl.internet.com/Authoring/python/intro/Watts06302009.html

<comment><USER2> Lots of ridiculously bad advice here, every single code snippet does something idiotic! The whole article should be replaced by two words: "import inspect"

This snippet was particularly shit:

      >>> var1 = 12
      >>> typ = str(type(var1))
      >>> if typ == "":
      ...     var1 / 4
      ... else: print 'Not an Int'

This is wrong on so many levels! For starters, it doesn't work at all -- why the hell does he think typ won't be "<type 'int'>"?

Second, if you're going to use the type builtin for this, why the fuck would you cast it to a string, when "if type(var1) is int" works just fine?

Third, don't ever use the 'type' built-in for this kind of type-checking -- this is what the 'isinstance' built-in is for. 'type' chokes completely on old-style classes, and doesn't handle inheritance at all.

<comment><USER3> Yes. Please don't do this stuff. Like, ever.

Except the really twisted road taken to show that functions are first-class objects and can be passed around. That's useful.

I've ran into this particular site before and something about it just rubs me wrong. In this case that "something" is rather obvious.

</comment></comment><comment><USER4> "You keep using that word. I do not think it means what you think it means": <http://en.wikipedia.org/wiki/Dynamic_programming>

</comment><comment><USER5> Hello webdesign and banner-ads from 1999. At least put some effort into syntax highlight your code samples.</comment>


The state of WordPress 2011 (Matt Mullenweg) - <AUTHOR> http://wordpress.tv/2011/08/14/matt-mullenweg-state-of-the-word-2011/

<comment><AUTHOR> I used to be a fan of Matt back before the WordPress 2.1 days. Now that I spend half my time cleaning up the nightmare that is WP 3.x, not so much. After he ended bbPress standalone, I struggle to find nice things to say.

<comment><USER2> Interesting. I'm finding the opposite ... as WordPress grows I find more and more uses for it, more and more ways to hack to bits (which I enjoy doing :))</comment></comment>


Show HN: Quit my job to work on my startup and finally launched the app - <AUTHOR> I quit my job and spent last 3 months to launch this app GoodnightJournal.com.<p>I would love to get your honest feedback on it! <comment><USER2> Hey man, who designed the front page?

<comment><AUTHOR> Hi, yes I did. Any feedback? :)

<comment><USER2> You made a very good looking full-stack application. I take it quitting to accomplish this really helped?</comment></comment></comment>


Say yes to the progressive web - <AUTHOR> https://www.hpe.com/us/en/insights/articles/say-yes-to-the-progressive-web-1805.html <comment><USER2> I mean, sure, I have some ideas that would work as a PWA, but this feature is hardly global to every phone, and depending on your app, totally undoable as a PWA. Some phones don't even support the drawer, and it's just as strange to ask someone to download a special browser to use one. Lastly, there is bound to be something that won't work even on Chrome.

It seems to me that all apps are either a pure app or really silly basic and would be equally useful as a responsive website. For example, I once used a HN app, but it really wasn't any different than just using the website because it was completely worthless without the internet. I'd just say make things a responsive website until you run into features that absolutely don't work on a browser, then go native. I could be wrong, but I don't think there is much necessary overlap.

<comment><USER3> _I 'd just say make things a responsive website until you run into features that absolutely don't work on a browser_

My impression is that those extra requirements are more often than not related to data collection and user tracking via broad spectrum app permission requests. It is simply more convenient, robust and profitable to sit on a device and phone home than relying on the user to frequent a site.

Imo most apps would have been called (mal|spy|ad)ware a couple of years ago.

</comment></comment><comment><USER4> Getting PWAs right is difficult at the moment. If you don't get service workers right and don't build out the surrounding features (cache invalidation!) then it creates a worse experience.

Then take into account the fact that PWA support is broken on iOS... I really doubt that Apple will fully support PWAs (e.g. web push) beyond App Manifest.

The issue that isn't discussed as much is discoverability. iOS users are _trained_ to go to the App Store to install an app. App Store on iOS feels safe, secure, and intuitive. How often do you think a user will choose to pin a website on iOS, regardless of what the suggestion UI looks like?

<comment><USER5>
      App Store on iOS feels safe

Does it feel safe or is it _actually_ safe? A big part of Apple's competitive advantage is the quality it provides (real or perceived). If an app provides a subpar experience, they can yank it from the app store, whereas they have no recourse if a PWA starts e.g. cryptomining in the background.

<comment><USER6> Strangely, their new ad platform appears to be pretty gameable in some respects...

[https://medium.com/@johnnylin/how-to-make-80-000-per- month-o...](https://medium.com/@johnnylin/how-to-make-80-000-per-month-on-the- apple-app-store-bdb943862e88)

That said, they just denied an app I released (here on Google Play [https://play.google.com/store/apps/details?id=com.pavlok.mee...](https://play.google.com/store/apps/details?id=com.pavlok.meetmaneesh) , it syncs my content from different media sources around the web) was denied. They said it was too close to a web experience.

We've released several iOS and Android apps, and inside of our apps are mini- apps (different habits and behaviors our users want to change). The app we were attempting to make used React, which was giving us a headache.

The denial was annoying, but fortunately, iOS just enabled PWAs. It seems to my developers that the site is essentially Web technologies (HTML/CSS/JS) + a Manifest. By doing that, you can enable push notifications and offline access. Is that essentially it? Because that might solve the problem of making apps rapidly on multiple platforms for us.

<comment><USER4> PWAs are broken on iOS. Push notifications are not supported, and in general the experience is pretty bad.

See this article for more details: [https://medium.com/@firt/progressive-web- apps-on-ios-are-her...](https://medium.com/@firt/progressive-web-apps-on-ios- are-here-d00430dee3a7)

The worst is that if you are in a PWA, say in a page like /my/sub/page and navigate out of the PWA, like go to a different website or go to another app, and then come back to the PWA, it will reload and go to the / home page, destroying all state and routing.

</comment></comment></comment></comment><comment><USER7> > If you're doing native mobile app development, you're doing it wrong.

No one can be so arrogant to make this cheap, clickbait statement. Why is everyone fighting developing native apps? Hybrid/PWA apps are not in the interest of Apple nor Google. In my experience the problems that PWA/Hybrid app development costs almost as much than employing an iOS and an Android developer.

<comment><USER8> > Why is everyone fighting developing native apps?

I'm not sure about "everyone" but this particular article is from a server manufacturer. It's not exactly journalism.

</comment></comment><comment><USER9> There is no such thing like one codebase for all your devices. Sure you can share code but if you want to develop a great app you have to tweak it considerable for each device.

The fact that I have to write Javascript again puts me off entirely. Unless I can compile swift to wasm and run it on the web I have no plan to return to the "web development".

Native apps work best for mobile users now anyway. I use the browser only for news and search though, so if you have a "website"/blog html still makes sense(regardless of the "progresive" features).

<comment><USER10> Yeah, I've spent the last year working on a (functionally simple) SPA... I won't mention the framework used because I think it's irrelevant but the experience has only confirmed the position I've maintained for years; in general, web apps are broken.

The browser was designed to display hyperlinked text and to support a limited set of actions on form data. IMHO, the main reason the whole web app craze took off was because serving the apps from centralized servers solved a number of the issues around application distribution and updates. This was a big problem at the time but it's ironic that shortly afterward mom, pop, buddy and sis became very comfortable downloading and installing things like iTunes and (even more ironically) browsers.

<comment><USER11> 4 years ago I returned to native development, only doing Web stuff when I can't avoid it, it has been a pleasure.

</comment></comment></comment><comment><USER12> > If you're doing native mobile app development, you're doing it wrong.

This is the mobile equivalent of "($CURRENT_YEAR + 1) is going to be the Year of the Linux Desktop!" Every year since 2010 I've heard that web apps are going to replace native mobile applications any second now, and it hasn't happened. I'm not investing in a platform/paradigm that has seen a lot of hype but very little actual demand from users, especially when you can be damn sure that Apple is going to throw up as many roadblocks as they can in front of it.

</comment><comment><USER13> We built [https://usebx.com/app](https://usebx.com/app) as a PWA after having experienced the nightmare of managing multiple native codebases (each with a variety of hacks for each target platform). The PWA still has a few hacks for certain Safari quirks, but it's not too bad. We also have the added benefit of a single front end codebase that runs everywhere, regardless of whether it's desktop, tablet or phone. I personally think PWAs will dominate the future, as browsers continue to expose more and more native functionality.

<comment><USER14> Speaking as a dev, the benefits sound great. But as a user, I just don't care. As a user I want these things from an app, in order:

1\. It does what it claims to do.

2\. It does those things quickly.

3\. It looks and works like an app designed for the OS on which it lives.

Number 1 is standard, since I won't use your app if it doesn't do something I want. PWAs, in my experience, struggle with #2 and absolutely fall down on #3. For example, and I'm not picking on you here, your app looks like an Android app even when I installed it on my iPhone. I don't want to context switch between visual styles or wait for JS performance delays just so you can save some time in development. This is the primary reason I very much dread apps I depend on deciding to go the PWA route since despite being technically capable of emulating platform look and feel it seems very few do so.

<comment><USER13> Regarding point 3, is that really what we want? That for each platform your app looks and feels different? I sort of like the fact that my app looks the same regardless of whether it's accessed on an iPhone or an Android phone. It kinda provides consistency for my users should they ever switch between platforms. In fact, we actually get a lot of positive feedback on this from our users.

<comment><USER14> I can of course only speak for myself, but having an app feel at home on my platform is very important to me. Being consistent means I have to spend less time adjusting to your design. The "New" or "Create" button should be in the upper right, "OK"/"Cancel" buttons on dialogs should be in the right order and location. Apple spent quite a lot of time and money creating a design that feels at home on their devices, and I think most developers should defer to their expertise in this regard.

More emotionally, I chose iOS in part because I like the design. In general, I don't want any app I use to try to reinvent the wheel with their own design language unless it is very much warranted, and I never want to see material design on any product I use since it was one of the reasons I chose to discontinue using Android.

<comment><USER13> I think you make a very fair point, and I appreciate your intelligent and measured response. For now, our users are reasonably happy with the look and feel (dare I say, they like it!). Having said that, I am tempted now to develop a library that can render iOS or Android specific components once my budget allows, so that users can select a "skin" they prefer (and we would default to the right one based on the accessing platform). I know we can't always please everyone, but we'll certainly give it our best shot!

P.S. This is not meant to sound patronising - I think your points are valid and need addressing in PWAs. I don't think it's insurmountable, but it does need some work.

</comment></comment></comment></comment></comment><comment><USER15> This says that Mozilla has been "less aggressive" in implementing PWA features, but the only API I can see missing is the speech synthesis. Have they really failed to support anything important? I mean they invented the PWA with Boot2Gecko a.k.a. Firefox OS.

<comment><USER16> WebOS had them beat.

<comment><USER17> WebOS apps weren't progressive until Enyo 2, which came out after HP bought Palm.

</comment></comment></comment><comment><USER18> The problem is that modern browsers are too bloated to be a cornerstone of mobile web. The devices are still inferior in speed and memory use to a desktop PC. Instead of blaming mobile apps, focus on bloat in the browser.

</comment><comment><USER19> The article reads as a perceived straw man attack against PWA idea, but the author really captured the heart of the issue right here:

      Google is, by far, the most aggressive in adopting
      new browser standards behind PWAs in Chrome. Other vendors,
      such as Mozilla, Microsoft, and, in particular, Apple,
      have been much less aggressive...

The only thing more important than the "native vs. web debate" is user experience and accessibility. When "Mozilla, Microsoft, and Apple" become more aggressive, we will all naturally evolve to the (relatively) better option. The author argues with the wrong people.

<comment><USER20> Right. Or put another way, UX _is_ the ultimate debate. So long as there is a significant difference, the debate has a winner.

</comment></comment><comment><USER21> Somebody needs to create PWA Store. Because, [https://medium.freecodecamp.org/i-built-a-pwa-and- published-...](https://medium.freecodecamp.org/i-built-a-pwa-and-published-it- in-3-app-stores-heres-what-i-learned-7cb3f56daf9b)

</comment><comment><USER22> I can't help but read this, as a former webOS app dev, with a bit of irony given the source.

</comment><comment><USER23> What are examples of progressive web apps that don't suck? I'm not sure I've ever seen one.

<comment><USER24> Check out [https://appsco.pe/](https://appsco.pe/)

</comment></comment><comment><USER25> Thought question:

Is _truly_ a good idea make the web browser even more powerfull?

If the answer is yes, take in account that make advertisement and privacy- haters more power....

<comment><USER26> Not necessarily true. Case in point: Firefox.

</comment></comment><comment><USER27> Yeah PWA vs Native. It really depends on your use case, Its all fine and dandy. The practical problem for us when working with a start up for version 1 is the money. We can build a very simple responsive site with image camera upload using a form ( recent use case)for $10k and its working for them. The customer for us, is not gonna have a budget or want to pay $30K-$50k+ for a native app from the get go or version 1 to test their AMAZING WORLD CHANGING IDEA that'll make'em arab weatlhy, its a risky and a costly wager to loose. To me it seems it kinda always comes down to the money and how much you wanna spend also if the solution is WORTH the cost + benefit ( gross sales going up)... PWA or responsive site OR whateva you wanna call it, is cheaper. The fundamental goal of any / every business on planet earth is to reducing costs ( get stuff done cheaper). Mars also. :-) maybe.. I don't know what im talkin about but thats just my view.

</comment><comment><USER28> Can PWAs charge users as easily as native apps? I think that is the killer feature for developers. As soon as we have that, native apps will go away quickly.

I only install native apps if I absolutely have to. But I am happy to try websites. Not sure how many users are like me in this regard?

<comment><USER29> Yes - the Payment Request API is here already [https://developers.google.com/web/fundamentals/payments/](https://developers.google.com/web/fundamentals/payments/)

[https://caniuse.com/#feat=payment-request](https://caniuse.com/#feat=payment- request)

</comment></comment><comment><USER30> We run a small SaaS which basically implements (mobile) Quality Control for the cleaning sector.

Being able to inspect buildings, rooms etc. while one is offline (imagine the cellar of a clinic without proper WiFi) is crucial for our users. So we had to build native iOS and Android apps to support that, duplicating many features of our responsive webapp. Most users still prefer our webapp though (some use the "Add to Homescreen" feature of iOS for example and use our webapp like a native app anyway). With Service Workers supported on iOS since 11.3 we are currently evaluating if we can finally implement offline support with our webapp. So far it looks good, which for us and our users really would make things a lot easier.

<comment><USER20> Is there a reliable way to not bug users with the "add to home" prompt if they already have? The last implementations I saw were all underwhelming in this regard.

<comment><USER31> There is no way to know. Apple makes it intentionally difficult to add a website to the home screen.

Furthermore, tons of users are on chrome or browsing from an app like Twitter, but the "add to home" functionality is only available from Safari.

<comment><USER32> Not to mention that adding an app to the home screen REMOVES some APIs like getUserMedia

<comment><USER33> What? Why?

<comment><USER32> It's technically a different rendering engine to Safari, so it doesn't have some features as they were only added to Safari currently.

</comment></comment></comment></comment></comment></comment><comment><USER34> For those who wants to see a desktop example of an actively developed, and complex PWA, checkout [https://v5.polarr.co/](https://v5.polarr.co/)

Disclaimer, founder here.

<comment><USER35> This is what I see: [https://imgur.com/hWHyOUD](https://imgur.com/hWHyOUD)

At this point, I have no idea what polarr is or what it's supposed to do, and nothing on the page seems to be interactive in any way. If this is an argument for PWAs, I'd chalk this one up as a win for native apps.

<comment><USER36> Agreed. The hit targets are too small for mobile, and that's something that's much harder to get wrong on native where the pre-built components are designed with that in mind.

<comment><USER35> The hit targets are too small is kinda minimizing the problem. The real problem i see is that there's no equivalent to the app store page that tells you what this is, if it's compatible with your device, and why you should use it. If I knew I wanted to use it, I could maybe figure my problem out. But presented with a random broken-looking screen, I have no motivation to look into it further.

</comment></comment></comment></comment><comment><USER37> > If you're doing native mobile app development, you're doing it wrong. These > days, the best option is progressive web apps: websites that work like apps > on a mobile device. They have all the capabilities of native apps, including > offline functionality, but also the considerable advantages of websites.

So you mean you have access to sqlite, sms handling, start up on boot, automatic shortcut on home page, overlays, starting an intent without user action, asking user contacts, creating a vpn, using bluetooth, etc from a wpa ?

Marketting bs at it's finest.

<comment><USER38> Don't forget push notifications, lock screen, background audio...

</comment></comment><comment><USER39> > Apple used to understand this. When it first introduced the iPhone, Steve > Jobs was adamant that HTML5 was the future and that apps will simply just be > web apps. There was no native iPhone SDK for 3rd parties. Apple has since > abandoned this vision.

And what did we learn from that? Almost everyone, in my experience, takes the wrong lesson from that story.

I'll take "achieving reliable state synchronization over an unreliable network on an unreliable device as table stakes for whether or not a product works is hard" for $500, Alex.

</comment><comment><USER40> Author of TFA here. I've been a PWA fanboi for years, having written about them for Ars Technica long ago. This site is concerned only with Enterprise computing, and it seemed to me that the case for PWAs is all the more compelling for the Enterprise, if you can have one backend and HTML/Javascript on the client end with gussied-up CSS for different platforms. Having closer to one coffee base and the ability to issue updates to users automatically through the web address are compelling.

<comment><USER40> And if you haven't checked it out, Twitter Mobile is a PWA. Go to [https://mobile.twitter.com/](https://mobile.twitter.com/)

<comment><USER41> And it's terrible. Broken scroll, broken navigation, slow.

</comment></comment></comment><comment><USER39> > Thankfully, I'm a proficient developer. I click put a breakpoint in their > JavaScript, click submit, change the isValid flag to true, and voila! I've > updated my D&B profile.

I am quite sure you're right, that they had a real bug, and that your workaround harmed nothing. But doing things like this (and bragging about them online no less) is a pretty sure way to get your data flagged as (at best) corrupted and (at worst) "troublesome customer; do not engage".

</comment><comment><USER42> You don't have to write Javascript though. I've built a stack for myself which is written in 100% Kotlin and I don't have to bother with JS.

</comment><comment><USER43> Many companies either don't care or are too incompetent to develop high quality PWAs, or SPAs at all for that matter. The low hanging fruit example would be Reddit which IIRC is STILL broken on many Android devices, breaks backwards compatibility between design iterations (login, cookies, etc), 5-10s loading times (SPAs are FASTER remember!), and missing comment chains [1].

[1] reddit.com/r/beta

</comment><comment><USER44> SEO is still an unsolved problem, imho. Has anyone experience with this? We run a ecom business with millions of products, fast responses in time are necessary for us.

I certainly like the idea of PWAs much more then fragmented native mobile ecosystems. But it seems quite complicated compared to a classic web app. As others noted, service workers are tricky to set up.

Maintaining the offline cache is quite hard. I am quite sure that average ecom apps will easily hit the proposed 10 MB cache quota if the useful views for offline viewing are preloaded. Strictly using an LRU seems silly because the user will likely do different things if he realizes he cannot load new content. (I.e. he could decide to prepare an order with his data.) There are lots of tough decisions to be made even before thinking about cache invalidation.

Routing and history changes are quite puzzling for me. Quick tests on history api made me realize that it is 10 times harder then it looks, not even sure if it works.

</comment><comment><USER45> Or just make a website that doesn't require javascript at all that loads instantly, uses almost no CPU/battery, and renders on everything everywhere and for people with accessibility issues.

<comment><USER15> That sounds great for a web page, but PWAs are more about being apps than about being web pages. Without JS you can't access location, camera, microphone, dialer, accelerometer, etc. Also it's difficult to preload a plain HTML page for offline use on a phone.

<comment><USER46> _" Without JS you can't access location, camera, microphone, dialer, accelerometer, etc."_

That's not a bug, it's a feature.

<comment><USER15> Let's take something very simple, like a guitar tuner. [https://guitar- tuner.appspot.com/](https://guitar-tuner.appspot.com/) How are you going to implement that in plain HTML?

<comment><USER46> Don't use web technologies to implement it. Make a native app.

Javascript is a cancer that has lead to a slow, bloatware-, spyware-, and malware-infested web. Getting rid of it should be a priority.

<comment><USER15> So what's the advantage? It looks like all downside to me. From an app developer standpoint, I'd have to deal with multiple platforms and distributors. From a user standpoint, I'd have to hope the developer made the app available for my platform, and go through some install process before I got to use it. This way, it loads (with a cold cache) in half a second.

<comment><USER46> The advantage for the user is that they don't have to open up their browser, computer, or mobile device to being exploited, spied upon, or advertised-to by an ocean of javascript garbage on the web. Their web browsing experience will be tremendously improved and streamlined.

If they want a particular app, they can click to download and run it explicitly. It's not a big deal.

From the developer and business standpoint, it might be a disadvantage not to have something like javascript available to use. It's more inconvenient, and now they can't spy on, advertise to, or track the user as easily.

But I'm for a user-centric web, not a business-centric or developer-centric web.

<comment><USER15> If you click the link I posted above, you will get a permissions dialog that asks to access your microphone. You can say no upfront, or revoke permission at any time. It's not open to spying.

Edit: to be specific, it's a lot easier to allow access temporarily in a browser than it is using the Android permissions system. Not sure about Apple but I'd bet it's about the same as Android.

<comment><USER46> Just because you've given permission to an app to access, say, your microphone, doesn't mean that it's not spying on you. That guitar-tuning app that was mentioned earlier might well be spying on you using the microphone it got access to.

The guitar-tuning app is a special case that actually has a legitimate need to use a microphone, but I've seen countless apps that need all sorts of permissions that they don't legitimately need. Like calculator apps that need permission to access my microphone or contacts.

The sad thing is that most users will just click through a popup asking for permissions, just like they do the "Run as administrator" popups on Windows. Such things are just not very effective safeguards.

Even with limited permissions, allowing JS apps to run on my system opens me up to all sorts of JS exploits, tracking, and advertising that just aren't possible or much more difficult with static HTML (which has a much smaller attack surface than JS anyway).

<comment><USER47> I don't get it.

Native apps are even worse. At least websites are ephemeral and you can pop open a dev console and inspect/block the traffic.

Native apps ask you for permissions and then can access those features for as long as they're installed on your phone, often in the background. Ever see what kind of data Google has on the average Android user? It knows their exact route through town every day. It's crazy.

Maybe the world would be a better place if 1999 MapQuest was still the most advanced app on the internet. But your fixation on Javascript in this thread sounds out of touch with the more inconvenient truths of modern technology, probably because Javascript happens to be the one you can live without.

<comment><USER45> Native apps are static. You know what is in them from version to version. Javascript changes every time you pull it down and even changes as you use it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER48> I'm pretty bullish on the web, and I love web-apps, and I'm excited for a web- first future, but the progressive web is not reliable enough yet to use as a full replacement for native apps.

The article mentioned that Safari is significantly lagging here, but I think it understates how much of a problem that is. If you build a progressive web app, you can't rely on having a lot of feature support - even minor things like background music for an audio player.

But it's not just that support is bad. There are standards that flat-out don't exist yet. For example, how much local storage do you get, and when will that storage get cleared? For native apps, this is really straightforward - for web apps, we still haven't finished building a standard for reliable persistent storage.

This means that even if you're an offline only app, you still have to back up client information to a server. If you're a small dev, you really don't want to do that. I want to be able to build an application in JS and have it store all data clientside. If I'm building a document editor, I don't want your documents on my server. But if I do a progressive app, I run the chance of your local encryption keys, documents, settings, etc... just getting deleted some time.

There are a lot of ways to store information on the clientside - but many will get cleared the first time that space is low, or the first time the user clears their cache accidentally, or they have arbitrary limits on how large a single blob can be. They also can't be shared cross-browser, so if your user has multiple web browsers installed on their computer or phone, switching between them is a terrible experience.

On top of this, there are problems with the existing standard. The web is a good thing for security, but background code complicates that model. Since progressive web apps should inherently be treated like progressive enhancements, I would have loved to see this put behind a user permission - because it's a powerful feature and most websites don't need it.

But... it's not behind a permission. This is exactly the type of thing that users should be consenting to and exactly the type of feature that should be made transparent rather than opaque or hidden.

At some point in the future, the standard might evolve enough that you can start using it in exciting ways, and I'll be all over it when it does. But I just don't see it at the moment. At the _very_ least, we need to get storage sorted out. But that's probably not going to happen for a while, and whenever it does get standardized Safari is just going to lag behind on implementation anyway.

</comment><comment><USER49> Do PWA's allow adblock / tracking protection / additional useful addons to run?

</comment><comment><USER50> I expect PWAs to hit their stride in a couple years. In some sectors (government and non-profits), there is strong cost pressure and "discoverability" is mostly a non-issue. They are blazing the trail that others will follow.

<comment><USER51> Interestingly enough, at Ionic we've seen almost more demand from enterprises for PWAs than the broader market. It's not normal to see enterprise ahead on the adoption curve. As you said, cost is a big factor, but I think PWAs are familiar to these organizations because it's just like building web apps. It's something they know how to do already _and_ they get full control over distribution/security/etc.

A lot of what they need to build was never meant for the app store (internal/employee facing/etc.), but needs to be mobile, so it makes a lot of sense.

</comment></comment><comment><USER52> If you want to build true progressive web apps, use our open source platform.

[https://qbix.com/platform](https://qbix.com/platform)

We spent literally YEARS on all aspects of making these progressive web apps, including:

* Making each component we build (chatrooms, image upload etc.) work out of the box on whatever environment it's loaded. For instance resizing and cropping an image on the desktop involves the mouse wheel while the same thing on touchscreens involves the fingers. See this: [https://vimeo.com/208438090](https://vimeo.com/208438090)

* Taking advantage of the latest changes like SFAuthenticationSession on iOS

* Writing our own cordova plugins when the existing ones were not working, available for free as open source on github

* We support ApplePay, AndroidPay, Web PaymentRequest for Chrome and Firefox on Android and desktop and even looking to do Safari for Mac.

* We support notifications on iOS and Android native apps, as well as Web Push for all web browsers that support it. And we plan to make encrypted notifications via VoIP on iOS and some tricks on Android.

* As time goes on we will add end to end encryption beyond what is available on the Web today, see [http://qbix.com/blog](http://qbix.com/blog)

* Oh and we are in the process of building a mobile HTML editor that sucks less than all the others (though we have not freely licensed it yet! Contact us!) [http://d3e.ru/sel/demo/#1](http://d3e.ru/sel/demo/#1)

* We have instant personalization, invitations, access control. We have a passwordless authentication as invited users go to the site via a link that instantly confirms their number/email, see their friends who uploaded their address book, download the app and then use SFAuthenticationSession to continue where they left off.

* We plan to write our own mobile browser to make people have social experiences across websites without Facebook. We also speak with the SAFE Network team to add support.

* The former lead developer of the solid project (solid.mit.edu) has come on board to help us realize our vision for qbix platform 2.0 [https://qbix.com/blog/2018/04/03/onward-to-qbix-platform-2-0...](https://qbix.com/blog/2018/04/03/onward-to-qbix-platform-2-0-serverless/)

<comment><USER53> I have a few comments about ux. This website take a second to respond to clicking a menu item. The dropdown nav menus are only usable by hovering and clicking on the titles dismisses them.

<comment><USER52> That's our website. You can make whatever UX you want with the framework.

</comment></comment></comment><comment><USER54> One thing I used to love about websites is that I knew once I closed the tab the site was gone forever and it was not allowed to execute any more code. That was heaven.

But now with web workers and service workers and god knows what else, I feel like I've lost that security, and that makes me uneasy. It's a security and a privacy issue.

I know I can disable all that stuff in about:config but how do I know they haven't invented some other new technology in the past months that I should be aware of?

<comment><USER55> I'm not one to be super paranoid about security and privacy on websites, but the other day I was working on a PWA for the first time for a new client, and when I clicked "show service workers from other domains" in Chrome, I see community.aseprite.org, discourse.gohugo.io, vuejs.org, forums.dotnetfoundation.org, lodash.com, www.cnet.com, www.meetup.com, www.google.com/maps, www.pinterest.com, www.wired.com, and xhr.spec.whatwg.org. I get why half of these sites _think_ they need it (the news websites and web 3.0 forums, so they can update themselves in the background maybe?) but service workers for the lodash, whatwg, vuejs sites? This seems just plain unnecessary.

<comment><USER56> Those other sites do it so that they're available offline. Service Workers give you control over network caching so you can return an cached/offline copy of the content.

<comment><USER55> I remember when this was actually a feature of web browsers. In the File menu you could just click "Offline mode" when you were offline, and it would return everything from cache. And then one day that menu option was just gone. Now the web has an opt-in way for sites to do this themselves. It feels pretty convoluted. Then again Web 3.0 feels pretty convoluted in general. It's as if the iPhone SDK came out and suddenly set the standard on how convoluted development ought to be, and every other platform followed suit.

<comment><USER56> Firefox has it. Menu > More > Work Offline.

<comment><USER57> Safari has a similar ability called "Reading List". And even saving pages as a webarchive. The problem with both are that modern websites depend so heavily on XHR that caching the initial page assets is essentially absent of the content desired, and thats what service workers can help fix.</comment></comment></comment></comment></comment></comment>


Why Jim Yong Kim's move has shaked up the world bank - <AUTHOR> https://www.ft.com/content/44dd27d8-158d-11e9-a581-4ff78404524e <comment><USER2> Why shaked up versus shaken up?

<comment><AUTHOR> I am just wondering that myself, since the two letters are not close on my keyboard. Maybe I typed it with my left hand which is usually cause for regret.

</comment></comment><comment><USER3> Blocked behind a paywall

<comment><USER4> [https://outline.com/4x25eL](https://outline.com/4x25eL)</comment></comment>


The Never Ending Battle Over the Best Office Temperature - <AUTHOR> http://www.bbc.com/capital/story/20160617-the-never-ending-battle-over-the-best-office-temperature <comment><USER2> This is pure speculation, but I think humans' seasonal temperature adjustments are often not considered enough.

Anecdotally, I could be wearing the same pants/shirt inside: when it's routinely 30-35C outside in the summer, I'm quite comfortable with an inside temperature of 22-25C. Then, in the winter when it's regularly 0-5C, an inside temperature of 19-22C is comfortable. It's interesting how personal temperature tolerance varies with the seasons.

</comment><comment><USER3> I sympathize with people who prefer a warmer environment, because ideally everyone should be comfortable, but the simple fact is that you can wear more clothing to get warmer, but there is absolutely nothing you can do to get cooler.</comment>


Show HN: Adm.js – Asynchronous Dependency Manager - <AUTHOR> https://github.com/bohdyone/adm.js <comment><USER2> I made something like this as well. A system for handling load order with a cool syntax, cycle detection and small footprint. There's something cool about writing dependency tools. I like the feeling of my own code bootstrapping my own code. No foreign includes in the system. But this is only on JS client side web, where ES imports haven't landed yet and I don't like the idea of using require or amd. On server side I'm perfectly happy to use require and npm and loads of other people's code.

I wish i know how to make code like this popular. I guess the problem is js developers already already have workable solutions that are basically monopolies. Still it's an interesting challenge to take their market.

It seems very hard though because if you think about any Improvement you could make to your code over theirs the existing solutions could make that Improvement too and their Improvement would have so much more utility than your own because it would be able to instantly reach all their existing customers. So it's quite the challenge to take market share from require and Amd and so on.

I guess the trick then is the old trick try to pick a niche that the Monopoly doesn't really serve. Amd and require are for everywhere .... But solutions like yours and mine might work better for small to medium sized projects in the browser. Or an even smaller niche maybe programmers of games or Demos in the browser. Size and complexity conscious.

<comment><AUTHOR> I'm not trying to take anyone's market with this, more that I couldn't find any de facto solution that solved this problem when I went looking for why my scripts were waiting 400ms to load, and started thinking about async scripts.

So I went and wrote something simple, and hopefully versatile!</comment></comment>


Alexander Graham Bell's 1880 paper on photoacoustic effect - <AUTHOR> https://zenodo.org/record/1450056 <comment><AUTHOR> Someone posted here on the photoacoustic effect a few days ago ([https://news.ycombinator.com/item?id=21454851](https://news.ycombinator.com/item?id=21454851)) and the link above is a cool old paper I discovered down that Internet rabbit hole...</comment>


Ask HN: Would you buy a cell site simulator detector? - <AUTHOR>

What if it fit on a keychain and was just a simple led? <comment><USER2> I would. I would also buy a phone that can detect the difference and does not connect to them.

<comment><AUTHOR> Well the difference is simple, most cell site simulators force unencrypted protocols... There are android apps that supply this sort of information.

<comment><USER2> Hi Can you share some more information? Which apps would you recommend? Besides installing the app, what else does one have to do to prevent their phone from connecting to sting rays?

<comment><AUTHOR> There's very little you can do (afaik) to keep your cellphone from connecting to a stingray. It's essentially the same as being way out in the boonies with only 1 (unecrypted) tower within range. Here's one of the android apps: [https://secupwn.github.io/Android-IMSI-Catcher- Detector/](https://secupwn.github.io/Android-IMSI-Catcher-Detector/).

</comment></comment></comment></comment><comment><USER3> Yes</comment>


The anatomy of a post that got over 500,000 likes - <AUTHOR> http://blog.bufferapp.com/what-makes-content-go-viral-the-anatomy-of-a-post-that-got-over-500000-likes

<comment><USER2> Between the Joel.is posts and this latest "Buffer" blog posting I have to say the majority of material coming out of these folks just reeks of "Quick-Fix" (Steven Covey term) superficiality and marketing spam. It's highly individualized reflection that gets generalized back into principles and platitudes for success and looks great on the surface, but there's no depth.

They spout off a few "lessons" -- really just post-success reflections/rationalizations -- all of which may or may not truly be principles that lead to success, and then slather their posts with some filler remarks. Top it off with a few random EXTRA-BOLD / _italicized_ points to pass it off as "fact" and then slap a ton of social media, newsletters, etc. around it.

I can just imagine the folks at Buffer discovering the words of Jesus...

"Here at Buffer, we like to love your neighbor as yourself, _for in loving others we spread compassion and grace_. Our phenomenal work in spreading compassion to one man, who we found nearly dead at the side of the road, has helped us all understand love better. The key is this: _if you want to love, you need to stop on the side of the road for all people_. Also, get BufferApp. PS, sign up for our newsletter. Buffer."

<comment><USER3> I don't think I've ever seen a more vapid blog than the Marc & Angel site.

</comment></comment><comment><USER4> I went through the blog (the last 3 pages of articles) they all have quite consistent share ratios (Facebook likes are almost always 6 - 7x the number of Tweets) and the number of likes seems to hover around 4k for the "average" post (so it's plausible they have a regular audience liking most posts).

Every blog post on their site follows the formula talked about in this blog post (explaining "why" it went viral) so why haven't these posts gone viral?

</comment><comment><USER5> The one, and most important thing that will most likely make a blog post go viral is to say what people like to hear.

So, stop having an opining, stop being yourself, and write a blog post about 'being yourself'. They will share it like crazy!

<comment><USER6> And ending the post with a question to the reader. And encouraging the readers to LIKE, SHARE, and COMMENT on the post!

</comment></comment><comment><USER7> Um, one thing that is critical is time and place. You can do all of these things, but with content that isn't for the right people at the right time and it goes nowhere. It's like the idea of the tablet. 10 years ago the tech was too expensive. Idea was great, execution was not totally horrible, but at $1000+ who cares? At $200-500 with even better execution it's a phenomenon.</comment>


Ask HN: What to do when nothing makes sense? - <AUTHOR> <comment><USER2> In a conversation, Nod and smile and give backchannel responses that make it seem like I do, and wait until the person speaking says something I do understand, to give context to everything before it, and then make an educated guess to what they were talking about.

In IT, look up every word in the man page I don't understand, and then every word in the definitions of those words, and so on, until I understand the basics of the systems and protocols underlying what I am working on, and then build back up from there.

In life, play something like a holy fool [0], and accept that things don't need to make sense for me to be okay.[1] Also that the sense that things don't make sense, could just be a feeling made by trying to cling to a framework of knowledge that is showing its limitations, and needs to be expanded or left behind. Also know that my sleep, diet, physical activity, all play a big role in my sense of mental clarity, and try to keep to good habits.

As a human being, get away from other human beings, into someplace green and let direct observation of the billions of years in the making natural world, and my self as a natural thing make all the sense that is needed.

[0] [https://en.wikipedia.org/wiki/Foolishness_for_Christ#:~:text...](https://en.wikipedia.org/wiki/Foolishness_for_Christ#:~:text=The%20Holy%20Fool%20or%20yur%C3%B3divyy,in%20the%20eyes%20of%20men). [1] [https://en.wikipedia.org/wiki/Acceptance_and_commitment_ther...](https://en.wikipedia.org/wiki/Acceptance_and_commitment_therapy)

</comment><comment><USER3> Take a look at the attention manifesto:

[https://twitter.com/grantdraws/status/1278349092733755392/ph...](https://twitter.com/grantdraws/status/1278349092733755392/photo/1)

[https://twitter.com/grantdraws/status/1278349092733755392/ph...](https://twitter.com/grantdraws/status/1278349092733755392/photo/2)

[https://twitter.com/grantdraws/status/1278349092733755392/ph...](https://twitter.com/grantdraws/status/1278349092733755392/photo/3)

Hope it helps

</comment><comment><USER4> Accept the nonsense.

Then stop doing anything which makes you unhappy and seek that which brings you joy.

</comment><comment><USER5> Drink orange juice, the vitamin boost and sugar will help your cognition.

</comment><comment><USER6> 3\. Hide steps one and two.

In an actual answer:

For hard science, do as totetsu said for IT. start where you don't understand, look up words, and work backwards until you have enough of a basis to understand.

For anything else, I'm afraid I'm not much help.

</comment><comment><USER7> In what context?

</comment><comment><USER8> Beats me.</comment>


The Art of Powerful Questions (2003) [pdf] - <AUTHOR> https://umanitoba.ca/admin/human_resources/change/media/the-art-of-powerful-questions.pdf <comment><USER2> In context, allow me to share this gem of a comic: [http://kiriakakis.net/comics/mused/a-day-at-the- park](http://kiriakakis.net/comics/mused/a-day-at-the-park)

I won't say anything about it, because I don't want to spoil it for you.

<comment><USER3> That was lovely. Thanks for sharing!

</comment></comment><comment><USER4> "If I had an hour to solve a problem and my life depended on the solution, I would spend the first 55 minutes determining the proper question to ask, for once I know the proper question, I could solve the problem in less than five minutes." -Albert Einstein

Reminds me of:

"Give me six hours to chop down a tree and I will spend the first four sharpening the axe." -Abraham Lincoln

<comment><USER5> As soon as I saw that Einstein quote, I couldn't help wondering if it was fake. I'm really unable to say for sure - I can't get beneath the thick layer of websites with it, or saying it's "attributed to" Einstein or he is "claimed to have said it", etc. No mention of a source when you search for it. So, I'm sceptical. I downloaded the PDF.. there's another Einstein story:

 _Many years later,an empirical demonstration showed that light from distant stars actually curved as it passed through the gravitational force of our sun. Einstein's graduate students rushed to him as he was walking through the Princeton campus and exclaimed, "Dr. Einstein, light really does bend!" Einstein looked at them quizzically and said, "Of course!"He had come to this conclusion through exploring the question in his own thought experiment years before._

I can't find "Dr. Einstein, light really does bend" online except in this article. I asked the questions Uh, wasn't that 1919? Was he in the US in 1919? (A: First visited 1922, moved there 1933). But the writing leaves you uncertain which experiment ("demonstration"?) they mean, or what ...

A lot of it has the same vague, unpindownable nature. There just seems something peculiarly dead and unreadable about the style of the article. It's hard to force my eyes to read it. Extremely boringly written, repellent. I found that the most fascinating thing about it - Q. _How did they manage to create such an unattractive, uninviting style?_

</comment></comment><comment><USER6> Before the internet, I user to spend a lot of time pondering questions to which the answer was in a textbook somewhere. Sometimes I figured them out for myself.

Today, I rarely spend much time pondering questions whose answer is in Wikipedia. I just look it up.

Pondering any question is good mental exercise for others. I wonder if the easy availability of answers to most questions makes it harder to tackle the truly unsolved ones.

<comment><USER7> There's a related thing, too. I notice that easy answers mean it takes me longer to realize I'm asking a slightly wrong or less useful question than I should be.

</comment></comment><comment><USER8> Summary repo here: [https://github.com/joelparkerhenderson/powerful_questions](https://github.com/joelparkerhenderson/powerful_questions)

These questions and practices are very relevant for startup teams and tech teams, such as for strategic project planning with limited resources, or issue postmortems using blameless retrospectives, or pitch deck presentations for choosing the big questions to tackle.

</comment><comment><USER9> Powerful questions are disruptive. They invite revolution.

Corporations HATE disruptive questions. They destabilize the status quo and the large scale infrastructure that relies on it. They embarrass executives who can't answer them with a platitude or deflective business-speak. And they leave stockholders less confident that the company is on track to predictably increase share value next quarter.

Universities dislike revolutionary questions because professors are just as dependent on status quo as corporate executives are. Revolutionary ideas dispose of all that hard earned expertise you developed in the past decades and force you to start over, reduced in rank from being a renowned expert to just another student. Worse still, such questions require rethinking and replacing too many models and theories, consuming much too much development time to ship yet another incremental research paper in time for the gauntlet of conferences, thereby letting your academic life's blood. They also tend to irritate and/or confuse others who do peer review and/or approve funding.

No. Powerful questions can't be too powerful. Consider Galileo or Darwin or Einstein. If the three had depended on the support of their peers to sustain their careers, then after asking their Magnum Opii, all would have perished.

</comment><comment><USER10> Every entrepreneur and CEO should be able to answer these question without thinking. Eventually every output is caused by degree of focus and this document is an example to amplify meaning from effort.

</comment><comment><USER11> "He explained to me with great insistence that every question possessed a power that did not lie in the answer." \- Elie Wiesel, Night</comment>


As Venezuela Collapses, Children Are Dying of Hunger - <AUTHOR> https://www.nytimes.com/interactive/2017/12/17/world/americas/venezuela-children-starving.html?mtrref=undefined&gwh=61E5C34C2D701FBED9A39759D4C9E6DE&gwt=pay <comment><USER2> here is a previous HN thread on this same article...not sure why that one is currently being flagged, but I think there has some good discussion...and oftentimes, there is no absolute truth in either democracy or oligarchy for a certain situation, but it is how the participants in the system think of them (i.e. their mindset) is more crucial a factor...

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


Coronavirus Antibodies Present in Nearly 25% of All NYC Residents, Cuomo Says - <AUTHOR> https://newyork.cbslocal.com/2020/04/27/coronavirus-antibodies-present-in-nearly-25-of-all-nyc-residents/ <comment><USER2> Related earlier discussion "Preliminary test results suggest 21% of NYC residents have Covid antibodies" [https://news.ycombinator.com/item?id=22958352](https://news.ycombinator.com/item?id=22958352)</comment>


Microsoft Research Built a Smart Elevator with AI - <AUTHOR> http://thenextweb.com/microsoft/2014/01/20/microsoft-research-built-smart-elevator-uses-ai-figure-floor-youre-going/#!tARnz <comment><USER2> If you have enjoyed your ride on the sirius cybernetics corporation happy vertical people transporter....

</comment><comment><USER3> I'd rather take the stairs.</comment>