It's impossible to see the world as it is, argues a neuroscientist [video] - <AUTHOR> https://aeon.co/videos/its-impossible-to-see-the-world-as-it-is-argues-a-cognitive-neuroscientist <comment><USER2> The limitations of empirical knowledge have been known for... a few thousand years now. It is a little disconcerting that (some) neuroscientists appear to be completely ignorant of basic philosophical problems.

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

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

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

<comment><USER3> One way of avoiding confirmation bias is to simply have no prior understanding to confirm though.

<comment><USER4> I which case you'll never have a second chance to make a first impression (tm)

<comment><USER5> In Academia, as long as you do the work to finish a manuscript and submit it, you will get another chance to make another impression.

</comment></comment></comment></comment><comment><USER6> The guy has been doing the TED circuit for ages. I once looked closer at his claims and his supposed proof by simulation and came to agree with the more negative takes at [https://news.ycombinator.com/item?id=11588698](https://news.ycombinator.com/item?id=11588698)

</comment><comment><USER7> _We don 't see things as they are, we see them as we are._

Anais Nin

<comment><USER8> That's a sentence-long review of 12 Angry Men.

</comment></comment><comment><USER9> Very interesting. Reminds me a lot of The Idea of the World by Bernardo Kastrup, who also argues that the basic building blocks of existence is consciousness, and that idealism is a better model for the all.

<comment><USER10> Can you define consciousness in a material way? Is it an energy or a feedback system? Can it be observed or quantified?

<comment><USER5> I think any system that responds as if it is modeling another system is conscious.

But there are levels of consciousness, what differentiates "higher consciousness" is maybe the question you're getting at.

That unfortunately is an largely ascientific question. Like "what's a good map of Seattle?" there is no such thing as a map of Seattle, so there's nothing for science to study. Seattle exists for sure. Some maps will help you meet different ends in Seattle. But there is no such thing as an objective map. List n things a map gets right, and I will tell you n things it gets wrong.

But if you want a starting place, you could temporarily accept, e.g., Timothy Leary's map of consciousnesses. That one is quite materially grounded. Within that orientation you can do all kinds of science and learn many things about consciousness.

<comment><USER10> You pointed me to [https://en.m.wikipedia.org/wiki/Eight- circuit_model_of_consc...](https://en.m.wikipedia.org/wiki/Eight- circuit_model_of_consciousness)

Very interesting. I'm finding patterns in explorations of consciousness. The first four levels Leary describes could be Freud's id. The next 4 contain his super ego.

Compared to id = Dąbrowski's first level and super ego = 5th level.

Like you said these are all _maps_ of consciousness. Psychological models that describe the actual physicality of a material mind.

I suppose I'm trying to determine how to physically recreate the material that will lead to a new consciousness.

We can't recreate Seattle from maps of Seattle to continue your analogy. Is it possible to recreate consciousness from our maps of consciousness?

It seems like that is what we have been trying to do in our pursuit of AI, when we know no more about what consciousness _is_ than we know what Seattle _is_.

<comment><USER5> There are no roads where you are going. But I can offer you some pointers:

Consciousness requires sensation and action. Without action animals don't learn to perceive anything at all.

If I were trying to make a conscious artificial being the first thing I would do would be to sign them up for a fast paced online FPS and teach them to play.

Next give them emotions (0 dimensional precepts).

Any time your codebase starts to feel big, delete most of it. Your end goal will be maybe 1000 lines total.

Use matrices.

</comment></comment></comment></comment></comment><comment><USER11> Discussions about perception and reality are always good, even if this article seems a little tame compared to what philosophers have argued about for centuries. But it's nice to see such a discussion coming from scientists, and not just philosophers. Physicists have especially given new life to these ideas though. You can go down an existential wormhole if you want to, where the implications of spacetime readily suggest the passage of time itself is an illusion (brief intro of one idea: [https://www.preposterousuniverse.com/blog/2015/04/03/the- rea...](https://www.preposterousuniverse.com/blog/2015/04/03/the-reality-of- time/)). One implication of a timeless universe (there are many labels/forms: Laplace's Demon, eternalism, block universe) is that there are no privileged moments in time. So why do we find ourselves localized and perceiving this coordinate in the 4D spacetime block and not any other? Conceivably, in an infinte universe which ends in maximum entropy, there are many more observers where entropy is higher than it is now or was near the big bang. (Assuming observers can't form in the extreme densities of the initial singularity, there is an infinite time in comparison for Botlzmann brains to fluctuate into existence in the high entropy, low density "future" \- ours in an in between point, but infinitely tiny when compared to an eternal heat death). About the only solution from physicists to avoid such Boltzmann brain problems is to invoke the multiverse (where some verses recollapse and can never form observers).

Disclaimer: only a layman but I believe what I've said is an accurate synopsis of the debate

<comment><USER5> > why do we find ourselves localized and perceiving this coordinate in the 4D > spacetime block and not any other?

Well we started out perceiving a 0-dimensional universe and 4 dimensions is as far as we've gotten!

We're certainly at work on the next one.

</comment></comment><comment><USER12> We see things in the optimal way for us to navigate the world we evolved in. "As it is" has no meaning outside our perceptual affordances.

<comment><USER13> What evidence is there to suggest _evolution_ has resulted in _optimal_ perception?

<comment><USER12> My use of 'optimal' is more of 'sufficient to keep reproducing given current conditions' than anything.

If you're suggesting that evolution isn't the right vehicle for this process, then we'll have to disagree.

<comment><USER13> Ah, the 'sufficient' definition of 'optimal' ;)

Yeah, sure, I can agree with that.

Evolution does appear to be the most likely candidate, yes.

</comment></comment></comment></comment><comment><USER14> This whole idea is called autopoiesis, it's in the book The Tree of Knowledge by Maturana and Varela. Those guys "scientifically proved it", to whatever extent science can prove something like that.

<comment><USER15> Could you provide more of an explanation and details/resources?

</comment></comment><comment><USER16> I think the devil is in the details when it comes to this argument. Some philosophy speculation ahead.

1) It's unclear which parts of our perception reflects the real world and which don't, and also how to measure how accurate they are. We obviously see objects as much more than what the photons representing them that hit our retina tells us. The brain creates all kinds of backstory and assumptions based on its model of the world, however, I would argue that the basic shapes we see are accurate.

So basically the geometry/shape of a face, of a chair, of <pick any object> is real, while the extended cultural, practical and personal associations the brain attaches to those are "not real" (or rather, we see a chair as a utility we can sit on, so we see both the shape of a chair but also potential uses for it, so it becomes an extended model of ourselves+chair, but that doesn't mean the shape isn't real). Also even though we can change our extended model of objects, we don't normally change our base perception, e.g. a chair always looks the same shape even though we may see different uses for it in different contexts. I would argue we really see the shape of the chair. This then leads to difficulty knowing how to define what is real/accurate and what isn't.

2) It's unclear whether the extended models we have are reflective of the real world or not, and if so how much. Just because I see a chair as a utility I can sit on, doesn't mean that it doesn't reflect reality. In fact you could say the model reflects a more abstract truth about how my body fits into a chair, so it becomes a more encompassing truth about bodies+chairs. Hell you could even include that it includes some information about how my muscles tire and need rest and so on.

