The Role of Deliberate Practice in the Acquisition of Expert Performance - <AUTHOR> https://acesounderglass.com/2019/06/21/epistemic-spot-check-the-role-of-deliberate-practice-in-the-acquisition-of-expert-performance/ <comment><USER2> David Epstein's book "Range" offers a different view of expert performance -- that it doesn't work very well in domains with ambiguity (such as a hidden state), or when a variety of skills are required.

In other words, expert performance applies to piano and chess very well, but a diversity of backgrounds is more important for things like management or R&D more broadly.

<comment><USER3> It seems to me possible to improve at the skill of discovery - but I'm not sure how, and perseverance, creativity and luck swamp everything else. Those aren't skills.

<comment><USER4> Ah, but "chance favors the prepared mind", so it IS possible to improve your luck.

<comment><USER3> But is it a "skill"?

<comment><USER5> It is better called "ability". And "luck" is better called "recognizing an opportunity".

If you're unable to utilize an opportunity, which takes skill, or are unable to recognize an opportunity, which also takes skill, you're out of luck.

</comment></comment></comment></comment></comment><comment><USER6> Ericsson's popular-market book _Peak_ has much more than the paper (there are many citations in the back).

I remember in particular a duscussion about music students practicing for an optimum, or maybe maximum, number of hours per day. I'm in math and there are a number of people in math who also say four is the limit; a quick google found this for example [https://theweek.com/articles/696644/why-should- work-4-hours-...](https://theweek.com/articles/696644/why-should-work-4-hours- day-according-science). FWIW.

Also well-konwn are the first two paragraphs of Littlewood's Miscellany, [https://www.gwern.net/docs/math/1986-littlewood- littlewoodsm...](https://www.gwern.net/docs/math/1986-littlewood- littlewoodsmiscellany.pdf), p 189.

<comment><USER7> FWIW one might be able to find their own optimum by carefully listening to their body. In college when I overdid math I had a very distinctive buzz in my head (like the brain "shorting out"), that signified I am done for the day.

Remarkably, the same material that stupefied me just prior to "shorting out" would become crystal clear the next morning. I think the brain needs to be pushed up to a certain limit before it considers the material important enough to be worth of serious "structural changes". The pay-off is non-linear.

The difficult part is that you might be tempted to quit because you're "tired", even before you actually hit the wall, but then blowing past the limit in a fit of zealotry just destroys motivation without any extra benefit. The balance is hard to find. The best I came up with is try to observe my performance diminishing and use that as an "objective" signal. Easier in some areas than others.

<comment><USER8> > Remarkably, the same material that stupefied me just prior to "shorting out" > would become crystal clear the next morning.

Very much in line with what one reads in Barbara Oakley's "A Mind for Numbers," and her free Coursera course based on the book (both recommended).

</comment></comment></comment><comment><USER9> All the studies focus on single-task performance. Indeed, typing random characters for several hours a day would lose my attention.

I don't know of a study that estimates the maximum number of productive hours over a varied workload such as running a startup. There clearly is a limit, but it's high — maybe 90 hrs/wk for motivated people.

In practice, it's the neglecting of other things like relationships and exercise that kicks in before mental energy limits.

<comment><USER10> I do know people that can work extremely long hours and still be productive but they are quite rare. For a large majority of people a ninety hour work week, would be extremely counter productive at best but most likely dangerous for your mental health.

