UK virtual reality firm Improbable raises $500M - T-A http://www.bbc.com/news/business-39892251 <comment><AUTHOR> Improbable's SpatialOS is actually a really, really neat piece of tech. For the first time it's becoming easy for an independent developer to build an MMO type application.

With the impending growth of VR (and virtual worlds in general), this is a great candidate for being the foundation of a new generation of apps.

Unity has done this for game development. It's the de facto engine of many research projects, video games, and some applications.

Unity lacks the ability to scale to large projects, however, which is where SpatialOS comes in. It's for projects that are large in scope (encourages/requires better programming practices) and is literally made for scale. The nice thing is that the SpatialOS tech uses Unity, but doesn't require it. It can be used with any engine if desired.

<comment> UK-AL SpatialOS is nice tech, and can help people who don't have distributed systems engineering experience.

However a couple distributed systems engineers, dev ops, and games engineers could build something similar.

It's not that hard for a team like that to replicate it from what I've seen of the documentation on how to use it.

It's defiantly worth something, but for 500 million? You could literally phone up game industry legends and get them build something amazing for that.

<comment><USER2> If it were just games, I think you'd be right in there being a relatively low value cap. Gaming is a huge industry, but the issue with persistent words is that to provide value, they need to have addicted users. If i'm not going to keep logging into a game, do I really care that it's supporting a huge number of users or that a tree I felled a year ago is still decaying on the floor somewhere?

There's a low upper limit to how many such games an individual would be willing to invest in (a number not far off 1?). Some MMORPG players will play a few of them, but I suspect most will focus on just one.

I think the real value of this tech lies in its applications outside of gaming, namely huge-scale simulations. There's plenty of opportunity for lucrative contracts with governments, academia, and R&D departments.

<comment> UK-AL Why do simulations have to be real time online systems?

Most simulations don't work like that at all.

<comment><USER2> No idea to be honest, but i'll speculate about an application of this:

Let's say you're simulating an ant colony, there's going to be a lot of empty space, there'll be choke points with a high number of interactions, and quiet areas with not much going on. You could do a totally offline simulation, and it'll take an unpredictable amount of time to do some number of ticks - because the complexity of each tick is unknowable ahead of time. But if you want reasonable guarantees about how long a simulation will take to run (and assuming there's an upper bound to the complexity), being able to easily and automatically scale up the computing power would be very valuable.

So the utility isn't restricted to real-time, but more generally about having a predictable execution time per tick regardless of simulation complexity.

Of course, this is all speculation, I'd love to hear some real world applications of this.

</comment></comment></comment></comment></comment><comment><USER3> I knew one of the founders when they were starting out... one of the other founders is the son of an Indian multi-billionaire, which probably opens a few doors.

The founder I knew told me excitedly their vision for a dynamic interactive world - I thought this sounded like pure nerd crack though wasn't sure if it would actually work as a game. (I built a much more basic dynamic world MMO in university and it ended up with huge drama amongst the player base). I think they pivoted to building a platform rather than a game about a year later.

Wish I'd stayed in touch now, though that seems to happen a lot in the start- up world.

</comment><comment><USER4> I poked my nose into the Improbable's public API docs. What I saw looked like an OK Entity-Component-System straight out of /r/gamedev + some C# serialization so that you could have Systems (aka "functions") run on different nodes on a network.

What did I not notice that's worth half a bil?

<comment><USER5> My understanding is that their twist on the problem is some kind of dynamic sharding of game entities across a cluster of servers. Different games seem to try to deal with this in different ways:

\- WoW - Several servers hosting copies of the main game world, dedicated party servers for instances

\- Second Life - A server maps to a specific volumetric "box" that is estimated to be able to handle whatever activity and whatever entities end up in that box

\- Eve - A server maps to a star system, local game time can slow down to accommodate more activity

My understanding is that these guys do something else, where they determine sets of entities (players, NPCs and non-player entities) that are likely to interact and shard off the controlling logic to a server. As the world-state changes, the clustering and mapping of entity groups to servers changes and they have some kind of way to move likely interacting clusters of entities seamlessly within the infrastructure.

This has the possibility of supporting huge persistent game worlds with tens of thousands of players at a time without the kinds of ill effects we see with the other approaches.

<comment><USER6> Interesting, so I guess this still limits the number of entities that can interact with each other on one server but allows for much more non- interacting entities spread out over a large world. But couldn't then lots of players (maybe by accident) meet in one spot and then slow that server down?

<comment><USER7> Hey! Improbable dev here.

We deal with such a situation through the fact that SpatialOS dynamically scales the zones that each game engine is responsible for. So if you have many players gathering in the same reduced area then there will actually be multiple game engines allocated to that specific zone and extra engines might even be started if the load requires it. This also works in reverse so that if your player density falls drastically and a single game engine would suffice for your entire world you will only have one running, so you always have the right amount of resources at your disposal.