3) I think the basic idea is true and interesting. We clearly do not see the world like a camera does, but I wouldn't go as far as saying it doesn't reflect reality at all. I haven't looked at this authors papers, but I saw an interview where he mentioned some statistical measurement of how organisms who saw the world as it actually was had a lower survival rate than those who do, and I'd be curious on how sound that argument is. The devil is in the details again and it sounds to me like such an argument could be interpreted several ways.

<comment><USER10> That fits with my observations matching the decreasing propensity to procreate with IQ. At some point we become literally too smart for our own good.

<comment><USER17> It's my understanding that this correlation disappears once you correct for level of education.

In other words, it isn't intelligence per se which lowers TFR, it's college. Which makes sense, adding at least four years before someone is earning a living will decrease the number of children they have, ceteris paribus.

Student loans aren't helping either.

</comment></comment></comment><comment><USER18> Tautology.

Every person sees the world through their own way. Therefore there is no way to see it as it truly is. The sum of the parts can never equal the whole, no matter how much effort is done to reduce bias.

Worthless to discuss further.

<comment><USER19> Any good reads/books on this?

</comment></comment><comment><USER20> Kant? [https://en.m.wikipedia.org/wiki/Thing-in- itself](https://en.m.wikipedia.org/wiki/Thing-in-itself)

<comment><USER21> Whatabout Plato? Lao Tzo?

</comment></comment><comment><USER22> Cameras have to filter out infrared.

</comment><comment><USER23> How Can Mirrors Be Real If Our Eyes Aren't Real</comment>


Ask HN: Community messaging tools to use during pandemic? - <AUTHOR> I live in an apartment building in a city.  I want to set up a way to communicate electronically with my neighbors in case the virus hits.  Recommendations? <comment><USER2> Telegram.

Or Signal.

But even tptacek is on record here on HN now admitting that even unencrypted sms or iMessages are fine as long as you don't need bulletproof crypto.

<comment><USER2> That should be email, not sms, but I guess they are more or less the same from that perspective.

</comment></comment><comment><USER3> Exchange phone numbers.

Set up a Google group, Reddit sub or other standard platform for your building.

This will depend a lot on how well you know your neighbors, what their default digital platforms are and how compatible everyone is in that regard.

</comment><comment><AUTHOR> Ideally, I could set up a forum, create an account for each unit, and then slip a card under their door with the their login info.

</comment><comment><USER4> How post apocalyptic do you think things will get?

Notes posted in the lobby. Going door to door to talk to people...

</comment><comment><AUTHOR> [https://tribe.so](https://tribe.so) looks suitable.

</comment><comment><USER5> Nextdoor?

<comment><AUTHOR> Thanks. I just tried out Nextdoor.com. They make money from ads and it shows. Their signup process is a distasteful data grab.

Still, I found 15 people who live or used to live in my building. There's no way to start a group discussion with just them.</comment></comment>


Ask HN: You've got one month, what's your challenge? - <AUTHOR> As simple as that, you have a month, what challenge do you tackle?<p>Typical examples: - write a book - code a game - train to run a marathon by the end of the month <comment><USER4> After 10 years of depression, carry over my good streak from last month and finally finish my studies so I can have a better job.

Whish me luck.

<comment><USER5> All the best mate. Keep up the great work and good luck!

</comment></comment><comment><USER6> Come home from work and do one productive thing, every day. I'm tired of feeling lazy but not feeling motivated to do anything but play video games and generally be a slob.

<comment><AUTHOR> I think being more precise on what that one productive thing should be would help!

</comment></comment><comment><USER7> * Get 100 active customer support agents on Panel Ninja [www.panelninja.com]

* Send cold emails to 1,000 potential customers

* Cut 15 seconds off my mile time

* Run 4 experiments to iterate on the cold email process

* Watch the Eagles beat the Giants, Falcons, Seahawks, and Packers :)

</comment><comment><USER8> Get back to working on the comics pretty much every weekday. I've been bogged down in printing stuff and writing pitches and I just wanna get back to _drawing some fucking comics_.

<comment><USER9> Wow – your art (and website, by the way) looks amazing!

<comment><USER8> Thanks!

</comment></comment></comment><comment><USER10> \- Learn React(complete the video courses I've started), and use it to build the project I have in mind(discovery platform for webdev learning resources).

\- Keep making progress at my fiction/comedy writing. I've been struggling with it for a long time, but I've had a few epiphanies recently, and I want to finally make it work. The goal is as always - learn to competently craft my short funny science fiction stories.

But before any of that happens, I have to take a break, cut out the caffeine, and go through several days of withdrawal. It will be miserable, but I really have to make my body rest, sleep, and recharge. I can't keep taking more and more stimulants, it's not working anymore.

</comment><comment><USER11> Find a better place to work. Just started as a software engineer, fresh out of college. I come home and I am constantly learning, which I enjoy, go to work and introduce new ideas and am shot idea not because of my ideas but beucasue im a newbie. Over the past couple of month has eatten away at my confidence and starting to just blow it off. :(

<comment><USER12> Read The Originals; in particular, the chapter on the CIA agent.

Yeah it sucks, but if you insist on the security of a larger company (my assumption), that's how it works.

<comment><USER13> what CIA?

</comment></comment></comment><comment><USER14> I'm writing a little block-based file system for a virtual computer for kids, I hope to have it done this month!

<comment><USER15> This sounds awesome! Is there a link to your project or source code you could share?

<comment><USER14> The story of my KidCompy project is a little complicated. The codebase I'm working on is closed source because of ownership/partnership issues. I started work on it as a hobby in 2008, and it is distinctly a JQuery-era architecture, and it's spaghetti code.

Around two years ago, the codebase was out of control and it was getting impossible to maintain or add features. I had gone crazy with features on my server side.

I started an open source rewrite with my dream build system and good design and testing methodologies. That codebase is here:

[https://github.com/clubcompy/kidcompy/tree/develop](https://github.com/clubcompy/kidcompy/tree/develop)

Then, I came to my senses a little bit. The crufty JQuery codebase can be refactored, buttoned up, and turned into a MVP! I could sell subscriptions to the thing as-is, it seemed to me. It's not everything I hoped it could be, and I'm very embarrassed by the poor code quality, but there is value there. I just need to complete something and focus on selling.

So, I paused on the new open source codebase, and set about preparing my original closed source code for a commercial release. Part of that prep is removing the cloud storage for the user's virtual file system. The new MVP plan is to use the user's HTML5 Local Storage or IE6-8 UserData as their persistent storage for programs and data. That is what I'm working on right now. I just got folders working, so only files, extents, attributes, and a syscall interface remains!

I realize that the open source codebase is the only long term way to go. When my main competition is open source, I need to be as well. And, since I'll be marketing a service for kids, it will help with gaining parents' trust for me to be open with the code and the data I collect. Assuming that the MVP shows some life and gets some interest, the plan is to put the old codebase into maintenance mode and move all development to the github codebase, migrating users over to the new compy once I have everything reimplemented there.

</comment></comment></comment><comment><USER16> Trying to participate in NaNoWriMo right now.

<comment><AUTHOR> cool! Great to find that at least one person understood the question :D

</comment></comment><comment><USER17> Make one cool demo or write a post about something fascinating each week. Bonus level: twice a week.

This week's: [https://andars.github.io/dynamic- system/](https://andars.github.io/dynamic-system/)

Unsure if I can do it, but I am going to try.

<comment><USER18> Just a heads up, your javascript doesn't work for me in Chrome because it's assigning to a global `history` variable. `window.history` is read-only so the js errors out. If you scope your function or rename the variable it should work. Nice challenge! Good luck!

<comment><USER17> Thank you. Should be fixed now.

</comment></comment></comment><comment><USER19> Build Flask app for tracking using wifi beacons (backend)

<comment><USER20> Fascinating, I've done exactly this!

I based mine on a collection of ESP8266 modules talking to again, a Flask app. They'd watch for both DHCP broadcast packets and also the visibility of the device on it's own radio. It also would regularly try to ping known devices to track "sessions".

What plans do you have, what tech are you using, and where can I follow along?

</comment></comment><comment><USER21> Well, I have an interview with Google on November 29, so for the past few days it's been that.

</comment><comment><USER22> You can't do any of these examples in one month. Impossible to train a marathon without injuries in one month. Can't write a good book in one month (unless you've been preparing for it in the past year). Code a game yes. But that's assuming you have a fair amount of experience

My challenge would be to clean up diet. That's doable.

<comment><USER23> > Impossible to train a marathon without injuries in one month.

I disagree - I think a lot of people could manage a slow marathon (~6-8h, basically walking pace) without more than a month of training.

<comment><USER22> It is not impossible. Yes, you can find people who can do it. By luck, you could have someone with very high determination and who has a good athletic base, even though they haven't trained recently.

Is it a challenge anyone can take? No. I don't know of any training plan made to make you run a marathon in one month. The most aggressive training plans are 12 weeks minimum (3 months), and that's for people who are already fit. For those who are not used to running, the most realistic is 26 weeks

<comment><USER23> Again, you'd have to define "run". Do you mean sub-4h? Sure, I'd agree it was wildly unlikely a normal person[1] could manage that in a month.

Personally I ran a 5h30 marathon (solo, carrying water+food, half-trail) without following a training plan at all - went from 1k to 13k to 21k to 42k in 15 weeks. By no stretch of any loose definition was I "already fit".

[1] people who don't already have a certain level of fitness.

[Edit: corrected 14 to 15 weeks after checking calendar]

</comment></comment></comment></comment><comment><USER24> Stand a project up, running on autopilot, which will make a minimum of $5k/month profit, 100% on my own without the need for any major expense other than time/effort plus simple and cost effective infrastructure.

<comment><AUTHOR> are you already working on it? or just an idea?

</comment></comment><comment><USER25> Id like to get searchcode.com into the top 20,000 Alexa website ranking's. To do so id like to refresh the code results on it more quickly and add project pages.

</comment><comment><USER26> Hm, let me think:

        * Get the AWS sysops associate certificate
        * Run at least 60km (I know it's not much - but it's okay for me)

</comment><comment><USER27> Launch my chat app for communities [http://chatbox.chat](http://chatbox.chat)

Launch my coliving platform [http://colive.co](http://colive.co)

Make my VR game where you can catch street cats and eat ramen [http://bar254.tokyo](http://bar254.tokyo)

</comment><comment><USER28> Can't work on my own apps recommender system atm, so taking part in the latest Kaggle competition from Santander instead.

</comment><comment><USER29> I've been making a Django app for over a week because I wanted to learn doing web dev. I hope to finish it another 2-3 weeks. So far, it's been a intimidating and yet fantastic experience learning about django, http, html dom, js, jquery, css, bootstrap, sqlite, orm, templates and such.

</comment><comment><USER30> I would compete on some crazy competition like MIT's battlecode (which usually is a month long event) ! I have worked several years, but none has given me the challenge/satisfaction of programming an AI Bot and compete with similar folks

<comment><AUTHOR> this sounds like a cool challenge. How does it work, like your code competes against others code I understand, but how?

<comment><USER30> Yeah. You build bots and it competes with other bots (software bots - <USER2> code). Check this out [https://www.battlecode.org/](https://www.battlecode.org/)

</comment></comment></comment><comment><USER31> Meet more cool futuristic founders, upload my 50th episode of Tomorrow's Tech podcast...and land my first sponsor!

[https://soundcloud.com/user-925097294](https://soundcloud.com/user-925097294)

<comment><AUTHOR> futuristic founders?

</comment></comment><comment><USER32> Finish this Flask web app I've been putting off. And applying for internships.

</comment><comment><USER33> I would work on the job board site that I have been dreaming about for months. As soon as I'm done with the exams I will go to work on that site. Target : launching MVP by the end of first week of December.

<comment><AUTHOR> what will be special about your job board site? :)

<comment><USER33> I want it to be very simple to search jobs. and You should be able to find EXACTLY what you are looking for. I know ton of others exists but it would not be a problem to implement one as a side project and see if people like it :)

</comment></comment></comment><comment><USER34> Figure out how to get a job doing data science or something else interesting instead of working on CRUD apps. I have the skills, but I need to figure out how to get my foot in the door.

</comment><comment><USER35> You could take a self-paced MOOC and master its contents in a month.

<comment><AUTHOR> that could be a nice idea. Because you seem to have understood the goal of my question, I'll dig deeper. I need ideas on the WHAT. Like what would you take a MOOC on? The idea is that there's so many things I might not have even thought of that you might consider...!

<comment><USER35> Well the two general things to look for would be things which you've studied in the past and wish to review or things which you've never studied.

In general, it's probably a better idea to strengthen one's foundation as they serve as the prerequisites for more advanced subjects. Google's guide to technical development [0] is a good place to start.

As far as just finding courses to take, you could just search the course catalogs of sites like Coursera, edx, Udacity, and Stanford's online offerings [1].

[0] [https://www.google.com/about/careers/students/guide-to- techn...](https://www.google.com/about/careers/students/guide-to-technical- development.html)

[1] [https://lagunita.stanford.edu/courses](https://lagunita.stanford.edu/courses)

</comment></comment></comment><comment><USER36> Ugh, regardless of what we say we wish to do on this post, what I'm sure many of us lack is external motivation to do it. One app to help solve that is called Spar, developed by a friend of a friend ([https://itunes.apple.com/us/app/spar!-get-better-at- stuff/id...](https://itunes.apple.com/us/app/spar!-get-better-at- stuff/id1109640290)). You set a goal with your friends, e.g. read a chapter every day, and put 20$ or so in the "pot". Whoever does the best at meeting the goal, gets the pot, and if you slack on your goal you lose the money.

<comment><USER37> When the incentive to finish a goal shifts from the innate satisfaction of completion to a fear of financial penalty, is it possible that the goal itself will unintentionally change in subtle ways?

<comment><USER38> its called the Token Economy Problem. tl:dr; using tokens as an external motivation mechanism transfers away from buidling internal motivation. (e.g.,$5 for each book a kid reads gets a kid to read books for $5 bills and not for love of reading/imagination/thinking. $5 tokens run out? Kid stops reading.)

</comment></comment></comment><comment><USER39> play playstation all day for 30 days

<comment><AUTHOR> that sounds like the easiest suggested challenge so far :P

</comment></comment><comment><USER40> I'd like to enrol in a culinary arts class to learn more about cooking! I think a month would be enough time to complete some courses at one of my local colleges.

<comment><AUTHOR> that looks like a good idea! I bet your stomach agrees :P Yeah a month should cover you on at least 5 or 10 recipes!

</comment></comment><comment><USER41> Grow my weekly newsletter to atleast 1000 subs from the current 100: www.tinyletter.com/harshalbot

</comment><comment><USER42> I live in São Paulo, Brazil. I would try to get to Ushuaia by car via Chile all the way down to the Tierra del Fuego.

<comment><AUTHOR> Oh boy oh boy, you are one of mine! Roadtrippers for the win! Just do it! How many km do you estimate?

<comment><USER42> It's hard to estimate the KMs because you are always making small detours to visit places as you go. In terms of time/duration, the roundtrip takes a full month, so very much aligned with OP's question.

</comment></comment></comment><comment><USER43> I'm gonna spend a lot of the month working on my git client for IBM i.

New features, documentation and feedback

</comment><comment><USER44> finish [http://videopoker.academy](http://videopoker.academy)

* Get a trainer version playable without sign in

* Add history and stats interface

* Work up a tutorial

* Integrate Stripe

* import style + FX from [https://poker.hyprtxt.com](https://poker.hyprtxt.com)

<comment><AUTHOR> cool idea... would I be able to learn poker decently in one month? :P

<comment><USER45> Depends on the amount of quality hours you manage to put in

</comment></comment></comment><comment><USER46> Start a side project a have in mind, build the MVP, validate it, get feedback.

</comment><comment><USER47> Master stoicism and Deep Work.

<comment><USER48> That is really great! I am doing the same thing too. I am reading Bhagvad Gita which stresses on a similar idea and reading Deep Work by Cal Newport! Any books you wanna suggest!?

<comment><USER13> A Guide to the Good Life: The Ancient Art of Stoic Joy

That one is pretty good.

I also like Jiddu Krishnamurthi a lot but ppl here seem to be not big fans of him for some reason.

<comment><USER48> I have read Jiddu Krishnamurthi's work and I find it really interesting , rather helpful. I didnt know that ppl dislike his idea!?

</comment></comment></comment></comment><comment><USER48> Completing my indroduction with ML and doing one small challenge based on ML!

</comment><comment><USER12> Become location independent.

<comment><USER49> Hey, I took the leap from my corporate job earlier this year...it can be genuinely easier than you think! (disclaimer: I run ´The Remote trip´ - <USER3> profile for link), I´m currently putting together a 'remote worker' starter kit to help people make the transition like I did, it may help you out if you're interested.

</comment></comment><comment><USER50> Finish my notification and tracking app that I haven't had time for.

</comment><comment><USER51> Increase your savings rate by just 5% and retire years earlier

</comment><comment><USER52> Launch my habit streak chrome extension

</comment><comment><USER53> Build a SPA in Vue.js

<comment><USER54> I did a 1-day project Vue.js yesterday and I really enjoyed it. A lot of the ways they approach things make sense to me.

</comment></comment><comment><USER55> I'm trying to build my email list to 1,000 people.

</comment><comment><USER56> Make a plan to pivot my career for the next few years.

<comment><AUTHOR> from what to what?

</comment></comment><comment><USER57> Finishing a seed 2 fundraising campaign.

</comment><comment><USER58> Actually finish a project.

</comment><comment><USER59> Ship and pay the rent!</comment>


What if Apple bought Tesla? - <AUTHOR> http://thenextweb.com/apple/2014/02/17/apple-bought-tesla/ <comment><USER2> This is a great test of whether you "get" Apple. A lot of comments about what Apple should be doing, like how to take more market share from Android or Windows, actually make zero sense for Apple. This one actually does make sense.

The right kind of perspective on this is -- and it will make some people apoplectic -- future cars are like iPads with wheels. They both are basically giant batteries with very sophisticated software and well crafted interfaces. Apple has the engineering organization to deliver those key things along with a certain approach to integrating services, sales and support. What they're missing is the automotive engineering and that's something Tesla has done a great job of building up.

The price would be unusually high for an Apple acquisition but only in absolute terms. What makes it an "Apple-y" acquisition target is that it's an engineering piece of a much larger system, the "iPad on wheels", where the real future value is.

That is why Jobs was confident an Apple car would take 50% of the market. Not by building a better mousetrap but by redefining the product category.

<comment><USER3> I'm not sure why you think to look at car sales in terms of 'how a car looks and feels'. There are manufacturers like BMW, Mercedes, Porsche, Ferrari etc who have already solved those problems. And not just merely that. A lot of sophisticated software already runs in cars.

These days, nearly every car manufacturer has high end cars which have these.

Unless you have simply too radical a thing to offer, everything what you say already exists.

<comment><USER2> You don't get it. You're still looking at Apple as just a brand.

The iPhone didn't just have a different "look and feel". It redefined the category and obsoleted everything else overnight. That same process could happen with cars.

</comment></comment></comment><comment> rkuykendall-com Apple is such an absolutely massive company, but Musk makes them look so small. On the one hand, Apple has more brand recognition and cash than God. On the other hand, when you spend your time dreaming about electric cars, rockets, and hyperloops... who would want to play with laptops?

Musk plays the game on an entirely different level.

I think Sergey Brin understands this. Google is playing on that level. Self- driving cars, robotics, machine learning, Google Glass, augmented reality, NLP, etc.

The future will be a different world, and while Apple shaped much of the last 20 years, I'm afraid that time is over.

<comment><USER4> >>The future will be a different world, and while Apple shaped much of the last 20 years, I'm afraid that time is over.

This statement is a very good example of how successful Apple's secrecy practices are.

You look at Google and seeing all the "cool" shit they are publicizing. Glass, robots, NLP, and so on.

You then look at Apple and see... nothing. Maybe a few speculative press release from mysterious "sources" but nothing that will clearly indicate what they are working on in their underground bunkers. Short of a prototype device being stolen in public, you don't know with any certainty what the hell they are working on.

So then you conclude that Google has a good grasp of the future whereas Apple is sliding into irrelevance.

That's exactly what Apple wants.

The first rule of warfare is to hide your plans and movements from the enemy. Apple is in a great position right now: the only thing the tech world knows for certain they are working on is the next versions of their current product line.

To give you an idea of how advantageous this position is: the iPhone was released from a similar position of extreme secrecy. That's why competitors were at least a year, if not two or more, behind. By the time they caught up, Apple had already built a war chest of tens of billions of dollars.

To suggest that they aren't doing anything that will shape the future is the epitome of silliness.

<comment><USER3> >>iPhone was released from a similar position of extreme secrecy.

Every one knew that a iPhone was coming. The surprise was just how radically different the UI was. The kind of thing they had packed in such a small place.

The surprise was what iPhone was, not if apple was building a phone. The latter was very well known.

</comment></comment></comment><comment><USER5> I'm not seeing the synergies - the in-dash entertainment center having similar styling just isn't cutting it for me. That sort of thing would be more suited for a partnership kind of deal.

</comment><comment><USER6> I was really hoping Microsoft would, and make Elon Musk CEO of Microsoft (back when they were looking still).

Musk is a Microsoft fan. Microsoft would get a much-needed visionary, and Tesla (and other initiatives) would get a much-needed cash infusion.

I don't think Musk/Tesla would fit in at Apple. Apple already has enough "vision". I can't see him wanting to answer to anyone, and I can't see Apple giving him the reigns from Tim Cook (like the article agrees with).

<comment><USER7> Can you elaborate on why is Musk a huge Microsoft fan?

<comment><USER6> Not to say he also isn't a fan of Apple/Google/etc, however he famously was fired as CEO of PayPal for trying to switch the site from UNIX to a .NET stack.

Source: [http://www.businessinsider.com/the-paypal-mafia-is-even- more...](http://www.businessinsider.com/the-paypal-mafia-is-even-more- powerful-2011-11?op=1)

</comment></comment></comment><comment><USER8> I don't see Musk working well within the structure Tim Cook would need to create in order for Tim to keep his job. I think it would be a huge mistake for Tesla.

Plus, the kind of manufacturing and operations Tesla is looking at is something Apple would be just as inexperienced with, and still might not work out.

To me, it would make sense for a Detroit company to buy Tesla. Older group cannibalizes younger while letting them retain overall independence. Car brands have done that before.

<comment><USER9> > To me, it would make sense for a Detroit company to buy Tesla

Part of me thought of Tesla buying a part of Detroit.

</comment></comment><comment><USER10> Is it possible the meetings were about batteries?

Tesla is going to start making their own batteries. Apple uses a lot of batteries.

[http://www.mercurynews.com/business/ci_24531612/tesla- motors...](http://www.mercurynews.com/business/ci_24531612/tesla-motors-may- make-its-own-batteries)

<comment><USER11> I had the same thinking. The only thing holding back current CE are battery. And it hasn't had any breakthrough for a long time. Although what the article stated isn't with any battery breakthrough but rather production issues.

And didnt we had a discussion long time ago World Reserve of Lithium not being a sustainable source for battery.

</comment></comment><comment><USER12> What? No! Of course they shouldn't. There's such a small overlap of core competencies that it makes it very hard for Apple to tell if they're getting a good deal or not. That should be enough of a reason for them to think twice. All of this speculation reminds me of the AOL/Time warner or Skype/Ebay mergers. They were lauded as revolutionary at the time, but eventually fell apart when the companies discovered they had nothing in common. So will it be with Apple/Tesla, in my opinion. If Apple wants to make a big, high profile investment that's aligned much better with their core business, they should buy an ISP/Mobile Network like Verizon or AT&T. Then they could shake up both sectors by cutting prices & encouraging competition.

</comment><comment><USER13> If Apple bought Tesla...

-The car would only have one pedal, not two, to make it easier for new drivers.

-It won't have Windows.

-The navigation would use Apple Maps.

<comment><USER14> -It would only allow you to take preapproved exits on the Interstate

</comment></comment><comment><USER15> Ah, very clever, omitting the question mark at the end of the title, thereby avoiding the imperatives of Betteridge's Law by technicality.

EDIT: And I see the actual article title got around the law in a different way, by asking the question such that the answer "No" is nonsensical! Still, I like the sound of that exchange:

Writer: What if Apple bought Tesla? Me: NO

<comment><USER16> Ha yes, exactly. This article is a big fantasy by someone who thinks Apple can bring something to Tesla apart from some design rules for the tablet in the dash.

</comment></comment><comment><USER17> Seems to me Google will be the better fit.

</comment><comment><USER11> OH FOR Christ Sake.

Are all these Journalist really that much of an idiot? Or do they try to sell a new Steve Jobs to the world.

Elon Musk is not Steve Jobs, Far from it. Not saying this as good thing or a bad thing. But for those area that Steve Jobs are genius at, Elon Musk doesn't even earn pass marks.

Lei Jun , CEO of Xiaomi, I mean WTF, Steve Jobs of China? I admit Lei Jun is good in things Steve Jobs aren't very good it. But again, no Lei Jun is not another Steve Jobs.

<comment><USER18> I think you miss the forest for the trees. Jobs wasn't just someone with a certain set of skills that we have to compare against the skills of others -- he was someone with a certain self-confident aura about him that brought big ideas to life. Elon Musk is proving to be something similar, even if _how_ he does it is very different.

</comment></comment><comment><USER19> Certainly this would be the fastest path to automated electric cars, the hyperloop, the singularity and probably Mars.

</comment><comment><AUTHOR> Apple does have interest in cars. Last year Apple patented Car Dashboard touchscreens. [http://mashable.com/2013/07/18/apple-car-dashboard- patent/](http://mashable.com/2013/07/18/apple-car-dashboard-patent/)

</comment><comment><USER20> Excellent, excellent and, dare I say, excellent idea!!!

Other excellent 'OMG tht wud b 2 awsum' dynamic synergy takeover/purchase ideas:

1) Santa Claus buys Disney

2) Comcast buys Time Warner

3) Superman buys Spiderman

4) Peter GriffIn buys statue of Gwyneth Paltrow making out with Harriet Tubman

</comment><comment><USER21> It means that the only way to add music to your car is through iTunes.

</comment><comment><USER22> Apple would wish.. Elon would not sell..

</comment><comment><USER23> What if Tesla bought Apple, and then Elon Musk turned out to be a pawn of the Agricultural Bank of China?

<comment><USER24> Can you elaborate? I don't get it.

<comment><USER23> Well... Apple is more or less top dog now. But sooner or later a bigger fish will swim up to them :) I found the idea of Apple buying Tesla funny, because in my eyes Tesla could very well be the bigger fish in the future. Does the Chinese reference need explaining given this context? :P

</comment></comment></comment><comment><USER25> What if google buys tesla? But I did hear that such conversations are going on.

</comment><comment><USER26> Steve would roll over in his grave.

</comment><comment><USER27> It would go bankrupt within a couple of years.

Tesla survives because of government incentives but if you were to invest private money on it, research would eat most of it in the blink of an eye.</comment>


Feasibility of low-level GPU access on the Web - <AUTHOR> http://kvark.github.io/web/gpu/2018/02/10/low-level-gpu-web.html <comment> c-smile This situation reminds me days when we, at W3C HTML5 WG, were trying to sneak SQL specification into HTML5 "umbrella". And one particular flavor of it - <USER2> SQLite's SQL as it was defined at the moment of writing. Haven't got through for many good reasons as we know.

As of GPU exposure to the Web ...

It makes sense only when we will have stable and unified GPU abstraction. As for now DirectX.12, Vulcan and Metal are close but different.

Like the WebGL that is (more or less unified) OpenGL. But even that looks too foreign to HTML/CSS/script - immediate mode rendering in architecturally retained display model of web documents.

And conceptually: HTML5 umbrella is large but not infinite. 3D rendering is too far from HTML "endless flat text tape" model.

I remember those <applet> days when browser was used as a component delivery platform for stuff that does not fit into DOM and structured yet styled text. That was conceptually the right way "to grasp the immensity".

These days, with WebAssembly, we have another incarnation of the <applet> idea and I think GPU functionality belongs to it rather than to HTML. GLSL to be expressed in WebAssembly bytecode terms but not in JS.

Web standards have to be backward compatible and I doubt that current still ugly GPU paradigms will survive on the long run. Like tomorrow someone will come with practical voxel based system instead of current abstract vector ones, what will we do?

<comment><USER3> HTML and CSS are slowly losing ascendancy as the main render surface for web apps. The canvas provides a standard pixel buffer for both JS and compiled applications, making HTML's limitations no longer a restriction.

<comment><USER4> Except that rendering everything to canvas is not accessible to people with certain disabilities.

Also mentioned recently here [https://news.ycombinator.com/item?id=16347216](https://news.ycombinator.com/item?id=16347216)

<comment><USER5> At least until we get the AOM: [https://github.com/WICG/aom/blob/gh- pages/explainer.md](https://github.com/WICG/aom/blob/gh-pages/explainer.md)

</comment></comment></comment></comment><comment><USER6> I have this idea that if they split off WebAssembly, WebGL and WebAudio into a external format for applications it would be easier to implement than a full browser.

<comment><USER7> I've gotten pretty far doing exactly this (only-those-apis browser in Node): [https://github.com/modulesio/exokit](https://github.com/modulesio/exokit)

Not released yet, but there's basic Windows, macOS, Linux, Android and iOS support. Contributions welcome!

<comment><USER6> Your ideas is actually really cool (very tech noir).

But that's not what my idea is. My idea isn't really a browser. It's just a separate format/mimetype (.app or .game) for a app runtime.

Small projects could implement it. We can have it embeddable as a object in browsers. Clients other than major web browsers (Gopher, Dillo) could embed it. Embedded devices (Roku) could include support for it. It could even be used in a physical media like SDcards or DVDs.

<comment><USER7> Awesome, thanks for the clarification.

Here's what I'm trying to reconcile: if the idea is to break off the awesome subset of multimedia web tech, because it would be easier to implement than a full browser -- I 100% agree! -- then why is there a need for a new mimetype/format?

Many things could be done better than the current HTML-as-laundry-list approach, but if we invent a new format, that adds the extremely difficult problem of getting everyone on board, rewriting things for it. The brilliance of asm.js (which gave birth to WASM) was that everyone had already implemented it before it existed.

<comment><USER6> Like you say it would be a subset. It's all just standard WebAssembly. The APIs of course would need to be made callable from WebAssembly but that's already planned for in browsers anyway.

Until browsers supported the mimetype they could just be served as .wasm files. Not that the mimetype is important at all I just think it more clearly states it's intended use.

</comment></comment></comment></comment></comment><comment><USER8> What problem does this solve for the end user?

Few sites even use WebGL for anything interesting.

<comment><USER9> Most of these fads seem to be driven not by what's good for the user but what's good for the advertiser and the developer.

Low level GPU access will just make it easier for them to run montero miners on my browser.

<comment><USER8> There's an ICO for that.[1] Really. They want to offer browser based virtual reality which mines tokens in the background. The initial token sale is in progress now. The virtual reality system appears to be total vaporware.

[1] [https://55cancri.io/](https://55cancri.io/)

</comment></comment></comment><comment><USER10> Well, as a small developer I'd love to see a higher-level, easier-to-use API (than Vulkan) that can be used as a modern, cross platform replacement for OpenGL. If it could be used both in a browser and standalone even better. If it was available outside of a browser (even as a Vulkan/Metal wrapper), I think it could become a no-brainer replacement for where OpenGL ES is used today.

I understand that engine developers can get some (small?) percent improvement from an ultra-low-level API that exposes more platform specific details. But they almost always support multiple APIs natively, and already use the low level ones where available. There may be a small performance benefit (over a higher level API) in the browser, but I don't think the browser is a likely target for ultra heavyweight apps / games, that usually are multi-GB downloads anyway, in the near future. And keep in mind that if smaller software sticks with WebGL because of API complexity, that might be a big performance loss for the user.

But a higher level API would have great benefits everywhere! Right now the only real cross-platform graphics API is OpenGL ES 3.0, which is becoming more and more obsolete, with little sign of the situation changing. No compute shaders, no AZDO, etc. Any move beyond that feature set now requires multiple APIs, shaders etc. And the easiest way for a small developer to get those features is still to skip Vulkan and to stick with GL ES 3.1+ on Win/Linux/Android and choose Metal on Mac/iOS. Of course on the web for those features there are no options at all.

I think if a new API was available that was easy to use and truly cross platform (including web), it would be the obvious first API to implement for all new graphics software. And this would be a much larger benefit than an unknown performance improvement that is accessible mostly to engine developers.

<comment><USER11> If you are making a commercial product Vulkan + MoltenVK should be perfectly serviceable as a target. There are also free software attempts to make a wrapper.

At this point, so long as Apple is in your target market, there will never be an everywhere API because Apple does not want there to be one. The whole point of Metal is to make your life harder so developers currently writing for Apple first are less likely to port their software elsewhere.

<comment><USER10> Yeah that seems like that might be the best option right now, and it doesn't look like it will be too expensive either. What I probably would like more is the reverse, a Metal wrapper for Vulkan, since it seems so much easier to get started with Metal. Too bad Metal is a Swift/Obj-C API so it's not straightforward how to make it cross platform.

I don't know how much bad faith I want to assume on Apple's part, since there are probably some legitimate technical reasons why they don't want to support a lower level API (and they came out with Metal first). Vulkan is such a pain to use anyway that it's probably mostly used by engine developers who generally don't have a problem supporting multiple APIs like Metal / DirectX etc.

But at the very least, it would be nice if they upgraded their OpenGL version, since they already support that and it's only them holding back some of the newer features.

<comment><USER12> Vulkan is such a pain that one of the GDC 2018 talks is "Getting explicit: How hard is Vulkan really?".

[https://www.khronos.org/news/events/gdc-2018](https://www.khronos.org/news/events/gdc-2018)

<comment><USER13> Vulkan is almost 1:1 equivalent to "modern" OpenGL except the need for a more advanced allocator. You had to write the exact same thing in OpenGL if you wanted decent performance, except through an entire translation layer.

I don't think anyone who actually worked on a serious engine thinks it's somehow harder to use. Sure, there's more boilerplate and it might get pretty difficult to port something to it, but that's something else entirely.

<comment><USER12> Except one also gets to compare Vulkan with Metal, DX 12, LibGNMX, LibGNM , NVN, all of them with a bit more developer friendliness and tooling in mind.

Which I guess, it is where the resistance is coming from, hence the need for such presentation.

</comment></comment></comment></comment></comment></comment><comment><USER14> I don't understand why this is a priority when WebGL is still so rough. Maybe we wouldn't need a new API for performance if WebGL worked better. There seems to be lots of room for improvement. My WebGL programs were much slower and were harder to write than the native versions of the same programs.

We should also probably sort out the native low-level APIs before setting the standard for the web, because otherwise we're building on top of a big mess. Though, my impression is that the WebGPU initiative is basically just another battleground in that struggle. I don't have any faith that this is being done for the good of users. It's just strategic ground to capture.

<comment><USER15> Because WebGL is an evolutionary dead end, for a variety of reasons. The initial idea was to track OpenGL ES, but that isn't really true anymore. Because of Windows, WebGL has to stick to a subset that can be easily translated to Direct3D. Because of GPU process sandboxing, anything that flows back from GPU to CPU is a huge synchronization problem. On top of that, mobile GPU drivers continue to suck badly, which means most of the extensions that were supposed to expand WebGL's scope into this decade are still out of reach, with 50% or less support in practice.

On the flipside, the native low-level APIs have all diverged. Vulkan, D3D12 and Metal each made different decisions, so it's pretty much inevitable that a 4th standard will have to be created to unify them. It will probably be higher level than any of the 3, and it will still be subject to strong sandboxing limitations.

Personally I think the big issue is that people stare themselves blind on the traditional graphics pipeline. Modern renderers have evolved past this, with various compute-driven and/or tiled approaches common place now. They're a nightmare to implement against current APIs, because a small change in strategy requires a rewrite of much of the orchestration code. The job of figuring out how to map your desired pipeline onto the hardware's capabilities should be the job of a compiler, but instead people still do it by hand. Plus, for GPU compute-driven graphics to be useful for interactive purposes beyond just looking pretty (i.e. actual direct manipulation), you absolutely need to be able to read back structured data efficiently. It's not just about RGB pixels.

There's an immense amount of potential locked inside, but the programming model is a decade or two out of date. Only AAA game companies and the vendors themselves have the resources to do novel work under these constraints. Everyone else has to throw together the scraps. Even the various attempts at LISPy GPU composition fall short, because they don't attempt to transcend the existing pipeline.

<comment><USER16> I would like to hear more about this. I was quite surprised how difficult things were when I started dabbling in Opengl and I thought that there has to be a better way. I know that there are libraries that build on top of Opengl and the like, but then always its a sacrifice of the power that you could have. It seems weird to me that it is so difficult because conceptually it seems to me that the model could be closer to the CPU/Memory model that everyone is already familiar with. You just have some RAM and some processor(s) that are going to do some computations right? Although I guess what really makes it a mess is that there needs to be a connection between what the GPU and the CPU are doing. I don't know, I was a bit surprised by how difficult it was. Perhaps I just don't understand it well enough.

<comment><USER13> To attempt to explain (desktop) GPU architecture: you don't just have memory and a bunch of individual cores on a GPU like you would on a CPU. You've got memory, texture sampling units, various other fetch units, fixed-function blending/output units, raster units, a dispatcher and then a ton of processing elements. These are all things the programmer need to set up (through the graphics API). Each of those processing elements runs several warps (wavefronts in AMD terminology), each which contains 32 or 64 threads (vendor- dependent), that all have their own set of registers. The warp holds the actual instruction stream and can issue operations that occur on all or some of those threads. Branching is possible, but pretty limited unless it's the same for every invocation. So the programming styles/models are incompatible from the start.

Then the real problem is, since all shader invocations share those fixed- function units, if you need to reconfigure them to use a different set of textures, buffers, shaders, etc you have to bring the whole operation to a complete halt, reconfigure it and restart it. And, contrary to popular belief, GPUs are the exact opposite of fast - each shader invocation takes an enormous amount of time to run, which is traded for throughput. Stopping that thing means having to wait for the last pieces of work to trickle through (and then when starting back up, you have to wait for enough work to be pushed through that all the hardware can be used efficiently), which means a _lot_ of time doing little work.

So if you're trying to deal with the above, any notion of keeping things separate and clean (in terms of what the hardware sees, anyways) immedietely goes out the window. That's why things like virtual texturing exist - to let you more or less pack every single texture you need into a single gargantuan texture and draw as much as possible using some God-shader (and also because heavy reliance on textures tends to work well on consoles). Then you also have to manage to make good use of those fixed-function units (which is where tiled rasterizers on mobile GPUs can become a problem), but that's a relatively separate thing.

Also: transfering data back and forth in itself isn't necessarily that bad in my experience (just finnicky), it's usually the delays and synchronization that gets you.

</comment></comment></comment></comment><comment><USER17> Canvas and webgl is lovely in the way it quickly lets you get something on the screen... Pixel pushing on canvas is, easy and accessible.

It makes me wonder if anyone has created some sort of port to a standalone app with no browser involved where you could use javascript/canvas-api/webgl to draw pixels on a canvas-like surface... without the fatness of the browser. Just spawning some window, that would be a lovely scripting/game-dev environment, maybe with some sdl-bindings or whatever. Anyway just rambling, does such a project exist? Anyone knows? :)

<comment><USER18> I suggest [https://love2d.org/](https://love2d.org/)

<comment><USER19> I think you meant this, love2d running in the browser.

[http://tannerrogalsky.com/mari0/](http://tannerrogalsky.com/mari0/)

</comment></comment></comment><comment><USER20> i think the web browser is the modern terminal and it should make use of all capabilities of the device, including hardware accelerated rendering. i think the current webgl is too low level though and only needed if you want to make your own 3d engine. if it was a higher level 3d renderer it would be easier for browser wendors to make secure and optimize, and easier for developers to use.

<comment><USER21> And I start to think that web tech is becoming a fast food of software development.

</comment></comment><comment><USER22> For the Folding@home project we would love to have GPU compute access widely available from the browser.

<comment><USER23> How many people do you think are actually interested in running the client in browser? I have Folding@Home on about 5-6 machines and I can't imagine a situation where I could run a web client but not a full client.

<comment><USER24> Chromebooks?

<comment><USER25> Those are pretty woefully underpowered for folding..

</comment></comment></comment></comment><comment><USER26> WebGL 2 already gives you pretty good GPU gfx & compute. The use is limited by implementation quality in browsers. Let's give it time.

<comment><USER27> WebGL 2 is based on OpenGL ES 3.0, it doesn't give you compute. Compute shaders were added in OpenGL ES 3.1

<comment><USER26> The OpenGL compute shader feature is not needed for doing GPU compute. It's just another type of shader that is not connected to other GL rendering that may be happening at the same time. People have been going GPGPU with the traditional types shaders for a long time. And WebGL 2.0 is a huge upgrade from 1.0 from a GPGPU point of view.

Also, a compute shader extension may be coming[1] for WebGL 2.0, it's mentioned in some meeting slides at least: [https://www.khronos.org/assets/uploads/developers/library/20...](https://www.khronos.org/assets/uploads/developers/library/2017-gdc- webgl-webvr-gltf- meetup/2%20-%20WebGL%202.0%20@%20Silicon%20Valley%20WebGL%20Meetup%20-%20Mar17.pdf)

<comment><USER27> It is possible to perform _some_ computations using OpenGL ES 3.0 / WebGL 2.0, but many types of operations (e.g. anything that involves random-access writes) are impossible, and many others (anything that normally requires shared memory) are very inefficient. Programming GPU through WebGL 2.0 is akin to programming desktop GPUs pre-CUDA: it is too intricate to take off.

Compute shader extension for WebGL 2.0 would be cool, but it would require to port a large part of OpenGL ES 3.1: OpenGL ES 3.0 / WebGL 2.0 doesn't include even random access buffers (SSBOs)

<comment><USER26> I agree that "too intricate" is the other main problem in WebGL uptake. But we're not even seeing WebGL versions of textbook GPU applications that are straightforward to implement with the tools WebGL 2 gives.

For example, here's WebGL compatibility stats from a site that has counters on technical web sites and graphics programming web sites: [http://webglstats.com/](http://webglstats.com/) \- As you can see, WebGL 2 compatibility is only at 40%, despite having been enabled in stable Firefox/Chrome for over a year. WebGL 1, a 7 year old standard, is now at 97%. (And even for the nominally WebGL-enabled browsers, users often report browser or OS crashes, so the percentages are upper bounds).

From an armchair quarterback position, if I wanted to effect GPU compute uptake, I'd work on compiler tech and tools targeting WebGL GLSL.

</comment></comment></comment></comment></comment><comment><USER28> Maybe GPUs need to be fundamentally redesigned to allow multi-user access with enforceable security boundaries. I'm sure this would be highly non-trivial to implement, but it would be great for other scenarios like shared access to GPU compute resources in "the cloud".

<comment><USER29> That has existed for over a decade. In fact that's sort of the point of Vulkan, et al.; with all user code being behind an MMU context, it's safe to provide a more console like 'bare metal' API. There are bugs, but the infrastructure is all there. The end goal is that you can only crash your own process.

The issue with this in the browser is that the API isn't part of the JavaScript/WebASM, and just exposing it in the same way will allow you to subvert the sandboxing of the VM>

</comment></comment><comment><USER30> There is an upcoming Xbox game (Crackdown 3) that uses web-based GPU processing to share compute amongst players in a multiplayer game.

<comment><USER31> What does that even mean? It's an Xbox, they all literally have the same variations of hardware. There aren't 8000 different build specs, there's at most, what 8? How could compute sharing provide any possible enhancement in experience at all? If anything, it's eating frame budget and it shouldn't.

<comment><USER32> When it was first announced, there was talk of off-loading certain tasks to (presumably) Azure. That may be what OP is thinking of.

I'd also wonder if you could share the power of any Xbox One Xs connected to a multiplayer session, given the gap between an original Xbox One and the X is rather large (seems like it'd be far more trouble than it's worth though).

</comment></comment></comment><comment><USER33> Hmm... I wouldn't want a random webpage to start mining bitcoin on my computer. How would we protect against that?

<comment><USER34> Net Neutrality, right? It doesn't matter what the page does, it only matters that you are allowed to visit any page on "The Inter-Web" that you like, right?

Safari has "tab paused/reloaded due to high power consumption" (good), Chrome has "auto-mute tabs" extension (which I have turned on), I have "tab suspender" extension installed.

Basically, I'm trying to be a responsible consumer:

\- this tab would like access to your hard drive files

\- this tab would like access to your video camera

\- this tab would like access to your microphone

\- this tab would like to play sounds

\- this tab would like to download more than 5mb of data

\- this tab would like animation/movement

\- this tab would like to use your CPU a lot

\- this tab appears to be using a lot of your battery

\- this tab would like to use your GPU (at all)

\- this tab would like to maintain state > 24hr

the_internet.js is actually potentially really hostile (suck 9999mb at full speed, email@example.com, while(1){alert(1)}, mine_bitcoin( $hacker_wallet )), and I am much in favor of treating it as untrusted by default (low access, limited # of cpu cycles) until "trusted" (ie: android permissions swap: i give you the executable, you give me the permissions).

YouTube? Yes to whatever they ask.

ShadyWebsite.1234.some-random-domain.ru? You can d/l 300kb and can't do anything else (ie: web 1.0/no-script).

While each "tab" in a web-browser attempts to provide "safe" access to the computer resources, it is still not "permitted" access to computer resources. Whatever the browser defines as "safe" is 100% ok, which has to work equally well for WASM-unreal-tech-demo-castle as well as cnn.com.

I'd prefer cnn.com only had 300kb download, no external domains, no sound, no battery, no cpu, etc.

As I _trust_ cnn.com more (to the same level as youtube), I would then permit sound by default, permit large downloads, permit gpu, permit animation/video/etc.

</comment></comment><comment><USER35> How does this interact with WASM?

</comment><comment><USER19> Couldn't many of the GPU operation be accessible via functions over typed arrays? How does this relate to using SIMD from JS?

</comment><comment><USER36> It has same downside as WASM. Running precompiled bytecode is a bad for security as it always been.

It was no more than a year when a remotely exploitable WASM hole was exposed (derivatives of Spectre and co.) Knowledgeable people told that ISA level hole that can be exploited remotely over the web will be "a one minute global IT disaster" if somebody would resort to propagating it through a big adnet or paid traffic scheme.

As for WebGL as it is now, there were numerous sites on my memory that froze/crashed/rebooted both Linux and Windows systems, which means that the prime suspect there was a buggy shader as it is the only thing resembling raw instructions that can be passed to gpu through webgl.

<comment><USER37> Weren't Meltdown/Spectre exploitable via Javascript?

<comment><USER36> Actually, the POC required both sharedbuffer object and ASM js (actually an even worse thing than a bytecode)</comment></comment></comment>


Margin Notes: Automatic code documentation with recorded examples from runtime - <AUTHOR> https://geoffreylitt.com/margin-notes/ <comment><USER2> This is really neat. It would be awesome if something like this was added into the language server protocol so you could have it everywhere and standardized.

<comment><USER3> Yeah, the examples are serialized so it's theoretically possible example recorders in any language that emit a standard format. It's kind of just a logging format in some sense.

On the viewer side I've thought about building a Sourcegraph extension which would consume a standardized trace format and then display it in any editor, on Github, etc.

</comment></comment><comment><USER4> Slightly related are Go examples - they're tests, and documentation at the same time. It'd be nice if someone hooks in a listener to automatically collect examples tho

<comment><USER5> And Elixir's doctests [https://elixir-lang.org/getting-started/mix-otp/docs- tests-a...](https://elixir-lang.org/getting-started/mix-otp/docs-tests-and- with.html)

<comment><USER6> And Python's Axe!

I mean doctest: [https://docs.python.org/3/library/doctest.html](https://docs.python.org/3/library/doctest.html)

<comment><USER7> 1\. sys.settrace() for {call, return, exception, c_call, c_return, and c_exception}

2\. Serialize as/to doctests. Is there a good way to serialize Python objects as Python code?

3\. Add doctests to callables' docstrings with AST

Mutation testing tools may have already implemented serialization to doctests but IDK about docstring modification.

... MOSES is an evolutionary algorithm that mutates and simplifies a combo tree until it has built a function with less error for the given input/output pairs.

</comment></comment></comment></comment><comment><USER8> I'm surprised that there isn't more adoption of tools like this to help developers understand code.

Even for statically typed languages like Java, I find the existing tools lacking in helping me understand the code thoroughly. I mostly rely on the IDE to navigate code which I then mentally jot down the behavior of the code segment. Writing code this way is way too error-prone, and unfortunately testing isn't foolproof either.

It isn't until something breaks that we really begin to learn the nuances of the system...

</comment><comment><USER9> Very cool. One could do this over time, and then automatically find out where values change between different versions of the code. Might be able to find bugs before they ever occur.

</comment><comment><USER10> Nicely done - excellent presentation. I hope this becomes a thing in Visual Studio Code.</comment>