[https://www.popsci.com/work-week-hours- productivity/](https://www.popsci.com/work-week-hours-productivity/)

<comment><USER11> I'm curious about the nature of the 90hours per week too.

Is it ~slow paced work, no rushing but constantly walking ideas and attempts ?

Can they endure 90 hours of hard dead ends / frustration / disappointment ? Or is it 90hours of tangible progress (lets include small dead ends that provide nice references for more ideas) and pleasure ?

<comment><USER12> Newport's book puts the distinction between deep work and shallow work.

Calling up restaurants and trying to get them to switch to your booking software is shallow work. Needing to sit down and program the complete back end of that booking software including testing by Friday is deep work.

You can only do so much deep work before your reserves of energy are depleted.

<comment><USER13> One of the challenges of deep work is getting in the zone. Does the book go over that?

<comment><USER8> If by "zone" you mean "flow," then yes; here's a relevant quote from Deep Work:

> The connection between deep work and flow should be clear: Deep work is an > activity well suited to generate a flow state (the phrases used by > Csikszentmihalyi to describe what generates flow include notions of > stretching your mind to its limits, concentrating, and losing yourself in an > activity—all of which also describe deep work). And as we just learned, flow > generates happiness. Combining these two ideas we get a powerful argument > from psychology in favor of depth. Decades of research stemming from > Csikszentmihalyi's original ESM experiments validate that the act of going > deep orders the consciousness in a way that makes life worthwhile."

Newport, Cal. Deep Work: Rules for Focused Success in a Distracted World (p. 85). Grand Central Publishing. Kindle Edition.

</comment></comment></comment></comment></comment></comment><comment><USER14> One thing I commonly hear in response to a question of the form "How can I effectively learn X?" Is "through experience" or "you just have to do it". One frustrating thing about that response is that it takes skill to know what to focus on while practicing. In some domains like sports, people recognize that coaches are useful for learning what to focus on as you practice. It would be great if there were coaches for skills such as a software engineer's prioritization, planning, and estimation of day-to-day tasks.

</comment><comment><USER15> I wonder if theres a difference between straight 'studying' and practice that involves mechanical movement. What I mean is reading a book on a subject vs. doing gesture drawing or piano playing etc.

I can definitely believe theres rapid diminishing returns after an hour when practicing things that require physical activity.

</comment><comment><USER16> In any case, I still believe that Cal Newport's Deep Work is a good reading for someone who wants practical advice on Ericsson, Krampe, and Tesch-Römer's 1993 paper. I wrote a review in detail of Deep Work that you can see here: [https://alvaroduran.me/deep-work](https://alvaroduran.me/deep-work)

</comment><comment><USER17> There is deliberate practice and there are geniuses who also do deliberate practice...

If you have not yet seen the extremely talented composer and piano player Emily Bear perform the "Bumble Bear Boogie", you are in for a treat.

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

</comment><comment><USER11> I'd love to find meta analyses of problem solving skills learning.

</comment><comment><USER18> I'm thinking a review of spaced repitition software, like Anki, logs would give more information on efficient learning.You could map hours spent and schedules to outcomes.</comment>


Mother of all bike lights - <AUTHOR> https://hackaday.com/2018/10/17/diy-arc-light-makes-an-unnecessarily-powerful-bicycle-headlight/ <comment><USER2> I love this! It looks dangerous as hell, but they're having a ton of fun experimenting and goofing around. I had no idea you could get so much power so quickly from batteries without something catastrophic happening. Also very fascinating to see how resilient the graphite is under that kind of stress.

<comment><USER3> You can find many interesting (and questionably safe) DIY 18650 packs used in e-bikes, powerwalls, etc.</comment></comment>


VC Pitches in a Year or Two - <AUTHOR> http://www.avc.com/a_vc/2014/01/vc-pitches-in-a-year-or-two.html <comment><USER2> This is already reality in some countries. Like India for instance.

1st Indian entrepreneur: I plan to launch a search engine that understands Indian languages and contexts better than Google.

VC: Well since Google has already paid telcos like Airtel ([http://www.airtel.in/free-zone/](http://www.airtel.in/free-zone/)) so their searches and even some results don't use up any of the data plan, we are passing.

2nd Indian entrepreneur: I have an idea for a social network that is better than Facebook.

VC: Sorry, Well since Facebook has already paid telcos like Airtel ([http://www.medianama.com/2014/01/223-airtel-facebook-free- hi...](http://www.medianama.com/2014/01/223-airtel-facebook-free-hindi/)) so their site/app doesn't consume data while being used, we are passing.

<comment><USER3> Enterpreneur: I plan to launch an encyclopedia that people can edit, and it's better than Wikipedia

VC: Well, since Wikimedia Foundation has already convinces telcos to provide their data for free ([http://wikimediafoundation.org/wiki/Mobile_partnerships](http://wikimediafoundation.org/wiki/Mobile_partnerships)), we are passing.

Now wait a goddamn minute. This doesn't make any sense. The alternative is even worse: no free access to Wikipedia. Is this what you're arguing for?

<comment><USER4> The difference is Wikimedia doesn't pay for this benefit, the telcos are doing it because they support Wikimedia's mission. Any company with a similar mission and better execution has a chance of talking the telcos into a similar deal.

The argument is that the paid types of mobile partnerships add another cost onto the already high barrier to entry into the market. This supports monopolistic practices by these companies, and reduces competition in the industry. That's the problem with removing Net Neutrality.

<comment><USER5> But this still breaks net neutrality. You don't get to treat some traffic differently because it's served by a 501c3.

</comment></comment></comment></comment><comment><USER6> The author is missing the point that the ruling was about the specific language of the FCC regulations. See: [http://gigaom.com/2014/01/14/breaking- court-strikes-down-fcc...](http://gigaom.com/2014/01/14/breaking-court- strikes-down-fccs-net-neutrality-rules/)

"That said, even though the Commission has general authority to regulate in this arena, it may not impose requirements that contravene express statutory mandates. Given that the Commission has chosen to classify broadband providers in a manner that exempts them from treatment as common carriers, the Communications Act expressly prohibits the Commission from nonetheless regulating them as such. Because the Commission has failed to establish that the anti-discrimination and anti-blocking rules do not impose per se common carrier obligations, we vacate those portions of the Open Internet Order."

It seems very likely that the FCC will rewrite their regulations to fix this. Everyone knows that net neutrality is important, and this ruling is just an issue in legalese. It's a little early to resort to torch-and-pitchfork hyperbole.

<comment><USER7> I am "the author" and I do understand that but the point of my post was to simplify the issue for the vast majority of folks who don't get the net neutrality issue

</comment></comment><comment><USER8> I think the pertinent question now is whether the FCC rewrites its rules to classify ISPs as common carriers. It seems to me, given the local monopoly or duopoly that the vast majority of ISPs enjoy, that this is an obvious move. But I have heard it barely discussed, which is distressing.

<comment><USER9> It's not an obvious move. Being classified as a common carrier carries a ton of baggage. The common carrier regulations are very much 1970's-style oppressive regulation, complete with extra taxes for providing service to rural subscribers, regulatory oversight of every business decision, etc. The FCC didn't want to impose that burden on ISPs in 1996, and they don't want to do it now.

As an aside, it's amusing to me how people trumpet common carrier status here on HN while also complaining how U.S. providers lag the rest of the world in speed and prices. Imposing the common carrier regime on ISPs won't make that situation better, it will make it worse. Look at Google's approach to building out gigabit: focus on urban areas where the density lets you hit more subscribers per mile of fiber. That's exactly what you _can 't_ do if you're classified together with the phone companies and are forced to spread capital expenditures thin over the vast swaths of rural America.

The current situation isn't ideal, but I think it's myopic to advocate treating telecom networks as regulated public infrastructure. I don't know if you have noticed, but public infrastructure in the U.S. sucks. One of the reasons it sucks is that we have a huge, spread-out country and gerrymandering that weighs rural votes about 2x as high as urban votes. We can't have nice high speed rail along the northeast corridor because politics mandates that Amtrak also has to support money-losing lines through rural Pennsylvania. Do you really want to bring the weight of all this ridiculousness down on the internet?

<comment><USER10> I don't think the rural telephone surcharge is a necessary component of common carrier. For example railroads are all common carriers and they are under no duty to run rail lines to every single community in the U.S.

My understanding of common carrier is that is simply mandates that the provider must publish a single public rate card with objective criteria for the rates, and then charge everyone equally by those criteria. It's to prevent UPS (which I believe is regulated as a common carrier) from taking extra money from Amazon to slow down or lose shipments from Walmart.

<comment><USER9> The relevant sense of "common carrier" in this context is as a classification in the Telecommunications Act of 1996. It's a detailed set of regulations applicable to telephone companies. Classifying ISPs as "common carriers" would not just implicate all of those regulations, but implicate one of the animating principles of phone service under the Telecom Act of 1996, which is universal service.

"Common carrier" is also a classification for various services under common law, but that's not what the recent D.C. Circuit opinion was about. Those involve not formal regulations, but certain rights and liabilities under common law, which differ depending on the particular kind of service.

<comment><USER11> > The relevant sense of "common carrier" in this context is as a > classification in the Telecommunications Act of 1996. It's a detailed set of > regulations applicable to telephone companies. Classifying ISPs as "common > carriers" would not just implicate all of those regulations, but implicate > one of the animating principles of phone service under the Telecom Act of > 1996, which is universal service.

You are conflating two related but distinct issues, and then compounding that by badly confusing the issue of universal service. Of the conflated issues:

First, is requirements that _define_ a common carrier, which the FCC can apply to entities designated as "telecommunications providers" under the Telecommunications Act but cannot apply to entities designated as "information service providers" under the Act, per the DC Circuit ruling recently, those requirements include things like the non-discrimination/non-blocking rules in the recent _Open Internet Order_. Designating a new category of "telecommunications service providers" (provided such designation survives any challenge -- there are definitions of what consistutes telecommunication service in the Act and the FCC would have to have reasonable grounds for this designation) allows the FCC to apply provisions that are essentially common carrier rules to entities in the newly defined category.

Second, is the _particular_ regulations that the FCC _has_ applied to particular classes of telecommunications providers, such as landline telephone providers. Designating a new class of telecommunications service providers would not automatically apply any existing regulations that the FCC has adopted for previously-defined classes of telecommunications providers to the newly identifed class.

Finally, universal service is not an "animating principle of phone service under the Telecom Act of 1996". Universal service was adopted for phone service in the Communications Act of 1934. The Telecommunications Act of 1996 was notable in expanding the role of universal service to include "advanced telecommunication and information services". This expressly includes non- common carrier "information services" as well as common carrier "telecommunication services", so it is completely irrelevant tot he common carrier issue.

> "Common carrier" is also a classification for various services under common > law, but that's not what the recent D.C. Circuit opinion was about.

Actually, applying the common law definition of "common carrier" to the particular regulations that the FCC adopted in the _Open Internet Order_ to see if they conflicted with the Telecommunication Act's provision that common carrier rules could be applied only to "telecommunication service" providers and not "information service" providers (given the FCC's designation of ISPs as the latter rather than the former) was central to the DC Circuit decision.

<comment><USER9> I'm not really sure what distinction you're trying to create with the term "telecommunications service provider" versus "telecommunications provider" and "information service." The term "telecommunications service provider" doesn't appear at all in the D.C. Circuit's opinion.

Moreover, the phrase "common carrier" is more or less coextensive with Title II of the Telecommunications Act of 1934, which creates a heavy regulatory oversight regime. I'm not sure how the FCC could classify ISPs as common carriers and not bring them under the purview of Title II.

While Universal Service was not created in the 1996 Act, it is definitely an animating principle of the Act, because the Act expands the program. However, it doesn't go so far as to extend it to ISPs. Universal service contributions aren't totally coextensive with telecommunications provider versus information service classification, but are almost so. Anyone that provides something similar to voice telephone service (including cellular and VOIP), contributes, but internet providers do not.

I don't mention universal service to confuse the issue. I mention it as an example of the heavily-political, expensive, misconceived sort of program that becomes fair game when you bring internet service into the world of common carriers. The world of telecom has many different regimes. Not just from a legal standpoint, but from a philosophical and political standpoint. Phone service is considered crucial public infrastructure. It is subject to Title II. It is subject to USF. It is subject to extensive FCC oversight. It is the subject of political bellyaching about how people in rural America are entitled to have their high-cost service subsidized by everyone else. That's one regime. The other is internet and cable service. This is a land of ponies and cupcakes. Once you reclassify internet services as common carriers, you put internet service in a whole different bucket, not just legally, but philosophically and politically. And you don't want internet service in the same bucket as phone service. It's an awful place, full of people who think that companies shouldn't spend money building gigabit in New York when people in rural Alabama still have 256 kbps DSL.

Your point about the common law definition of common carrier is well-taken. It isn't irrelevant, because the D.C. Circuit did look to it in its opinion. However, it's _indirectly_ relevant.

If you start at the last paragraph of page 45 of the opinion: [http://www.cadc.uscourts.gov/internet/opinions.nsf/3AF8B4D93...](http://www.cadc.uscourts.gov/internet/opinions.nsf/3AF8B4D938CDEEA685257C6000532062/$file/11-1355-1474943.pdf) you can see that the court is interpreting the _statutory_ definition of "common carrier." Specifically the phrase: "A telecommunications carrier shall be treated as a common carrier under this Act only to the extent that it is engaged in providing telecommunications services." 47 U.S.C. § 153(51). "Common carrier under this Act" essentially refers to Title II of the Telecommunications Act of 1934.

On page 47, the court notes that: "Offering little guidance as to the meaning of the term 'common carrier,' the Communications Act defines that phrase, somewhat circularly, as 'any person engaged as a common carrier for hire.' 47 U.S.C. § 153(11). Courts and the Commission have therefore resorted to the common law to come up with a satisfactory definition."

In other words, there are two definitions of "common carrier," one in the statute and one at common law, and because the one in the statute is underdefined, the court looks to the common law definition. But they are still separate definitions. 'snowwrestler said: "I don't think the rural telephone surcharge is a necessary component of common carrier. For example railroads are all common carriers and they are under no duty to run rail lines to every single community in the U.S."

The fact that the D.C. Circuit looked to the common law definition of "common carrier" to elucidate the statutory definition does not mean that the statutory definition cannot carry an independent set of obligations, different from the common law definition. Clear as mud?

<comment><USER8> You write about these two regimes (telephony and cable/internet) as if their separate existence is inviolate. In today's world, where voice is often just another application running on top of IP, the existence of two regimes seems backwards, enshrining a century-old technology (POTS) that already starting to disappear.

If we as a society don't want to impose a requirement that rural communities be connected to the nation's essential communication infrastructure, then let that be the case; let's get rid of the requirement and rethink the whole thing. But if we as a society believe that rural areas _should_ have access to the country's communication infrastructure, then we should change the requirement that service be provided via a 19th century technology. In the 21st century, isn't it just as bad for Internet access to be expensive and slow, as it was 80 years ago for telephone access to be expensive or unavailable? Standards have changed.

It seems to me that (specific legalities of the decision aside) you are focusing too much on the technical aspects of common carrier status, and not enough on the underlying policy objectives of that regulation. If universal service regulation is to have any relevance today, it should align itself with the reality of modern communications technology (where access to the Internet, not telephone networks, is what matters), and with what it means today to be "connected".

A "universal service" policy that ignores the fact that TCP/IP-based broadband Internet has replaced telephony as the essential communication technology is just a farce.

<comment><USER11> > A "universal service" policy that ignores the fact that TCP/IP-based > broadband Internet has replaced telephony as the essential communication > technology is just a farce.

It is also not an accurate description of the _status quo_ : the grandparent post talks a lot about the 1996 Telecommunications Act and its supposed foundations, but doesn't understand:

1) The distinction between "telecommunication services" and "information services" that controls where common carrier regulation can be applied, from that Act, or

2) The fact that the 1996 Telecommunications Act eliminated the "separate buckets" treatment of phone and other services for universal service, promoting universal service for access to "advanced telecommunication and information services" not just telephone service.

3) The fact that reforms to the regulations of the Universal Service Fund following and based on the 1996 Telecommunications Act mean that it is now used not just for telephone but also broadband access, demonstrating that -- whether or note ISPs are defined as "telecommunications service" providers subject to common carrier regulations and whether or not open internet / net neutrality rules are adopted -- broadband is already moving substantively into the same "bucket" as telephone service.

<comment><USER9> I was using USF as an example of the onerous, misguided sort of program that is imposed on telecommunication service providers regulated under Title II. I wasn't trying to imply that _only_ telecommunication service providers can be subject to USF fees (frankly, I was trying to punt on explaining the distinction because in practice voice providers are subject to USF fees but broadband providers are _not_ subject to those fees). The fact that USF money is now being used for broadband doesn't change the fact that internet service is not subject to the tax. Moreover, while classification as an information provider doesn't prevent internet providers from being subject to USF fees, classification as telecommunications providers would pave the way for them to be taxed.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Not the point of the article, but is anyone else annoyed by these "entrepreneur-sounding" ideas? I'm so sick of low-tech, solve-first-world- problem ideas and conflating that with entrepreneurship. If I were the VC, I'd tell them to get the fuck out, and it'd have nothing to do with Telcos.

<comment><USER13> You missed the point. The author was choosing startup ideas that compete with entrenched entities that are also potentially data-intensive. I don't think the ideas themselves were supposed to be judged, just that they fit a loose model of ideas that would be almost impossible to fund/execute without net neutrality.

<comment><USER14> He's right in the sense that all ideas were copying something out of big companies' playbook and were a hard sell to consumers who were sensitive to mobile data pricing.

What if the idea was around instant video conferencing with on-demand doctor or a lawyer? Would interested parties still be concerned about the (additional) cost of a data plan?

<comment><USER15> _Would interested parties still be concerned about the (additional) cost_

Yes. This is the whole point. The telcos' will extract rents from any profitable biz model. The more profitable, the larger the extracted rents will be. The net result is that, if people feel that the value they are creating will be expropriated by a third party on poor terms, those services will never make it beyond the cocktail napkin stage. And if...the founders are still optimistic and willing to let this happen...the VCs are not likely to play along...knowing what will predictably happen. As long as either of those two factors is in play, the economy ultimately will suffer in the sense that those services will "never happen" if people take that approach. Or, at least that's the argument if I understand correctly.

</comment></comment></comment></comment><comment><USER16> The issue of Net neutrality is a global phenomenon/risk. Telcos in Nigeria abuse their positions as the primary carrier of data and they are protected by having 'licenses'

MTN and Rocket Internet recently tied a deal. I wrote about the risk here

[http://oonwoye.com/2013/12/17/mtn-rocket-internet-deal- worri...](http://oonwoye.com/2013/12/17/mtn-rocket-internet-deal-worries-me/)

</comment><comment><USER17> I'd like to believe that many European entrepreneurs will reconsider going to the US to start a company. The European Parliament and the Commission have been straight shooters with net neutrality and they will not consent telcos to play with the pipes.

<comment><USER18> Still, if you're located in Europe but want to target the US audience as well (a huge market), you're going to be affected anyway.

<comment><USER17> Yes, but it's rarely the case. US startups don't target any other places outside the US at first. The friction to start is in the US not in Europe.

<comment><USER19> I don't think that's true. Most consumer focused startups will target the US market, even if within the EU. It's by far the largest homogenous (well, relatively) market. Targeting "Europe" isn't really a thing - You have to target each country individually.

</comment></comment></comment></comment><comment><USER20> The blog places its argument on the basis that data plan cost is going to be high. Would this be the case in the future? What if data plan costs are that negligible that it does not matter?

Secondly, compare this to TV networks, consumers watch TV and pay for them too, a part of the cost is subsidized by advertisers who are willing to pay the network to reach the audience. The consumers are in that network only because of the content, remove the content providers or reduce the quality of the content then the consumer vanishes. An empty network is worth nothing.

Would telcos, not harm themselves and their whole data plan business by attempting to charge the content providers (Google et al) and would the content providers 'advertising model' margins justify paying out to the telcos just to get through their infrastructure?

</comment><comment><USER21> Here's the problem: what AT&T is doing does not violate any technical definition of net neutrality, unless we ad hoc append new parts to it.

This is the core problem of net neutrality arguments, which it is often defined as 'I know it when I see it'. It amounts to principles, but if we are going to have an enforceable law, we need to do better than that.

AT&T is not offering any priority to any bits here. Nothing is being blocked or degraded. Content providers who pay for sponsored data do not get faster bits nor do they slow down anyone else's.

It's free shipping: [http://clipperhouse.com/2008/06/03/the-long-game-on- metered-...](http://clipperhouse.com/2008/06/03/the-long-game-on-metered- pricing-free-shipping/)

Now, I can understand objecting to it on its merits, and Fred is making that argument, which is great. And I can understand why it _feels_ like a violation of net neutrality, but we need to do better than feelings.

Here's how we test whether we're defining net neutrality ad hoc: show me a clear, specific, widely accepted definition of net neutrality that describes AT&T's behavior here, and that _existed before this behavior was publicized_.

</comment><comment><USER22> Scary thing, this is same thing that created Rockfeller-era monopolies: they had right and did pay railways to create preferences (price-wise and otherwise) for their traffic, literally derailing competition. Internet is the bloodline of the post-industrial economy just like railways were of industrial one. That is much worse than most of you think.

</comment><comment><USER23> Facebook already does this in india. I remember seeing an advertisement of a telco that said you wont be charged for data for facebook. Does this means that India already had this non neutral internet? It didn't change the scenario much here.

<comment><USER24> I remember here in the UK, Three (a UK mobile network operator) allowed for free access to Facebook. This was before the days of the iPhone though and it took you to a stripped down mobile site.

<comment><USER25> Three also offered free access to Skype. It used (uses?) a Three-specific Skype client (available for many, but not all, models of phone) to do the presence and signalling over data, and the voice over the normal mobile voice channel:

[https://support.skype.com/en/faq/fa10976/how-can-i-get- skype...](https://support.skype.com/en/faq/fa10976/how-can-i-get-skype-for- my-3-phone)

To protect revenue, SkypeIn was blocked, and SkypeOut was restricted to non-UK numbers.

</comment></comment></comment><comment><USER26> Most VCs would pass on these ideas regardless. They're all in mature, saturated markets. One of the signs of a mature, saturated market is that the incumbents have taken great lengths to create barriers to entry that are very high. This is a discouraging thing for VC investment because it increases the chances that a new entrant will fail.

Besides, you've had to pay for access for years. The big difference is that before, you had to go through a CDN like Level3 or Akamai. Part of what you paid them went to the ISPs to ensure fast connections. All this means is that the YouTubes of the world will begin to buy interconnects with the big ISPs. Small ISPs will likely just band together into a cartel and sell access that way.

Yeah, there will be a fast lane and a slow lane, but the advent of CDNs in the early 2000s already created that anyway. The data caps are disappointing, but not really unexpected if you look at the mobile market. We're reaching the point where in many major cities, there is no media consumption that requires a much faster connection than is already available. So why will consumers pay for more speed when their existing 50mbps cable modem is enough to stream 4k video from Netflix? Those speeds ARE possible today if you buy carriage through a CDN like Akamai (and I regularly get those speeds from Steam downloads) and the fact that Netflix hasn't is really more of an implication of their business model.

The most recent ruling really changes nothing, because net neutrality has been dead for 10 years anyway. While everyone on the internet was complaining about it, the business side moved on and built a few billion dollar companies around it. Capitalism at its finest.

<comment><USER27> And if pay to play had been in place when Google debuted against Lycos/Altavista? If we were stuck with that old search tech today, we'd be _suffering._

</comment></comment><comment><USER28> Yes, current giants are going to continue consolidating and buying up businesses and amassing power. In America we used to have ways of dealing with monopolies but that is now passé -- we don't like the government "punishing" successful businesses (in the same way that taxes "punish" the rich). A lot of times I feel like something very bad will have to happen for things to change. Until then, hey.

</comment><comment><USER29> I get that this is an issue, but I'm a little curious why AT&T's stock price didn't pop as a result.

[http://finance.yahoo.com/echarts?s=T+Interactive#symbol=t;ra...](http://finance.yahoo.com/echarts?s=T+Interactive#symbol=t;range=1y;compare=;indicator=volume;charttype=area;crosshair=on;ohlcvalues=0;logscale=off;source=undefined;)

</comment><comment><USER30> While I hate the loss of Net Neutrality as much as the next person (as long as that next person isn't one of the incumbent carriers), this is the sort of thing that happens frequently in other markets. You want to see entrenched competition? Try launching a company in the Cleantech markets or in certain hardware or biotech or healthcare fields. Big pocket incumbents regularly flex their muscles here.

The loss of net neutrality is bad from many perspectives, but to be honest, there will ALWAYS be opportunities for startups and entrepreneurs in the space and VCs will not be want for good ones. All this does is shake out many ideas in favor of other ones.

I don't see why the VCs have reason to panic. And while I understand the Entrepreneur ideas were straw men utilized to illustrate a point, the quality of these ideas are pretty low. Maybe we should see the silver lining on this dark cloud in that it will shake out some of these deals from being funded when they probably shouldn't be anyways.

</comment><comment><USER31> There seems to be an assumption in the original argument that not every company will be able to get access to sponsored data, e.g.

> Well since Spotify, Beats, and Apple have paid all

> the telcos so that their services are free on the mobile

> networks, we are concerned that new music services like

> yours will have a hard time getting new users to use them

> because the data plan is so expensive

If a new music service could make a deal with telcos so that their service is free too, wouldn't this problem go away? In other words, if sponsored data was open to all, does this address the concern described?

The real concern seems to be that the cost base of a new service will go up because it will be forced to pay for sponsored data in order to compete, and VCs aren't happy about having to cover increased costs of their portfolio companies.

A similar argument could have been made about CDNs. Because the big services use CDNs to provide a better service, startups have to pay to use CDNs also in order to compete, and hence their costs are higher.

</comment><comment><USER32> So basically it will become even harder for startups to disrupt the established players. Until a disruptive telco comes along and everyone switches to them, while also learning an important lesson about net neutrality. Maybe the whole thing will even cause society to re-think the way we allocate access to the internet and cellular networks.

(A man can dream!)

</comment><comment><USER33> Entrepreneur: I plan to launch a better [XYZ] hosted on Amazon AWS.

VC: Well since Amazon has paid all the telcos so that services delivered through AWS "telco-optimized elastic IPs" can be free on data plans, all you have to do is include Amazon's surcharges in your business plan.

</comment><comment><USER34> I hear him, Internet could become a caste system for businesses. But from what I understood, the ruling was more about the FCC trying to bend rules to accomodate everyone with carrier types (common carrier?). Yesterday's ruling raised awareness but the game is far from over.

</comment><comment><USER35> A friend of mine was part of the team that made the decision for UHC to participate in AT&T's new sponsored data program. When I found this out, I tried to point out the broader implications of a shift towards pay-to-play, but had trouble getting past the narrow vision of "but we just want to get our content out to people that can't pay for mobile bandwidth". Just wanted to say thanks for this article for demonstrating what some of the implications are of a shift to a pay-to-play model. Non-techies really seem to struggle to get their heads around what happens to the entire ecosystem if net neutrality dies, and articles like this are helpful for making the consequences clearer.

</comment><comment><USER36> I am watching the reactions of non-technical people after they hear how this latest Net Non-Neutrality development affects them. Some are saying "Google, Apple, and the other big guys will step in for us". Others reply that when gas prices jumped to $3 everyone cried out and legislators started shuffling, yet we are now paying $4 and being thankful. Unless the outcry gets bigger this is going to pass through the cracks.

Do any of the big tech companies really have an interest in stopping this development? They could afford to buy themselves an "unrestricted by cap" deal with internet distributors and suffocate every other potential competitor?

</comment><comment><USER37> What's interesting are the comments below the post about Net Noot. The problem really comes less about the fact that traffic shaping may not occur, but there are no safe guards if someone attempts to do so. In smaller markets, its more and more sounding like a small cottage industry will start because of the lack of existing laws to protect the consumer. The larger markets will have power in numbers, but mom-pop towns like Marion, AL with only a small regionarl carrier - not so much. Problematic and there is SOME truth to this in scale of economy.

</comment><comment><AUTHOR> While I agree with his premise, there are already industries that used to be startup focused where there is a gatekeeper. E-commerce has Amazon, advertising has Google (and possibly Facebook), which already destroy new startups before they really get started through this same VC mindset. It seems to me that the balance of power is just moving up the line a bit to industries where VC's have little to no power to influence.

<comment><USER38> In what way(s) is Amazon a "gatekeeper" to e-commerce?

<comment><AUTHOR> Maybe I didn't word it properly. It is in the sense that VC's say, well Amazon could do that too, we'll have to pass. They are more of a gate that does not open.

</comment></comment></comment><comment><USER13> Forget net neutrality, doesn't this reality already exist when you factor in data caps? Most of these startup ideas use a fair amount of data which is now being capped more often than it has in the past.

I may be alone in my worry that as we move to capped data plans, and the pay- per-bit model that many new ideas and concepts (say for example always connected appliances) won't be financially feasible for consumers.

</comment><comment><USER39> So someone should plan to launch a VPN service that will pay telcos so its traffic doesn't use any of its customers' data plans. Configure the mobile device to route all data via the VPN, encrypted. It'll charge its customers for access to unlimited apps, sites and streams without incurring a data plan hit.

<comment><USER40> Myself and some guys with a telecoms background spoke to various telcos about that ~2 years ago. Feedback was that they were already so over stretched with data usage they weren't going to embark on any projects likely to increase it until there had been a lot of network upgrades. May have changed since then though.

<comment><USER41> I think the biggest risk in doing this for a VPN service is that the usage is impracticable given its nature and secrecy.

With services like Facebook, Twitter, etc, the telcos know more or less what they can expect in average data usage from users (and plan/charge accordingly).

<comment><USER39> I don't follow. The VPN provider will still have to insist on limits, because the telco will insist on limits. It's not like Facebook is automatically unlimited, it's just limited to what Facebook is willing to pay for its users. It becomes Facebook's problem to understand data usage by its users and its apps and to pay accordingly (or not pay, and let the data start counting once the user is past the 'Facebook limit.')

Therefore, a VPN provider will be in the same position. So instead of paying AT&T for your data plan, you're basically paying the VPN people for your data plan plus privacy from AT&T.

</comment></comment></comment></comment><comment><USER42> I get the point you are trying to make, but it wasn't presented in a way that non-tech folk will appreciate.

My parents' reaction to your scenarios would be something akin to: "Really? For the monthly rate I'm already paying, I now get Netflix and Hulu included for free? NICE!"

<comment><USER43> If your parents were reading a VC blog, they'd get it.

</comment></comment><comment><USER44> Bandwidth isn't free. The universal all-you-can-eat model is very unfair to the bandwidth supplier.

Either customers will need to be charged by meter.

Or producers will need to pay by meter.

It's only capitalism.

By the way, why can't the VC say, "we love your idea, and we'll front the money you need to pay the telcos."?

<comment><USER38> What if the telcos won't allow anybody else to pay?

<comment><USER44> Agreed, regulations can address this.

</comment></comment></comment><comment><USER45> Australia has been doing this for years for mobile data plans. Even though data plans aren't as expensive as they use to be, Facebook, Twitter, Foursquare, eBay, LinkedIn & MySpace are all "free" on the Optus network.

<comment><USER46> interesting. do you know if they are paying Optus? does Optus have competition in major Australia markets?

<comment><USER47> Optus is one of several major mobile telcos in Australia. Telstra also offers free Facebook, IIRC.

I'm not sure whether FB is paying Optus/Telstra, but I would think so.

</comment></comment></comment><comment><USER48> This is the best possible thing that could happen.

Perhaps we'd see startups aimed at building out solar capacity, grid-scale storage solutions, electricity-to-fuels solutions, solar-powered airships, high-efficiency wind-steam hybrid shipping, high-efficiency retrofits to existing building stock, and management or treatment for TDR-TB, rather than an endless stream of privacy-invading "social" surveilices, games, and new forms of intrusive and annoying advertising.

Though building out an alternet that bypasses the telco's "authorized" channels wouldn't hurt either. Mesh and darknets.

Get cracking, HN!

<comment><USER49> Most of the startup community is aimed towards web-centric ideas for obvious reasons -- the gateway to entry is incredibly low. This doesn't mesh well with hardware, and only puts more reliance upon VC's.

<comment><USER48> _Most of the startup community is aimed towards web-centric ideas for obvious reasons_

Yes, and that's pretty much part of the problem.

I've commented before on how Kleiner Perkins' failure in cleantech is really sobering:

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

Actually, there was a whole post on the topic I seam to have missed "The Rent- Seeking Economy"

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

Source article: "Great Problems: The Rent-seeking Economy" [http://intellectual-detox.com/2013/04/14/rent-seeking- econom...](http://intellectual-detox.com/2013/04/14/rent-seeking-economy/) (Devin Finbarr)

I see financialization, increasing advertising focus (much of which is supported by ... wait for it ... the FIRE industries[1], and "software eats everything", all as elements of catabolic collapse[2]. They're extracting _financial_ value from the economy and transferring that _financial_ wealth, which changes who _holds_ real physical wealth, but doesn't much increase it.

Finbarr's blog piece explores this in much greater detail.

The focus of Silicon Valley over the past decade and more on ephemera and trivialities is very much part of the problem. The fact that the only remunerative opportunities for talent are in the FIRE and social / advertising / gaming industries is _not_ a good thing. And the fact that even VC with long track records of success in technological application fail when trying to operate in the Greentech / alternative space is should be read as _exceptionally_ cautionary.

Yes, there's good news out there. Elon Musk is doing fascinating things with Tesla. Solar is absolutely exploding -- in the past two years, solar generation in the US hasn't merely increased, hasn't doubled, but is up _seven times_ [3]. That's a rate of growth which, if sustained, would have solar being _half_ of all electric generation within a decade. I'm skeptical that the rate of growth _can_ continue, but even if it moderates significantly, doubling times of a year or two can grow a small base hugely, and we need all the help here we can get.

But I really wish that the hacker community would pull its collective head out of its collective ass on occasion and look around at what problems _should_ be solved. And a choking off of the backbone for new trivial ventures really could be a powerful refocusing mechanism, all snark aside.

______________________________

Notes:

1\. "What Are The 20 Most Expensive Keyword Categories In Google AdWords?" [http://techcrunch.com/2011/07/18/most-expensive-google- adwor...](http://techcrunch.com/2011/07/18/most-expensive-google-adwords- keywords/)

2\. "How Civilizations Fall: A Theory of Catabolic Collapse" [http://www.indiana.edu/~workshop/colloquia/materials/papers/...](http://www.indiana.edu/~workshop/colloquia/materials/papers/masters_abstract.pdf)

3\. EIA: "Table 7.2a Electricity Net Generation: Total (All Sectors)" [http://www.eia.gov/totalenergy/data/monthly/pdf/sec7_5.pdf](http://www.eia.gov/totalenergy/data/monthly/pdf/sec7_5.pdf)

</comment></comment></comment><comment><USER50> I guess this makes open city WiFi networks much more compelling. In most urban areas, how often are people not within range of a WiFi network?

</comment><comment><USER51> I guess we need a chrome extension to uuencode your next social network over FB status updates.

</comment><comment><USER52> imho in the near future most countries will have unlimited data plans or similar, so this argument will be irrelevant.

</comment><comment><USER53> Well, I'm no fan of losing net neutrality but if the _worst_ thing that happens is that lame VC pitches are no longer funded, I'm OK with it.</comment>


Ask HN: Why is programming editing text? - <AUTHOR> What you care about as a programmer is what your code does, right? Basically whatever the compiler has after lexical analysis (except for comments maybe).
So why do we bother with all that coding style stuff if we could make an IDE that edits the program itself instead of text? (I get that text is a universal format, but that doesn't mean we have to edit it directly.)
Instead of editing text you could choose to "declare a function", "rename this identifier" or "call function x with y and z arguments" and then save it with some coding style.
Is there such an IDE? I know what I'm describing is pretty much visual programming, but I mean for "text" languages. <comment><USER3> Because smarter people than I have answered this question:

> Programs must be written for people to read, and only incidentally for > machines to execute. \- Abelson

As to why that might be the case: when the bugs you wrote are found; the edge- cases you missed are discovered; or the vulnerabilities you didn't know about it are unearthed, another person, sometimes future you, will have to read your intentions; try to interpret them; and address the above. When you code, you are telling a story and are in control of the narrative. When you paint a picture (I.e. graphical) you have less control over the narrative and interpretation.

Or at least that's my hot-take.

<comment><USER4> Your comment is extremely thought-provoking, and I immediately find it true of myself, but artists are quite capable of telling stories in pictures in a way that compels an understanding that goes deeper than reference to text - <USER2> it not just be that you and I have less control over the narrative and interpretation than in text because that happens to be our preferred medium?

What imagery gives you is an intuitive sense of how you should, or how the artist did, feel about subject matter. Imagine at a glance knowing which parts the artist was proud of, which they considered an unglamorous but necessary hack, and what they considered ugliness that was forced upon them and unnecessary to the program as a whole, and viscerally "knowing" what areas are wrong?

I look forward to a future where we understand how to teach well enough that artist-programmer hybrids are more common-place.

<comment><USER3> I see what you mean, but I think that we are both correct - I agree entirely that stories in pictures can give both a deeper or quicker understanding of most topics - the issue is that they cannot clarify or directly state something. The best works of art are open to many interpretations - or we would never re-read imaginative literature, re-visit galleries we had been to previously, and so on.

On the other hand, for an instruction manual, there is little room for interpretation as the words only have so many definitions (though read "Authority and American Usage" by DFW to really open a can of worms), so we do not often re-read a manual for a process we know (though it could be argued we ought to). I also concede that for simple tasks entirely visual instruction manuals suffice, and to that end I will say that I've enjoyed writing simple things with Scratch (for example), but I would hesitate to write a program that needed to be maintained with a visual language.

To put a more fine point on it: For the top 1% of programmers it may be the case that they would work best in a visual language, but the maintenance and support of those applications by the bottom 99% would erase many of the gains (I am here assuming programming as a professional activity in support of an organization's goals, not, as it were, a strictly artistic personal activity). In a professional context - I am unfeeling about what my predecessors felt about any part of the code, I only need to know what their intentions were, and I need them to tell me so, as explicitly as possible.

*Edit: I think that there may be use in clarifying whether we are discussing professional programming or programming as a hobby - because I enjoy both, and while I enjoy learning and using some languages (cough Haskell, Lisp) for myself, I would be very hesitant to use them professionally due to the difficulty others have in maintaining/understanding them. (Food for thought: why do Java, Javascript, and Python absolutely dominate our field despite having "better" alternatives?)

<comment><USER5> All this aligns quite well with my initial gut response to

>Why is programming editing text?

Because it didn't come out right the first time.

</comment></comment></comment></comment><comment><USER6> Previous related discussions that may contain insights:

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

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

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

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

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

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

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

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

<comment><USER7> how do you keep track of these things for future reference? Browser history or something more involved than that?

<comment><USER8> There's also a public BigQuery dataset with all HN posts and comments from nearly all time you can write SQL queries against.

</comment></comment></comment><comment><USER9> "we" tried that 15-20 years ago, and while there was a lot of hype around the so called 4th gen languages ([https://en.wikipedia.org/wiki/Fourth- generation_programming_...](https://en.wikipedia.org/wiki/Fourth- generation_programming_language)).

It turned out, at least with that iteration of tools, that smaller programs were somewhat easier to write, but larger ones took about the same time, and (at least where i worked) people agreed that it was very hard to understand the flow of the program for new people, or even if you had to maintain something after an extended period of time.

Another problem is that you're somewhat limited to what the language designer envisioned, and if the IDE doesn't have a "building block" for what you're trying to do, you will spend a lot of time working around it.

We had maybe a couple hundred large "point and click programmed" programs, and they've all been replaced by something written in a traditional programming language. Maybe it's because it has already been "prototyped", but rewriting it in the traditional programming language has actually been faster than writing the original program Some of these programs have been untouched for 15 years, so i doubt anyone remembers much about how it was implemented to begin with.

</comment><comment><USER10> Great area to think about. Now is probably the best time ever to try something in this space.

Rationale: The modern Apple-using programmer wants something to do with their touch bar, there are more meta keys than they can use, they are running a machine with huge graphics capabilities that are underutilized.

Some ideas: Full screen, keyboard-driven navigation (meta-arrow = codeblock, meta-arrow = window/file), meta keys for compile/test/git commit/diff. Combine tmux, vi/emacs, Visual Studio, FileMerge.

Try it and see. Don't listen to others. Sometimes rethinking things for the ground up is for the best. Worst case you learn. Supportive wisdom:

 _To be original you don 't have to be first - you just have to be different and better._ \- Adam Grant

 _Experience doesn 't matter. The rate of learning matters. First principles thinking matters._ \- Vinod Khosla

 _Light speed analysis: What is the best theoretical performance I could achieve with this design? What is the real information content being transferred and at what rate of change? What is the underlying latency and bandwidth between components? Could the approach ever achieve the performance goals or does it need a rethink? Understand the true performance characteristics of your building blocks rather than focusing on functional characteristics._ \- Terry Crowley

</comment><comment><USER11> There's actually a long and interesting history of tools which abstract away the text editing involved in code. Microsoft in particular has consistently produced visual tools to build code - usually, but not always, specialized to some task.

Windows Forms editors, and similar HTML editors have been around at least since I was a kid (1993 for forms, later for HTML WYSIWYG editors); old versions of visual studio provided tools to let you lay out databases visually, and later on to link those up to related objects. Maybe they still do, I don't know.

Turing-complete visual code editors have also been implemented. Microsoft (again) had a couple - a "Visual Programming Language" (named as such, iirc) for their long-dead robotics framework and something else called "Workflow Foundation" (WF), which allowed you to lay out workflows with arbitrary code built into it. I only worked with WF, and it was pretty terrible.

A much better implementation is Scratch. It's generally relegated to education, because laying code out visually is actually pretty inefficient. It's great when you're getting started, but you'll soon find that the textual representation of a language is a lot denser. Put another way, what takes longer: typing `def` or moving your mouse to a menu and dragging a "function" object into place?

Regarding cross-compilation, that's a different problem, and one which has been solved in various directions. Ideally, one could compile this hypothetical language directly to machine- or bytecode.

I do see the appeal of doing this. If you come up with something you should post it here - I would love to see it.

</comment><comment><USER12> The question presupposes that there is a rational _why_ behind the situation a large group of people have gotten themselves into over a period of incremental steps over decades.

It is heresy to say, but of course writing programs primarily as simple text files is ridiculous. It's also ridiculous that we write web pages in HTML etc rather than using elegant WYSIWYG editors, and that we use LaTeX for designing visual artefacts.

It's probably possible to explain "why" we got here, but not "why" it's a good idea, because it isn't.

I put it down to culture. Programmers are strongly opinionated and resistant to change (eg blub). We're historically been selected from a narrow and strange demographic. Which is why few people agree with what seems obvious to an outsider, and why we don't fix it.

Imagine if engineers built bridges or engines or satellites by writing XML rather than using CAD tools and modelling suites.

I seem to recall nice ideas around Smalltalk's editor. It should be possibly to have a hybrid approach that can gradually transform programming from text editor into a mixture of maths and high level engineering design.

<comment><USER13> >Imagine if engineers built bridges or engines or satellites by writing XML rather than using CAD tools and modelling suites.

There's actually a move inside engineering of physical objects towards code generated shapes. For better aerodynamics, lighter weight, etc. Your optimization code spits out a 3D file and you just go in and clean up artifacts.

<comment><USER14> code generated /= text. Most html web pages are still largely written _by hand_ in a text editor. The closest thing to this that exists now is OpenSCAD, a usability nightmare.

</comment></comment></comment><comment><USER15> One view of things is that code is more Poetry than a lot of people give it credit for. The formatting of code and usage of whitespace is as much aesthetic / creative space as it is technical requirement (depending on the language of course; whitespace is more syntactically necessary in Python than say C, obviously).

I am sure there are classical poets that would happily engage in the tabs versus spaces debate, and even some of the other formatting debates in the code world. Concepts like rhythm and structure from the poetry world directly apply to code formatting, because they affect how we as people read the code. Programmers just don't often think to use the same terms for such isomorphic concepts. Yet it also speaks to how so many code formatting arguments get to be so heated: it can be deeply, personal, subjective, aesthetic.

(When we are squashing personal freedom/creativity in our "mandated" formats or automated formatters should we sometimes wonder that maybe we are losing our chance at finding the programming equivalents of great poets that might stun, delight, or otherwise bring emotion to us with their code? We have things like the IOCCC that celebrates one extreme of code formatting [obfuscated], but should we find other ways to celebrate well and uniquely formatted code?)

</comment><comment><USER16> What I'd really want is a compiler that accepts RTF-like code files and an IDE that is a WYSIWYG editor. The ability to write some important part of code in bigger font or in bold and conversely, make the rarely used paths or boring boilerplate smaller would be great. You could use colors to distinguish different aspects/sections of the code. RTF comments could be way more readable. The possibilities are really great and I'm surprised no one is exploring that.

</comment><comment><USER17> I "learned" coding with LabView. It's "graphical programming". After three years and ever-increasingly complex programs, I was _longing_ to use a text- based editor.

LV is super practical for "quick and dirty" device control, but beyond that, it's an inefficient grind of connecting things.

<comment><USER18> LabView wasn't my first language but I used it a lot at my first job out of college and I felt the same way about it. It was great for communicating with all sorts of RF test equipment but it was terrible to do all the processing afterwards.

</comment></comment><comment><USER19> There are editors that allow you to edit the abstract syntax tree (AST) directly. An AST is the parsed representation of your code without information about its presentation (e.g. spaces or tabs). Code can be presented in different formats for each programmer, since the formatting is part of the presentation but not the storage. The downside of these editors is that it looks like you are editing text, but actually the text doesn't really exist in memory, since the text is just a projection. Such editors are called 'projectional' editors, JetBrains has an implementation called MPS.

</comment><comment><USER20> > Is there such an IDE?

IntelliJ Idea isn't exactly it, but it has many of the features you want (most comprehensively/maturely for Java, but to greater or lesser extents for Python, Go, Rust, Typescript, etc). I find using it feels less like editing text, and more like constructing a program at a conceptual level, than in any other environment I've used professionally.

> declare a function

You can use a function/method in code before creating it, and it can create the declaration for you. There's also support for automatically creating class members like constructors, setters/getters etc.

> rename this identifier

Yep, throughout a project.

> "call function x with y and z arguments"

Not exactly, but completion is comprehensive enough for this. You can also refactor a method/function signature, and it gets changed throughout the project.

<comment><USER21> It's interesting to see some people preferring other ides/editors than intellij. For instance, vscode is exceptional, but I still far prefer webstorm because it has so many great features.

<comment><USER20> IntlliJ has a depth of code understanding unmatched by any other environment I've tried. Perhaps someone quite expert with emacs could improve on it, but at a great cost in time.

VS Code doesn't come close in these terms - editing in it is still 'editing text'. But Microsoft has been very canny with the combination of WSL2 & the VS Code remote extension - allowing essentially a true linux programming environment accessed via Windows GUI. That even tempts me, and I'm a fairly diehard Intellij user.

</comment></comment></comment><comment><USER22> We could have our cake and eat it too in this case.

All an IDE should do is not allow freeform editing of text but rather only editing of text that relates to the AST - in other words, creating an AST by carefully selected text.

This would solve the issue of readability while enhancing the programming experience.

</comment><comment><USER23> Yes, such tools exist, and they are really hard to use usually. It's hard to copy, hard to refactor, hard to compose, etc., and clicking by mouse is really slow.

I don't say that a good UX couldn't exist for such thing, but we already have that good UX in a form of text. Really. Think of it.

</comment><comment><USER24> I know of at least one warehouse management system (and in fact maintain a deployment of it as part of my day job) where all the source code for the business logic exists in a SQL Server database; the vendor developed their own IDE of sorts for it that queries the different types of language objects for editing and eventual compilation. Most of the logic itself exists as "process objects" consisting of lists of code elements to execute (comparisons, assignments, database operations, even subprocesses) and pass/fail branches, all manipulated via the IDE's GUI. I suspect it's possible to manually edit the code via SQL (and in fact I'm looking into this, since the IDE is Windows- only and I'd like to do my editing in Linux), but much more tedious (lots of UUID manipulations and joins and such).

On a different note, Lisp would lend itself well to what you seek. While most Lisp/Scheme programming happens in a text editor, Lisp is inherently syntax- agnostic; sure, s-expressions are the most typical, but once upon a time there were M-expressions[1], and Scheme has support for alternative syntaxes[2]. Projects like Scheme Bricks[3] take this even further into visual representation.

[1]: [https://en.wikipedia.org/wiki/M-expression](https://en.wikipedia.org/wiki/M-expression)

[2]: [https://srfi.schemers.org/srfi-119/srfi-119.html](https://srfi.schemers.org/srfi-119/srfi-119.html)

[3]: [http://www.pawfal.org/dave/index.cgi?Projects/Scheme%20Brick...](http://www.pawfal.org/dave/index.cgi?Projects/Scheme%20Bricks)

</comment><comment><USER25> > So why do we bother with all that coding style stuff...

Great minds discuss paradigms. Mediocre minds discuss languages. Small minds discuss coding style.

> ...we could make an IDE that edits the program itself instead of text?

Many IDEs have features that reach into the semantics of the code to allow for refactoring, autocompletion, and so on. This requires a language that is amenable to to such analysis.

Dynamic languages like Python and Javascript (without type annotations) make it difficult or impossible, because a lot of things can only be determined at runtime.

Languages like C and C++ make it difficult because of the text-based preprocessor and templates.

Languages like C# or Java make it easy and hence they have some of the best IDE support.

Code formatting is even more trivial and can easily be done with automated tools - if you can just settle on a particular configuration.

> Instead of editing text you could choose to "declare a function", "rename > this identifier" or "call function x with y and z arguments" and then save > it with some coding style.

Many IDEs and text editors have snippets that make declaring a function or writing a loop less tedious. Renaming identifiers is also commonly supported. Perhaps you're just not used to proper tools, or your language of choice prevents those tools from existing? Have you tried Visual Studio Code with its language addons?

> I know what I'm describing is pretty much visual programming, but I mean for > "text" languages.

What you're describing is pretty much a modern IDE, which is full of visual aids.

<comment><USER26> > Great minds discuss paradigms. Mediocre minds discuss languages. Small minds > discuss coding style.

And for some reason almost no minds discuss semantics.

</comment></comment><comment><USER27> I want this a lot too, but the way we've built our software stacks has overwhelming path dependence on plaintext. There's a lot of tooling that's a bit broken, like git diffs, because the diffing algorithm can't actually capture what the logical changes really were, but it's close enough so we shrug and move on.

You can see how the accumulation of these little warts starts warping the rest of the devflow. E.g. since git can't do great diffs, it can't do great automatic merges. So we start using dev styles that minimize the pain of merging, and we start emphasizing continuous integration partly to prevent large merge buildups.

It irritates me to no end that the most important part of any code is the symbol names, but we've solidified and ossified those as the literal unchanging way you reference code. Want to fix a typo in a method name? Too bad, that's a breaking change.

<comment><USER28> I think your point about continuous integration is very true. I'd maybe even go further, if you could make a version control system understood ASTs and these sort of 'declare me function' operations (and you had enough test coverage) maybe you could have all the operations from everyone go straight on to 'master', in real-time, ready to be deployed - no branches, beyond trunk- based development, more like trunk-only development.

</comment></comment><comment><USER29> My take here is that we lack universal tools for working at higher levels. The only thing we've managed to standardize on is ASCII/UTF

What we need is a standardized representation for tree structures and their schemas. XML is too complex. JSON and YAML isn't good enough. Lisp is pretty good, but I think the text representation is off-putting for a lot of people and its general focus is not quite in the right direction (recursive lists of data/items rather than having typed nodes that contained list of other typed nodes, like XML, with schemas defining every node type)

<comment><USER30> Note that if your "standardized representation" includes things like letters and numbers, it qualifies as text. If we stuff pieces of text into boxes and connect them with lines, that's still text.

If you get rid of all text, what will you use for naming functions and variables? Icons?

Or just don't name anything: to reference anything, draw an arrow to it?

What do numeric literals look like?

</comment></comment><comment><USER31> > So why do we bother with all that coding style stuff if we could make an IDE > that edits the program itself instead of text? (I get that text is a > universal format, but that doesn't mean we have to edit it directly.)

A huge benefit of text is that if you learn to read code, you already know how to edit it too. This is because of WYTIWYS: What you type is what you see.

Higher level edits and refactoring are awesome, but when you just start using the environment you can't learn all the refactorings yet, while you only want to enter something similar to the code you saw on the whiteboard in class etc. WYTIWYS makes it easy.

Historically, many attempts at structural or projectional editors didn't adhere to WYTIWYS. I believe that this is a major reason for why they haven't gained popularity.

But recently there are several projects developing projectional editors which do adhere to WYTIWYS!

One is Lamdu ([http://www.lamdu.org](http://www.lamdu.org)) (btw I'm one of its developers). In Lamdu we try to create a programming language with a friendly projectional editor which does adhere to WYTIWYS and also offers awesome unique features that projectional editors enable. (for more information see our short videos - [https://www.youtube.com/channel/UCgvPEOFglvS4_ZEHi- PEctQ](https://www.youtube.com/channel/UCgvPEOFglvS4_ZEHi-PEctQ) )

Another projectional editor adhering to WYTIWYS is Jetbrains MPS ([https://www.jetbrains.com/mps/](https://www.jetbrains.com/mps/)) . This one isn't limited to a single programming language! It is a general purpose language workbench.

</comment><comment><USER32> I have thought about and wanted exactly this when refactoring on a branch. I later want to perform the same refactoring upon rebasing to a newer point on master. There have even been times where I've done this manually by either making mental notes, or explicit bullet points of operations as I perform them. It works great but is tedious and is easy to imagine that the IDE could do this, or the IDE provide an API that can run a script of transformations. JetBrains and their set of tools is the closest place where I can imagine this could be achieved. Perhaps in combination with the language being edited represented in MPS[0] form (of which I have no knowledge).

MPS does present a different aspect in the examples shown. It is still text editing, but not the linear word by word syntax we're used to. We can make up 2D, tree, or any other structure that can conceptually and compactly represent our thinking.

One more point I have on this is that the editor itself can recognize 'edit units' that are not mere characters inserted/replaced/deleted. As edits are made, it can make higher level 'checkpoints' whenever a unit is recognized. The examples in this post are great examples: function declaration, renaming, invocation. Then the undo/redo can show text operations as low-level points as well as higher level ones identifying larger logical units. Having that, one could perhaps select a range of these and cut them to be replayed at a later point. This is similar to how I'll make small local git commits and later reorder, squash or drop commits or make them into separate PRs.

[0] [https://www.jetbrains.com/mps](https://www.jetbrains.com/mps)

</comment><comment><USER33> Back in the late 90's, there were several CRUD web app generators that were quite good. I used a commercial one, and was demo'ed an internal one used by a small Michigan design house (govt. contractor.) They said it was their secret sauce, and I believe them.

Currently, there are several database ETL tools (Talend, Pentaho, etc.) which are graphical (think shitty like Labview), but anybody serious uses python or perl scripts.

Today I would look at Zapier or publishing a Google sheet.

[https://zapier.com/learn/forms-surveys/best-online-form- buil...](https://zapier.com/learn/forms-surveys/best-online-form-builder- software/)

In the 2000-2005 era, there was national advertising by those sketchy diploma- mill universities like U. of Phoenix to turn military veterans into C++ programmers because the Visual Studio IDE "did all the work for you."

Those TV ads were truly eyebrow-raising to me, since I learned all that the hard way (ie. paid development projects) and couldn't recall the IDE every writing a function for me.

The lightest-weight and most powerful text form builder is likely Perl's CGI::FormBuilder module. I've used it for several years and it is remarkable for building CRUD apps.

Apple's Resedit and Adobe's internal dialog layout editor both allow visual layout that saves to text resources.

OpenAPI has tools for generating a server API skeleton, but I think it has the same problem as all code generators: when you want to substantially change it, you'll want to check it in to git and hand-edit, like always.

</comment><comment><USER34> Simply because writing is the best form of communication of ideas after speech, and using speech to program is just silly, not to mention cumbersome and not productive. Writing, since its invention, has become inseparable from humans and its quite understandable that it is extended to instruct computers, with the compiler as the, well, interpreter.

As for the mechanism you talk about, that's basically declarative style and a lot of platforms (for the lack of better word) do this, mainly in business logic and scientific applications. The most famous example is Excel. However, this style works like a charm only when the set of possible actions is predetermined, and is not conducive to creating new actions, which is why every single platform has some kind of scripting. And scripting is editing text. So there you go.

</comment><comment><USER35> Your premise is incorrect. If all we cared about was the compiler's output, our programs would look like 100010101011000011101010. Programming involves logic. In humans, logic evolved through use of language and, later, written language.

Please please please follow whatever style guide is handed to you. I am so sick of looking at gobbledygook code.

<comment><USER36> > Please please please follow whatever style guide is handed to you. I am so > sick of looking at gobbledygook code.

You might get either absolute refusal or slow subversion from me there. In my current place of work I was initially handed the utmost horror of horrors of style guides, namely the so-called google style guide. A thing that is optimized to result in code as unreadable as possible. Rebelling against that worked pretty well, so now the thing is gone. And, honestly, if I am ever going to apply for a job and hear that they use the google style guide I am not going to work in that place. I don't follow style guides. Style guides follow me. Currently planning the next rebellion as the utterly evil practice of demanding that every method shall be commented has emerged from whatever wretched place such things emerge.

</comment></comment><comment><USER37> A large part of the answer is historical(80 column text is derived from the IBM punchcard standards of yesteryear). The remainder is in information theory: we tend to use textual language because the data is a nice compromise between "compressed" and "editable". While it's true that "a picture is a thousand words", those thousand words are generally not abstract concepts like "homomorphism" or "ideology", and yet you can type those words with a few characters.

What you suggest is possible to some extent, it's just hard to standardize, much harder than gluing more stuff on top of the existing systems. You're looking at something that you could build a career on, if you find the right approach. There a lot of companies and projects that have tried to research moonshots and come up with good demos but bad production environments.

<comment><USER3> It may be that the best place for that technology is in prototyping environments. Similar to something being mocked up before cut into HTML/CSS/JS. The biggest problem I imagine with graphical is the maintenance of it.

</comment></comment><comment><USER38> Just as an experiment give scratch a try:

[https://scratch.mit.edu/](https://scratch.mit.edu/)

I think you might find out why test is pretty handy.

I can hammer out a one liner with a bunch of methods to do a thing(s) pretty fast. Dragging stuff around, much much slower and IMO it's harder to understand what is actually going on.

<comment><USER39> Snap! ([https://snap.berkeley.edu/](https://snap.berkeley.edu/)) has a Scratch like UI that can be almost entirely navigated and edited by keyboard, Unreal Blueprints allows for a lot of keyboard based editing as well. The reason I mention this is one of the criticisms of visual programming is that it is inherently mouse based, and mouse interactions are inherently slower than keyboard.

</comment></comment><comment><USER40> Top-down, left-right flow in reading and writing text is an under-appreciated order. We learn it from a very young age and use it everyday in writing English.

Replacing our natural order to process language with a visual scripting environment doesn't really work. The flow control format needs to match the coding requirement, otherwise the default written text style is much better.

The best visual editors I've seen amplify the top-down, left-right structure and sometimes are not saved even then.

Organising ideas into a communicable stack of information has always been the realm of language. The move from pictographs to alphabets was a technology that allowed masses of people to be literate and spread the associated language far and wide, spreading the host civilization with it. Going back to pictographs for coding.. is a deep challenge.

</comment><comment><USER41> You mean something like model-based development? That is a thing, at least I know it is in use for some safety critical development. The two products I am aware of are:

* SCADE Suite: [https://www.ansys.com/products/embedded-software/ansys-scade...](https://www.ansys.com/products/embedded-software/ansys-scade-suite)

* TargetLink: [https://www.dspace.com/en/inc/home/products/sw/pcgs/targetli...](https://www.dspace.com/en/inc/home/products/sw/pcgs/targetli.cfm) (Generates C code from MathWorks SimuLink models)

I suppose the nice thing about these is that you can show some (safety and/or behavourial) properties directly on the model.

</comment><comment><USER42> Yes, every IDE with code snippets is exactly that kind of IDE for text languages.

Also, DRAKON is a visual programming environment which supports a number of text backing languages.

[http://drakon-editor.sourceforge.net/](http://drakon-editor.sourceforge.net/)

<comment><USER43> To be honest, I think a decent IDE does this as much as makes practical sense.

Visual programming just seems awful - and yet a decent IDE can remove a lot of the pain points from the textual approach while keeping the advantages.

</comment></comment><comment><USER44> There actually was a promising Microsoft research project called "Intentional Programming"(IP) ([https://en.wikipedia.org/wiki/Intentional_programming](https://en.wikipedia.org/wiki/Intentional_programming)) a few decades ago. The idea is good but i believe due to it being a true disruptive technology and other market forces it was shelved.

PS: Charles Simonyi, the inventor of IP, wrote a paper called "The Death of Computer Languages, The Birth of Intentional Programming" which is worth a read.

<comment><USER45> Intentional programming is not tied to graphical representation even if that's how it looked in a prototype. It's more about separating program structure from detail, trying to better deliver on Dijkstra's comment about a semantic layer at which one can be absolutely precise. I consider it required reading for anyone frustrated by the present state of programming.

<comment><USER44> The problem with IP was that it was all so hush-hush that there was no real "thing" i could get my hands on to understand it. I got that it was some form of a DSL or maybe a bunch of inter-linked DSLs connected together where you drew your specific requirement like a "Mindmap". But this is too high-level to get any idea of the implementation and usage. It could also be that this was all "much ado about nothing" in that the idea was well-known but marketing put a spin on the presentation to its own detriment.

</comment></comment></comment><comment><USER46> Along with what others have said, Unreal's Blueprint editor does precisely this.

</comment><comment><USER47> It's a good question and even if the text approach is superior we need a better reason than typically given.

I mean think about it. Suppose you want to communicate a JSON object to another programmer.

You can say: "the object consists of three key value pairs, the first key is named ... and its value is ..., the second ..."

Or you can say: "the object is that which you get from parsing the string that spells thus: curly bracket, space, double quote, ..."

Of course you'd prefer the former approach! Why then when we wish to communicate to a computer the same object, we adopt the "spelling approach"?

<comment><USER48> Because we're not verbally dictating instructions to the computer, we're writing them. Say you want to communicate that JSON object via chat to that programmer, how is this:

{"x":"bar", "y":"foo", "z":"foobar"}

Not the clearest way of communicating it?

For similar reasons, mathematical notation is used instead of explaining equations in plain English, despite mathematicians' audience not being computers.

Symbolic notation has value: while it takes more initial effort to understand, once you have grasped it, the result is far more concise, unambiguous and generalizable.

</comment></comment><comment><USER49> Because you would have to have dozens of such operations, at which point you have to filter through them, at which point it's faster to just type what you want to do.

Seriously, the best thing I ever did was learn to type 140 wpm.

</comment><comment><USER50> People try reinventing node/block based editors every few years, it never works because the complexity isn't linear and node/blocks optimise for the 'let a = 3;' type of line of code.

</comment><comment><USER51> Or you just write in Chinese: your symbols are whole words.

</comment><comment><USER52> A solution half-way to what you're talking about (it still utilises text editing) is Paredit/Parinfer for Lisp languages. They allow you to directly edit the program's abstract syntax tree. When coupled with a REPL you can evaluate sections of the syntax tree at will. It gives the dev a much finer grain of control than even the smallest unit test.

</comment><comment><USER53> There are lots of "visual programming languages" with a list on wikipedia and recently posted here on HN.

The operations you list seem to be related to the kinds of things yo might do when 'refactoring' though. Have you looked into the kinds of operations happening there. "Pull Up", "Extract Method" etc

</comment><comment><USER54> I find it interesting (and somewhat unexpected) that even digital _hardware_ , while consisting of discrete elements, blocks, etc. that can be easily visualized, is still "defined" using pure-text "hardware definition languages."

<comment><USER26> That's kind of true, but then you have to do layout and routing using what is essentially CAD software.

</comment></comment><comment><USER55> Do you mean an ide that you navigate around (mouse or keyboard) to create programming language constructs that then is turned into either text or a binary?

If so, my big question is what interface will be more efficient than text entry?

If not than perhaps I misunderstood your question.

<comment><USER55> You might be looking for something like blockly:

[https://developers.google.com/blockly/guides/overview](https://developers.google.com/blockly/guides/overview)

</comment></comment><comment><USER56> Charles Simonyi would like to speak with you.

wikipedia.org/wiki/Intentional_programming

Bret Victor would, too:

[http://worrydream.com/](http://worrydream.com/) (Warning, this site hijacks your mouse scroll and does weird things)

</comment><comment><USER57> I too am a fan of visual programming and node-based and flow-based editors, but they are few and far between and tend to be highly specialized.

If you know of ones that are high quality please point me in the right direction.

</comment><comment><USER58> unity and unreal are very visual when compared with text editors. They are also very popular apps for creating entire classes of applications, like video games.

</comment><comment><USER59> Hi! Take a look at NodeRed... Still some code behind the scene at lowest layer but the visual display of algo is a starting point.

<comment><AUTHOR> I've heard of it, but it generates JSON, doesn't it? What I mean is something like an editor/ide for C or Python or something.

<comment><USER60> Well sure, but that's just the storage format isn't it? Is that important if you never interact with it?

</comment></comment></comment><comment><USER61> Because humans can only express themselves in two ways. Through their voice or through actuation of muscles. (Actually that's just one way...)

We already tried the voice thing and it doesn't work well at all beyond Alexa type personal assistants.

So basically muscle actuation is the only thing remaining. Well time to count the number of actuators your body possesses that it can use to express itself. 2 legs, 2 feet with tandem controlled toes, 2 arms, 2 eyes, 1 neck, two hands with 10 fingers. If we don't count our hands we only have only 7 actuators in total that we can use to control a computer. Our hands are such a tiny part of our body yet they exceed that number. 10 actuators that can be used for our body to express itself. Now imagine you are a dolphin or you are paralyzed and can't use anything below your neck. You have lost almost all ability to express yourself. There are still a few actuators left but compared to the power of 10 fingers they are absolutely nothing. 10 fingers allow humans to transmit 40 bits of information every single second (assuming average 60WPM) to their computer.

Since our hands are our primary way of communicating with a computer we have decided to create an input device that is worthy of their might. A keyboard lets us take advantage of the full potential of our hands. Just think about it. 106 keys at your fingertips. You can transmit a huge amount of information into the computer.

Without a hand you can still use a pointing device like a mouse or touch screen but you are not able to use the scroll wheel and at most you can only have a single mouse button. The biggest flaw: You are limited to interactions that are visible on the screen. The keyboard has no such restrictions, you can just type anything you want.

What I'm getting at is that typing text is the most natural way of interacting with a computer and the method with the highest data throughput. Text based programming languages take advantage of this affinity and this is why they have established themselves.

The type of IDE you are talking about has to be easier to use and faster than simply typing the code directly. Achieving this is a very difficult task and even if you succeed there is no shortage of programmers willing to learn text based languages, it simply isn't difficult enough to warrant a replacement.

The other comments saying this is just because of inertia or fashion(blub?) completely ignore the way humans interact with computers and therefore are not sufficient to answer your question. If it were that simple then we'd already see a reasonable split between the camps. Something like 3 text based languages to 2 visual languages and 1 voice based language.

</comment><comment><USER62> What about Node Red or Apache Nifi?</comment>


Real-time collaboration tool for web content (InVision for web content) - <AUTHOR> https://www.indiehackers.com/forum/post/-Kv80ee14pUW3MRcGqqe <comment><USER2> We're building something similar, check us out! [https://tipe.io](https://tipe.io)</comment>


What's the point of linear algebra? - <AUTHOR> http://www.reddit.com/r/askscience/comments/2ozkcv/whats_the_point_of_linear_algebra/

<comment><USER2> Is the title unintentionally a pun?

Regardless, I'm glad I got pushed into linear algebra at school. Even more glad that Salman Khan made such good tutorials on it.

</comment><comment><AUTHOR> Enthusiasm of people from all walks of life makes this discussion a fascinating read.</comment>


Ask HN: How do you get good bug reports from internal dogfooding? - <AUTHOR> At the various companies that I have worked developing consumer mobile apps, it has been a struggle getting the extended team to report bugs in a usable manner (both quantity and quality). Almost always the majority of reports are given by walking over to a dev or slacking them.<p>Any tools or process that has worked for you to gather good bug reports -- making it easy both for the reporter, and for the devs? <comment><USER2> For iOS apps, I use TestFlight, and Slack/emails/SurveyMonkey forms for collecting bugs and feedback. I'd be interested in a better workflow too!</comment>


Amazon Video Direct Poses Challenge to YouTube - <AUTHOR> http://www.bbc.com/news/technology-36259782 <comment><USER2> Amazon can't compete with Youtube, mostly because Everything on amazon is region locked.</comment>


China is mining data directly from workers' brains on an industrial scale - <AUTHOR> http://www.scmp.com/news/china/society/article/2143899/forget-facebook-leak-china-mining-data-directly-workers-brains <comment><USER2> Best place to experiment there, Chinese are really scientific in their approach, than other countries being scared of AI, every govt should do it. Everyone can learn a lot of their shortcomings. AI WOULD IMPROVE ECONOMY FAR- SIGHTED LY

</comment><comment><USER2> Hmmm....</comment>


Belocal (iOS/Android apps) – like AirBnB, but for travellers - <AUTHOR>

Hey guys,
just wanted to let you know about a product I just released with a couple of friends. It's called Belocal and we aim to do something like "the AirBnb of travel".
Here's the website: https://belocal.io
Android app: https://play.google.com/store/apps/details?id=io.belocal.belocal
iOS App: https://itunes.apple.com/us/app/belocal-its-time-to-step-outside/id979165664?mt=8
Hope you guys will enjoy it!
Thanks <comment><USER2> Cool idea! I'll give it a go, thanks for sharing</comment>