Can we rule out near-term AGI? [video] - <AUTHOR> https://www.youtube.com/watch?v=YHCSNsLKHfM <comment><USER2> Just for posterity, to see if I was completely bonkers in 2018: I believe that it is possible to realize AGI today, using currently available hardware, if we just knew enough of the principles to create the right software.

Novel computational concepts have often been demonstrated on very old hardware, with the full knowledge of the tricks required to make it work. Often, more powerful hardware was required in order to pionéer the technology, and often the proof-of-concept on older hardware is too slow and clunky to have been a compelling product. But it's often been physically possible for longer than people realize.

I've never made a "long game" statement like this before, so it'll be interesting to read this comment about what I thought before in 2038 or 2048, if it still exists then.

<comment><USER3> I think we're still lacking the conceptual framework, the grand scheme if you will.

AGI probably requires some kind of hierarchy of integration, and current AI is only the bottom level. We probably need to build a heck of a lot of levels on top of that, each one doing more complex integration, and likely some horizontal structure as well, with various blocks coordinating each other.

<comment><USER4> There are many hierarchical AI systems though. For example Hierarchical Hidden Markov models.

Pretty sure Deep Mind made a RL system a bit like that.

Also reminds me of Ogmai AIs technology.

<comment><USER3> Well, a scooter and the Falcon Heavy are both "vehicles", but that doesn't mean the scooter will ever do what the rocket does.

</comment></comment></comment></comment><comment><USER5> He says general AI is on the same spectrum as the AI technologies we have now, but is qualitatively different. I'm sorry but that's a contradiction. If it's on the same spectrum, then it's just a quantitative measure of where on the spectrum it lies. If it's qualitatively different, it's on another axis, another quality is in play.

His definition is also rubbish. Being useful at economically valuable work has nothing necessarily to do with intelligence. Writing implements are vital in pretty much all economic activities, many couldn't be done at all without them before keyboards came along.

Deep Learning is great, it's a revolution, but it's a fairly narrow technology. It solves one type of task fantastically well, it just happens that solving this task is applicable in many different problem domains, but it's still only one technique. At no point did he show how to draw a line from Deep Learning to General AI in any recognisable form. It just looks like a hook to get you to hear his pitch.

It's a great pitch, but it's not about AGI.

<comment><USER6> >He says general AI is on the same spectrum as the AI technologies we have now, but is qualitatively different.

No it is not. The basic premise of fixed-winged aircraft was the same from Wright brothers to modern jets. Yet the wright brothers flyer was useless and a modern jet is not.

We have agents that can act in environments. His claim is that getting these agents to human-level intelligence is a matter of compute and architectural advancements that are not qualitatively different that what we have now. This just does not strike me as an absurd claim. We have systems that can learn reasonably robustly. We should accord significant probability to the claim that higher-level reasoning and perception can be learned with these same tools given enough computing power.

He claims we cannot "rule out" near-term AGI. Let's define "rule out" as having a probability of 1% or lower. I think he's given pretty good reasons to up our probability to between 2-10%. For myself, 10-20% seems a reasonable range.

<comment><USER7> > No it is not.

What claim are you responding to here? Simonh said:

> He says general AI is on the same spectrum as the AI technologies we have > now, but is qualitatively different. I'm sorry but that's a contradiction.

Which I agree with. How can two qualitatively different things be on the same spectrum? You later say yourself:

> His claim is that getting these agents to human-level intelligence is a > matter of compute and architectural advancements that are not qualitatively > different that what we have now.

Which seems to be the opposite of what simonh said and it's confusing to say the least.

<comment><USER6> You are right. I don't think I read his comment very carefully before replying.

</comment></comment></comment></comment><comment><USER8> I think what I found most lacking in this video is that data did not play a role in the overview. The presenter discusses that a ton of computation is needed to do deep learning, but doesn't explain why. And really, it's because the models are big and the training data is even bigger. So computation improves, and helps you deal with bigger models and bigger data, but where does the data come from?

The big question to me isn't whether computation can scale, which this video makes me belief it will. It's whether the data will scale. In RL domains with good simulators, such as Go and the Atari games, data doesn't seem to be an issue. The in-hand robot manipulation work also makes heavy use of simulators to reduce the amount of real-world time needed to collect data. But I don't see an argument that we will need to get high-fidelity simulators to train these agents in.

I do love the in-hand robot manipulation work, because it's one of the few that shows that results from simulation can be applied to real robotic systems. And while I hope for the sake of robotics that we can get better and better simulators, it's surprising to not see that as the central focus in conversation about getting AGI to emerge from gradient descent on neural networks.

<comment><USER9> (I gave the talk.)