Such game engines are what is referred to as workers in SpatialOS ([https://spatialos.improbable.io/docs/reference/10.3/getting-...](https://spatialos.improbable.io/docs/reference/10.3/getting- started/concepts/spatialos)) and workers can be of many types: game engines like Unreal or Unity to manage the physics of the simulation, custom workers based on one of the language SDKs that implement AI-like functions, or any other behaviour you want to put in your world: it's entirely up to you to take this as far as you like.

<comment><USER8> How does this handle a load too large for a single server in an extremely small area? Say, the Halloween War in Eve or just a bunch of morons - say 10k people - gather within a single small valley in a game?

Sure, you can subdivide it as small as you want, but that just increases the overhead by requiring the servers to communicate more. But even if the servers can figure it out, what the client sees seems like a hard problem too.

<comment><USER9> I think you're worrying about a problem that most users don't care about.

Improbable could cap the density if they need to, and over time they can do optimizations to increase the maximum.

<comment><USER7> To answer eximius. In your valley battle example there would be multiple game engines handling the valley.

Whereas it is entirely true that you can always find a counter-example that would break a given technology, troymc is absolutely right in the fact that those counter-examples still leave an overwhelming majority of use-cases that we can handle perfectly well with our approach.

<comment><USER8> I don't mean to disparage the technology, but I disagree with that my examples are unrealistic. I think people would love large scale battles like that.

<comment><USER7> No problem. You should definitely ask such questions. If you want to dive into the technicalities, see what people are already doing with SpatialOS and ask your own questions I really recommend having a look at the forums ([https://forums.improbable.io](https://forums.improbable.io)).

That said, my previous response was actually targeting your example as being a use-case that falls into the 'realistic' category that we want to address with SpatialOS.

Again, I am not suggesting that you can and should pile-up 1000 players onto 10 square meters, but if you take care when defining your world's characteristics (SpatialOS's entity & components) you will be able to scale up your player density in your battle scenario to a level that significantly exceeds anything that you could achieve with any existing monolithic game server and for a fraction of the trouble as you do not really have to deal with any of the usual networking issues because SpatialOS takes care of that.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> More coverage from other news sites:

\- Wired: [http://www.wired.co.uk/article/improbable-quest-to-build- the...](http://www.wired.co.uk/article/improbable-quest-to-build-the-matrix)

\- Bloomberg: [https://www.bloomberg.com/news/articles/2017-05-11/softbank-...](https://www.bloomberg.com/news/articles/2017-05-11/softbank- leads-502-million-investment-in-u-k-tech-startup)

\- TechCrunch: [https://techcrunch.com/2017/05/11/improbable- grabs-502m-led-...](https://techcrunch.com/2017/05/11/improbable- grabs-502m-led-by-softbank-at-a-1b-valuation-for-its-virtual-world-spatial- os/)

\- Financial Times: [https://www.ft.com/content/76529d16-3669-11e7-bce4-9023f8c0f...](https://www.ft.com/content/76529d16-3669-11e7-bce4-9023f8c0fd2e)

\- Improbable's own announcement: [https://improbable.io/2017/05/11/our-ceo- herman-narula-on-ou...](https://improbable.io/2017/05/11/our-ceo-herman- narula-on-our-series-b-funding)

(Disclosure: I work at Improbable.)

</comment><comment><USER11> I honestly could not help but laugh at the Softbank for burning their money like this. But what do I know, I haven't raised that kind of funding before, maybe running boxes on aws with persistent storage is too difficult for most game developers.

$500MM though? The skeptic in me is saying they're going to write the majority of this down in 5 years.

<comment><USER12> Yup, and they recently wrote down half a billion in Ola and Snapdeal in India.

Basically, this investment gives Improbable a 5-10 year time horizon to basically do whatever they want. But they can't just work with every game dev studio under the sun -- they actually have to grow the entire MMO market in order to actually turn a profit for investors.

</comment></comment><comment><USER13> Wow, that's a big jump from their last round a couple years ago with a16z that valued them probably somewhere around 60m-70m. I'm surprised since they don't seem to have real customers yet, just some demo games they partially funded. But it's quite possible the investors know something I don't.

<comment> UK-AL Venture capitalists make silly investments all of the time.

Countless times its been proven that connections + chrasmatic founder means investers will invest in silly things.

Something seriously good + no connections and no charisma means your going to have a bad time.

The hardest part is getting noticed.

</comment></comment><comment><USER14> Their previous partnership with the DayZ folks seemed to end with neither side willing/able to explain what killed it - [http://www.eurogamer.net/articles/2017-03-07-ion-the- space-s...](http://www.eurogamer.net/articles/2017-03-07-ion-the-space- survival-game-by-dean-hall-and-improbable-is-dead)

</comment><comment><USER15> If a Telecom like SoftBank has piles of money to spent gambling buying and selling international companies (ARM, Improbable, Supercell, and others), may be there is not enough competition in Japan. Do they have huge profits because of not having enough competition, or because they don't they have to return profits to the investors?

<comment><USER16> SoftBank is actually not the largest telecom company in Japan. Though SoftBank does a lot more than just telecom. Telecom just happens to be the more consumer facing business. Also, SoftBank made $50 billion by investing $20M in Alibaba 17 years ago.

<comment><USER17> >Also, SoftBank made $50 billion by investing $20M in Alibaba 17 years ago

That's a pretty solid ROI.

</comment></comment></comment><comment><USER18> I wonder how much of deals like this that don't make sense on its surface is based on behind the scene agreements.

"If you invest 100 million in this company we backed two years ago, we'll give you a good deal on this other thing we know you're interested"

"If you back our cloud computing company, we'll get our other unicorns to use your CRM technologies"

</comment><comment><USER19> Maybe it's a big bet to create Oasis. 500M is about what it would take, that's for sure.

I have to say, linden labs and high fidelity must be pretty excited by all this enthusiasm.

</comment><comment><USER20> Just to clarify - Improbable are a _simulation_ company, right? As in, VR would just be _one_ application/interface to their software, but the point is simulating things at scale?

<comment><USER21> Yes, that's correct.

</comment></comment><comment><USER22> Am I the only one who read that as "UK virtual reality firm improbably raises $500m"?

</comment><comment><USER23> basically softbank just purchased almost half of this company. nice payday for Andreesen Horowitz though

<comment><USER19> Yeah, it feels like Softbank is paying out someone and channeling it through this company. Either that or someone with too much money and no sense just finished bingeing RPO.

</comment></comment><comment><USER24> Not a virtual reality company. Cool tech though.

</comment><comment><USER25> Can anyone from improbable explain why your technology is suitable for simulations?

I'm talking about the non real time simulations of cities, traffic etc in your promotional material.

If a simulation does not have a real time requirement then what's the advantage of improbable?

</comment><comment><USER26> Wow, are the founders around 26 year old? They managed to build something like this a virtual reality technology from ground up? Or am I missing something.

</comment><comment><USER27> From reading the article, it seems like the best case scenario (aside from unforeseen tech advances or alternative usecases) is that online gaming will become easier through cloud platforms and a lot more indie MMOs will start popping up. A bit like mobile games did ~10 years ago.

Anyone able to correct me?

</comment><comment><USER28> They probably pitched SoftBank some Sci-Fi inspired "Simulated World."

</comment><comment><USER29> > The company believes it has developed revolutionary technology with its > Spatial OS operating system ... allowing small developers to create massive > simulations without much infrastructure of their own.

If that's the case I can't help but feel this is a gross misuse of the VR buzzword in the headline. This is cool stuff, but we call that cloud computing, not VR.

<comment><USER30> I think they mean VR in the sense of Second Life, not in the sense of Oculus.

<comment><USER31> Octopus?

<comment><USER32> Octopus - it's a water animal

</comment></comment></comment></comment><comment><USER33> The big question is, what do you do in a big virtual world? There's a "build it and they will come" assumption here. There's Second Life, which peaked years ago. There's "There". There's High Fidelity, which is a higher- resolution Second Life with few users. Most of those can be used with a VR headset. But nobody cares.

It's not a technology problem. The current technology is marginally adequate. It's lack of market interest.

<comment><USER34> I don't know much about Improbable but from what I've read they shouldn't be viewed as VR firm, simply you could use their technology to create a massive virtual world that you could then explore using VR. I think the media (and maybe Improbable's PR) just likes to go with the VR angle as it's a recognised, understood term

The product is 'Spatial OS'. Want to build a massive simulation of various agents interacting in different ways than cannot possibly fit on a single server? That's where 'Spatial OS' comes in.

Interesting blog post here: [https://improbable.io/2016/03/24/what-we-found- when-we-simul...](https://improbable.io/2016/03/24/what-we-found-when-we- simulated-the-backbone-of-the-entire-internet-on-spatialos) a couple of people from the UK government visit improbable for 3 days, successfully build a detailed simulation of the internet (at the routing level, so simulating all routers involved in BGP). Looks pretty impressive.

<comment><USER33> That's more of an ad for something like AWS, where you need compute power and network connections, but not VR.

</comment></comment></comment><comment><USER35> This company has to be satirical. "Improbable"? When it crashes and burns it will all be revealed as art, like that time the KLF burned a million pounds.

<comment><USER29> That reduces to the absurd conclusion that otherwise smart people doing $500m investments do zero due diligence and don't care about being legally bound by fiduciary duty.

<comment><USER36> I mean, Theranos is only a recent example.

</comment></comment></comment><comment><USER37> That's a fitting name. "Improbable"

</comment><comment><USER38> Holy moly that's a lot of money</comment>


Ask HN: Is it a good idea to raise money from family and friends? - <AUTHOR> <comment><USER2> Yes. Just be honest. Be clear about the risks they are taking. Don't bullshit them with projections, etc. Don't take cash from anyone who is going to get hurt if you lose it. It's old fashioned advice these days but it works.

<comment><USER3> I just want to reinforce - whom ever your taking money from, should be willing to write off everything they give you. In fact they should do it the moment the money touches your hand.

That isn't to say that your going to fail but you dont want YOUR venture to get caught up in their personal circumstances if they change. People with enough money tend NOT to care about your payout (today, tomorrow or ten years on, if ever).

</comment></comment><comment><USER4> Depends on who your family and friends are.

I had a tenant in my other house (next door; we tend to be close to these people) who was trying to start a new business and was having trouble getting a bank loan for more than half of the capital he needed, I told him that he could consider raising equity instead and I told him I might be interested.

The next day he came around and asked if I was serious. I told him that I couldn't be the only investor but if he got other people in on it I would do it.

I put about $2000 in (three months rent) and kept getting rent for another few years. The business ran for about a decade before it went under. I didn't get my money back but I did get discounted merchandise and the pleasure of being involved.

I have no problem with how things turned out because I could afford to lose the money. Had it been $200,000 I might have been seriously pissed...

</comment><comment><USER5> Here's some reading: [https://news.ycombinator.com/item?id=6400455](https://news.ycombinator.com/item?id=6400455)</comment>


Erik Meijer: Duality and the End of Reactive [video] - <AUTHOR> http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/Keynote-Duality <comment><USER2> (Shameless self-promotion) I just finished by thesis on a new programming language called SolScript, which is reactive and based on "math".

It's a hard real-time language for avionics software, BUT it has type inference and duck typing (everything is "symbolic"). SolScript is supposed to look familiar to anyone with a basic knowledge of mathematics. It's also a literate language, because every SolScript file is a Markdown file (and SolScript code is inside Markdown code blocks).

[link redacted]

<comment><USER3> \- real time

\- avionics

\- type inference

\- duck typing

You like challenges don't you? ;)

I like the literate component a lot, I can see why that would be a very big plus when you're building avionics software.

Bookmarked your thesis.

What was your reason for going for 'duck typed' and 'scripted' rather than strongly typed and compiled? (Which I would assume to be a whole lot more suited for the intended branch of industry, so that has me curious.)

At the surface of it this looks like a 'textual spreadsheet' with the lines replacing the cells of the sheet.

This 'spreadsheet' is then evaluated 'x' times per second to satisfy the hard real time requirements.

How do you stabilize the results from one 'tick' to the next? Do you keep a shadow copy that you work on with all the results posted to the next generation?

There is something funny about a person working for a small software outfit choosing a format for textfiles (for really good reasons) because Microsoft or Apple might not be around when the files need to be read. I get your reasoning and agree with it completely but you have to balance that against the chances of your own company not being around anymore either.

How much of the _software_ of the original Boeing 747 is still in use today? I'd imagine there are no fuselages that have not been upgraded multiple times since the first 747's took flight. So the lifespan of the documentation is roughly the same as the lifespan of the software.

Are there any public sources out there?

Here are some of the oldest 747 airframes known to be still on active duty:

[http://www.airliners.net/aviation- forums/general_aviation/re...](http://www.airliners.net/aviation- forums/general_aviation/read.main/2863915/)

But that does not say much about the avionics in them.

Do you intend to release the source to solscript in order to profit from the 'many eyes' out there to reduce the number of bugs in the runtime? (Which can't be written in solscript, so effectively will have to be written in some unsafe language.)

I like that markdown trick a lot, that's applicable to just about every programming environment, see:

[http://michael-sokol.tumblr.com/post/13112309135/literate- pr...](http://michael-sokol.tumblr.com/post/13112309135/literate-programming- with-github-and-markdown)

<comment><USER2> Haha, that's a lot of questions. Let me try to go over them.

I say SolScript is "duck typed" and "scripted", because that's how it feels to program SolScript. However, under the hood, SolScript is a statically typed, compiled language.

About the "spreadsheet" idea, that is exactly what the SolScript IDE (Solide) is going to be. There will be a spreadsheet mode, which displays the source code as a spreadsheet. The last chapter talks about Solide, if you want to know more. (The creation of Solide is going to be my job, and I've been watching Bret Victor videos, all day yesterday, for inspiration.)

We have no "deep copy" of the data. The data is simply mutated in place, for performance. The compiler knows in what order it has to update the datacells, so SolScript users don't notice any of this. If I say `b = a`, then `a` will be calculated before `b` uses it. (If you want the value of `a` before `a` is updated, you say `b = previous a`.)

The whole "plain text" argument is about the fact that companies can die. So can (UN)MANNED, of course. The difference is that plain text files will always be readable, in contrast to Word files. You don't need our software to read plain text documentation.

Releasing the source is not something we plan to do (for now). We are not against the idea, but right now we have other priorities. There will probably be a gratis version, even for commercial use. Only that version won't be certified.

Yes, SolScript is written in an "unsafe" language: C. This makes it extremely cross-platform. We can run on Linux, OS X, Windows, iOS, VxWorks... The coding standards of our C code are extremely strict. Avionics style.

And about Markdown, yes that could be applied to other programming languages. BUT SolScript integrates with Markdown on a whole new level. For example, sections in Markdown are the scopes or namespaces of a SolScript program. Markdown is built into SolScript, not tacked on.

Edit: Circular dependencies really make no sense, in a declarative programming language. Defining `a = b` and `b = a` has no clear meaning, so the compiler will throw an error. However, you can define things recursively using `previous`. For example: `a = b + 1 initially 0` and `b = previous a`. In this case, `b` is 0, 1, 2, 3... and `a` is 1, 2, 3, 4...

<comment><USER3> > Haha, that's a lot of questions.

Well, you post your thesis, I dig in :)

> Let me try to go over them.

Much appreciated, thanks for all your answers, I've read a good chunk of your thesis by now (that's hard work :) ), good stuff.

> We have no "deep copy" of the data. The data is simply mutated in place, for > performance. The compiler knows in what order it has to update the > datacells, so SolScript users don't notice any of this. If I say `b = a`, > then `a` will be calculated before `b` uses it. (If you want the value of > `a` before `a` is updated, you say `b = previous a`.)

Ok. That may cause some trouble when there are long chains of circular dependencies but I'm sure you're aware of that and that you have a solution in place (assuming circular dependencies are even allowed).

Again, thank you for all the answers and much good luck with your project, I'll be following your progress, it's super interesting what you are doing.

</comment></comment></comment></comment><comment><USER4> TL;DR

Reactive programming is ill-defined and over-hyped, so let's talk about types and math instead (plus some not-very-subtle in-jokes about Microsoft).

An enumerator is basically a getter with the ability to fail and / or terminate. It might also return a promise rather than a value. An enumerable is a getter that returns an enumerator. We can express all this very cleanly in generic types. And if we take the category-theoretic dual of these types we get the observer and observable types.

So who needs reactive? ;-)

<comment><USER5> What people really want is managed time.

<comment><USER6> What kind of scenario are you thinking of? Rx has virtual time with the use of schedulers that enables you to abstract over time, which is very cool. [http://channel9.msdn.com/shows/Going+Deep/Wes-Dyer-and- Jeffr...](http://channel9.msdn.com/shows/Going+Deep/Wes-Dyer-and-Jeffrey-Van- Gogh-Inside-Rx-Virtual-Time/)

<comment><USER5> This isn't really virtual time though, at least as realized by time warp. It's a virtualization of time, for sure, but almost completely unrelated to DR Jefferson's work [1]; no rollback of bad interactions or anything like that.

[1] [http://dl.acm.org/citation.cfm?id=3988](http://dl.acm.org/citation.cfm?id=3988)

Rx is a one trick pony that focuses exclusively on the duality between event streams and data streams. Management of time in any real sense is completely missing from the framework. No continuous bindings, control flow must all be buried as data flow, etc...

React is a much better solution for writing reactive programs than Rx.

<comment><USER6> Brian Beckman worked on the Time Warp OS, with Dr. Jefferson [1] and was involved with the development of Rx virtual time. You can read his comment about how Rx virtual time could be used to create a Time Warp monad. [2].

Are you speaking about React.js? Erik's point about reactive being a buzzword and distorted is proven by that because it's not the same thing at all. React.js is cool and all that but it has nothing to do with guaranteed composition and dealing with side-effects and monadic operators. That's like saying Angular.js is better than list operations and functions that operate on lists.

[1] [http://dl.acm.org/citation.cfm?id=37508&CFID=356264587&CFTOK...](http://dl.acm.org/citation.cfm?id=37508&CFID=356264587&CFTOKEN=35819486) [2] [http://channel9.msdn.com/Shows/Going+Deep/Expert-to- Expert-R...](http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Rich- Hickey-and-Brian-Beckman-Inside-Clojure#c633949462670000000)

<comment><USER5> That is a nice link, thanks! The previous video one was not talking about the same virtual time, as far as I can tell.

My point was that if you were building user interfaces, react would get you much further than Rx, which is a hammer looking for a problem where it is actually better.

If you want the ability to deal with side effects, I'm working that in my own work while avoiding burying everything in data flow:

[http://research.microsoft.com/apps/pubs/default.aspx?id=2112...](http://research.microsoft.com/apps/pubs/default.aspx?id=211297)

Ironically, I started this work while working for Martin with the goal of making the scala compiler more "reactive" (the ability to responsively react to change); I actually succeeded while making minimal changes to scalac. Like actors or FRP, Rx can't be applied to scalac either, which desperately needs to be reactive to fit into the IDE. Rx's idea of reactivity revolves around event streams, virtual, managed time and frameworks like react attack the problem of change directly. Erik is right about useless definitions, but one based around change really works.

</comment></comment></comment></comment></comment></comment><comment><USER7> i thought it was a good presentation, however, I recently watched a Netflix one, published by Matt Marenghi, which to me was infinitely better.

I think the description of events as just another collection, albeit a time based collection flow was nicer ( Observable === Collection + Time ), and also that this collection must have the ability to tell you that it has terminated.

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

<comment><USER8> Watched both talks and the Netfix one is really way better.

</comment></comment><comment><USER9> and Scala is now his favorite language, interesting stance to take for a previously prominent member of the Haskell community.

<comment><USER10> He's an independent consultant now. I suspect the market for companies willing to consider Scala is a lot bigger.

If you want statically typed functional programming, but also functional programming that stands a chance of adoption in many environments, then Scala is about your only choice.

<comment><USER11> And Kotlin, and I would dare say Rust.

<comment><USER10> I may be living under a rock, but is Kotlin really used in production a lot?

And Rust? Does _anyone_ dare basing production stuff on Rust like now? With breaking changes all the time?

<comment><USER12> There's only 3 production deployments of Rust that I know about. It's not recommended to use Rust in production atm.

</comment></comment></comment></comment></comment><comment><USER13> Variance explained by Martin Odersky in the Functional Programming Principles Course

[https://class.coursera.org/progfun-004/lecture/83](https://class.coursera.org/progfun-004/lecture/83)

</comment><comment><USER14> "Reactive is the new agile. Everyone is talking about reactive. Reactive is this, reactive is that"

This is the first time I've heard of reactive and read HN everyday.

> Java's enumerable( Iterable?) is broken

anyone know what how its broken?

<comment><USER6> He's saying people are turning it into a buzz word that is losing it's true meaning, so instead of the buzz word, think of what it's really all about: composing and managing side-effects. Take a look at Google Trends for "Reactive Programming", it spiked over the last year or so,: [http://www.google.com/trends/explore#q=reactive%20programmin...](http://www.google.com/trends/explore#q=reactive%20programming)

Take a look on GitHub at all the projects with reactive in the name or descriptions; it's become a buzzword that people use to describe various things that don't have any relationship to the original.

Iterable is broken, as Erik said, because it has a hasNext() method, and a next() method, which is a problem because hasNext() causes side-effects to be evaluated.

Imagine if the implementation of the iterator has to execute a long running function, or wait for the next value in an observable to be pushed, like an event. So, if call hasNext() twice, then it may cause a side effect so that next() actually has a different result than it would without the side effect. Thus, it is not mathematically, a function, and can't really be used to build monads.

So, unfortunately, due to backwards compatibility, Java classes that implement Iterable/Iterator can't automatically get the benefits of list monads etc..., by simply defining a library of operators that take Iterable/Iterators, like C# could with IEnumerable/IEnumerator.

In C#, IE only has side effects in the MoveNext() method, which returns true or false if there's another element, and the effect is explicit in the name, which helps. However, more importantly, if you get the value from Current, there is no side effect, and you can do that as many times as you like.

With Iterable, if you call next() it moves to the next element. So, it is impossible to get the same value twice with a guarantee of no side effects, and impossible to guarantee mathematically sound composition of Iterables. The interface is broken, and changing it would break nearly every Java program.

</comment></comment><comment><USER15> tl;dr: Languages offer ways of composing side effects. Delay is just another side effect and "reactive" isn't that special.

<comment><USER4> I think there's a little more to it than that...

</comment></comment><comment><USER16> Now I want to know who was in the audience (esp. the two 'math' guys off to the right).

<comment><USER17> At very least, these guys

[http://channel9.msdn.com/Events/Lang-NEXT/Lang- NEXT-2014](http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014)

</comment></comment><comment><USER18> The first six minutes alone are worth a listen if you're in a rabble-rousing mood.

<comment><USER19> Wow, I listened to the first six minutes on your recommendation and was pretty put off.

The speaker mocks his audience of Microsoft engineers (like not in fun, he is really saying their culture sucks).

He is dismissive of "reactive programming" as nonsense from architecture astronauts, without giving a remotely fair description of what it actually is. His straw-man of "var x = 10; println(x); x = 42; println(x)" is not reactive, because "x" is not a function of other mutable state in the model. I've never heard of reactive programming until five minutes ago, but I can tell this just by reading the Wikipedia excerpts from _his own slides_ (and a little follow- up reading confirms this).

I'm all for rabble-rousing, but if you're throwing punches you should know what you're talking about.

At 17:30 he makes a joke about a Steve Jobs function that says "iPhone", "iPad", "iCloud", and then "terminates naturally". Holy bad taste.

EDIT: others have pointed out that with extra context this is more obviously a self-deprecating and good-natured shtick.

<comment><USER20> Erik is a little trollish when expressing his opinions. From what I noticed, he loves flames. People either love his style or hate it. I guess you're in the later group - personally I don't mind when he's mocking something I care about, because from what I observed, he's always joking or half-joking and he'll say the opposite of what he just said in a couple of weeks.

> _He is dismissive of "reactive programming" as nonsense from architecture > astronauts, without giving a remotely fair description of what it actually > is._

That's because his presentation is from React 2014, so he can fairly assume that the audience has some idea of what he's talking about, because "reactive" is the freaking topic of this audience - [http://reactconf.com/](http://reactconf.com/)

> if you're throwing punches you should know what you're talking about

Well, he kind of does. He's one of the architects of Reactive Extensions (Rx) and now he's contributing to RxJava. I don't agree with many of his opinions, for example I think they made design mistakes while architecting Rx, but he's OK in the knowledge department ;-)

> _At 17:30 he makes a joke about a Steve Jobs function that says "iPhone", > "iPad", "iCloud", and then "terminates naturally". Holy bad taste._

He also makes the same joke about himself - was trying to explain how streams are terminated, either naturally or by error (the joke on himself was that he was fired, i.e. onError).

<comment><USER21> > for example I think they made design mistakes

Curious to hear more.

<comment><USER22> Same here. For the record I think Rx is a lovely piece of work (as is LINQ btw). I can't think of anything I'd change in the bits of Rx that I've used so far.

<comment><USER23> One criticism is a lack of ability to express things like "back-pressure" where consumers indicate to producers to slow down, stop, etc..

<comment><USER22> That implies a two way dispatch which is not in the remit of reactive surely? A system that's closer to Haskell's pipes is probably what you'd want.

I think ISubject<I,O> has the interface for a pipe, with IObservable being a Producer equivalent, and IObserver being a Consumer equivalent. So there may be some cunning that could be done with your own implementations [to create an Effect]. (This is just wild brainstorming without looking at the code, so take all of this with a large pinch of salt).

Working within the Rx system, there'd be two ways of doing this:

The Observable has a mechanism for slowing down, but obviously it can't get instruction from observers - so it would have to make a judgment on what is 'too much'; a slow down would affect all observers. Definitely (well probably) not what you want.

The other way is to use the various buffering functions in Rx on the subscription, or roll your own function that has some intelligence. That localises the 'backing up' on a per observer basis, but doesn't slow down the observable itself.

To 'Stop' you could switch your subscription to Observable.Never<T> until you're ready to receive messages. Obviously you'll miss messages generated on the other stream whilst you were not listening.

<comment><USER23> Reactive = resilient + eventbased + responsive + scalable

I think it is relevant, what allows you to ignore the behavior of the system in favor of a component?

Dean wampler in a recent talk spoke of "Reactive Streams" which add this capability, but I have not seen it yet.

I have not seen anyone do this in Rx yet. Also ideally the back pressure is out of band to avoid starvation of that channel

<comment><USER22> I guess have an 'out of band' observable? Each observer that needs to communicate instruction back to the original observable can drop messages into an OoB observable, the original observable can subscribe to the OoB observable and then react to those messages as it sees fit.

Or do you think it should be an inherent feature of the stream itself? Isn't the point of IObservable to be the dual of IEnumerable, so calling Select on IEnumerable is a projection from A -> B, calling Select on IObservable is also a projection from A -> B, I think having an additional effect breaks that duality. So an Observable that has a side-channel or out-of-band stream wouldn't be an Observable, it'd be another category (which is why I suggested Pipes).

I totally understand why you'd want something like that, I'm just not sure it's fair to suggest Rx has design mistakes because of this though.

<comment><USER23> Well, speaking to the point of duality, I think Rx solves the problems it sets out to solve very nicely, and I would not say it has "design mistakes".

It certainly seems possible to use Rx primitives to build more functionality, yes.

Though everyone will have to build this themselves (if, of course, they even need it), and they'll probably all build it differently, where other lib's have this concept baked in (i.e. Pipes).

IMHO, libraries shouldn't try to do everything anyway, and to that end, Rx does it's thing and does it well (unix philosophy), as it's based on these mathematical abstractions.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> I'm confused as to why Erik would want anything to do with MSDN? He slates MS on a regular basis. Also, I suspect very few amongst the YC/HN developer community would touch Microsoft products.

<comment><USER25> Other than him having been employed by MS and making major contributions to .NET like LINQ and Reactive extensions?

Yeah I wouldn't know why he would want to have to do anything with MSDN

<comment><USER22> He's not employed by MS. He left a few years back.</comment></comment></comment>


Possible ice volcanoes discovered on frozen Pluto - <AUTHOR> http://www.abc.net.au/news/2015-11-16/ice-volcanoes-discovered-pluto-kuiper-belt/6938648 <comment><USER2> Ice volcanoe = fountain, right?</comment>


Show HN: Easy in-app and email notifications for your web app - <AUTHOR> https://www.notifly.io <comment><AUTHOR> Hey HN!

While we were working on our other product Eduflow (YCS17), we needed a good solution for delivering notifications to our users, both on email and in-app. We could not find anything out there, so we ended up building our own solution. Now that thing we started building has become pretty sweet, and we have decided to launch it as a separate service.

When we talk about notifications, we mean transactional stuff (not marketing). Think notifications like you find in the top right corner of Facebook ("Jamie replied to your post", "You have a new friend request", etc).

What is cool about Notifly, is that:

* We have built a nice functional widget that you can plug in to your app in minutes.

* We will take care of sending the emails for you, so you don't need to set up a separate email service, and you don't need to worry about deliverability.

* Bundling! Instead of sending your users 10 notifications with "You got a like", we will make sure they get one saying "You got 10 likes" instead.

* Smart delivery. If you use Notifly for both in-app and email notifications, then we make sure that you don't need to notifly people on email if they already saw the notification in-app.

* Let your non-tech people help out with editing copy using our web-app. This allows everyone to change and improve copy for all notifications without requiring a developer to help out.

We are super excited about launching this, so if you think it could be relevant for you or someone else, please share or try it out!

</comment><comment><USER2> Great work, guys!

<comment><AUTHOR> Thank you!

</comment></comment><comment><USER3> Great job!

How about the integration?

<comment><AUTHOR> The integration with your app just requires you to call our API when you want to send a notification. Is that what you are referring to?</comment></comment>


Ask HN: What benefits of quitting alcohol consumption? - <AUTHOR> I've decided to do a "dry" January and if I can do it, will try to extent to all of 2020.
I didn't drink often, not more than once a week. But it was usually a binge episode, having at least 10 drinks.
Has anybody stopped? What were the benefits? I am thinking that the reduction of stress on the body might lead to clearer thinking during work, etc. <comment><USER2> Another angle: ego.

Never drank in my life till 25 due to growing up in India and luckily finding myself among folks who didn't drink most of the time. I then had a chance to decide without baggage and never drink in my life.

The voluntary reasons are several, but the primary is the fact that I respect my authority over my mind too much. Even if you're slightly drunk, you're legally not allowed to drive. Neither are you considered "able" to give consent for things. Suggests to me (rightly?) That we momentarily don't consider people who are drunk as human, but as some mentally challenged being that is incapable of good reason. I personally feel like voluntarily becoming a mentally challenged person just to get a buzz is just too demeaning, so it encourages me to stay dry.

Why completely dry? It's always easiest to draw the line where it's absolutely clear, and with "addictive" things like drinking it's easiest to draw it at 0.

<comment><AUTHOR> Yeah I agree with the completely dry. My parents are always like "just have a few!". Which I can do at family events, etc. But at a big party, it is tougher and sometimes impossible to just have 2-3.

</comment></comment><comment><USER3> >I didn't drink often, not more than once a week. But it was usually a binge episode, having at least 10 drinks.

Just fyi, i think most people would consider having 10 drinks in a single session, once a week, to be "often"

<comment><AUTHOR> I live in NYC so maybe it is more excessive. But usually if you start at 9:30pm and end at 3am... that's 2 an hour. Not unrealistic. Honestly it's usually even more for me.

</comment></comment><comment><USER4> So far as binge drinking:

I used to go to parties, drink too much, and then act like a jerk.

My brother-in-law kicked me out of his house. After I stopped binge drinking and atoned I get along better with my brother-in-law, which is a real benefit.

Otherwise:

The worst immediate consequence of overdrinking is that you feel worse the next day. Alcohol can mess up your sleep and also feed into the metabolic disorder behind insulin resistance and Type II diabetes.

I don't think you will notice a difference between 2 beers a night and no alcohol at all, but if you drink more than that you probably will perform worse the next day.

<comment><AUTHOR> Nice. That is pretty much the same reason I am stopping. Did you notice any other benefits on a large or small scale?

</comment></comment><comment><USER5> Alcohol is known by medical science to be

\- neurotoxic.

\- carcinogenic.

If that's not persuasive, I don't know what else could be.

<comment><USER6> So are wasted fumes coming from your car, without the benefits

The same can be said for barbeques

When will people stop pretending that changing one thing doesn't really change anything in life in general?

Drinking is like everything else: if you do it with moderation it is not that harmful

If you don't, you got bigger problems

<comment><USER5> If you're implying that I am overestimating risk by comparing it to barbecued meat and exposure to vehicle exhaust then I would say that maybe you're underestimating risk from those two things.

I personally avoid barbecued meat for that exact reason, as well as refrain as much as possible from huffing exhaust fumes. If a lifestyle that allowed me to avoid being near cars were reasonably easy to achieve I would choose it. Because as you say, car exhaust is neurotoxic and carcinogenic.

<comment><USER6> I work in healthcare in Italy, where we live more than anyone else in the World, on average, except for the Japanese.

You are overestimating the causality between consumption and actual damages.

Consumption is ok, abuse is not.

Even too many showers can kill your skin

Of course if you have a condition even a simple contact can be deadly (think about favism)

And of course people are free to not drink, there's no shame in that, but don't think that it will give you more chances to have a long life than someone who drinks moderately

It's like smoking, it is bad, you shouldn't do it, but truth is that smoking a couple cigarettes a day is like not smoking at all

Paracelso said, many centuries ago, that it's t he dose that makes the poison and it's still true.

</comment></comment></comment></comment><comment><USER7> A few recent links for your consideration... [http://cancerherald.com/alcohol- itself-causes-cell-damage-an...](http://cancerherald.com/alcohol-itself- causes-cell-damage-and-mutations-and-its-metabolite-acetaldehyde-is-highly- carcinogenic/)

[https://www.sciencedaily.com/releases/2019/07/190708084334.h...](https://www.sciencedaily.com/releases/2019/07/190708084334.htm)

[https://neurosciencenews.com/age-alcohol- consumption-10835/?...](https://neurosciencenews.com/age-alcohol- consumption-10835/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+neuroscience- rss-feeds-neuroscience-news+\(Neuroscience+News+Updates\))

<comment><AUTHOR> Thanks for the info! I think the 2nd link doesn't work.

<comment><USER8> Google search suggests the title of that page began with "Quitting alcohol may improve mental well-being, health ...", which leads to pages like [1] with the same title from around the same date.

[1]: [https://www.eurekalert.org/pub_releases/2019-07/ji- qam070319...](https://www.eurekalert.org/pub_releases/2019-07/ji- qam070319.php)

</comment></comment></comment><comment><USER9> Just for a counter opinion: I only drink on the weekends in social situations, but have gone 2-3 months without as an experiment.

I didn't notice any difference other than it completely resets your tolerance. After the break it only takes one beer to feel buzzed, whereas before it was 2-3. In a big city, I'd recommend trying it once regardless of the benefits because it is challenging from a social POV. A surprising number of events center around alcohol, and people think it is strange that you're not drinking.

<comment><USER10> > After the break it only takes one beer to feel buzzed

Not sure if this was your experience, but at the same time hangovers get _enormously_ more painful!

<comment><USER11> I thought that was just because I was getting older.

(A couple of people 5 years older than me say the same thing.)

</comment></comment></comment><comment><USER12> You will save a ton of time, money, energy and productivity that you currently waste in going drinking and recovering from drinking.

I mostly stopped, not particularly by trying, but just by sort of growing out of the lifestyle and almost like, "forgetting" to drink, after a while. I'm big on the forgetting thing. When I failed to quit smoking dozens of times, it was by paying close attention to what day/time I was going to stop, how long it had been since then, etc. In other words, thinking a lot about smoking. The time when I finally succeeded, was the time when I just sort of forgot to smoke. Although note that there was undoubtedly an "infrastructure of forgetting" in place, without which it wouldn't have been possible to forget. For example the band I was in (with two smokers) broke up, so I stopped being reminded so often of smoking. So set yourself up for success by going through and trying to get rid of things that remind you of drinking. And don't make a big deal of it or count the days. Certainly "Only 5 days left until I can drink again" is a sign of failure, but in my opinion so is "Alcohol-free for 12 days! ... 13 days! ... 14 days!" Makes me thirsty just typing it! The biggest indicator of success in my book would be that the thought doesn't enter your head, and you're not paying any attention to it. Fill the extra time that you save, especially at first, with new or neglected activities that are more interesting & pleasant, yet not too demanding, so that you have better things to do and experience and think about.

<comment><AUTHOR> So true about "forgetting". I've also come to the same conclusion, in my experiences with other substances. If I simply forgot about it being something that I would do, it just seemed a lot easier.

For instance, a nic vape, I would just put it in a drawer after the last coil finished... and within a day I forgot about taking hits in the morning or while on the computer.

</comment></comment><comment><USER13> * All the cliche health benefits and then some! Car analogy: you'll fire up the other 2 cylinders while no longer needing to tow a caravan. Combine with exercise and better diet which will be easier to stick to due to no drugs to sap your will power.

* Ability to drive places. Not worry about being "DUI" the same or next day.

* You'll exercise your ability to say no! In the UK for example it is sacrilegious to not drink unless you have a good excuse, which apart from religion (along with appropriate ethnicity to make that believable) there seems to be no acceptable excuse. So you can say "fuck you, I'm not drinking that shitty poison" and be an outcast for a while, then find people worth hanging out with.

Australia is not as bad because of the sport culture. "My personal trainer said no" is acceptable and most places I have work have had a mild to zero drink culture.

Not sure about the US, but I get the impression that like Australia and unlike UK, Russia, etc. it more acceptable to not drink.

<comment><USER14> > Australia is not as bad because of the sport culture. "My personal trainer > said no" is acceptable and most places I have work have had a mild to zero > drink culture.

That's a pretty specific edge case.

If you're sitting at the pub with friends or work colleagues and you're the only one not drinking, you can expect some irritating comments.

I've learned to deal with it. I've figured out the main reason people push a drink on you is to justify their bad choices (e.g if you're at the pub with Bob and he's sinking 12 pints tonight, he doesn't want a reminder that he's killing his body and will have a terrible hangover in a few hours).

<comment><USER15> When I tried to stop drinking in college, I used to fill empty beer bottles with water to drink at parties. This helped a lot with social pressure. I reckon one could do the same in a pub if the bartender is understanding and discrete, but I never tried it.

<comment><USER16> Nowadays just get some Topo Chico (carbonated water) or you can drink the Heineken Zero.

</comment></comment></comment></comment><comment><USER17> I did it for year. Two big benefits: first, you are loosing weight (I lost ~10 pounds) and second, craving has gone. It was seriously concerning me and a big motivator to quit.

I did not find much difference in how I feel, but at least this disgusting feeling in your mouth in the morning has gone too.

</comment><comment><USER18> Binge drinking is not synonymous with alcoholism, but comes with many downsides nevertheless. The benefit to stopping binge drinking is to avoid the associated risks of binge drinking (including risks to health). Avoiding binge drinking could certainly improve work performance. However, just trying to avoid binge drinking may be difficult. I would consult a health professional who specializes in addiction.

[https://americanaddictioncenters.org/alcoholism- treatment/bi...](https://americanaddictioncenters.org/alcoholism- treatment/binge-drinking-problem)

</comment><comment><USER19> Lifestyle judgments aside, you'll certainly save a lot of money in the long term.

Good luck! I'm trying to rein in my affinity for craft beer (I love the beer but hate the empty calories that come with it).

</comment><comment><USER20> >I've decided to do a "dry" January and if I can do it, will try to extent to all of 2020.

There's no "can" about it, you'll do it, and you'll enjoy it. Whether it has to be a whole 2020 thing is up to you.

Personally I do dry months during the comparatively quieter social periods at the start and near-end of the year (leading up to Christmas), and I find that I both enjoy the months where I allow myself to drink and those that I remain dry all the more because of it. YMMV.

</comment><comment><USER21> I reached six months alcohol free in January. I didn't have a problem but once I turned 23 I found my body just seemed to no longer tolerate alcohol and decided just to try not drinking for a while.

To be honest, my life hasn't really changed as a result (socially), but I definitely feel healthier, have a clearer head and my skin has never been better.

Friends from college that kept drinking 4-5 times a week (2-7 drinks per outing), especially women, appear to have aged years more than me.

<comment><USER22> > Friends from college that kept drinking 4-5 times a week (2-7 drinks per > outing), especially women, appear to have aged years more than me.

I have observed this too. Not sure why but this and also smoking seems to hit women's age appearance a lot more than men's.

<comment><USER21> It's really kind of uncanny. I think the root of it is alcohol dries out your skin and causes lots of mid-level inflammation. Smoking is just all around bad for your body (I didn't realize it causes your body to heal about half as fast - although I've never smoked), granted your face is always inches away from a source of smoke.

</comment></comment></comment><comment><USER15> here is a testimony that motivated me to try and stop like you are : [https://thinkfaster.co/2019/02/quitting- alcohol/](https://thinkfaster.co/2019/02/quitting-alcohol/)

</comment><comment><USER23> Take the problem at the source and ask yourself why do you need to get wasted?

<comment><AUTHOR> Yeah true. I thought about this a lot and I think it is an expression of some inner nihilism and a self-destructive habit. By trying to focus on something creative and doing a good job, I can put the nihilism at bay and thus my desire to self-destruct through drinking is reduced.

</comment></comment><comment><USER24> I wonder why some folks seem to only go on these huge drinking sprees. Why do few people seem to discuss simply drinking 0-2 drinks daily? Ie using moderation like an adult.

<comment><USER20> I don't go on huge drinking "sprees", but I feel like this comment applies to me.

I don't drink during the week as I reserve it for social occasions, even though I really enjoy certain drinks (wines, cocktails and liquours). I also eat healthily during the week and try to look after myself physically and mentally.

I'm pretty actively social, between family and friends, and we get together pretty often. That manifests itself usually with a dinner, with a drink or two proceeding it depending on the time available, drinks over a nice slow dinner, maybe a digestif and then either relaxing with a couple bottles of wine and good conversation at one of our houses/apartments or maybe move on to go listen to some music, go dancing, etc.

All-in-all, over the course of a typical 5:30pm to 2am gathering, that can equate to quite a few units of alcohol (at one unit per hour you'd be looking at 8.5 units, and it doesn't take an hour to finish a cocktail or glass of wine) and the majority of the time it's not people getting wasted, it's simply enjoying themselves with a variety of alcoholic beverages they enjoy.

I, and I'm sure many others, enjoy this approach while also enjoying not drinking on a day-to-day, "more moderate" approach.

</comment></comment><comment><USER22> I don't drink at all anymore, but I also never liked the taste. I used to drink socially (maybe a beer or two or three, once a week), but I found better friends, so I don't need to do that anymore. It's been like 5 years.

> What were the benefits?

The benefits are that I look younger and I'm definitely smarter and sharper than people that binge once a week at my age. Alcohol dehydrates you (which makes you look older) but it also destroys your brain, especially in binges.

The downsides are some people try to peer pressure you or try to make you feel bad for not drinking in social situations.

My $0.02 are - if you can't do a dry January, for whatever reason, then you probably have a drinking problem and need help.

<comment><USER2> I don't drink and I _really_ wish it were true, but just drinking (unless you're alcoholic) by itself doesn't make you "dumber". You probably are anecdotally associating idiots around you (who tend to drink like the morons they are) with causation.</comment></comment>


Ask HN: Who have taken months off to learn coding and explore startup ideas? - <AUTHOR> How did it go for you? Would you have any tips on how to make best use of it, e.g. any specific bootcamp to join? Thanks! <comment><USER2> I have done it, but to learn to code and get a job, not explore startup ideas. As a side-effect, I also happened to build two products as side-projects. So my experience might help you on that too.

I was studying/coding between 6 and 8 hours each weekday for about 8 months until I got my first job as a frontend web developer.

I am of the opinion that you should not buy any resource (video courses, books) for learning to code until you can evaluate by yourself if it is worth the money. Which means that you should only go for free resources in the very beginning.

I spent the first 2 months solely on freeCodeCamp.org that I wholeheartedly recommend. Then I moved on to creating my own projects based on official documentation (I was mostly learning React, which has good documentation for beginners) and any tutorials that I could find.

So, first tip: after an initial understanding of the fundamentals, use it to build a project _before_ you are comfortable to do it. freeCodeCamp does a good job at it, but I think you should think of projects yourself and go on to build them, not just following your course projects.

Second tip: routine was very important for me. My wife would go to work, I would go to study, it was my work. I had all the flexibility in the world studying on my own, with free resources, from home. But I tried to follow work hours mostly. Of course the flexibility is nice and I took advantage of that, but those were the exception, not the rule.

About specific bootcamp, from an outside point of view, it seems that Lambda School seems a good place to learn. But only if you want to learn to code to get a job and start a career in software development.

If you are pretty sure that learning to code is a tool for building your own product while exploring startup ideas a similar path to mine is good enough. freeCodeCamp (or wherever site you prefer) to get the fundamentals and building a lot of small projects (googling how to do it while doing it).

By the way, learning to code helps _a lot_ with exploring startup ideas. A lot. Good luck!

</comment><comment><USER3> I have never specifically left a job to explore ideas. But when other reasons drive me to leave a job, I typically do not find my next job immediately -- I use it as an opportunity to explore options. If you have the means to take time off between jobs, I highly recommend it, as it also is a nice mental palate cleanser before you jump into something new.

<comment><USER4> I do exactly this as well.

Leaving an existing job (for any reason) is a moment of opportunity that allows me to evaluate where I'm at in my life and what the best options for me are.

Sometimes, it's getting another job. Sometimes, it's starting a new business. It all depends.

> If you have the means to take time off between jobs, I highly recommend it

I think the importance of this is hard to overstate. I make sure that I set aside enough money that I always have the financial means to take some time without an income.

</comment></comment><comment><USER5> I did it once. Here are the important things:

Screen the people you work with very closely. You might have the best startup idea, but if they just can't do their part, the time you invest in them takes away from your productivity. Sometimes someone you like is best in an unequal relationship.

Pay close _personal_ attention to the business (selling) side earlier than you want to. You don't have to sell your demo, like some people do, but you want to get a good feel for how your product fits into the market before you spend lots of time working on a dud.

In my case, I spent too much time working with someone who wasn't the right person to work with. If I had spent some time early on selling, instead of relying on my cofounder to do all the selling, my idea might have gone somewhere. Ironically, I believe that, if I found customers before I partnered with my co-founder, the business would have been a success.

</comment><comment><USER6> I can't talk about coding boot camps but I can talk about making the most of your time off.

I did something similar but I was already a programmer at the time. I did this to learn about graphics programming. I had been programming for about 14 years at this point but was totally unfamiliar with graphics programming.

I locked myself away in my room in a flatshare for about 6 weeks between contracts and grinded my way through OpenGL tutorials and Khan Academy's maths courses - eventually I threw together some simple scenes and made a simple top-down 3d shooter.

It was very productive. My tips:

1\. Set a schedule and set a goal for the day i.e. to be able to explain matrix transforms or fragment shaders to a beginner. I would do about 10 hours a day with a 2 hour break.

2\. Use the time also to focus on good diet and exercise. The discipline here will drive you to stick to the schedule. If you drink alcohol or do recreational drugs, take this as an opportunity to abstain. This is also an opportunity to abstain from anything else you feel is letting you down, such as excessive gaming (not a problem I have personally but many feel they do).

3\. Have an end goal for the entire session, - in my case I wanted to make a simple 3d platformer but it ended up looking a bit more like the original GTA games

4\. Keep a journal with your observations, about what you're learning but also about how you feel and whether your pace is sustainable. One of the mistakes I noted after reading my journal at the end was that I spent far too much time learning C++ to do the work, which I didn't know well. I could have done a better job if I had used a language I know better such as Python.

I later came to know this method of self improvement as "monk mode", only in my case with a very specific goal of learning graphics programming.

In terms of real world effects, I later co-founded a company with a product that used a custom 3d graphics engine to do some of its work. I developed the MVP but eventually hired programmers who have taken it forward beyond my skill level. However, my business would not have existed in its current form without this period of learning and introspection.

<comment><USER7> > I would do about 10 hours a day with a 2 hour break

How.

Seriously, how?

6 weeks of intense 10 hour per day studying...

Did you get a lucky brain or something? I literally can not stay focussed for 10 hours, even with little breaks here and there. And to do that for 6 weeks? The only way I can see this being possible is if the content you're studying is really exciting and fun for you. Otherwise, you must have a monk brain to do this.

<comment><USER2> A 2 hour break seems a good amount of rest; much different from _"little breaks here and there"_

My assumption is that GP routine would be 4 hours studying + 2 hours resting + 4 hours studying. Seems ok and most people could endure it for six weeks I think.

If it was 5+2+5, might be a little harder, but feasable. Both ways, I think the long break in the middle would be the secret for me

<comment><USER7> Ah ok. I had read his post as being a total of 12 hours (5+2+5). 4+2+4 seems more manageable.

<comment><USER6> Actually it was 5+2+5. If I find something sufficiently interesting I don't have a problem with focusing on it. Learning the maths was definitely the hardest and perhaps on those days I didn't perfectly stick to the schedule but when it involved implementing that into a solution, so long as I can see the solution beginning to come together I can stay motivated long enough to work on it.

Perhaps I do have a "monk brain" as you've put it but I certainly wasn't born that way, I actually have very little in the way of formal qualifications and barely made my way through school. I believe I was able to achieve this when I started working and began seeing results as my skills improved.

My life is a bit more complicated now and I couldn't imagine doing something similar today. The best I can do is a few hours over the weekend trying something new. I'm glad I took the opportunity when I did.</comment></comment></comment></comment></comment>


Orson Scott Card interview – Atari computers and computer games - <AUTHOR> https://www.youtube.com/watch?v=mWFZ84u11Wo <comment><USER2> Not sure where the YouTube link goes (project Fi and off WiFi, no thanks to video haha) but I'm suspecting it's the ANTIC podcast interview (323) that Kevin did back in January [https://ataripodcast.libsyn.com/antic- interview-323-orson-sc...](https://ataripodcast.libsyn.com/antic- interview-323-orson-scott-card-compute-books)

There's also on with Geoffrey Card, his son [https://ataripodcast.libsyn.com/antic- interview-324-geoffrey...](https://ataripodcast.libsyn.com/antic- interview-324-geoffrey-card-kid-game-reviewer)

If you're an Atari fan and not already over at [http://atariage.com/](http://atariage.com/) come join us in the forums [http://atariage.com/forums/](http://atariage.com/forums/)</comment>


Online Books Page – University of Pennsylvania - <AUTHOR> https://onlinebooks.library.upenn.edu/subjects.html <comment><AUTHOR> Some context: This page mostly hosts links to freely available online resources (mostly PDFs from other University sites). The advantage is it will show useful results that mostly get lost in Google Search for a broad term (Eg: 'compiler').

I personally feel usability is fine but a little confusing compared to libgen. But that's not an apples-to-apples comparison. I personally don't prefer pirate technical works and search freely available ones (except those mandated by institution etc..).</comment>


List of National Emergencies in the United States - <AUTHOR> https://en.wikipedia.org/wiki/List_of_national_emergencies_in_the_United_States <comment><USER2> It's really increased in the last few presidencies, Clinton kicked it off and it's been emergency after emergency ever since.

</comment><comment><USER3> The wall just got one <tr> taller.</comment>


JP Morgan in massive lawsuit over 'fraudulent' IT system - <AUTHOR> http://www.computerworlduk.com/news/it-business/3335371/jp-morgan-boa-wells-fargo-sued-over-fraudulent-mortgage-it-system-attorney-genera-mers-foreclosure/

<comment><USER2> This article is riddled with blatant inaccuracies, starting with the fact that Schneiderman is _not_ "US attorney general" (he is actually _New York State's_ attorney general). Here's the official statement from the NY Attorney General's office about this lawsuit and its goals: <http://www.ag.ny.gov/media_center/2012/feb/feb03a_12.html>

Here's a good analysis of the lawsuit and its potential implications: [http://www.nakedcapitalism.com/2012/02/schneiderman-files- ci...](http://www.nakedcapitalism.com/2012/02/schneiderman-files-civil-fraud- lawsuit-against-three-major-banks-for-use-of-mers.html)

<comment><AUTHOR> That point has been corrected.</comment></comment>


Ask HN: What's your life goal? - <AUTHOR> What's your current life goal? And why?<p>Could also be 5, 10, 20 year goals, etc. <comment><USER2> 5 years goal: save enough money to safely retire.

20 years goal: find something to do that I will enjoy and get really good at it.

</comment><comment><USER3> 5 years: create a 100MM+ company

Life goals:

1) Change the way how the people work or "think about work"

2) Try to change education system

</comment><comment><USER4> In 5 years sail around the world in a 1 mil catamaran and we'll see after I get bored with it...</comment>


Thanks Joel and Jeff for NerdAnswer, GeekAnswer, FirstBestAnswer etc Etc. - <AUTHOR> StackOverflow, for all its many faults, is an invaluable game changer.
However I would like to turn Joel and Jeff around and kick them swiftly in the pants for deciding that it was important to make the entire damn StackOverflow database available under some sort of sense that it was important to be "open".
Now the Internet is flooded with StackOverflow clones clogging up the search engines with duplicates of StackOverflow.
So now instead of being to use Google and StackOverflow in concert to hone down to the right answer, I have to fight my way through NerdAnswer.com, GeekAnswer.com, FirstBestAnswer.com etc etc all clones of StackOverflow and adding precisely nothing except noise.
So Joel and Jeff thanks for the most valuable resource ever in software development.
Equally the most flawed. Please bend over and prepare for the boot. <comment><AUTHOR> Also helpsforcoder.com askstop.net

If you know any others please add them to the list of "damn useless clones of StackOverflow that we must remember to thank Joel and Jeff for creating."

And what about you Google, why do you index this shit? I would have thought that it would be easy to work if a site is a clone of StackOverflow and exclude it from the index. Crap like this is what is decaying the value of Google.</comment>


Europe issues alert over "more or less potentially harmful" cell phone radiation - <AUTHOR> http://arstechnica.com/tech-policy/news/2011/05/council-of-europe-to-consider-ban-on-wifi-and-mobiles-in-classrooms.ars

<comment><USER2> Counter point: <http://www.theregister.co.uk/2011/05/24/euro_phones/></comment>


iOS-like dark menu bar for OSX - <AUTHOR> http://eece.github.com/MenuBarFilter/

<comment><USER2> What's with this trend of people in HN using IOS instead of iOS? IOS means (among other things perhaps), Cisco's operating system Internetwork Operating System used to program routers. Please use the correct names. (It's not ambiguous in this case but it would be really helpful)..

<comment><AUTHOR> In this posts case it is down to HN automatically capitalising submission titles.</comment></comment>


Big Brain Theory: Have Cosmologists Lost Theirs? - <AUTHOR> http://www.nytimes.com/2008/01/15/science/15brain.html?ex=1358053200&en=d97b363856958542&ei=5088&partner=rssnyt&emc=rss

<comment><AUTHOR> More info on this strange stuff: [http://cosmicvariance.com/2006/08/01/boltzmanns-anthropic- br...](http://cosmicvariance.com/2006/08/01/boltzmanns-anthropic-brain/) <http://cosmicvariance.com/2008/01/14/boltzmanns-universe/></comment>


Show HN: Curated List of Windows Utilities - <AUTHOR> https://orga.cat/posts/windows-utilities <comment><USER2> Made a similar post a while ago [https://medium.com/@auver/here-are-some-free- applications-th...](https://medium.com/@auver/here-are-some-free-applications- that-enhance-windows-by-a-lot-d230ea4f19dc)

<comment><AUTHOR> I'll have a look :)

</comment></comment><comment><USER3> Missing Total Commander here, the first software I install when first starting a new computer.

<comment><USER4> Total Commander is by far the best file manager out there.

Highlights to Double Commander, the unforgiven clone of Total Commander.

<comment><USER3> Which only is a clone of the notorious Norton Commander. Back in the days...

</comment></comment></comment><comment><USER5> I would switch to Pale Moon instead of Firefox for the browser. Then again, I'd also add in FreeMind for mind-mapping.

</comment><comment><USER6> Nice list. Am I the only one using IrfanView as an image viewer? Is there anything better?

<comment><AUTHOR> I prefer XnViewMP and FastStone, but they are comparable.

If you don't need to open weird formats, JPEGView is the quickest.</comment></comment>