Kosmonaut: web browser from scratch in Rust - <AUTHOR> https://github.com/twilco/kosmonaut <comment><USER3> Does anyone think it would make sense to create a drastically simpler set of web standards, so that making web browsers would become much simpler?

Such a simpler web spec would be relatively fast moving, not focused on backwards compatibility, but instead on simplicity of implementation. HTML would have to be written correctly (eg. balanced tags), old styling mechanisms would be removed so that layout engines wouldn't have to accommodate them. Everything would be pared down.

I believe this would open the playing field for many people to create browsers, would breath life into the now basically empty browser space and the Web in general.

Of course adoption would be a big issue, but that's always a big issue. I wonder why this wouldn't make sense to try, given the current state of affairs. It doesn't make sense to just give up on the Web. Why not re-invent it a litte?

<comment><USER4> _a drastically simpler set of web standards, so that making web browsers would become much simpler_

Yes, yes, yes!

 _would be relatively fast moving, not focused on backwards compatibility_

No, no, _no_! Constant churn is precisely the problem with the web today, as it is what creates all that complexity and bloat. What you really need is a simple and _stable_ set of standards, ideally something that won't change in decades (somewhat like how ASCII has been) so that any implementors don't have to engage in mindless trendchasing.

In fact, we already have a simpler set of web standards. It's called HTML4 and CSS2. Browsers like Dillo and NetSurf handle them well, and site like HN and Craigslist are an example of what the resulting format is like.

<comment><USER5> Unfortunately, HTML4 and CSS2 are severely underspecified, so actually implementing them interoperably without reverse-engineering is impossible. Oh, and some places where they _are_ clearly specified that specification is more or less broken. For example, implementing comment parsing per the letter of the HTML4 spec is extremely not-web-compatible, and I doubt that either Dillo or NetSurf do it...

Now if you know which things to avoid (e.g. never put "\--" inside your comments) and don't care about "pixel-perfect" rendering or any sort of interesting layout, HTML4 and CSS2 are not terrible. But if you care about any of that, watch out for dragons.

And before someone brings up "tables" for "interesting layout": table layout is unspecified. In CSS2, and CSS3 for that matter. Not only is it unspecified, it's not entirely interoperable across browsers even now, after literally decades of reverse-engineering each other. And for extra fun, WebKit/Blink's implementation is definitely not interoperable with the IE (Trident) implementation most table-based layouts targeted... As one example, changing the order of rows in the table can change the column widths in Blink but not in Trident.

Anyway, if one wanted to start with HTML4 and CSS2, one _could_ try to turn them into proper standards that can be interoperably implemented. It would take quite a lot of effort to do that, I suspect. 50 person-years is my initial guess, but there are a _lot_ of unknowns involved and a lot would depend on how much of the HTML5 and CSS-post-2 work that defined things rigorously could be leveraged.

<comment><USER4> _and don 't care about "pixel-perfect" rendering or any sort of interesting layout_

A common theme in all these "reinvent the web/browser" discussion is going back to the web as a hyperlinked document library and not an application platform, in which case pixel-perfect rendering is neither necesary nor even a goal.

 _For example, implementing comment parsing per the letter of the HTML4 spec is extremely not-web-compatible_

HTML5 parsing is completely specified and definitely compatible, even the error cases. Any stream of bytes will turn into a DOM. (Philosophical question: are they even errors anymore, if all implementations will produce the same output?) Perhaps that would be a good starting point.

<comment><USER6> > A common theme in all these "reinvent the web/browser" discussion is going > back to the web as a hyperlinked document library and not an application > platform, in which case pixel-perfect rendering is neither necesary nor even > a goal.

And how exactly would one even put this genie back in the lamp?

<comment><USER7> Have HTML5 as an application platform and markdown or something as a hyperlinked document format?

<comment><USER8> Which Markdown? There are so many to choose from....

In seriousness: Most Markdowns are 1) fairly similar and 2) sufficient for the vast majority of documents. If the goal is a stable, mature, and complete markup language, I'd be inclined to give LaTeX top billing. Markdown can of course generate LaTeX.

<comment><USER9> (La)TeX is a bad fit because its document model is based on paginated documents with a fixed page size, whereas HTML documents are intended for variable viewport size. LaTeX is to HTML as PDF is to EPUB.

<comment><USER8> No it is not.

LaTeX can, whether through the old model of dvi, or modern tools such as xlatex and pandoc, directly produce numerous document formats or "endpoints" as I consider them, including HTML, ePub, plain ASCII (or UTF-8) text, or paginated formats including ps, PDF, and djvu. _LaTeX is not itself fundamentally print-oriented._ The fact that it _can_ and _does_ produce excellent print-formatted output is a feature, not a bug.

What it _is_ , and pointedly in ways that HTML lacks, is capable of intrinsically handling document-centric ( _not_ merely "print") elements including footnotes, endnotes, and formulae, all of which still require kludges after over a quarter century on the Web.

Markdown itself does not address several typographic or document conventions, including formulae, but also odd omissions such as underline and coloured text. Whether those get shimmed into Markdown, or an alternate (light- or heavy-weight) markup language is adopted, isn't clear, but those are very annoying lapses.

For the vast majority of documents, this does not matter. Most online content, say news media, use little more than paragraph, italic, and anchor elements. Even bold and list are rarely used. _Authoring_ in Markdown should be almost wholly sufficient, but it's (La)TeX which has sufficient richness of expression to serve as the common underlying document format language.

Late edit: It also occurs that another principle angle of attack on HTMK alternatives, raised elsewhere in this thread, is that these cannot guarantee pixel-perfect presentation. That results in rather a "damned if you do, damned if you don't" situation: propopsed markup alternatives either cannot guarantee layout or over-guarantee layout. These objections rather want for consistency.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> One of the good things to come out of Servo was the modular design, which allows other projects to reuse components, such as the CSS parser and the HTML parser. I'm glad that has proven to be worthwhile. I just wonder if there's enough people in the community to keep those crates up to date.

<comment><USER11> Mozilla recently cut off 25% of their employees. I believe this will have a major effect on the Servo project, so we'll see where it goes.