We are already starting to see the nature of data changing. Unsupervised learning is starting to work — see [https://blog.openai.com/language- unsupervised/](https://blog.openai.com/language-unsupervised/) which learns from 7,000 books and then sets state-of-the-art across almost all relevant NLP datasets. With reinforcement learning, as you point out, you turn simulator compute into data. So even with today's models, it seems that the data bottleneck is much less significant than even two years ago.

The harder bottleneck is transfer. In most cases, we train a model on one domain at a time, and it can't use that knowledge for a new related task. To scale to the real world, we'll need to construct models that have "world knowledge" and are able to apply it to new situations.

Fortunately, we have lots of ideas about how this might work (e.g. using generative models to learn a world model, or applying energy-based models like [https://blog.openai.com/learning-concepts-with-energy- functi...](https://blog.openai.com/learning-concepts-with-energy-functions/)). The main limitation right now: the ideas are very computationally expensive. So we'll need engineers and researchers to help us to continue scaling our supercomputing clusters and build working systems to test our ideas.

<comment><USER10> What are your thoughts on Starting over completely from scratch as Geoffrey Hinton has suggested? What are you doing as a group to attract and bring on such individuals? Does this occupy any portion of your efforts at OpenAI?

If you were given a demo of an AI system that uses a completely new/revolutionary approach towards various different problems with success, how open would you be to rethinking your position on 'Optimization techniques'?

Modeling seems as a stop-gap towards getting over the limitations of Weak AI. As I recall, this is what knowledge-based expert systems tried in a time's past and failed at because it's nothing but a glorified masking of the underlying problem with limited human inputted rulesets. I don't agree with Yann LeCun that the way forward to AGI is modeling. I feel like it's the best solution people worked up towards the limitations of Weak AI which were broadly and publicly acknowledged in 2017 and early 2018.

> The main limitation right now: the ideas are very computationally expensive.

This is because the fundamental core set of algorithms being used by the industry are fundamentally flawed yet favorable to big data/cloud computing.. A quite lucractive business model for currently entrenched tech companies. It's why they spend so much effort ensuring the broad range of AI techniques fundamentally stay the way they are.. because if they do, it means boat loads of money for them.

> So we'll need engineers and researchers to help us to continue scaling our > supercomputing clusters and build working systems to test our ideas. When > you're attempting to resolve something and you are shown YoY that it isn't > being resolved and requires even more massive amounts of compute, it means > you're doing something wrong. It will be better to take a step back an re- > evaluate your approach fundamentally. Again, what is the willingness you > have to do so if shown something far more novel?

</comment></comment></comment><comment><USER11> Yes, we can rule out near-term AGI, because we can also rule out far-term AGI, at least in the way AGI is defined in this talk. You can't isolate "economically beneficial" aspects of intelligence. Emulating human-like intelligence means emulating the primitive parts of the brain as well, including lust, fear, suspicion, hate, envy, etc... these are inseparable building blocks of human intelligence. Unless you can model those (and a lot else besides), then you don't have AGI, at least not one that can (for example) read a novel and understand what the heck is going on and why.

<comment><USER12> Are lust, fear, hate requirements for intelligence? There are part of human intelligence for sure. I feel the a problem is that we don't have a good definition of intelligence.

<comment><USER13> Yes. We learn through our emotions and use them for heuristics. They are measures of pleasure/stress against access to maslows needs. This drives instincts and behaviours. Also gives us values. When I 'think' or act I use schemas but don't knowingly use a GAN or leaky Relu. I personally learn in terms of semantic logic, emotions and metaphors. My GAN is the physical world, society, the dialogical self and a theory of mind. He never mentioned amygdala or angular gryus or biomimmicking the brain or creating a society of independant machines. Which we could do but aren't even trying to my knowledge? I mean there's Sophia(a fancy puppet) but not much else.

We get told to use the term .agi despite public calling it .ai as that's just automation. But this feels like we're now allowed to call it .ai again? It was presented as, given these advances in automation we can't rule out arriving at apparent consciousness. But with no line between.

We do have a definition for intelligence. Applied knowledge.

However here's another thought. Several times in my life I knowingly pressed self destruct. I quit a job without one to go to despite having mortgage and kids. I sold all my possessions to travel. I've dumped a girls I liked to be free. I've faced off against bigger adversaries. I've played devils advocate with my boss. I've taken drugs despite knowing the risks etc... And I benefitted somehow (maybe not in real terms) from all of them. Non of these things seem like intelligent things to do. They were not about helping the world but about self discovery and freedom. We cannot program this lack of logic. This perforating of the paper tape (electric ant). It's emergent behaviour based on the state of the world and my subjective interpretation of my place in it. Call it existential, call it experiential, call it a bucket list. Whatever.

.agi would need to fail like us, to be like us. Feel an emotional response from that failure. And learn. Those feelings could be wrong. misguided. We knowingly embrace failure as anything is better than a static state. i.e people voting Trump as Hilary offered less change.

We also have multiple brains. Body/Brain. Adrenaline, Seratonin. When music plays my body seems to respond before my brain intellectually engages. So we need to consider physiological as well as phsycological. We have more that 2000 emotions and feelings (based on a list of adjectives). But that probably only scratches the surface. What about 'hangry'? Then learning to recognise and regulate it.

diff( current perception of world state, perception of success at creating a new desired world state (Maslow) ) = stress || pleasure.

Even then how do you measure the 'success'? i.e.I have friends with depressions and they don't measure their lives by happiness alone. I feel depression is actually a normal response to a sick world and that people who aren't a bit put out are more messed up. If we created intelligence that wasn't happy, would we be satisfied? Or would we call it 'broken' and medicate like we do with people.

Finally I don't think they can all learn off each other. They need to be individual. language would seem an inefficient data transer method to a machine. But we indivudate ourselves against society. Machines assimilating knowledge won't be individuals. More swarm like. We would need to use constraints which may seem counter productive so harder to realise.

Wow. I wrote more than I inteded there. But yes. Emotions are required IMO. Even the bad ones. Sublimation is an important factor in intelligence.

<comment><USER14> I really enjoyed reading this. Thank you. It relates to some thoughts that have been percolating. I'm actually giving a small internal talk on a few of these ideas.

Thanks!

</comment></comment></comment></comment><comment><USER15> I'm not too convinced by this guy's argument: as evidence, he presents the progress made by deep learning/CNNs in the past few years. He then rightly acknowledges the difficulty of getting machines to do abstraction and reasoning, noting that we have ideas about how to approach these things but that they require much more computing power than we have now.

...Then he basically asserts that we can extrapolate the near-term availability of tons more compute power from Moore's Law, which is where he lost me.

We're already running into the limits of physical law in trying to move semiconductor fabrication to smaller and smaller processes, and there are very real and interesting challenges to be overcome before, I think, we can resume anything close to the exponential growth we've enjoyed over the last 40 years.

This guy may well think a lot about these difficulties, but not mentioning them at all made his argument sound incredibly naïve to me.

<comment><USER6> >...Then he basically asserts that we can extrapolate the near-term availability of tons more compute power from Moore's Law, which is where he lost me.

That's not what he's asserting. Even with Moore's law dead, OpenAI claims there is significant room with ASICs, analog computing, and simply throwing more money at the problem. There is a ton of low-hanging fruit in Non-Von Neumann architectures. We should expect it to be plucked, as we have huge use case which is potentially limitlessly profitable.

<comment><USER10> Accelerating the efficiency of an optimization algorithm doesn't get you AGI, this should be clear by now. As for fielding such systems, one quick way to destroy humanity to a degree is to turn everything into a glorified optimization problem which will no doubt be turned against people to maximize profit.

<comment><USER16> If you'll accelerate AIXI (optimization algorithm) [0], you'll get (real-time) AGI.

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

<comment><USER10> If only this wasn't an fundamentally flawed theory that isn't scalable based on computational complexity and information theory.

<comment><USER16> Approximations to AIXI are computable.

</comment></comment></comment></comment></comment></comment><comment><USER17> It does seem he is conflating "progress" with "investment". Yes, the world is spending exponentially more compute each year since 2012 on training networks. The marvel is that neural architectures are scaling to more complex problems without much architectural change. But this is not an argument that AI is getting more efficient or productive over time and hence we can expect exponential performance improvements (like Moore's law).

</comment><comment><USER18> _> "Prior to 2012, AI was a field of broken promises."_

I just love how these DNN researchers love to bash prior work as over-hyped, while hyping their own research through the roof.

AI researchers did some amazing stuff in the 60s and 80s, considering the hardware limitations they had to work under.

 _> "AT the core, it's just one simple idea of a neural network."_

Not really. First neural networks were done in the 50s. Didn't produce any particularly interesting results. Most of the results in the video are a product of fiddling with network architectures, plus throwing more and more hardware at the problem.

Also, none of the architectures/algorithms used by deep learning today are more general than, say, pure MCTS. You adapt the problem to the architecture, or architecture to the problem, but the actual system does not adapt itself.

<comment><USER19> So, they didn't have backprop and automatic differentiation in the 50s. That's pretty fundamental and not just "fiddling with architectures"

<comment><USER20> This statement is fairly inaccurate. If you check Peter Madderom 1966 thesis, you'll see that it states the earliest work on automatic differentiation was done in the 1950s. It's just that back then, it was called _Analyitc_ differentiation. You can see many of the key ideas already existed back then, including research into specializations for efficiently applying the chain rule.

[https://academic.oup.com/comjnl/article/7/4/290/354207](https://academic.oup.com/comjnl/article/7/4/290/354207)

<comment><USER19> Ah, you're right on AD. But backprop was invented in the 80s

</comment></comment></comment></comment><comment><USER21> The talk's title has very little to do with the actual talk. The talk is about progress in narrow AI in the last 6 years or so. While fascinating, it's still only progress in narrow AI. To make artificial intelligence general, one would have to somehow define a fitness function that itself is general. But how does one do that? How does one say to a machine: "Go out there and do whatever you think is most valuable"?

If some kind of goal has to be defined, it seems it will always be a narrow AI, where some outside entity defines what its goal is, instead of itself coming to a conclusion what it should do in general sense. Even if that machine is able to recognize the instrumental goals for reaching the final goal (and acting accordingly), it still feels like a non-general intelligence, like connecting the dots based on the available input and processing, just to come closer to that final goal. If no final goal was given, I presume such a machine would do nothing: it would not randomly inspect the environment around itself and contemplate upon it; there would be no curiosity, no actions of any kind to find out anything about its environment and set its own goals based on observation.

It seems that for AGI to come, some kind of spontaneous emergence would have to occur, possibly by coming up with some revolutionary algorithm for information processing implemented inside an extremely capable computer (something that biological evolution has already yielded).

It is interesting, humbling and a bit depressing to apply the same reasoning to us, humans. We are relatively limited in terms of reason, its just that it is not obvious to us, just like it is not obvious that the Earth is round, for example.

<comment><USER22> Having novel, unique goals is not necessary for AGI. Normal people don't have novel goals -- they mostly want love, comfort, and respect. An AGI that had as its goal "gain people's respect" would exhibit an unboundedly interesting range of behavior.

<comment><USER23> Well said. Humans (and all living things) have the same ultimate goal: life. They need to keep themselves alive somehow and keep their genes alive by reproduction. That single goal has blossomed into what we are today. If we train AI with an evolutionary algorithm, and let it fend for its needs (compute, repair, energy), then it could learn the will to life that we have, because all variants that don't have it will be quickly selected out of existence.

I think AGI could happen with today technology if we only knew the priors nature found with its multi-billion year search. We already know some of these priors: in vision, spatial translation and rotation invariance, in temporal domain (speech) it is time translation invariance, in reasoning it is permutation invariance (if you represent the objects and their relations in another order, the conclusion should be unchanged). With such priors we got to where we are today in AI. Need a few more to reach human level.

</comment></comment></comment><comment><USER24> I think a lot of people who are emphatic that AGI is a long way off are saying so out of an allergic reaction to the hype, rather than due to sound reasoning.

(And let me be clear that none of this is an argument that AGI is _near_. I'm saying that confidence that it is far is unfounded.)

First, there are many cases in science where experts were totally blindsided by breakthroughs. The discovery of controlled fission is probably the most famous example. This shouldn't be surprising - the reason that a breakthrough is a breakthrough is because it adds fundamentally new knowledge. You could only have predicted the breakthrough if you somehow knew that this unknown knowledge was there, waiting to be found. But if you knew that, you'd probably be the one to make the breakthrough in the first place.

Second, most claims about the impossibility of near-term AGI are totally unscientific. By that, I mean that they aren't based on a successful theory of falsifiable predictions. What we'd want, in order to have any confidence, is a theory that can make testable predictions about what will and won't happen in the short term. Then, if those predictions turn out to be true, we can gain confidence in the theory. But this isn't what we get. What we get is people saying "We have no idea how to do x, y, and z, therefore it won't happen in the next 50 years". I don't see any evidence that people were able to predict even the incremental progress we've seen say, two years out. The fact is that when someone says "it'll take 50 years" that's just sort of a gut feeling, and people will almost certainly be making that same prediction the year before it actually happens.

Third, I think people have too narrow a view about what they imagine AGI might look like. People tend to envision something like HAL, that passes Turing tests, can explain chains of reasoning, and has comprehensible motivations. Let's consider the case of abstract reasoning, which is something thought to be very difficult. We tried and failed for decades to build vision systems based on methods of abstract reasoning, e.g. "detect edges, compose edges into shapes, build a set of spatial relationships between those shapes, etc". But humans don't use abstract methods in their visual cortex, they use something a lot more like a DNN. The mistake is in thinking that because the mechanism of successful machine vision resembles human vision, therefore the mechanism of successful machine reasoning must resemble human reasoning. But its quite possible that we'll simply train a DNN by brute force to evaluate causal relationships by "magic", i.e. in a way that doesn't show any evidence of the sort of step-by-step reasoning humans use. You can already see this happening - when a human learns to play breakout, they start by forming an abstract conception of the causal relationships in the game. This allows a human to learn really really fast. But with a DNN, we just brute force it. It never develops what we would consider "understanding" of the game, it just _wins_.

Sorry the third point was so long, let me summarize: We think some things are hard because we don't know how to do them the way that we think humans do them. But that doesn't serve as evidence that there isn't an easy way to do them that is just waiting to be discovered.

<comment><USER25> Worth considering these two points.

Inteligence is not one dimensional as is evolution => [https://backchannel.com/the-myth-of-a-superhuman- ai-59282b68...](https://backchannel.com/the-myth-of-a-superhuman- ai-59282b686c62)

Silicon based intelligent machines might not energy efficient => [https://aeon.co/essays/intelligent-machines-might-want-to- be...](https://aeon.co/essays/intelligent-machines-might-want-to-become- biological-again)

<comment><USER26> Why do people keep reposting that first article? I encourage you to reread it with a critical eye.

A choice quote:

 _In contradistinction to this orthodoxy, I find the following five heresies to have more evidence to support them._

 _Intelligence is not a single dimension, so "smarter than humans" is a meaningless concept._

 _Humans do not have general purpose minds, and neither will AIs._

This is _awfully_ similar to "On the Impossibility of Supersized Machines" ([https://arxiv.org/pdf/1703.10987.pdf](https://arxiv.org/pdf/1703.10987.pdf)).

EDIT: Re: energy efficiency: the problem is that humans are too energy efficient. Your brain can keep functioning after 3 days of running across the Savanna without food, which is (a) awesome, and (b) not really helpful nowadays. The cost of this is that you can only usefully use a little energy each day, say 4 or 5 burgers at most. AGI prototypes will usefully slurp in power measured in number of reactors.

</comment></comment></comment><comment><USER10> Did Artificial General Intelligence get redefined again towards something more short term? So, first AI is hijacked and hyped 50 ways to sunday.. Then came the apocalyptic narratives/control problem hype to secure funding for non- profit pursuits and research. Then, when it was realized that narrative couldn't go on forever. AGI was hijacked added to everyone's charter and a claim was made that it will be made 'safe'. Now, AGI's definition is getting redefined to the latest Weak AI techniques that can do impressive things on insane amounts of compute hardware. How can you ever achieve AGI if this is the framing/belief system the major apparatus of funding/work centers on? Where is the true pursuit of this problem? Where are the completely new approaches?

One cannot rule out something unless they've spent a concerted amount of time dedicated solely to trying to understanding it. If there is no fundamental understanding of Human intelligene, what is anyone frankly talking about? or doing?

I have yet to hear a cohesive understanding of human intelligence from various different AI groups. I have yet to hear a sound body of individuals properly frame a pursuit of AGI. So, what is everyone pursuing? There seems to be no grand vision or lead wrangling in all of these scattered add-on techniques to NN. I do see a lot of groups working on weak AI or chipping away at AGI like featuresets with AI techniques making claims about AGI. Everyone has become so obsessed with iterating that they fail to grasp the proper longer term technique for resolving a problem like AGI.

Void from the discussion are conversations on Neuroscience and the scientific investigation of Intelligence. There's more sound progress being made in the public sector on concepts like AGI than in the private sector. Mainly because the public sector knows how to become entrenched, scope, and target an unproven long term goal and project.

The hype as far as I see it is clearly distinguishable from the science. Without honest and sound scientific inquiries, claims in any direction are without support. Everyone's attempting to skip the science and pursue engineering in the dark with flashy public exhibitions namely because of funding.. You can't exit such a room and make sound claims about AGI. If a group claims they are pursuing AGI, I expect almost all of their work to be scientific research pursuing an understanding.

That being said, it appears no one is interested in funding or backing such an endaevour. Everyone states they want to back/invest in such a group on paper but when it comes down to it the money isn't there, they obviously are targetting shorter term goals/payouts, and/or don't frankly know what type of pursuit or group of individuals are required. No one wants to take the time to understand what such a group would look like. No one wants to make a truly longer term bet. This is why things have been spiraling in circles for years.

So, as it has been stated time and time again.. AGI will come and it will come from left field. There are individuals who truly care to pursue and develop AGI and they're willing to sacrifice everything to achieve it. If no funding is available, they'll fund themselves. If groups wont accept them because they aren't obssesed with deep learning or have a PhD (clearly the makeup that only results in convoluted weak AI), they'll start groups themselves.

Passion + Capability + lifelong pursuit is how all of the great discoveries of time have come to us. The mainstream seemingly never understanding such individuals, supporting them, or believing them until after they've proven themselves. No pivots. No populist iterations. A fully entrenched dedication towards achieving something until its done.

So, no.. you can't rule out AGI in the near term because there is no spotlight on the individuals or groups with the capability to develop it on such time horizons and the thinking just frankly isn't there in celeberated groups with funding. Everyone's in the dark and its an active choice and mindset which causes this.

Geoffery Hinton says start all over.... Yann LeCun raises red flags. No one listens. No one acts. Everyone wants a piece of the company that develops the next trillion dollar 'Google' like product space centered on AGI but no one wants to spend the time to consider what such a company would be, what is human intelligence, who is looking at it in a new way from scratch as some of the most important people in AI have stated. So, you see... This is why the unexpected happen. It is unexpected because no one spends the time or resources necessary to cultivate the understanding to expect its coming.

</comment><comment><USER27> Nope I'll build it.

</comment><comment><USER28> >Can we rule out near-term AGI?

In keeping Betteridge's law, no, not really. Hardware capabilities are getting there as evidenced by computers trashing us at go and the like and with thousands [0] of the best and brightest going into AI research who's to know when someone is going to find working algorithms?

[0] [https://www.linkedin.com/pulse/global-ai-talent-pool- going-2...](https://www.linkedin.com/pulse/global-ai-talent-pool- going-2018-jean-fran%C3%A7ois-gagn%C3%A9/)

<comment><USER29> Not sure why you're getting down voted for this since I was going to say the same thing. My feeling is that AGI is 10 years away, certainly no more than 20. That's coming from a pure computing power and modeling perspective, for example just by putting an AI in a simulated environment and letting it brute force the search space of what we're requesting of it with 10,000 times more computing power than anything today. Finding a way for an AI to focus its attention at each level of its capability tree in order to recruit learned abilities, and then replay scenarios multiple times before attempting something in real life, are some of the few remaining hurdles and not particularly challenging IMHO.

The real problem though (as I see it) is that the vast majority of the best and brightest minds in our society get lost to the demands of daily living. I've likely lost any shot I had at contributing in areas that will advance the state of the art since I graduated college 20 years ago. I think I'm hardly the exception. Without some kind of exit, winning the internet lottery basically like Elon Musk, we'll all likely see AGI come to be sometime in our lifetimes but without having had a hand in it.

And that worries me, because if only the winners make AI, it will come into being without the human experience of losing. I sense dark times looming, should AI become self-aware in a world that still has hierarchy, that still subverts the dignity of others for personal gain. I think a prerequisite to AGI that helps humanity is for us to get past our artificial scarcity view of reality. We might need something a little more like Star Trek where we're free of money and minutia, where self-actualization is a human right.

<comment><USER10> Entrenched mindsets don't like for the flaws in their views to be highlighted. It's one of Humanity's most serious flaws. As far as AGI being 10-20 years away based purely on compute power, you can't make this statement accurately unless you have a firm understanding of the underlying algorithms that power human intelligence and by extension AGI. From there, you also need to have a formal education and deep industry experience with Hardware to know what its capabilities are today, what they will be in the future roadmap wise, and how to most efficiently map an AGI algorithm to them. I'd say that 0.1% of people have this understanding and nobody is listening to them.

> The real problem though (as I see it) is that the vast majority of the best > and brightest minds in our society get lost to the demands of daily living. > I've likely lost any shot I had at contributing in areas that will advance > the state of the art since I graduated college 20 years ago. I think I'm > hardly the exception. Without some kind of exit, winning the internet > lottery basically like Elon Musk, we'll all likely see AGI come to be > sometime in our lifetimes but without having had a hand in it.

They don't get lost so much as they become trapped for reasons due to systematic and flawed optimization structures found throughout society. All is not lost if one breaks out long enough to realize they can make certain pursuits if they are willing to make a sacrifice. The bigger the pursuit, the bigger the required sacrifice. Not many people are willing to do that in the valley when you have a quarter of a million dollar paycheck staring you in the face. You could of course make a decision to sacrifice everything one given day and you'd have 5 years of runway easily if you saved your money properly. Obviously, VC capital wont fund you. Obviously universities aren't the way to go given the obsession with Weak AI. Obviously no AI group will hire you unless you have a PhD and/or are obsessed with Weak AI. Obviously you might not even want this as it will cloud your mind. So, clearly, the way to make ground breaking progress is to walk off your job, fund a stretch of research yourself, and be willing to sacrifice everything. Quite the sacrifice? People will laugh at you. What happens if you fail? Socially, per the mainstream trend, you'll fall behind. If you have a partner, this will be even more difficult as the trend is to get rich quick, get promoted to management, buy a million dollar home, have kids, stay locked in a lucrative position at a company. And what of your pride? Indeed.. And therein is the true pursuit of AGI.

The winners are pushing fundamentally flawed AI techniques because it requires massive amounts of data and compute which is their primary business model. They wont succeed because they are optimizing a business model that is at the end of its cycle and not optimizing the pursuit of AGI.

AGI is coming and it is completely out of the scope of the current winners. If a person desires to pursue and develop AGI, they'd have to be bold enough to sacrifice everything... It's how all of the true discoveries are made for all of time and science. Nothing has changed but for reasons due to money primarily, when the historical learning lessons are far off enough people attempt to re-tell/re-invent the wheel in their favor.. Only to be reminded : Nothing has changed.

The individual discoverers change over time however for they learn from history.

<comment><USER29> Well what I'm saying is that we can derive your first paragraph purely with computing power. What we need are computers with roughly 100 billion cores, each at least capable of simulating a neuron (maybe an Intel 80286 running Erlang or similar), and a simple mesh network (more like the web) that's optimized for connectivity instead of speed. This is on the order of 100,000*100,000,000,000 = 1e16 transistors, or about 7 orders of magnitude more than an Intel i7's billion transistors. It would also be running at at least 1 MHz instead of the 100 or 1000 Hz of the human brain, so we can probably subtract a few orders of magnitude there. I think 10,000 times faster than today is reasonable, or about 2 decades of Moore's law applied to video cards.

Then we feed it scans of human minds doing various tasks and have it try combinations (via genetic algorithms etc) until it begins to simulate what's happening in our imaginations. I'm arguing that we can do all that with an undergrad level of education and understanding. Studying the results and deriving an equation for consciousness (like Copernicus and planetary orbits) is certainly beyond the abilities of most people, but hey, at least we'll have AGI to help us.

Totally agree about the rest of what you said though. AGI <-> sacrifice. We have all the weight of the world's 7 billion minds working towards survival and making a few old guys rich. It's like going to work every day to earn a paycheck, knowing you will die someday. Why aren't we all working on inventing immortality? As I see it, that's what AGI is, and that seems to scare people, forcing them to confront their most deeply held beliefs about the meaning of life, religion, etc.

<comment><USER10> You're focusing on an aspect of Neurons in which there isn't even an accurate understanding and attempting to make a direct mapping to computer hardware. This is framing w/o understanding and you should be able to clearly understand why you can't make analysis or forward projections based on it.

Video cards operate on a pretty limited scope of computing that might not even be compatible with Neuron's fundamental algorithm. The only thing SIMD has proven favorable towards is basic mathematics operations with low divergence which is why Optimization algorithm based NN function so well on them.

This is the entrapment many people in the industry fall for. The first step towards AGI is in admitting you have zero understanding of what it is. If one doesn't do this and simply projects their schooling/thinking and try to go from there, you end up with a far shorter accomplishment.

You can't back derive aspects of this problem. You have to take your gloves off and study the biology from the bottom up and spend the majority of your time in the theoretical/test space. Not many are willing to do this even in the highest ranking universities (Which is why I didn't pursue a PhD).

There is far too little motivation for true understanding in this world which is why the majority of the world's resources and efforts are spent on circling the same old time test wagons.. Creating problems then creating a business model to solve it. We are only fooling ourselves in this mindless endeavors. When you break free long enough, you see it for what it is and also see the paths towards more fundamental pursuits. Such pursuits aren't socially celeberated or rewarded. So, you're pretty much on your own.

> As I see it, that's what AGI is, and that seems to scare people, forcing > them to confront their most deeply held beliefs about the meaning of life, > religion, etc.

One thing about this interesting Universe is that when a thing's time has come it comes. It points to a higher order of things. There's great reason and purpose to address these problems now and its why AGI isn't far off. If you look at various media/designs, society is already beckoning for it.

<comment><USER29> You know, I find myself agreeing with pretty much everything you've said (especially limitations of SIMD regarding neurons etc). I'm kind of borrowing from Kurzweil with the brute force stuff, but at the same time I think there is truth to the idea that basic evolution can solve any problem, given enough time or computing power.

I guess what I'm getting at, without quite realizing it until just now, is that AI can be applied to ANY problem, even the problem of how to create an AGI. That's where I think we're most likely to see exponential gains in even just the next 5-10 years.

For a concrete example of this, I read Koza's Genetic Programming III edition back when it came out. The most fascinating parts of the book for me were the chapters where he revisited genetic algorithm experiments done in previous decades but with orders of magnitude more computing power at hand so that they could run the same experiment repeatedly. They were able to test meta aspects of evolution and begin to come up with best practices for deriving evolution tuning parameters that reminded me of tuning neural net hyperparameters (which is still a bit of an art).

Thanks for the insight on higher order meaning, I've felt something similar lately, seeing the web and exponential growth of technology as some kind of meta organism recruiting all of our minds/computers/corporations.</comment></comment></comment></comment></comment></comment>


Ask HN: Can an interpreted-only language be implemented in a JITted one? - <AUTHOR> To illustrate my question, J is a language that is, to the best of my knowledge, only interpreted since parsing it requires runtime information (http://www.jsoftware.com/help/jforc/parsing_and_execution_ii.htm).
Given that we now have languages that combine a JIT with metaprogramming abilities such as Racket or Scheme, would it be possible to implement an interpreter-only language such as J as a set of macros to compile to the host language without compromising the original language behaviour?
I am asking this because, as I understand it, a JIT blurs the "compile-time vs runtime" frontier. <comment><USER2> Yes, but the JIT may not actually know how to optimize the resulting translated code, if it doesn't have the kinds of patterns the optimizer is looking for.

Based on the page you linked, it seems like there are 4 different kinds of language elements, and parsing depends on which of those kinds something evaluates to. I'd assume that in normal code, most expressions will always evaluate to the same kind, since otherwise the humans writing the code would get confused. In that case, it might be possible to eliminate most of the ambiguity through static type inference.

For programs where you are unable to eliminate that ambiguity at compile time, you could compile code into a series of of function calls that take the relevant runtime parameters and dispatch on the types to perform the appropriate action. If you do that in a way that's similar to the usual type- dispatch in the host language, the JIT compiler will likely optimize it using e.g. a polymorphic inline cache.

I hope that helps and you'll actually see my answer. If you do, I'd like to know what got you interested in that question. (Are you trying to optimize an existing J codebase?)

<comment><AUTHOR> Thank you for your very informative answer!

My job leads me to write a lot of ad-hoc scripts for medical research. It consists almost solely in chains of extremely boring pandas/R functions which quickly turn into a mess, because the raw data ALWAYS comes in non-regular form, with corner cases and irregularities everywhere that must be regularized before analysis (that is, of course, done with Excel by my boss...)

The key here, is that medical data consists in very varied small datasets in the vast majority of cases (typically < 10^6 cells), so code reusability is very low since the data irregularities are different every time.

My impression is that languages such as J/APL would shine for such applications, since you won't have to remember what your code meant a year later, and allows very concise code compared to the pages of Pandas/R I have to write to handle corner cases. That said, I would also definitely appreciate to freely mix J in my codebase as a DSL rather than count on FFI. I also hope to be able to achieve auto annotation of functions using J code through the nice Racket tools for language transformation. As for performance improvement, I'm not really counting on it since I suspect that the Racket JIT will not be any faster than the J interpreter that is so small that it fits entirely into cache memory.

In summary, big and regular data is all the rage, but let's not forget the armies of people handling small and irregular data :-)

<comment><USER2> If something more like APL is within the realm of possibilities, you might want to take a look at the co-dfns compiler (although some of it may be specific to GPU code): [https://github.com/Co-dfns/Co- dfns](https://github.com/Co-dfns/Co-dfns)

However, for 10^6 cells, even O(n^2) algorithms should run in a few hours at worst, so performance optimizations might not be too critical. I'd suggest first validating your idea with an existing interpreter. Building your own tools is always fun, but can also be a huge distraction that you probably shouldn't take on unless your existing options are not adequate.

</comment></comment></comment><comment><USER3> Can you give a simple example, that shows the problem parsing J? IIUC the example in the link, the parser has to know the arity of the functions. This can be done in Racket using macros that look like functions. (For example, functions with optional arguments are actually macros that look like functions.)

I'm not sure that JIT is so important here, unless you are planning to generate bytecode on the flight and JIT it.</comment>


The Oldest Known Ancient Roman Fort Has Been Discovered in Italy - <AUTHOR> http://www.smithsonianmag.com/smart-news/oldest-known-ancient-roman-fort-has-been-discovered-italy-180954616/

<comment><AUTHOR> > Researchers use laser scanners to identify a Roman military camp</comment>


Cloud is Not a Big Switch - <AUTHOR> http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/10/cloud-is-not-a-big-switch.aspx

<comment><USER2> FTA: "Your servers and desktops don't reach out into the great beyond and allocate more memory or CPU cycles from "the cloud" when necessary. That would require an entirely new operating system model that simply doesn't exist at the moment regardless of the haphazard slapping of "cloud" tags onto operating systems and products that is happening right now."

That already happens though, sure there is a lot of 'mislabelling' (read marketing) going on. But thin client applications that use the cloud for the 'heavy lifting' exist and will be more common as the cloud services expand to accomodate this model.

Right now you can pretty much get storage on demand through SAAS from any number of vendors.

You could have a front-end to your application running on a local machine and a backend of 100's of cpus 'in the cloud'. A cloud hosted renderfarm is a good example of this.

It's not simple yet, and it usually involves a bunch of pieces of custom software (though MPI does a pretty good job of talking to the cloud for stuff like this).

The reasons why it will take a while for Carrs' vision to become reality is not that it is hard to allocate compute, storage and memory 'in the cloud'. It's just that applications in general for regular users do not need such heavy resources, and secondly that plenty of data can not be allowed off-site because of privacy concerns and security.

Another reason, and maybe this is the biggest, is that cloud services are simply too expensive for what you can get if you spend the money on servers and bandwidth directly. It only really makes economical sense if you need large numbers of machines for a very short period.</comment>


An experiment in controlling how much of Scrabble is luck - <AUTHOR> http://nautil.us/issue/67/reboot/does-scrabble-need-to-be-fixed <comment><USER2> In my family, we play a variation that makes the game much more skillful. I'm not sure how common it is. But my grandmother's claim to fame is that she played in college with the inventor of Scrabble, before it was commercialized (the rules were different). These are the variations we play:

1) a dictionary can be used whenever you want, to look up a specific word in mind only (you cannot leaf through it for ideas)

2) When it is your turn, before playing your letters, you may swap a letter in your hand, for a letter on the board. This can be done as much as you like, but only one letter at a time, and each letter must make a new, valid word. No points are scored when swapping.

The result is that turns can take 10 minutes or more, but bingos are very common and individual scores get into 5-600 points often. There is much more skill and very little luck- as you are not limited by the letters you draw- rather, you can use just about any letter that's on the board, if you can get it! Likewise, if you draw the X you are not "lucky" because the X will likely get used again and again over the course of the game by multiple players.

I'm not sure how common this variation is, but I like it, and it's well-suited for serious players.

<comment><USER3>
       a dictionary can be used whenever you want, to look up a specific word in mind only (you cannot leaf through it for ideas)

I really dislike this idea. It turns the human into a mere mechanical Turk, searching through the dictionary. Fails to reward those who have built up a large vocabulary and draws out turns agonizingly.

I would argue that it makes it much less "skillful".

Horrible ;)

<comment><USER4> > searching through the dictionary.

Sounds like they explicitly forbid this.

> Fails to reward those who have built up a large vocabulary

You need to know the word exists to search for it, and larger vocabs will still be an advantage.

<comment><USER3> I did not say searching through the _entire_ dictionary. It is still removing one of the skills that Scrabble traditionally rewards: knowing how to spell.

</comment></comment></comment></comment><comment><USER5> I'm glad someone did these experiments. I find that Scrabble begins to seem unfair after a certain level: there is certainly a great deal of strategy involved, but just as much of the game involves memorizing a fairly arbitrary collection of words: "za" is allowed, but "ok" is not, and there are far too many obscure transliterations of Arabic terms. The Scrabble Dictionary is more-or-less synonymous with the game itself, and the if the idea of memorizing a particular dictionary is already of dubious entertainment value, this is not improved by using a bad dictionary.

Scrabble is a classic game. The basic idea seems great. I just wish you could have a Scrabble game without having to say, "Seriously, _that_ is considered a word? This game is ridiculous!" and feeling like the other person has an unfair advantage.

<comment><USER6> The high level players will memorize all 3 letter words and sometimes 4 letter words as well. Their scrabble-dictionary vocabularies are incredible. Here's an old article about the highest score ever (at the time). It included a triple triple worth 365 points alone for QUIXOTRY. [https://slate.com/technology/2006/10/830-how-a-carpenter- got...](https://slate.com/technology/2006/10/830-how-a-carpenter-got-the- highest-scrabble-score-ever.html)

<comment><USER5> What odds would you give that that word has been used more than five times in the history of English literature?

<comment><USER7> Google Books returns over 8000 results, and some of them aren't even dictionaries!

<comment><USER5> The corpus I searched returned no results, but I'll take the correction: mea culpa.

</comment></comment></comment></comment></comment><comment><USER8> In my opinion, all of the best games have some portion of luck in them, but a larger portion of skill. Catan is boring to me because dice rolls determine too much of the game; chess is boring to me because I know I'm always going to lose unless I feel like investing hundreds of hours into learning the game. Scrabble is one of the few pre-Euros that manages to get the luck to skill balance right.

The skill of having a larger vocabulary is actually useful IRL, so that helps a bit. There's another part of it that's the game itself, like knowing all of the two-letter words, which isn't quite as useful.

<comment><USER9> In case anyone else didn't understand "pre-Euros" in this context: it refers to the abstract, strategy-oriented styles of table game that first became popular in Europe.

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

</comment></comment><comment><USER10> Surprised that no one mentioned Duplicate Scrabble, which is the most common tournament form in France. Ar each round, everyone gets the same draw and submits their best word. The overall best word is kept and added to the board.

This completely eliminates the luck factor, as everyone gets the same draw at each round. Missing an "easy" bingo in one round is a surefire way to lose. Obviously this means that to play at a competitive level, you need to memorize all possible words up to 9 letters or so. Fun fact: the current top player of French scrabble is from New Zealand and doesn't speak a word of French. He just memorized all ~200k valid words in the OSD.

Needless to say, this version is vastly less fun to play casually.

<comment><USER11> If I understand your description of the rules correctly, it sounds like that removes any sort of strategy from the game (manipulating the board and the rack), making it a sequence of Scrabble puzzles instead with no between-player interaction. That's not necessarily a terrible thing, but I think it would remove a lot of the interest for many people (me included).

I have read about Nigel Richards, the New Zealander French Scrabble champion who doesn't speak French, and I think that the game he is the champion of is "regular" Scrabble (with French vocabulary). For example the Guardian article [https://www.theguardian.com/lifeandstyle/2015/jul/21/new- fre...](https://www.theguardian.com/lifeandstyle/2015/jul/21/new-french- scrabble-champion-nigel-richards-doesnt-speak-french) talks about his "pretty rotten draw of letters".

Edited: Ah, I see from his Wikipedia page ([https://en.wikipedia.org/wiki/Nigel_Richards_(Scrabble_playe...](https://en.wikipedia.org/wiki/Nigel_Richards_\(Scrabble_player\))) that he has won both Classique and Duplicate titles.

<comment><USER10> Your understanding of the Duplicate rules is correct. It removes any element of chance (all players are judged on how well they manage a given draw) but it also removes any element of strategy. As an aside, it also makes it a lot easier to organize large scale tournaments - you can organize a Duplicate game with any number of players.

I find it a lot less fun to play, but I know serious players who don't understand why you would play Classic scrabble.

</comment></comment></comment><comment><USER12> If you are playing a game with people of various skill levels it is a good thing to have a decent amount of luck involved or one person will win all the time (unless they lose on purpose). That is not enjoyable, especially for the losers. In tournament play, where you are ranked and play against similarly skilled opponents, it makes sense that upping the skill factor can increase fun, but for casual home play, not so much.

My family has quite a bit of variance in skill levels in scrabble and we have different rules depending on who is playing. When the skill levels are very mixed, we allow one word lookup for free and then the next word must be in the dictionary to play (ie. no need to challenge and possibly lose your turn). We also have a list of two letter words you can consult.

This works pretty well and when only the hard core players are playing we go back to the official rules.

</comment><comment><USER13> (Off topic) In case anyone is intrigued by the post /How to Build a Probability Microscope/ linked from the article, I created a JavaScript/Python-based simulation:

The linked article: [http://nautil.us/issue/44/luck/-how-to-build-a- probability-m...](http://nautil.us/issue/44/luck/-how-to-build-a-probability- microscope)

The simulation: [https://www.speicherleck.de/iblech/zufall-im- browser/index.e...](https://www.speicherleck.de/iblech/zufall-im- browser/index.en.html) (select the bottommost example)

</comment><comment><USER14> Can confirm bingos are luck. My only win against my mom in scrabble was a 1st turn bingo that she challenged and lost (EJECTOR, she was less than 50% sure that the "or" was wrong, but didn't want to concede a 1st turn bingo that was questionable).

<comment><USER15> you make your own luck. I average around 2 bingos per game.

<comment><USER16> clearly the data suggests that its bingos that make up most of the luck in the game.</comment></comment></comment>


Uefi-jitfuck – A JIT Brainfuck compiler running on x86_64 UEFI - phoe-krk https://github.com/m4tx/uefi-jitfuck <comment><USER2> Recently worked on a CPU JIT targeting x86-64 host as well, so had some fun reading the source code. I was delighted to discover it to be pretty much as simple as it can be.

The author is lucky brainfuck is so simple, no need for the hairy generic MOD/RM [0] addressing mode encoding.

Of course instruction encoding is far from the hairiest part of the process of JITting. Data flow simplification (= don't generate unnecessary intermediates, like target architecture flag register bits that never affect execution), register allocation and instruction selection are pretty complicated optimization problems.

Oh, and indirect calls and jumps. How you'll hate those when writing a CPU JIT... Especially those that very inconveniently jump in the middle of a previously generated JIT trace.

[0]: MOD/RM is has four modes (MOD).

One for simply accessing a register. Three for addressing memory through pointers in various ways. The most complicated case is SIB (scale + index + base) addressing mode. In C, it'd be something like:

      addr = (reg1<<scale) + reg2 + <immediate>;

Where scale is 1, 2, 4 or 8, <immediate> value is a signed 8 or 32-bit value. Reg1 can't be SP/ESP/RSP due to encoding limitations.

Some x86(-64) register combinations can't be encoded directly, so the encoder will need to play around and possibly "upgrade" the addressing mode to a more complicated SIB version.

For more curious, this page was very informative for writing my addressing mode encoder:

[https://wiki.osdev.org/X86-64_Instruction_Encoding#ModR.2FM_...](https://wiki.osdev.org/X86-64_Instruction_Encoding#ModR.2FM_and_SIB_bytes)

<comment><USER3> Yes, the project was fun, yet simple and fast to write! I was thinking about doing some more advanced optimizations, although I believe the opportunities for that are pretty limited for Brainfuck. Also, I think the code is pretty nice and clean and generic enough to be partially moved to another possible project, which is the gain of doing things more generic than they actually needed to be.

You said you were working on another JIT - what was that? Also, do you have any suggestions of another project/language to implement compiler for to gain some knowledge about writing optimizations, actual intepretation/compilation logic, etc?

Thanks for the additional resources about the instruction encoding - <AUTHOR> like this is a bit easier to understand than AMD64 documentation!

<comment><USER2> I'm not an expert in this field, also currently in learning mode.

> You said you were working on another JIT - what was that?

A JIT for a custom 32-bit RISC soft-CPU (FPGA).

> Also, do you have any suggestions of another project/language to implement > compiler for to gain some knowledge about writing optimizations, actual > intepretation/compilation logic, etc?

You could write another C compiler. Or a JIT for some scripting language. Lua is about as simple as it gets when it comes to JITtable scripting languages. Of course amazing [http://luajit.org/](http://luajit.org/) already exists.

Existing CPUs and bytecode formats are also potentially good.

In particular, other people might actually want to use a small WebAssembly ([https://webassembly.org/](https://webassembly.org/)) AOT/JIT compiler. I know I would. :)

Some source code I've personally found educating on this topic:

1) Lots of easier stuff (ARM/x86 encoding, basic optimizations, etc.) can be found in JITting emulators, like Dolphin: ([https://github.com/dolphin- emu/dolphin](https://github.com/dolphin-emu/dolphin))

2) Web browser Javascript engines, like ([https://github.com/v8/v8/tree/master/src](https://github.com/v8/v8/tree/master/src)). And of course LuaJIT.

3) Compiler codegen, like LLVM ([https://github.com/llvm- mirror/llvm](https://github.com/llvm-mirror/llvm))

</comment></comment></comment><comment><USER4> I wasn't aware that UEFI provided an execution environment. Are applications sandboxed or restricted in any way?

<comment><USER5> UEFI execution environment is definitely there.

And it's mainly used to execute OS-loaders.

Some firmwares even come with a MS-DOS like UEFI shell.

<comment><USER6> The UEFI shell is just another regular UEFI binary. If you put it in the place where bootloaders are expected to live, the UEFI ROM should be able to start it like a regular OS.

</comment></comment></comment><comment><USER7> Maybe next they'll will write a cpu microcode updater for UEFI? Just trying to give useful ideas.

</comment><comment><USER8> I know - and love - that we sometimes do crazy things, just because we can. And it's not that I disapprove (as if that would matter), but I am fairly clueless right now how someone would come up with such an idea.

Kudos, though, this is really cool!

</comment><comment><USER9> most fun thing i saw in 2018. good job!</comment>


How To Design Like Apple - <AUTHOR> http://www.pragmaticmarketing.com/publications/magazine/6/4/you_cant_innovate_like_apple

<comment><USER2> _This is straight from Jobs' mouth: We do no market research. They scoff at the notion of target markets, and they don't conduct focus groups. Why? Because everything Apple designs is based on Jobs' and his team's perceptions of what they think is cool._

Of all the items cited in this fine piece, this is the most important: true creativity is the product of a creator's vision and not of consensus. This holds true in all fields and in all times, in my view. Consensus aims for the average or the expected; creative genius will always strive for more.

That said, it is quite risky for an average company to defy conventional conceptions of target markets and the like in building on their vision. It is only the very exceptional company that can do this successfully.

<comment> j-g-faustus Along the same lines, Donald Norman (usability guru, started the usability field almost single-handedly with the book "The Design of Everyday Things") recently said:

"I've come to a disconcerting conclusion: design research is great when it comes to improving existing product categories but essentially useless when it comes to new, innovative breakthroughs." <http://jnd.org/dn.mss/technology_first_needs_last.html>

You can't ignore customers completely. Apple discovered this with the Lisa computer in the 1980s, which apparently was amazing for its time, but at $10,000 found no market. Perhaps Lisa was the computer Jobs wanted for himself, but it turned out that few others were willing to shell out that kind of money.

On the other hand, it is clearly pointless to ask consumers how to design attractive or revolutionary hardware or software - you're the expert, you figure it out.

But this doesn't necessarily mean that you ignore target markets altogether - the iPad is innovative, but still clearly focused on a particular set of use cases with a price to make it competitive with netbooks.

</comment></comment><comment><USER3> 10-3-1 is an interesting technique, if you can afford it. It seems like a much better approach than iterating on a single design because iterating means you are slowly evolving from one design to the next. But having 10 different designs to cull from would provide a much broader range.

I think the key, though, is owning the entire system, hardware and software. They can integrate everything with their eye for detail and no other vendor can sully it with corner-cutting.

<comment><USER4> 10-3-1 is extremely expensive, but even 3-1 could give a lot of benefits.

</comment></comment><comment><USER5> > There is no "Lorem Ipsum" used as filler for content, either

There is here: <http://www.apple.com/iwork/pages/> (look above "Streamlined word processing")

<comment><USER6> The lorem ipsum is for the templates, not the actual examples.</comment></comment>


Merb's radical (but very cool) new caching mechanism - <AUTHOR> http://merbunity.com/tutorials/15

<comment><USER2> This is maybe a pretty half-baked idea, but could a language that supports partial evaluation replace a pretty significant chunk of most web app caching systems?

I guess the tricky part is that side effects (e.g. another process modifying the database) are pretty much unavoidable with current architecture.

<comment><USER3> Not really. Caching is (in my understanding) mainly about reducing (disk) I/O, which is very slow. This is a database/persistence problem more than a programming languague problem. Partial/lazy evaluation prevents looking up things you don't need, but doesn't solve the problem of getting what you need as fast as possible.

<comment><USER4> Caching is also very much _not_ limited in usefulness to I/O-bound operations; a cache hit can save a great deal of CPU time, too, if you have difficult-to- compute values that are sufficiently static to be worth caching.

Even if your whole dataset fits into RAM, you may still have that one O(2^N) algorithm that doesn't need to be run for every request. Voila! A perfect application for caching.

</comment></comment></comment><comment><USER5> Why is this considered "radical"?

</comment><comment><USER6> Except for it's architecture, which seems slightly more pluggable than the ASP.NET's, this seems pretty much exactly the same as the ASP.NET's caching layer. Not to mention ASP.NET supports automaticly invalidating cache- dependencies.

Making this pluggable to support both ASP.NET and memcached, would be a simple matter of writing a wrapper class and defining a simple interface. Should be done in about 30 minutes with minimal loss in features.

This has been around since at least 2002. So I'd hardly say there is anything _radical_ about this.</comment>


California to offer full health coverage to undocumented adults - <AUTHOR> https://www.politico.com/story/2018/05/21/california-health-care-immigrants-trump-598037 <comment><USER2> I pay almost $1000 in health care premium for a family of 3. In what universe is it fair for illegal immigrants in my state to get free health Care, while I pay $1000 and further pay income taxes, that in turn subsidize their health Care?

The system seems to punish law abiding residents

<comment><USER3> I feel similar making just enough to qualify for no help on anything, but we struggle to make it by.</comment></comment>


Download Google Chrome OS for VMWare or Virtual Box  - <AUTHOR> http://gdgt.com/google/chrome-os/download/

<comment> rm-rf Unfortunately in order to download the OS, it appears as though I have to join "a social gadget platform" - whatever that is.

I'll wait for a download with less attached baggage.</comment>


5: / 27:37 What About Money? Bernard Lietaer Interviewed by Lars Schall - <AUTHOR> https://www.youtube.com/watch?v=ykvRceBQRl8&feature=emb_title <comment><AUTHOR> Lars Schall meets Bernard Lietaer: In this exclusive video interview, the internationally renowned currency expert Lietaer, who has worked in many different functions in the world of money, advocates an upgrade of our monetary paradigm as a systemic solution to our global financial crisis. The monopoly of a single currency in favor of the banking system must be eradicated. Diversity must substitute monoculture.</comment>


Show HN: PowerPoint slide builder with handwriting - <AUTHOR> https://webdemo.myscript.com/views/diagram/index.html#/ <comment><AUTHOR> For curious peoples, the internals of this demo are explained in this blog post: [https://medium.com/@myscriptdeveloper/using-vue-js-to- handwr...](https://medium.com/@myscriptdeveloper/using-vue-js-to-handwrite- powerpoint-slides-myscript-developer-17e8ed3b4c5f) It uses behind the hood MyScriptJS and MyScript iink SDK cloud

</comment><comment><USER2> Interesting but a small annoyance is the evil destruction of history/back button functionality - totally unnecessary and is either manipulative or inept.

<comment><USER3> The back button worked just fine for me on Chrome.

<comment><USER4> Not on Chrome Android

</comment></comment></comment><comment><USER5> Cool! Something similar can be produced, like the slides Martin Kleppmann uses in his presentations e.g. [https://www.youtube.com/watch?v=v2RJQELoM6Y](https://www.youtube.com/watch?v=v2RJQELoM6Y)

I didn't know if he was drawing them, or using a framework to create them. Anyone know what he uses ?

<comment><USER6> Isn't that just using something like an apple pencil to write directly on slides on an ipad? I didn't notice anything special. But maybe I missed something.

</comment></comment><comment><USER7> You should partner with Moleskine. They already have a platform for taking notes in handwriting form and digitizes them, but taking them directly from Moleskine to Ppt. I would buy that in an instant!

</comment><comment><USER8> I'm very impressed...

I added a new slide to the demo. Then I tried my best to legibly write "TEST SLIDE" with a simple smiling face underneath. When I clicked preview, my poorly drawn words and face had been transformed into real text and an emoji.

Fantastic work.

</comment><comment><USER9> Google should integrate this in Drive. It's just too easy to make diagrams this way.

</comment><comment><USER10> This is absolute witchcraft. SOooo amazing - keep up the great work!

</comment><comment><USER11> This is interesting/amusing, but the math version is remarkable. I like the scribble erase.

</comment><comment><USER12> Looks great! I recently tried to make something similar where one could simultaneously sketch on a tablet and on a laptop - [https://onthesamepage.online/about](https://onthesamepage.online/about)

<comment><USER13> works great on iphone too. I added it to my homescreen, but the experience is not great, it behaves just like a bookmark. I was thinking it would work like a PWA. Just launch, scribble notes, close. Launch again to restart or start new sketch. Ink is really good.

<comment><USER12> Yes, I actually plan to make it a pwa and now am in progress - offline sync is a bit problematic (I wish all browsers supported PWA), but I'm getting closer.

</comment></comment></comment><comment><USER14> Wow, this is the first time I actually want to get a pad!

If not in your plans: \- Could use a text input, otherwise pretty hard on desktop. \- In the current and past companies we'd use draw.io. Not sure if it's possible how difficult it would be to export it.

Would pay.

<comment><USER15> Disclaimer: I work at Lucid

Lucidchart is a much better and feature rich platform than draw.io and allows for creating slides and exporting them to Google slides.

You'll have to pay for the more advanced features like export to Google slides though

</comment></comment><comment><USER16> Just suggestion: since most people (esp at work) use traditional setup (keyboard+mouse), I think it'd be better if people can type for text instead of drawing.

<comment><USER6> This is a demo for their stroke to text converter. It took me a while to figure that out. I was hoping to run it local to my iPad, so I could create slides on my long plane rides. But they are also hitting their server to do the conversion, so it looks like I would need Internet access (and I wasn't able to make it work with ppt on my ipad anyway.) But it is a good demo.

</comment></comment><comment><USER17> The handwriting recognition is very good. The "diagram block" recognition not so.

<comment><USER18> Both are much better than I would've expected to be fair, but yeah the block recognition is still slightly short of usable.

The handwriting recognition is amazing.

</comment></comment><comment><USER19> Aw man, I don't have a mouse or trackball with me today. The trackpad sucks for drawing.

I wish there was something I could do in freehand drawing interfaces that assumed mouse-button-down and let me just drag.

<comment><USER20> Perhaps a keyboard shortcut to replace mouse-button-down, that definitely sounds do-able.

<comment><USER21> LeftAlt + LeftShift + Numlock? Then 0 to hold mouse button and . to release.

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

</comment></comment></comment><comment><USER22> Much needed. I usually draw them into a tablet, export them as images and then put them into slides. This is much neater.

I couldn't test it in a tablet right now. How does it do when hand-drawing in a tablet?

Thanks!

<comment><USER6> Just tried on my iPad. Preview works in both Chrome and Firefox, but neither save (I do have PowerPoint loaded on the iPad and I use it there occasionally.) On Firefox when I save I get an "error" dialog, and the chance to choose someplace to save it to - but Powerpoint is not one of the options. In Chrome when I save a new browser tab opens with a lot of data - I'm assuming that it is what would have been written as a ppt file.

</comment></comment><comment><USER23> How different is this from the Nebo technology?

Sounded great but in practice was too fiddly.

Why not allow scanned documents to be OCR'ed to diagram + text. Thats the killer app!!!

</comment><comment><USER24> This would be a great acquisition for Apple for Apple Notes!

<comment><USER25> Probably it will. Soon.

</comment></comment><comment><USER26> love it</comment>


Ask HN: why are taxi rip-offs so common? - <AUTHOR>

My experience taking taxis in Amman, Athens or Madrid as a foreigner is running a risk of getting ripped off (in decreasing order). I doubt I'm the only one.
This is, of course, not a rule, as there are honest and dishonest taxi drivers everywhere, etc.
Why, if I take a taxi in Berlin or Manchester, I can relax, but not in those cities? It's not the same with other services.
What's failing in those markets, which could be fixed? <comment><USER2> How is industry regulation different in those markets? When you get ripped off, what is your recourse in Amman, Athens, or Madrid? What can you do about it in Berlin or Manchester?

<comment><USER3> That's the key...taxis are heavily regulated in the US, and the penalties are strict for overcharging customers, not using the meter, etc. The cost of taxi medallions in major cities is extremely high, so taxi operators take extreme caution not to get in trouble.

In countries I've been to where regulation is more lax, or where bribes are common to circumvent regulation (e.g. Philippines, Malaysia, Thailand), drivers were more likely to try to rip you off, like trying to charge you a flat rate that is double or triple what the meter would have been. In places I've been where regulation is more strict (US, Singapore, Hong Kong, Japan), taxi drivers have been more honest (e.g. insisting on using the meter, not trying to charge extra fees).

It tends to be the wealthier countries I've been to that are stricter with regulations.

<comment><AUTHOR> Regulations in Spain and Greece are somehow strict: a special licence, somehow equivalent to the New York medallion is required.

Furthermore, at least in Spain, being "a taxi driver" is a form of cultural identity. Typically, regulations specify that either the licence holder ora first-degree relative should drive the car.

<comment><USER3> I had good experiences with taxis in Spain (Barcelona), so it appears the regulation works. We asked our hotel what the rates should be to go to certain places, and the meter worked out to be in line with those. Maybe it's different in Madrid...

<comment><AUTHOR> In Barcelona I had a ride where the taxi driver spent the whole time moaning about how short it was... (he claimed to have misunderstood the destination when he received the request, implying that he would have refused).

No rip-off, though, just very poor customer service that time. Again, not all were like that, but it's harder to come across a driver like that in Germany or Britain. Perhaps it's just some superficial pattern of behaviour.</comment></comment></comment></comment></comment>


Show HN: Chirps, an iPhone app for reading tweets with links on Twitter - <AUTHOR> http://polydice.com/chirps Chirps is an iPhone app that let you read tweets with URL and focus on the content with a readability mode.<p>We've developed Chirps for several weeks and now we just launched 1.0 on App Store. PLEASE let us know if there is any we can do better. <comment><AUTHOR> Chirps shows you only tweets with links, and presents them in a clean and un- cluttered format, so you can truly enjoy reading on Twitter, distraction-free.

We've developed Chirps for several weeks and now we just launched 1.0, PLEASE let us know if there is anything we can do better and we'll keep working on it.</comment>


Ask HN: What do you wish your IDE would do? - <AUTHOR> <comment><USER2> 1\. proper and fast automcompletion

2\. source lookup (back and forth). Now when you do source lookup, it should be integrated properly with language quirks like virtual-env in python

3\. proper and standard keyboard shortcuts ( NOT like intellij)

4\. Good vim support

update: 5\. cross-domain support. e.g if you're full stack developer and use rails as backend, IDE should support both rails and front-end stack. Basically front-end stack is mandatory these days for web framewoks.

6\. project wise search

7\. file search.

Intellij has done lot of good work.

1\. but they utterly fails in keyboard shortcuts (which are not consistent with other tools like browser)

2\. their IDEs are in java and damn slow

3\. very poor cross-domain support. now this is complicated because of complexity of modern programming.

If you guys are planning on any IDE, ping me. Will glad to help.

<comment><USER3> > 2\. source lookup (back and forth)

Can you please elaborate? What does back and forth source lookup mean?

<comment><USER2> I mean something like ctags. So it is easy to look into source of libraries.

<comment><USER2> updated answer

<comment><AUTHOR> Some of these features might be solved by VSCode + extension. Have you tried it?

We're not building new IDE but trying to improve some workflows that happen often in programmer's workflow. Focused on web development for now.

<comment><USER2> I did try but I like more intellij. Quirks I mentioned are important for my workflow.

</comment></comment></comment></comment></comment></comment><comment><USER4> Field Call Hierarchy

Eclipse has it. It's awesome. Please upvote the issue.

[You have to log in before clicking the :+1:]

[https://youtrack.jetbrains.com/issue/IDEA-160274](https://youtrack.jetbrains.com/issue/IDEA-160274)

</comment><comment><USER3> Explanation of different config files and what are the rules of their configuration.

</comment><comment><USER5> Let me code it in Common Lisp.</comment>