<comment><USER12> By multiple reports, most of the Servo team was laid off (apparently sourced to former team members on twitter). See, e.g., [https://www.zdnet.com/article/mozilla-lays- off-250-employees...](https://www.zdnet.com/article/mozilla-lays- off-250-employees-while-it-refocuses-on-commercial-products/)

</comment></comment></comment><comment><USER13> I just had an interesting train of thought. People have assumed for some time now that writing a browser engine from scratch is intractable because of how large and complex web standards have become.

But what if you didn't have to implement all of them?

Now, some people would suggest we jettison JavaScript and/or CSS entirely. Or at least all of the additions made to them over the past decade. I think the idea that a browser like this would gain _any_ traction outside of hardcore enthusiast circles is pure delusion.

Instead, what if features were prioritized based on how much of the web uses them? I'd bet that 90% of the web only uses 50% of the web standards out there. Some things like Flexbox are used on practically every new site that gets built these days. But there are dozens of obscure CSS properties that most web developers probably don't even _know_ about, much less use. And JavaScript APIs? There's a host of bespoke progressive-web-app APIs (USB access, anyone?) that hardly anybody uses.

Also, a huge part of the web's baggage is maintaining backwards-compatibility with the entire history of content. This is well and good, but not an ideal that an indie browser could afford to uphold. Frames, image area tags, etc. There's probably a long tail of features - many of them deprecated - <USER2> could be jettisoned without having much impact on the average user's experience. Even things like "float", which aren't deprecated, may have been instrumental at one point but are no longer very important.

Prioritizing the standards that matter and de-prioritizing the ones that don't could dramatically cut down on the effort necessary for an MVP.

Taking this further: how do we know which features to prioritize? Most front- end devs probably have a rough idea, but what if we got empirical with it? What if we automatically tested the top 10,000 websites or something and made note of which CSS properties they used, which JavaScript APIs they called out to, and ranked them by frequency (and by popularity of the site?). We could chart a clear, direct path toward "what does it take for a browser to be useful in 2020?"

It's possible this browser could even include existing JavaScript polyfills ([https://developer.mozilla.org/en- US/docs/Glossary/Polyfill](https://developer.mozilla.org/en- US/docs/Glossary/Polyfill)) to help bridge the gap for things that it hasn't yet implemented. Leaning on work that's already been done by the open-source community.

<comment><USER14> The complexity in supporting CSS does not come (primarily) from its individual properties, no matter how obscure. It comes from things like margin collapse, from correctly determining the stacking context, and about a gazillion other things like that.

These aren't things where you can just scan the CSS of the top websites to find out if they're being used. These are things where you'd have to do visual comparisons to the output of at least two other browser engines to determine if you end up with the same result.

Building a browser engine from scratch is imho more doable now than it's ever been before (excepting EME), due to the insane effort by the WHATWG standards to truly describe what is actually happening in browsers (rather than coming up with some theoretically pure description of what is envisioned to happen), and the similar level of detail on the CSS side to the myriad interactions between properties, along with the huge set of testcases for all of that.

Yes, there's _a lot_ - but compared to how loosely specified it all was in the past, when the instruction for building a browser engine was: "reverse engineer the bugs the dominant browser engine of today made in reverse engineering the bugs of the dominant browser that came before, and emulate that to your best ability", anyone starting from scratch nowadays has a way better chance at succeeding.

<comment><USER15> My favourite example of the thousand-yard-stare horror of web specs is Manish's "Font-size: An Unexpectedly Complex CSS Property". It's awful and hilarious and just keeps getting worse and worse and worse.

[https://manishearth.github.io/blog/2017/08/10/font-size- an-u...](https://manishearth.github.io/blog/2017/08/10/font-size-an- unexpectedly-complex-css-property/)

<comment><USER13> Yeah so this is exactly the kind of thing I'm talking about:

\</comment></comment></comment></comment><comment></comment><comment>-----

The syntax of the property is pretty straightforward. You can specify it as:

\- A length (12px, 15pt, 13em, 4in, 8rem)

\- A percentage (50%)

\- A compound of the above, via a calc (calc(12px + 4em + 20%))

\- An absolute keyword (medium, small, large, x-large, etc)

\- A relative keyword (larger, smaller)

The first three are common amongst quite a few length-related properties. Nothing abnormal in the syntax.

The next two are interesting.

\</comment><comment></comment><comment>-----

I've been doing front-end web dev for nearly ten years, and I've never even _heard_ of those last two, much less used them. That's the kind of thing a new browser could defer support for until after the MVP, while barely detracting from the average user's experience.

Though this does remind me that i18n is a thing, and how gnarly of a problem it must be for a piece of software so concerned with text flow/layout, and ideally it's not something that a theoretical upstart browser would punt on.

<comment><USER16> While I think you're right that the last two are very uncommon, they are not a large contributor to the complexity of handling font sizing. Once you've done all the rest, I suspect you could add them with <5% more work.

Leaving out rare features to build a browser more quickly only makes sense if those features let you remove a lot of complexity from your implementation.

<comment><USER13> When it gets to the point of diving into the last two, the article literally says:

> Alright, this is where it gets complicated.

I haven't implemented any of the above myself, but the author at least seems to think the last two are where the complexity is concentrated.

<comment><USER16> Sorry, you're right. I've gone back and read the article and there was complexity in those two that I had completely forgotten about.

</comment></comment></comment></comment><comment><USER17> I'm writing my web publishing platform to work on HTML4 and CSS2 standard so I can brag about how it's still performant on Mac OS9.

I just need background images, absolute positioning, <area> \+ image-map, and form submission to work as expected. No JS.

Classic Macs aside, I would be thrilled to find a no frills rendering engine that I could package up like an Electron app serving from localhost, but without all the performance expectations of electron apps. I'm imagining like what Ionic does for apps -- just wrap everything in an OS provided web viewer -- what's out there like that for desktop?

<comment> c-smile > to find a no frills rendering engine that I could package up like an > Electron

Here it is: Sciter ([https://sciter.com](https://sciter.com)) and Sciter.Quark ([https://quark.sciter.com](https://quark.sciter.com)) in particular.

<comment><USER18> not quite the same but certainly addresses the Electron bloat criticisms:

[https://neutralino.js.org/](https://neutralino.js.org/)

<comment><USER19> Interesting, but should be clearer about what this entails. What are the native browser components currently using? Windows: some old IE, EdgeHTML+Chakra, Blink+V8? Linux/macOS: WebKit?

<comment><USER20> They are using [https://github.com/webview/webview](https://github.com/webview/webview) under the hood, which is using Cocoa/WebKit on macOS, gtk-webkit2 on Linux and Edge on Windows 10.

</comment></comment></comment></comment></comment><comment><USER21> Lots of good comments with good points but none about security so far. There is no lack of alternative browsers, really. Personally, I find projects that take a new approach highly interesting. More interesting than those that that clone what Chrome and Firefox do. I used surf, uzbl and luakit extensively, but what prevents me from adopting them as daily drivers is always the nagging concerns about security.

As unlikely as it may seem, I can well imagine that a dedicated team produces an alternative browser that - feature-wise and functionally - is good enough for daily use for most people. For the life of me, I cannot imagine they will come up with a browser that is as secure as Chrome.

Let's face it the amount of work and money that has been put into Chrome's security is amazing. As much as I love Rust and how it helps us write more secure software, it only gets us so far when it comes to the multiple threats a web agent implementation has to face.

<comment><USER22> A pure Rust browser is immensely more secure than any browser written in C++, at least against memory safety bugs. There is still the source of logic bugs, stuff like the same origin policy, but the worst that can happen is an XSS attack instead of RCE or similar. The browser would be ideal to access the 99% of websites you don't log in to (provided that the browser can actually render them correctly), and eliminate the main danger from them. For websites you log in to, you can still use Chrome.

<comment><USER23> You overestimate the number of issues that Rust would solve, versus the actual sec issues browsers have.

<comment><USER24> Something like 70% of all CVEs in C++ applications (including browsers--the actual type of application doesn't seem to matter much) are memory safety issues. Yet the myth persists that memory safety isn't an important bug class for stuff written in modern C++. I think the converse is true: most C++ programmers tend to significantly underestimate the number of remaining bugs in their code that are memory safety bugs.

<comment><USER25> How many memory safety issues are in the JIT? Because Rust won't help you there.

<comment><USER24> Bugs related to the JIT are normally counted separately, AFAIK. The 70% figure tends to hold even in systems with no JIT. However, it would not surprise me if about 70% of JIT CVEs are memory safety bugs. The trend for unsafe Rust so far seems to be very similar BTW (about 70% of unsafe Rust CVEs are memory unsafety--contrasted with virtually no non-unsafe Rust CVEs that are memory unsafety, and all that were are due to compiler bugs).

The overall trends tell me that in the absence of a proof assistant, however carefully you scour your code for bugs, you will miss some. And 70% of the ones you miss will be memory unsafety unless you are using a system that explicitly prevents this.

</comment></comment></comment></comment></comment></comment><comment><USER26> Hacker News: implementing an incomplete subset of Web standards to focus on things that matter to everyone, like performance and privacy, is a great idea. Also Hacker News: fuck Safari.

<comment><USER27> How is safari focusing on performance and privacy? AFAIK its the worst performing browser and easiest one to fingerprint.

<comment><USER28> Tangential to performance, but last I used it (2018ish) Safari had by far the best power efficiency, which is important when running on battery power (iOS and MacBooks are Apple's most popular devices). It was like a 2-3X difference, doubling the battery life. I thought that was really interesting, how much they optimized for that, and how Chrome seemingly did not at all.

<comment><USER29> That's pretty surprising, considering chrome on iOS is basically just a safari skin. Is there a more in depth look at this anywhere?

<comment><USER30> I'm pretty sure the GP is referring to battery usage comparisons on Mac and not iOS.

There may be battery use differences on iOS too (the UI, networking and other pieces are still Chrome's), but not of the magnitude described here.

<comment><USER28> Since Chrome on iOS is mostly safari (as far as the heavy lifting goes), I expect Chrome on iOS is easier on battery than it is on Android.

My meaning was that Safari is heavily optimized for power usage because most people using it are on mobile devices, and the difference is dramatic, at least on macOS where you can compare it.

I wonder how Chrome's traffic compares across mobile, laptop and desktop (I don't think laptops can be detected in browser stats). They certainly seem to focus on maximum performance above all else.

</comment></comment></comment></comment></comment></comment><comment><USER31> Could something like this be used as the renderer for desktop applications? Instead of running a full fledged browser like electron, you basically just write all the logic in rust, and render the UI with css+html.

<comment><USER32> In theory. The Sciter engine is not far off that, though it uses its own scripting language:

[https://sciter.com/](https://sciter.com/)

EDIT: reply to c-smile below (HN won't let me reply, sigh):

My "in theory" was referring to Kosmonaut. Then I pointed out Sciter as evidence that something similar has already been done.

<comment> c-smile Why "in theory"? Here are real life applications: [https://sciter.com/#customers](https://sciter.com/#customers)

<comment><USER32> My "in theory" was referring to Kosmonaut. Then I pointed out Sciter as evidence that something similar has already been done.

</comment></comment></comment></comment><comment><USER33> A browser engine which supports a subset of the features of Chrome, Firefox etc and can be used as a lightweight and fast alternative to Nodejs/Electron for cross-platform desktop app development could be a really useful product.

<comment><USER34> Since you are ditching compatibility here, you can also ditch the browser engine.

<comment><USER22> You only ditch compatibility for existing content. You still keep some level of compatibility with developer knowledge and teaching material. Most websites and electron apps don't need a WebSQL implementation, yet all electron apps ship with one, bloating the downloads for all users.

<comment><USER35> I don't think WebSQL is the best example. Chromium uses SQLite for other things (bookmarks, history, etc.) and WebSQL is mostly a JS API for interfacing with SQLite so I'm guessing the overhead isn't huge (and SQLite is pretty small to begin with).

<comment><USER22> Good point, and while the average Electron app probably doesn't need history or bookmarks, there are probably use cases it would still need WebSQL for. Another example would be the ffmpeg copy it ships to play back videos of various formats, even though the electron app only plays back a few hardcoded animations that all are in a single format.

</comment></comment></comment></comment></comment><comment><USER36> These are perhaps since the whole complexity of css and dom and box models etc. is beyond me specially how the complexity actually multiplies. But I have always found the complexity of modern web not just unsustainable or risky but frustratingly wasteful.

Browsers are a universal medium both for content and UI for app and that's great. But they are kind of the most wasteful creation ever. The most obscene apps of yesteryears would do a lot more with a lot less. An example of that is gmail taking 600MB memory (according to chrome) far more than a desktop client that didn't depend of the server doing all the heavy lifting would have taken. It would have all my mails locally, would actually be much faster changing pages (if done correctly).

But I digress. I think the complexity comes from (apart from over engineering syndrome) trying to deny that there's two very distinct use cases of web. One is nicely formatted semi static content and fairy dynamic stateful applications. I think designing a set of features (even modes in browsers that a page needs to declare for) can simplify things a lot.

The second thought I had was a brand new layout model/engine that does away with all the crafts and define some powerful primitive that works in a more well defined way that doesn't take a Google to properly implemented. Now I was thinking of two options of how to get that accepted.

1\. A page can declare itself using the new primitives (now there can be two primitives for doc/app or this simpler one might handle both?) and the engine is small enough that it's worth having two in the browser. And the saving from some pages specially as it grows over time specially for well maintained/popular pages use the faster version the overall browser efficiency increases even if you can't remove the old engine.

2\. Can there be a translation layer that can take a old layout page and rewrite the css/layout into the new primitive. It's perhaps slower than the current engine and perhaps on changes to content/viewport/scroll retranslate a lot but perhaps allow one to drop the old layout engine a lot faster.

Complete bonkers? I am almost certain it is but I don't know enough to tell and I have been meaning to ask to a crowd who can answer.

<comment><USER3> The complexity of the web is not just unsustainable—as of this past week and the demise of Firefox it has officially become "unsustained".

I agree it must be challenged, and I think the way to go is to create a simpler web spec with a mantra that is totally oriented around simplicity. The web seems to have died this week, and I'm not sure how else it can be reborn.

<comment><USER37> "Demise" is nothing less than hyperbole.

<comment><USER3> They stopped developing Servo and their dev tools. How does that not signal the end of Firefox as a non-Blink, non-Webkit browser?

Edit: I see you work at Mozilla. IMO Firefox is the most important software project in the world (not hyperbole). Are you saying it will somehow remain an independent web rendering/execution platform given this past week?

</comment></comment></comment></comment><comment><USER38> Given the current Cold War state of the Browser Wars I very much support any attempt to come up with something new that focus on speed and privacy, lots of good luck!

EDIT: I know this may be too premature to ask but does it make sense to calculate a Acid Test result these days? I have no idea, hence the question.

<comment><USER39> Acid3 is 12 years old. Of course a lot of it still applies today, but I suspect it's more flashy than useful for browser developers.

Web Platform Tests are where it's at if you're developing a browser and want a test-suite.

<comment><USER16> Specifically: [https://wpt.fyi](https://wpt.fyi)

</comment></comment></comment><comment><USER40> Super exiting stuff. This is the renaissance of software.

The time we pause, and re-architect and code existing constants from the ground up. To be grown up.

The elegance of this is superb.

</comment><comment><USER41> To those pointing out that dillo, netsurf, and phoenix didn't get anywhere... You're not wrong. But, on the other hand, the last thing anyone thought we needed was "yet another" search engine in 1997 when google dot com was registered.

You just never know.

</comment><comment><USER42> I wonder how Rust will influence the outcome of this project? Will the Rust paradigm prevent memory leaks or somehow improve on the architecture of the big hitter browsers like Firefox and Chrome?

It's super exciting to see how Rust will fare with building new iterations of existing tech.

<comment><USER43> Rust doesn't prevent leaks, by the way, though it doesn't tend to produce them.

<comment><USER44> Rust forces you to think about ownership.

It doesn't prevent leaks, but it _does_ put you in the right frame of mind to not write them.

</comment></comment></comment><comment><USER45> One possible use case for even a minimal html/css renderer is for UI layouts outside of a browser. There's no need to bundle a JS engine to run some code if your team is already comfortable using another language.

<comment><USER46> For layouts outside of a browser, a specialized XML format other than HTML and CSS running in a VM would be _more_ preferable. Everyone complains about how web tech is inadequate for UI design - it's a hack, not a solution.

<comment><USER45> Sure but it's a hack that has a lot of popularity, even if only because of the web.

<comment><USER46> Being the most popular thing doesn't necessarily make it the best thing.

We should be looking at "native web apps" as a stepping stone, a proof of concept for the architecture and design patterns of the web, but necessarily the platform itself. At the end of the day, it's just an XML document, stylesheet and escripting language running in a VM. There's no reason it _has_ to use a browser engine and HTML.

</comment></comment></comment></comment><comment><USER47> If you're interested in writing a browser from scratch, you may be interested in the book I'm writing on the topic: [http://www.browser.engineering/](http://www.browser.engineering/)

Really cool to see someone trying to build a new web browser. It is certainly sad that the number of browser engines is shrinking rapidly.

<comment><USER17> Looks really interesting, I tried to sign up but got a 'something went wrong' with this stack trace in the console

      Uncaught TypeError: msg is undefined
          handle_response http://www.browser.engineering  /signup.js:67
          onerror http://www.browser.engineering/signup.js:49
          submit http://www.browser.engineering/signup.js:48
          SignupForm http://www.browser.engineering/signup.js:13
          SignupForm http://www.browser.engineering/signup.js:13
          <anonymous> http://www.browser.engineering/signup.js:82
          EventListener.handleEvent*   http://www.browser.engineering/signup.js:80

<comment><USER47> Huh, sorry about that. What browser are you using? Mobile or desktop? If you email me (email@example.com) I can manually add you.

</comment></comment></comment><comment><USER48> I feel like there is room for a FAST browser with very limited CSS and no JS support. It could spur a minimalist information driven trend.

<comment><USER49> JS is too useful to ditch entirely. I think it would be interesting to design a language that deterministically uses compute resources, and then limit web pages to a certain amount of them.

<comment><USER50> In a better world, JS used to implement convenient web page features like rendering LaTeX or syntax highlighting would be implemented inside the web browser, while JS used to implement web apps would not exist and web apps would just be apps.

<comment><USER51> I like my apps to run in a sandbox, and the web is the best sandbox we have. My standard reaction to "would you like to download our app" is "no, stay in your box".

<comment><USER50> Let's sandbox the apps!

<comment><USER51> We have. They run on the web, in tabs. Or, with PWAs, they look a lot more like native applications, and still run in a safe sandbox. (There are also Android and iOS apps, which are less ideal and less portable.) Why reinvent it in a less portable, less sandboxed, historically insecure manner? People have tried, and the result never ends up as useful, functional, or secure as the existing web sandbox.

When I browse the web, I know the browser puts me in control, and keeps applications contained. The only kind of app that I know will have comparable sandboxing is a PWA. Anything with a comparable amount of control will look like a web browser, and we already have the web.

If you want the world to change, you have to offer something better.

<comment><USER50> There is great technology out there for app sandboxing. Recent Windows versions let you instantly spin up a virtual machine to run unknown apps in - I'd say that's safer than a browser and there is no reason why it can't be as convenient.

You speak of the web as an app platform - I'm not opposed to some platform like that existing (and they do exist, just look at your OS), I just think that we made a mistake when we turned the browser into one. Now we mix together hypertext and code and have so much weird legacy to maintain, not to mention the performance issues.

</comment></comment></comment></comment></comment></comment></comment><comment><USER52> Is this related to Servo,and if so how? Servo is the Mozilla team's creation of a browser engine in Rust The team recently got laid off by Mozilla but the development is apparently continuing as an Open Source project.

<comment><USER41> In a strict sense of the word "related", yes. From the bottom of the post (README.md):

"...heavily inspired by Servo, sometimes taking code directly from it."

</comment></comment><comment><USER53> What does it take to hook up something like this with nodejs? This just renders the dom while you manipulate dom with js. Would this be a lot smaller and more customizable than electron?

</comment><comment><USER54> If you prioritize tabs on the side (instead of up there) I will come and work for free on your project.

<comment><USER55> Why does it have to be one or the other?

<comment><USER54> because one is objectively better than the other

<comment><USER32> Surely not. They are simply each better for different use cases.

If you have ~5 tabs then tabs on the side is a waste of screen real estate. If you have 50 then on the top is unreadable.

<comment><USER54> Do you ever have websites that use the full width length of your page? I've never seen that except for horizontal scroll webpages or if you are on a tiny screen.

<comment><USER32> I definitely have. Gmail is one that comes to mind: it scales to let you see more of a message.

A lot of people are on 13" laptop monitors, they're not _that_ wide.

</comment></comment></comment></comment></comment></comment><comment><USER56> Building seems to require nightly, not just beta due to use of the `or_patterns` feature.

        rustup toolchain install nightly
        rustup default nightly

All tests passed for me. Check out main.rs to get an idea of where it's at. Not as fun without text though :)

</comment><comment><USER57> Can this be embedded into other apps or is this "just another browser"? The page says it's a browser engine, but it mentions using opengl and glut, so I'm not sure. Seeing as it only has a `src/main.rs` I assume it's an app, not a lib?

</comment><comment><USER58> Use stylo for css rendering.

Stylo is also a servo component that is ready for production.

</comment><comment><USER59> How does one get started with building a rendering engine? I would love to get some guides on this. I agree that there are inherent problems with css with how complex it is now

<comment><USER60> Let's build a browser engine! [1] by Matt Brubeck is a good place to start. I see Kosmonaut cites it in its README

I once took a stab at rewriting it in C99 using reference counting for memory management [2], so I recognised the screenshot in Kosmonaut immediately.

Unfortunately the article series stops before explaining inline layouts and I never got around to doing anything further with my implementation.

[1] [https://limpet.net/mbrubeck/2014/08/08/toy-layout- engine-1.h...](https://limpet.net/mbrubeck/2014/08/08/toy-layout- engine-1.html)

[2] [https://github.com/wernsey/robinson-c](https://github.com/wernsey/robinson-c)

</comment></comment><comment><USER61> Ok, so it might be the best new thing, and hype can be enormous, however at the end of the day there's only one question - will people use it?

<comment><USER62> There is no project where you can be 100% sure about the success.

</comment></comment><comment><USER63> I'm sure this is fun and all, but the only things which will fix the web are:

1) a replicable business model that doesn't rely on advertising/surveillance revenue

2) search you can't game with keywords or SEO

Until those are solved, we're all trapped doing Google and Facebook's work for them. No amount of changes to the languages or browsers which parse them will have any noticeable effect on the majority of the web content or its users.

</comment><comment><USER64> Question: what's the advantage of Kosmonaut over just forking Servo and continuing to maintain it?

<comment><USER65> It looks like it's an independent toy project right now that happens to use some pieces of Servo. So probably no particular advantage as of now.

</comment></comment><comment><USER66> As a tangent, is there a Firefox focus equivalent for the desktop?

</comment><comment><USER67> How does this compare to Dillo?

</comment><comment><USER68> Given the recent layoffs at Mozilla the future of Rust seems bleak

<comment><USER69> Both MS and AWS are interested in Rust. I doubt it's going anywhere.

<comment><USER68> Yes, as users. Not as someone willing to be a torch bearer of language designer.

<comment><USER43> Both companies are contributing resources to the Rust project, not only using it.

</comment></comment></comment></comment><comment><USER70> I think HN wants something like this to succeed and compete with firefox and chrome but I can't help but think that's never going to happen.

<comment><USER71> The main problem is the mess that is called html/css. You can't "just" build a simple browser with limited resources anymore. And by limited i mean thousands of man-years of work backed by a multi million organization. I don't know if it is a calculated taktic from google to rapidly expanding and driving the web forward (i still hope the intention – at least at the beginning – was in good faith) so that nobody starting today from scratch could ever catch up. But i guess everybody that started to build a simple hobby web browser knows how unachievable this task is. If we ever want competition in this field again and don't want to handover the web to google, we need to start from scratch or at least start to massively deprecate stuff. And by the grave of Alan Turing start by making a website fail to render if the html is not correct.

<comment><USER72> >> And by limited i mean thousands of man-years of work backed by a multi million organization.

It's so sad. We're so trapped. Fortunately, Google (or any other) can't completely alienate a huge part of the web. So eventhough they control the browser, they don't control its content...

</comment></comment></comment><comment><USER73> > Only a very limited subset of CSS is currently supported

Here's hoping that never changes, and that they never add JS support. If a browser like this released a spec for which HTML and CSS it supported, I would gladly make my static sites compatible. There's no reason sites like Wikipedia couldn't do the same.

<comment><AUTHOR> Alternatively figure out a better css and do that.

<comment> amiga-workbench I'm actually concerned that CSS or any other control over styling that is foisted upon the client is where the slippery slope begins. Once you add styling, the photoshop driven developers arrive and demand pixel perfection, then the never ending demands of more bloat and complexity follow.

I used to look at Gopher (and more recently Gemini) as too stunted to be useful, but perhaps they are right to nip these things in the bud.

<comment><USER50> I'd say something about just wanting PDFs with text reflow and hyperlinks, but apparently the PDF standard includes a JavaScript library for some inexplicable reason.

<comment> amiga-workbench In a similar vein I wish that email clients could support markdown message bodies instead of HTML.

<comment><USER46> Markdown _is_ HTML. Its purpose is to be converted into HTML. It includes the entirety of HTML in its spec.

You can't support one without supporting the other.

<comment><USER74> A subset should be invented which lacks HTML.</comment></comment></comment></comment></comment></comment></comment>


Ask HN: Should I code in the path of least resistance? - <AUTHOR>

So far I've been sticking to a handful of personal preferences and tried to adhere to set standards depending on which programming language I'm using. The problem is, the number of languages I'm interested in has increased as well as my interest in open source. I'm finding myself unable to set and adhere to guidelines anymore just because I can't keep them in my head and with the rise of github it became clear that some of my personal preferences are the complete opposite of what is popular. Add errors (like YAML not working with tabs) and clashing rules (people like to use tabs and align with spaces in C++ which blows up in Python) and I end up fighting more against those rules than actually writing code.
How do programmers cope? Doing your own thing and then converting a large codebase if it goes on github doesn't really seem to work. I've been converting tabs to spaces for example in all my projects where I only have a private repository and can rewrite the history.
I'm thinking about creating guidelines I strictly adhere to while at the same time using features and settings which are the most common among people writing code (like using spaces instead of tabs). But for some languages that seems like a pretty though thing to do. Also I might be overthinking things. But there is a part in me that tries to resist because I'm giving up something I prefer. I have my editor and linters set up the way I like it, but there is a limit to what is possible and configuring them is a challenge by itself. <comment><USER2> Ain't nobody got time for that.

Forget about all of this and write software. Put a moratorium on learning new languages and totally strike from your brain any code style concerns. When there's a time to worry about languages, formatting, and style, worry at that time, not now as it's a subconscious way to procrastinate or avoid thinking about actual programming issues.

</comment><comment><USER3> "if you hold open your hand you can cup water in your palm, but if you close your grip, afraid that you need to control the water, if you squeeze tight your hand, you will lose it all."</comment>


Duckweed: Simple, performant metrics - <AUTHOR> http://exchange.causes.com/2011/12/causes-tech-introducing-duckweed/

<comment><USER2> Awesome! Just like something I started making: <https://github.com/shtylman/grafik> My goal was to also provide a basic front end interface to view your data as well. Are you thinking to do the same? I didn't notice it in the repo but don't know ruby layout too much :)</comment>


Ask HN: What do you think GitHub is going to announce today? - <AUTHOR> Azure-based serverless integrated into Github is my bet. What do you think? <comment><USER2> Context: "We have an exciting product announcement coming your way" in about 3 hours from now [https://live-stream.github.com/](https://live- stream.github.com/)

</comment><comment><USER3> integration with linkedin (ugh)</comment>


Show HN: A site that makes Spotify playlists of bands coming to town - <AUTHOR> http://www.nextweeksplaylist.com <comment><USER2> Hey, I love this idea and am working on something similar (an alternative events discovery and promotion tool for cities). I see that a lot of you folks here are also working on similar stuff.

How about we chat more about these topics? Integration with APIs like BandsInTown, Facebook, apps like Spotify, SoundCloud, YouTube, music metadata collection from MusicBrainz, Discogs… If these topics sound interesting, join the public group on Facebook I created just now:

[https://www.facebook.com/groups/2016318755302445/](https://www.facebook.com/groups/2016318755302445/)

or this new subreddit:

[https://www.reddit.com/r/MusicEventsHackers](https://www.reddit.com/r/MusicEventsHackers)

<comment><USER3> Joined. I run [http://www.gnoosic.com](http://www.gnoosic.com) and [https://www.music-map.com](https://www.music-map.com)

<comment><USER2> Cool, thanks. Yeah, I work on [https://twitter.com/posterbat](https://twitter.com/posterbat) (real site down momentarily – Facebook broke my scraper :/ )

</comment></comment></comment><comment><USER4> I'm a big fan of live music, and even flew to Japan to go to the PunkSpring festival. If you'd like data for Taiwan, please get in touch!

There's also a large, free dataset from Apple with the whole iTunes Store database. Search "iTunes EPF" for more info. It's 55 GB uncompressed. Perhaps you could use this to generate affiliate links and earn money if people buy the songs in your playlist.

[https://affiliate.itunes.apple.com/resources/documentation/i...](https://affiliate.itunes.apple.com/resources/documentation/itunes- enterprise-partner-feed/)

</comment><comment><USER5> I made a similar site last August. [http://www.hearnow.io/](http://www.hearnow.io/)

You can pick a location on a map and it will generate a playlist for pretty much any city. I haven't done much work on it since then, but had a decent response when I posted it to Reddit. I've been considering open sourcing it, but not sure if there is interest.

My approach:

\- Use SeatGeek's API to find venues/artists near the user

\- Query Spotify's search API for artists with these names to get artist IDs (which you need to do other interesting things with Spotify's API)

\- Filter results from Spotify search queries with fuzzy matching between artist names and results

\- Use Spotify's API to get the top 5-10 most popular tracks for each artist, and randomly select ~30 to add to a playlist

Spotify's search API cannot be queried in batch which is a pretty frustrating bottleneck. I mainly solved this by caching artist name / ID pairs, but this would only really be effective if I got a lot of traffic (I don't).

Also, SeatGeek's API was a lot more friendly than Songkick, which I considered using. But SeatGeek didn't seem to have data for many venues overseas, so I had some users outside the U.S. that were disappointed that their queries would usually fail because the app couldn't find enough tracks.

<comment><USER6> I got a guy up in portchester who recommends me sweet nugs of music, wonder if he's ever used your service...

</comment></comment><comment><USER7> Very cool. Haven't been back to NYC in awhile but good to see the Rockwood Music Hall is still a hot venue. My main suggestion would be to populate the page with the Spotify data before having the user commit to signing into Spotify. Yes, have the call to action be at the top, but have the below-the- fold content be a list view of venues and artists. The map is nice but I don't think that's the most relevant view for NYC, since it's so easy to get around town between any popular venue.

My perspective is based on my assumption of, at the start of the week, what most people want to know but don't yet know. They know the venues, they just don't know (without tedious inspection) who is playing where. Maybe it'd make sense to have the genre of the acts more prominently shown. I'd be more immediately interested in looking at the list of alt rock bands who are in town that week, and then looking up the venues they'll be at. As opposed to having a list of venues and acts, and having to scan it to see if any of those acts are in the genres I prefer.

</comment><comment><USER8> Devil is in the details. There's just no place to reliably source all of the events that are happening. Sure you can get the ones that sell tickets through ticketmaster, or whatever, but nobody reliably aggregates all the smaller concerts. So this will always be badly incomplete. Discovering all those shows is on of my main use-cases for facebook right now - it's the one place (almost) all of them show up.

<comment><USER9> A few years back I made a hobby project like this -- it scraped the website of the local free weekly paper (since they have pretty much every concert listing, large and small) and then did a youtube search on band names so you'd see an embedded video or two for each show.

I think most larger cities (and smaller cities if they have a large university) have such a newspaper (e.g. Village Voice in NYC, Willamette Week in PDX, The Mercury in Seattle, etc)

<comment><USER8> Maybe it's better in the states, but where I live the papers don't come close to being a complete listing. They will have the major stuff, and some of the smaller shows too - but a large part is still missing. And it's not a small city - 2 mln people, capital, and quite an active music and culture scene.

</comment></comment></comment><comment><USER10> Awesome! Now worldwide ;)

Ideas: -Open up to the main local bookers (in my country that would be one firm, Mojo), monetization via referrals?

-other awesomeness would include: local clubs and pubs access via API, same monetization.

-Main few hits per band and then select bands that "sound like" selected view of the most listened to bands.

-Anything that makes me discover worthwhile bands in my area that give me an unexpected nice night out without having to notice the social media multiverse (my favorite teen bands from 20 yrs ago got together last summer and I noticed last week.. guess I haven't got any of my teen surf punk friends anymore)

</comment><comment><USER11> This is such a great, simple, almost obvious idea. This type of ideas is getting more and more rare, so it is great to see one popping here and there.

</comment><comment><USER12> Oh this is a great idea! Any chance to get a plain list of musicbrainz IDs for the nerds with their own music collection instead of the ever so ephemeral and privacy-infringing Cloud?

<comment><USER13> Hi anc84, I made [http://www.muusical.com](http://www.muusical.com) and was imagining it being something like musicbrainz but with actual, playable music that is streamed in from youtube or soundcloud. I haven't been actively working on it in a little while but would love to find other kindred spirits who share the vision. After taking a step back, possibly the best approach is to just use the data from music brainz and use my site to attach the playable music. My meta data editing interface is very rudimentary compared with musicbrainz.

Let me know if you're interested or know anyone who is. You can get me on twitter @patrickjbradley. Thanks.

<comment><USER12> I don't see how this is relevant. I asked about upcoming events, dissing online music streaming as something I do not do.

</comment></comment></comment><comment><USER14> Nice execution! I made something similar a few years ago, except it generated a playlist of previews from iTunes with an option to connect Spotify. It worked by finding all venues within a certain radius from you using the Foursquare API, and correlating that with the JamBase and Songkick APIs. It was a bit ahead of its time because not enough people had Spotify, and their catalog wasn't big enough to cover artists coming to some of the smaller venues. I might still own the domain rockout.fm if you want something a bit more catchy.

</comment><comment><USER15> Kind of OT but has anyone succeeded in creating playlists through YouTube's API? I had a kind of similar idea to this and wanted to create automatic playlists but failed on the integration part.

EDIT: Ok, looks like this is very easy with the v3 API. This was quite a long time ago.

<comment><USER16> I've been working on this: [https://www.laidbackvj.com/](https://www.laidbackvj.com/) code here: [https://github.com/khaliqgant/laid-back- vj](https://github.com/khaliqgant/laid-back-vj). Happy to work with others!

<comment><USER17> I don't know if my music profile is somehow... weird, but i get a lot of random movies and audio books, mostly long (1-3 hours) and old (~1900-1940s). Not what i expected, but i actually found some interesting stuff. Thanks!

</comment></comment></comment><comment><USER18> Great idea! Another idea I've wanted for awhile, setlist.fm based Spotify playlists for concerts I liked.

<comment><AUTHOR> I had a friend mention this to me too recently. I just grab the artist's top 3 tracks and add them to your playlist. Perhaps I could use setlist.fm to put songs more likely to be heard at the upcoming shows. Thanks!

<comment><USER19> I'd be willing to work with you as I have built a googleplay music version of this a while ago. [https://github.com/fergyfresh/setlist-on-a- playlist](https://github.com/fergyfresh/setlist-on-a-playlist)

I took it a step further to make a playlist out of the bands most recent setlist, so its similar, but not the same. It's currently just a cli that allows you to make a playlist on your google play music based on a band's most recent setlist, provided it was posted on setlist.fm. Most of the bands that I listen to have the setlist.fm posted basically the same night of the show.

Would love to help, leverage, or even refactor some of your stuff so that we could use virtually any music playing platform to do this.

</comment></comment></comment><comment><USER20> This is a great idea. My partner made a playlist of Boston Calling bands. It was helpful for a festival when you don't know all of the bands (the festival bands play concurrently too so you couldn't see all the music..)

<comment><AUTHOR> Yeah I think festival support should be added to my backlog. I love listening to festival lineups even when I'm not going.

</comment></comment><comment><USER21> Brilliant! It's always surprised me that Spotify didn't add this feature since they already have the data.

</comment><comment><USER22> Let me sign up for a mailing list for when you add in my city :)

<comment><USER23> Check mine out, moreencores.com

Specify your nearest major city for best results

<comment><USER24> This is cool! One suggestion: 7 days ahead is pretty grim, at in London tickets sell out fast.

I presume it's to keep the queries low? Maybe it could be a date range with a max of 7 days instead? Defaulting to a month from now + 7 days?

</comment></comment></comment><comment><USER25> I think this is a really interesting idea. Spotify has a feature where you can see if an artist is going to be playing near your location by going to the artist's page and going to the 'concert' tab. However, I don't think they have one to go the other way i.e "find all artists performing in one location"

Someone at the SXSW Hackathon two weeks ago worked on a similar thing [1]. The difference in their project was that it looked at the artists you listened to and then created a list of artists that you would know who would be coming to the venue.

I like your idea in that you're creating a channel for people to discover new bands.

[1] [https://devpost.com/software/sx- setfinder](https://devpost.com/software/sx-setfinder)

<comment><USER26> Spotify does give you gigs in your area. You go to browse, and then the "concerts" tab.

You can't change the location though, it's based off device location.

<comment><USER27> You can search by city in both the mobile app and desktop app to take a look at concerts outside of your area. Really handy. They mostly show only artists who you listen to frequently/genres you like

<comment><USER26> You're right. There's a great big button you can click to change your location. I guess I've just never clicked it so I forgot about it.

</comment></comment></comment></comment><comment><USER28> Very cool. I have had a suspicion that Google/Spotify has been sort of tracking these things for a while. The features that Google music and Spotify have for discovery seem to correlate with artists touring with other artists I like pretty consistently.

</comment><comment><USER29> This is great, I waste a LOT of time doing playlists to figure out my festival schedule. So time consuming. Can you do google play please? I had to junk Spotify years ago because streams would constantly interrupt and jitter.

</comment><comment><USER30> Great idea. Congrats.

I'm assuming aggregating the booking calendars is a fair amount of manual work but the value of this to audiences interested in lesser-known artists should be significant. I would love to see smaller, mix-use and under-age venues included.

</comment><comment><USER31> I like the idea. Maybe you could leverage Songkick API to support more cities ? (I moved to Tel Aviv recently and it's really hard to spend the time to find out which concerts are worth going to)

<comment><AUTHOR> Looked into this. SongKicks licensing is really restrictive once I start using their API. Do you have a site you use for upcoming shows in Tel Aviv?

<comment><USER2> Yeah, just wanted to ask if you use an API to get events?

I've been working on something in a similar direction for Vienna. Tried to get SongKick API access, but they declined me. I also used BandsInTown on a project, but it's a bit limited. These days I'm just using Facebook Events, which is ok, but not perfect – can't get all the events in a particular city automatically. Managed to manually overcome this though.

But great work! Tried the app out and I really like it. Followed you on Twitter if you want to keep in touch. Would be nice to have some MusicEventsHackers group to discuss these topics :)

<comment><USER2> OK, I just create that group :)

\- on Facebook

[https://www.facebook.com/groups/2016318755302445](https://www.facebook.com/groups/2016318755302445)

\- and on Reddit

[https://www.reddit.com/r/MusicEventsHackers](https://www.reddit.com/r/MusicEventsHackers)

</comment></comment></comment></comment><comment><USER32> Jukely ([https://www.jukely.com/](https://www.jukely.com/)) does another good version of this. Here's their playlist for NYC [https://open.spotify.com/user/jukely/playlist/6d8T2n9ISP4ZgH...](https://open.spotify.com/user/jukely/playlist/6d8T2n9ISP4ZgHKP6UOBtj?si=2kT3fuTHSPmvBG6iVZNxeA) (other cities are avail too).

</comment><comment><USER33> I've made a similar app at a local hackathon sponsored by Sabre: it would search your playlists on Spotify in order to identify your favorite artists. Then it would match the artist presentation schedule and find the best place in the world to watch the artist's concert based on ticket price + travel expenses. Something like: "the best city to watch U2 is Buenos Aires in August - while there you can also visit the Recoleta neighborhood and ..."

</comment><comment><USER34> Great idea!

Some feedback though: I found the tagline "It's a pain to look up every band coming to your city. Now just follow your favorite venues and genres and get a weekly Spotify playlist of upcoming music." intuitive but the heading "Stop Typing Every Band in Town" didn't make sense to me.

I'd go with something more straightforward like the title used for this Hacker News post. I immediately understood what that meant.

</comment><comment><USER35> That's a really good idea. Nice execution on it, too...

<comment><AUTHOR> Thanks, it's been a lot of iterations. I'm thinking of doing a blog post showing the UI/UX iterations I've gone through.

</comment></comment><comment><USER36> I created something similar, though it just creates a youtube playlist that you can listen in your browser: [http://touristplaylist.com/](http://touristplaylist.com/), you can pick a date range and the location, it uses songkick api

</comment><comment><USER37> Please add London! I'd pay for this easily

<comment><AUTHOR> I actually have been working on adding the UK. Shoot me a message on twitter and I'll keep you posted for when it is released!

</comment></comment><comment><USER38> www.PlaylistHQ.com does this better!

</comment><comment><USER39> Please add a list view of all venues by city! I don't want to have to search for all the venues.

<comment><AUTHOR> In the backlog...stay tuned.

</comment></comment><comment><USER40> Awesome idea, but this seems like something that could be just switched on quickly at Spotify.

</comment><comment><USER41> This is great! Right now I use last.fm, bandsintown, and Spotify to search for live shows. However none of them actually generate a playlist. I will definitely be using this to discover new music. When will I be able to add my own city?

</comment><comment><USER42> You should add a way to submit venues for other cities in single and batch methods.

</comment><comment><USER43> Please please please add Toronto! This is a killer idea, i'd love to use it!

</comment><comment><USER44> Great job! I will use this. It might be a nice discovery pipeline if nothing else.

A "select all venues" feature seems important, and the playlist probably only needs one song per artist, I see that quite a few have 2-3.

</comment><comment><USER45> Is there some kind of filter for types of music?

When I look at the "bands" in my town (not through your app), there's everything from metal to folk to techno.

<comment><AUTHOR> Absolutely, you can pick genres instead of just your favorite venues.

</comment></comment><comment><USER46> May have been suggested but would love to be able to toggle all venues in a certain city so I don't have to go searching for venues that I may be interested in.

</comment><comment><USER23> I did this too: moreencores.com

And you can do it for any city

Please beta test it :)

</comment><comment><USER47> Great idea but why no contact details for suggestions and no way to sign up/vote for other cities?

</comment><comment><USER48> Possible to support any city by checking Stubhub/Ticketmaster API for events in user-entered city?

</comment><comment><USER49> Cool, but one question: did you send a feature-request to Spotify before you decided to make this?

<comment><USER50> That sounds time-consuming

<comment><USER49> Yeah, but if you make this and Spotify decides to do the same, then it's time- wasting.

<comment><USER51> Depends on the motivation mix: a Spotify implementation would not undo any learning that happened along the way, and a showcase/attention goal might even benefit from being the independent original to a corporate clone.

</comment></comment></comment></comment><comment><USER52> Can this be used to create playlists in formats with more interoperating potential, such as JSON?

</comment><comment><USER53> Great idea. Congrats!

Would it be possible to aggregate shows from a ticket website like seatgeek or ticketmaster?

</comment><comment><USER54> Really liked the work you put in!

And I love that everybody is so supportive of it, cheers to all you guys!

</comment><comment><USER55> This is a very cool idea—are you familiar with the BandsInTown app as well?

<comment><AUTHOR> Yeah I've used it. It looks like they are trying to do something like this, just buggy/not well executed, so I took a stab at it.

</comment></comment><comment><USER56> Only selected cities :(

</comment><comment><USER57> Cool too, good work. Needs more cities! Seattle especially :)

</comment><comment><USER58> Very cool! I am eager to see my town in your app

</comment><comment><USER59> I'd love you forever if you added San Diego.

</comment><comment><USER60> Does no one here know about the BandsInTown app?

<comment><USER61> Seems like a different thing: [https://news.bandsintown.com/home](https://news.bandsintown.com/home) BIT is cool if you want to know who's in town and you know who they are, this for people who'd rather just hear tracks and if they like them go 'cool, I like whoever this is, I'll get tickets'

<comment><USER60> Oh I see. Thanks for the clarification.

</comment></comment></comment><comment><USER62> Fantastic idea.

</comment><comment><USER63> Does this work the other way around?

</comment><comment><USER64> i'm listening to a playlist for nyc and I love it. would love a playlist for SF.

</comment><comment><USER65> Great, an empty play list. :P

</comment><comment><USER66> Please add New Orleans.

<comment><AUTHOR> I can look into it. Do you have a site you browse to find upcoming shows in NO?

</comment></comment><comment><USER67> very cool. would love this for nashville, willing to help =)

</comment><comment><USER68> Boston Boston Boston!

</comment><comment><USER69> Wow. A whole 4 cities in one country. Totally useful :\

<comment><USER70> Certainly more useful than your comment.

Next time try something like:

"I was disappointed to only see 4 cities, I'd love if you could support X,Y,Z cities next."</comment></comment>


Lazy Recursion in Java with Streams - <AUTHOR> https://akudlick.wordpress.com/2015/07/03/lazy-recursion-in-java-with-streams/

<comment><USER2> I am not sure about Java, but in C, C++ function's stack's memory is not allocated on the heap and has much more limited space. So any elegant solution involving recursion is bound to hit memory limit pretty quickly and one has to watch out for the size of recursed data structure.</comment>


Docker is the best medium for distributing and running developer-facing software - <AUTHOR> https://jonathan.bergknoff.com/journal/run-more-stuff-in-docker/ <comment><USER2> If you have gigabit internet, maybe.

If you don't then Docker seems to be a system to make a 50 kb download into a 5 GB download.

People don't know how to build something and they think Docker is going to solve that but no, now you have two problems because you still need to build the Docker image.

<comment><USER3> You can also build the docker image locally to get consistent dev setups. In the end, you will need to pull things from the internet to install, whether in docker or on the host. The consistency is huge. I've seen this prevent a lot of mishap from incorrect versions being around.</comment></comment>


Fractions in the Farey Sequences and the Stern-Brocot Tree - <AUTHOR> http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fractions/fareySB.html <comment><USER2> Don't forget the Calkin-Wilf tree: [http://www.cs.nott.ac.uk/~psarb2/MPC/RecountingRationalsTwic...](http://www.cs.nott.ac.uk/~psarb2/MPC/RecountingRationalsTwice.pdf)

</comment><comment><USER3> Working out the Stern-Brocot tree using modular arithmetic leads to some finite shapes because after a while the calculation repeats itself. For example, using mod 5 you get a dodecahedron! These things are called modular curves (iirc.) It's a little bit tricky to figure this out, one hint is that every fraction has two names a/b and -a/-b. In modular arithmetic this is important, eg. 2/3 == -2/-3 == 3/2\. So every node of the tree has two labels. (Warning: I may not be explaining this very well.) Once you get to mod 7 you get a three-holed donut shape, called the Klein quartic.

</comment><comment><USER4> Not a very pretty website, but certainly a pretty subject!

This really is the best way of explaining where continued fractions come from. The fact that convergents of the continued fraction provide the best rational approximation always seemed mysterious to me in the classical exposition, but it is almost obvious when explained through the Stern-Brocot tree.

<comment><USER5> I don't know about it not being pretty... I thought the website presented the content in a clear and easy-to-follow way. And it loaded quickly, I didn't even need to wait for my browser to download the font before I could see the text. I wish _more_ websites looked like this, instead of plastered with confusing navigation, adverts, popups asking for your email address, "elsewhere on the web", "like, share and subscribe", etc.

This is refreshing in its simplicity.

<comment><USER6> Yes, but this kind of HTML authoring is often accompanied by a puritanical dedication to "structural markup". It is often evidence of quite an opinionated, reductive, approach to the web, for better or worse.

</comment></comment></comment><comment><USER7> Useless trivia. You know the 20 questions game? You can actually find any rational through a binary higher/lower search of the Stern-Brocot tree. Finding n/m this way takes O(log(max(|n|, |m|))).

The logic is slightly tricky. Some day I'll get bored enough to code it up...

<comment><USER3> The fractions in the Stern-Brocot tree approximate any real number. There's a statement about this that is equivalent to the Riemann hypothesis.

</comment></comment><comment><USER8> I Remember that some Project Euler question requires you to generate this series. I guess I now know how to solve it!

</comment><comment><USER9> Could someone better versed in math explain why this is important/useful? I skimmed the article, and while I find Ford circles and the trees/tables presented intriguing, I don't really know what to do with the information presented. Do these techniques have any uses / reveal anything interesting?

<comment><USER10> Because the real numbers are a fiction and fractions are all there is. Google "wilberger."

<comment><USER3> But fractions are also fiction: who says that one can be divided into two? That's just waiting around for inflation to kick in. And negative numbers: same. It's just hoping for a bigger number to subtract off from.

Only the natural numbers exist. All the rest is fantasy.

<comment><USER10> Well, you can describe a negative number or a rational number, but an infinite sequence of non-repeating decimals is a different matter.

<comment><USER9> Why?

<comment><USER10> Because an infinite series of non-repeating decimals . . . can . . . never . . . stop . . .

<comment><USER9> That's what I can't understand... For example, I can easily write a program that produces some digits one by one, indefinitely (excluding mechanical failures etc). I won't ever see the whole sequence – as it never ends – but to my mind, it seems like the program describes it. (I think that's basically the computable reals?)

<comment><USER10> Sure,there are a large number of "computable reals" such as square roots and taylor series expansions (pi, e, sine, cosine, etc.) which can be estimated to greater and greater precision (always with rational numbers) so we can reasonably talk about them in the abstract (such as use them in equations) much in the same way we talk about the imaginary numbers, quarternions, and octonions. But the idea that you need to construct an entire field of completely undefinable infinite chains of decimals just to allow for a small handful of irrational numbers is kind of absurd.

Norman Wildberger (among others) has put a lot of effort into building up the foundations of mathematics using only the rational numbers and it is quite interesting how far he has gone. He's considered to be a crank by many, but you have to appreciate his effort.

To go back to your original question, his Math Foundations video series, especially #14, #95, and #96 might help.

<comment><USER9> > Well, you can describe a negative number or a rational number, but an > infinite sequence of non-repeating decimals is a different matter.

I'm a bit confused... it sounded like you had objections to defining numbers with infinite decimal expansions, but you're okay with e, pi, etc? Or did you just object to uncomputable reals?

Also I don't know much about this whole topic, but I was taught that you can't fill a continuous line with just the rational numbers – you need the "undefinable" ones for that... What do you think about this?

Also thanks for the references, I might check them out to see what Wildeberger has to say.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Ask HN: For help: Gmail is filtering our URLs - <AUTHOR>

The gmail.com client normally renders the hyperlinks in our outgoing email just fine. Yesterday morning, this suddenly stopped happening and users were sent links that could not be clicked in their transactional emails from us. I was able to reproduce it by simply including our domain name in an e-mail, which leads me to believe e-mails are being filtered for our domain name specifically. I've reproduced this across multiple Gmail accounts of ours, and all hyperlinking is always fine right  until I include our domain name anywhere in an e-mail. Viewing page source shows that gmail.com is employing some HTML to break our URL up so it doesn't turn into a valid hyperlink.<p>I suspect this is some sort of anti-spam measure. Has anybody else experienced this? I am asking Hacker News for help because there doesn't appear to be any way to get in contact with Google regarding gmail problems. We've already employed everything in their FAQs about avoiding their spam filters. We use DKIM and have a healthy standing with all email blacklists. I'm really not sure what other options we have left. <comment><USER2> I've found out what is reason for this! It only affects text mails: Gmail is analyzing the links in text mails and when it is adult content it refuses to make them clickable! For me this is censorship. I'm an adult and I can decide myself what I want to see and what not. I do not want Google to filter out adult links (categorize them!) and make them not clickable!

Solution: Make HTML Emails

<comment><AUTHOR> From something I posted on our site:

From my experience, unless a change in a Google product degrades functionality for a large portion of end users they aren't going to publicly acknowledge it. They don't seem to have the same policies regarding transparency that other companies like FetLife do (we acknowledge when we mess up and break stuff!).

When ReCAPTCHA went down last year I looked and could not find any acknowledgement of the issue from a Google employee. This was while FetLife and other large websites tweeted about it and posted in Google's product forum. All we had to go with was speculation and helping each other out with recommendations for temporary solutions.

Likewise, this change in Gmail may never be officially acknowledged. It may be related to the arrival of Google's new Inbox product or it may be related to some sort of spam filtering they deployed into production. It doesn't appear to be specific to adult websites. Other large community websites are affected too. The result is that affected websites using plain text emails are now forced to switch over to HTML-based email. I could see a conspiracy theory in there about Google pushing HTML-based email for a nicer looking Gmail/Inbox experience. No matter what, I think it's very unlikely we'll ever know what change caused this or why.

</comment></comment><comment><AUTHOR> Someone e-mailed me to let me know that a discussion forum they post on has run into the same issue. Seems like we are not the only one...

</comment><comment><USER3> Use a link shortener (perhaps buy a domain of your own for it) to avoid linking to your domain?

<comment><USER4> Link shorteners are pretty heavily penalised in email since spammers use the same trick to bypass the same filters.

</comment></comment><comment><USER5> Is your domain name fetlife.com?

<comment><AUTHOR> Yes. (Site is NSFW, by the way)</comment></comment>


Stocks for the Long Run - <AUTHOR> http://blogs.law.harvard.edu/philg/2008/09/16/stocks-for-the-long-run/ <comment><USER2> [http://finance.google.com/finance?chdnp=1&chdd=1&chd...](http://finance.google.com/finance?chdnp=1&chdd=1&chds=1&chdv=1&chvs=Logarithmic&chdeh=0&chdet=1221681600000&chddm=3927595&q=INDEXSP:.INX&ntsp=0)

Yes, I can see how you would think that. There's even a small chance that 1999-2014 or 2000-2015 will be the first fifteen-year stretch in which stocks were not profitable to own (these data only go back to the 20's -- see Ibbotson's research for more).

From the comments:

"Today I lost the faith and ended all my investments in stocks. Maybe it comes back, but all experts seem to agree that it is extremely unsure what the future will bring. Too much uncertainty for me. Today 6% interest on a 5 year deposit seems like a very good deal."

This is not exactly rational behavior. Stocks are ownership in a business. Consider the parable of Mr. Market: you and Mr. Market have founded a startup, despite Mr. Market's diagnosed case of manic depression. Every day, Mr. Market will offer to buy your share in the business, or sell his, at a particular price. Today, Mr. Market cut his asking price by another 3% -- when he's offering his share of the business for less, why does that make _you_ want to sell?

<comment><USER3> ". Today, Mr. Market cut his asking price by another 3% -- when he's offering his share of the business for less, why does that make you want to sell?"

You only want to sell if your business is buying and selling stocks, and not owning a business.

Most people get confused by the difference between owning part of a business (and making money on the long run), and making money by buying and selling stocks. These are two distinct ways of making money, although they use the same instrument. It is in a sense similar to investing in real estate and flipping houses.

On the other hand, the Wall Street model favors the short-term traders. For example, in the case of bankruptcy the stock owner loses everything, while the short seller makes big bucks...

<comment><USER2> _Most people get confused by the difference between owning part of a business (and making money on the long run), and making money by buying and selling stocks._

A stock is a way to divide up a business. The distinction is that you _can_ rapidly trade stocks, not that you should.

 _On the other hand, the Wall Street model favors the short-term traders. For example, in the case of bankruptcy the stock owner loses everything, while the short seller makes big bucks..._

This doesn't make sense. If you short a private business, the same thing will happen (it is extremely rare to actually do this, but UBS did 'short' LTCM through a swap deal).

</comment></comment></comment><comment><USER4> There's a beauty comment there (top of the list when I checked) about how the author is measuring from the peak of the dot-com bubble to our current, pretty awful trough (though I guess likely to proceed still lower).

"Looking back 6 years (to mid-September 2002), counting the recent turmoils, the S&P500 has had average non-inflation-adjusted growth of 4.9% per year. Looking back 12 years (to 1996) the growth is 4.6%."

Lies, damned lies, and statistics.

<comment><USER5> Probably closer to damned lies. Dividends aren't taken into account, and inflation is reported much lower than what it really is.

</comment></comment><comment><USER5> Buy and Hold is not a form of risk management.

<comment><USER2> "Sell it when it's on sale" isn't a way to produce capital gains.

<comment><USER5> "Sell when your overexposed to a particular asset class" is a much nicer approach.

That's a fancy way of saying take profits.

<comment><USER2> Sell when my overexposed to an asset class _what_? I don't understand how that's relevant, anyway: if the price of one asset class goes _down_ , you are less exposed than before -- and if you are still overexposed, why didn't you sell earlier?

<comment><USER5> Here's two questions that many people don't ask themselves when they invest.

1) Buy and hold until when?

2) What if you're wrong?

As for becoming overexposed... if you've got Stock/Index A that is allocated for 10% of your portfolio and the market price doubles, you're allocation is now 20% (all things being equal). So you need to adjust your position sizing, unless you want to have 20% of your assets under that particular security. That's part of portfolio rebalancing and money management. If the price of a security goes down and you want to have the same exposure in it, then you would buy more to maintain it.

I also don't think people really take asset classes into account, mainly because there's not a lot of money in their portfolio to be _truly_ diversified.

<comment><USER2> 1) Until I can find a better business at a better price, adjusted for tax consequences?

2) It's impossible to usefully answer this question without recursing into nihilism. Consider: I think there's an 80% chance that BioCo's new drug will be a hit, and the stock will go from $5 to $10. Does "What if you're wrong?" mean I dial up the uncertainty everywhere (70% chance of going from $5 to somewhere between $8 and $12?). Okay, fine. Now I think there's a 70% chance that the new drug will be a hit, and the stock will trade between $8 and $12. But what if I'm wrong? Well, it must be time to dial up the uncertainty _even more_ \-- 50/50 chance of trading between $5 and $15, perhaps.

It doesn't add any useful information to just keep second-guessing oneself, or to have a rule that amounts to "Be less certain than you usually are, except about the statement "Be less certain than you usually are, except about the statement "Be less certain...""" It's good to collect enough information to consider different scenarios, but it does no good to blindly assume that you're wrong about a given stock.

 _As for becoming overexposed... if you've got Stock/Index A that is allocated for 10% of your portfolio and the market price doubles, you're allocation is now 20% (all things being equal). So you need to adjust your position sizing, unless you want to have 20% of your assets under that particular security. That's part of portfolio rebalancing and money management. If the price of a security goes down and you want to have the same exposure in it, then you would buy more to maintain it._

That's true. In a scenario like the one we have now, that would imply buying. Also, holding (until a better deal comes along).

 _I also don't think people really take asset classes into account, mainly because there's not a lot of money in their portfolio to be truly diversified._

I'm not sure what this means. Asset-class allocators don't seem to get better results than people who buy good businesses at good prices. At least, I see fewer people who _allocate_ their way onto the _Forbes 400_.</comment></comment></comment></comment></comment></comment>


Ask HN: Remote developers with a spouse/kids, where do you live? - <AUTHOR> I've just scored my first 100% remote developer job making $150k a year. My wife is a full-time parent. We have two kids that are under 4 and currently live in Los Angeles. I'm over the high cost of living, crowds, smog, and have a feeling that we should move to save money, but I'm not sure where.
What do you like/dislike about where you live?
Where would you live if you could? Why? <comment><USER2> China, close to family and side business opertiunities. I got a night time support gig.

Even with kids, as we approach summer time, it's time to travel! None of this 2 week crap, take the full 2-3 months. Rent place via air-bnb and go live somewhere else, and see if you like it. I just always have a hotel for the first couple days when I arrive just in case of any SNAFU with airbnb, never go cheap on internet, and always have multiple ways of getting online.

Remember internet now isn't some 'nice to have' thing, if it's down you aren't billing, and if you aren't billing you are just throwing money out the window. I have 3 cell phones, each with a 4g+ chip from a different carrier, and I paid the extra cash to get a business grade internet hookup, because I want that 24x7x8 response SLA.

The best part, of course is the absolute freedom, the worst part can be the social isolation. I've found using shared office space from time to time being okay, or living somewhere more... bohemian than the typical urban environment a nice escape. My kids are 4 & 2, but they start kindergarden at 3 in China.

It's a big world, and a small world. Get passports, travel, see the world. If your wife is up to homeschooling then you can be free to go wherever you want to go, as long as they have iternet.

<comment><AUTHOR> Are you from China? I'm American, and doing this would be completely out of the norm for my culture.

<comment><USER3> "...close to family..."

"Are you from China?"

Probably.

<comment><AUTHOR> My family is from Europe. I've never been there. Grown up in America my whole life. Is it possible to have family living in a country you are not from? Yes..

<comment><USER3> Replying to your pre-edit comment ("Growing up in America my whole life, it would be nuts to move there.'):

I moved to China when I was 35. Before that I had always lived within 10km of where I was born (except for some years at university, which was 100km away). I am not ethnically Chinese. I had one acquaintance in Beijing. Whether or not my decision was 'nuts' is just a matter of perspective/mindset.

"Is it possible to have family living in a country you are not from? Yes.."

I didn't say it wasn't possible. But it's very very very rare for someone who is not Chinese to move to China to be near family. Why? Because 90% of foreigners who live in China don't know whether they'll be here 2 years from now. So it wouldn't make sense for their family members to move to China to be near them (except for a spouse/SO of course).

<comment><USER2> Yes the typical English teacher is here on some "exotic dumplings tour", or just made a mistake thinking that anime is from here...

But my family started going back and forth in the 1800's out here. The real shame is that of the land that is worth anything was sold for next to nothing long before my parents were born.

I know I'm not typical, but really anyone can do it.

</comment></comment></comment></comment></comment></comment><comment><USER3> Wow. I just looked at your submission history, and if I'm reading correctly, you got your first programming job just over 2 years ago, after studying part- time while supporting a family. And you increased your salary from 35k to 150k in about 2 years.

This would be impressive even for someone who is single. But even more impressive to do it with kids to take care of.

Wow!

<comment><AUTHOR> Thanks! I think my first employer severely underpaid me, which is why I jumped so quickly. Also, having a wife and kids to support, that really puts a flame to your feet to work hard.

<comment><USER4> Does your work support dynamic timezones ? Or you may end up working 2nd/3rd shifts ?

<comment><AUTHOR> It's all currently in one time zone thankfully.

<comment><USER4> So you're not very free to move ? Like only +-2 hours ?

My idea would be something like EU (GR,AL,ES) and live like a prince. You high wage will make it possible to buy time, like housekeeper etc.

Probably do the same in pricier EU countries.

</comment></comment></comment></comment></comment><comment><USER5> I work at a fully remote company and live with my spouse on Manhattan (the upper west side to be precise). I take walks through Central Park everyday and frequently work at a few of the different public libraries.

I love living in a place with so many people, great museums, and great restaurants. It's very walkable and I love the subways. I meet many interesting people at coffee shops and in the park.

The taxes are a high but overall it is cheaper than I expected.

</comment><comment><USER6> I live in WA state and really just get to WFH when I want to. Many of my team members are full time remote though and there are many wonderful things about WA.

Seattle (where I live) is pretty expensive now.

But living on one of the islands (Bainbridge, Vashon, etc.) could be wonderful (better cost of living, access to beautiful nature, good schools, small community vibe).

Bellingham is lovely and has a university in town and also in a really beautiful part of Washington with access to lakes, Puget Sound, mountains, and so on. It's also right by I5 and Canada is not far away.

If you noticed the running theme is if you love nature, water, and mountains and want to share that with your kids consider WA.

WA state doesn't have state income tax for now, and I've loved the 10 years I've spent here.

Oh yeah, and I guess Portland, OR is cool too. Also pretty, and a happy new more low key than Seattle.

<comment><USER7> Vancouver WA is also a good compromise, and if I can get a remote position I would strongly consider moving down there from Seattle. Still a WA resident so you pay no state income tax. Houses are quite affordable compared to Seattle. Close driving distance to Portland. Oregon has no sales tax. It's a bit flatter down there than Bellingham but still quite nice and lots to do within reasonable driving distance.

</comment></comment><comment><USER8> I work as a remote SRE from a town in Northern Greece. I would advise you to take a look at Crete (Greece).

Preferred place is Chania, but if you're going to _cheap_ you can find cheaper right outside the old city center, especially if you're going to rent for a year.

The good things:

\- Half a year is summertime \- The food is superb \- The canyons are amazing \- Many seashores are amazing \- You're close to the sea everywhere, very strong boost for your your family's immune system \- You can live easily with less than ~40k/year \- Ppl are accustomed to foreigners and very easy to befriend

You can find specific info about ppl working remotes all over the world here: [https://nomadlist.com/?ref=remoteok](https://nomadlist.com/?ref=remoteok) (no affiliation)

<comment><USER9> "You're close to the sea everywhere, very strong boost for your your family's immune system"

Why is that?

<comment><USER10> I think the parent meant overall benefits of the location: low polution on the island, iodine from sea around and fresh seafood and vitamin D boost with lots of sunny days.

</comment></comment></comment><comment><USER11> I'm from Sydney, Australia. I am not remote, but I like the idea of grabbing a US salary ($150k a year = AU$200k a year, let assume AU$220-AU$240k contract rate with no benefits, then I can cover my superannuation too).

Compare that to a similar Sydney dev salary, for an experienced dev, AU$140k would be towards the high end. So a 50% salary increase AND work from home can be on the cards. All that is stopping me is that my current gig is giving me learning opportunities both technical and managerial that I might find hard to get in a remote job. But boy do I love working on code in a quiet room!

A good way to "beat the system" would be to live in Adelaide where the cost of an apartment near the city is about $300KAU ($225k USD). A 100% mortgage on an ocean view house, close to the city, for a family would be affordable on a US tech salary! I guess as long as you don't care about 'house as an investment' because demand is likely to be higher in the long term in the horrible overcrowded "big smoke" cities :-)

<comment><USER12> we also have brisbane with an expected decrease in apartment values... might be able to pick up a bargain...

its a shame that dev salaries top out so little here (i'm melbourne) makes you consider all these things...

</comment></comment><comment><USER13> I'm currently in the bay area, and I've always thought that in a scenario you describe, moving to Sacramento makes a lot of sense. (curious to see the thoughts of HN on this topic) You're still close enough away from the bay that you can visit fairly often (couple times a month) to keep in touch with friends there, but housing is significantly cheaper. Lifestyle is not incredibly different than what you would be used to in the bay (Sac and east bay are relatively similar) -- it's not like you'd be shoveling snow in the winter.

For you, coming from LA, I'm not sure if it makes a ton of sense, but I would probably look at smaller cities around southern california in a similar way.

</comment><comment><USER14> We live in Chattanooga.

I love the outdoor culture, weather, low cost of living, focus on healthy eating, local restaurants, EPB fiber, small city vibe.

It has been compared to Austin and Boulder. The city schools suck because they don't get enough funding. There are good private schools downtown and a good elementary.

The suburbs have some solid schools if you do your research. Suburbs like Ooltewah are growing and remain super family friendly. You'll love the parks and town squares. Iron man has hosted here often. It's 2 hours from Atlanta and Nashville.

It's a very progressive city given the context of Tennessee and the south.

I could go on. If you'd like to know more, hit me up. I also work remotely.

We would consider moving to Colorado or Europe. That's about it.

<comment><AUTHOR> How is downtown Chattanooga for family living? I've seen some cool apartments.

<comment><USER14> I used to live downtown with my kids. The apartment was gorgeous. Southside is currently going through gentrification, that's where I lived, and is the younger area. The North Shore is where you'll find the most wealth and private schools. Lots of young families are buying homes in Highland Park and St. Elmo because they're less expensive. Again, you have to do your research.

Living downtown allows you to walk to most events - CFC (soccer team), the downtown market, block parties, restaurants, etc. The public transit isn't very good but Ubers and Lyfts are cheap. We enjoyed living downtown except for grocery shopping. It's a bit more expensive and a drive from Southside. It's not far, but you have stoplights and all of that.

All in all, I'd say 7/10\. I come from a more rural, less dense area, but coming from the Bay, you'll probably feel like it's easy as pie to get around.

</comment></comment></comment><comment><USER15> With small kids, I suggest the following:

Look for a place with good schools. A good place to start is small towns with land grant universities, like Manhattan, KS which was an awesome experience years ago when I lived there.

I also like being reasonably close to a good airport.

Make a list of stores, eateries and similar that you like. A town doesn't necessarily need all your favorites, but you should check that it has enough to be comfortable for you.

For a time, I very much wanted to live in Cheyenne, Wyoming. It is 90 minutes from Denver, one of the busiest airports in North America. I never made it there and happy with where I'm at, but I think it's got a lot going for it.

</comment><comment><USER16> Miami, we're latino and the kids love it! Great weather and tons of corporate-y work in the healthcare industry here. Lots of startups cropping up as well recently.

We also have a great 1GB fiber internet connection, great for remote work.

</comment><comment><USER17> Spokane, WA is a lovely place to live if you can tolerate snow. You could own a very, very nice home on that salary, have access to a lot of amenities, and a place than increasingly feels like Seattle and Portland used to. I lived in and miss LA, but the soul can only handle so much souplantation.

</comment><comment><USER18> I live near my parents in the suburbs of nyc. Reasonable price but there are much cheaper places.

I would move to Ithaca in upstate ny if not for family reasons. College towns are a nice mix of rural cheap housing and stuff to do.

</comment><comment><USER19> We're in Buffalo, NY, and love it. We moved here from Orlando, FL for similar reasons (kids, starting out) in 1998, albeit in our case we were starting our own software company.

Were you born in LA, or are you from somewhere else ?

For more information:

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

If you decide to check out this area, our contact information is available via our web site (www.elevatesoft.com). Feel free to send us an email and we'll be happy to show you around or answer any questions you may have.

</comment><comment><USER20> We moved close to the Bruce Peninsula, Ontario, and we love it so far.

Pros: \- Cheaper than most places in Ontario. We live in a great house that would cost at least 3x more in any GTA suburb. \- Lots of nature and places to explore all around us. \- Peaceful and quiet. \- Good balance between country living and convenience - high speed internet, natural gas, amazon delivery, big box stores.

Cons: \- More snow in the winter (which can be good if you're into winter sports) \- Limited number of ethnic restaurants. \- 2 hours away from an international airport.

</comment><comment><USER21> Been working remote in Vermont for a decade now. Love it here and now that we have kids I'm not even considering moving anywhere. Nature, plenty of space, cheap (at least by major city standards), good food and beer scene, people are friendly, good schools if you pick the right town.

My only complaints would be slow Internet (though fiber is more common these days) and the ____ticks. And it gets cold sometimes, some people don 't like that.

</comment><comment><USER22> Charleston, SC.

Moved here to escape the Washington D.C. rat race after 9/11.

It's great here, but word has gotten out and prices have gone up significantly (nothing like LA) over the last few years.

I love it here, but it's scary moving somewhere where there are only a handful of non-remote jobs, especially as a divorced father of two (I can not move if I want to be near my kids)

</comment><comment><USER23> Pick up a place that has no state income tax. You'll instantly get a %10 pay raise. Definitely move away from California because the public schools are just horrible. Florida, Washington or Texas. These 3 states have really good schools.

</comment><comment><USER24> Malaysia is nice as long as you don't pick Kuala Lumpur.

Good weather, good food, beautiful people, fast internet, easy to travel to other places, very pro startup/tech attitude, nice currency conversion rate for remote workers.

<comment><USER25> Why not Kuala Lumpur? I've only been there once, on work, some years ago. Was there for a month or so. Didn't get to see a whole lot (except restaurants, malls and night markets), but liked what I saw back then. Food was varied and good (liked the food courts, where you can get many varieties of cuisines under one roof), friendly people, good Internet (for then), etc. Of course it is a big city, so some may not like that. But it did have a lot of parks and trees, IIRC.

Plus the Multimedia Super Corridor was just starting up then, and while I've not followed its progress closely, I did read now and then, that many startups have been set up there and such.

<comment><USER24> Traffic can be terrible and hostile, and some people are not so nice either. It can be rather expensive and it takes far too long to do something like buy lunch or groceries. There are some networking effects, but they are very poor compared to other cities.

It's much nicer outside the fringes of KL, places like Shah Alam, Cyberjaya, Putrajaya, Bangi. Internet is just as good, travel to KL is not bad.

<comment><USER25> Interesting, thanks for the info. IIRC, MSC was in or around Cyberjaya.

</comment></comment></comment></comment><comment><USER26> Chico is really beautiful and has cheap housing plus lots of live music.

</comment><comment><USER27> I live in the Portland area. Love the city, but it's expensive too. (albeit not California expensive!)</comment>


AI and Ethical Determinism - <AUTHOR> http://illusionofmore.com/ai-ethical-determinism/ <comment><USER2> As soon as it mentioned Kardashians? I stopped reading. And started imagining self driving cars programmed by the morals of the mob.</comment>