Parsing city of origin and destination city from a string - <AUTHOR> https://stackoverflow.com/questions/59956670/parsing-city-of-origin-destination-city-from-a-string <comment><USER2> After reading Steven Pinker's book _The Stuff of Thought_ in which he describes verbs as the chassis of a sentence, I thought we would see various Natural Language Understanding algorithms that leveraged "verb classes". Beth Levin published a book called _Verb Classes and Alternations_ which is effectively a database/index of a subset of verbs. Each verb takes one or two arguments and the arguments can appear on the LHS, RHS, or both (i.e. alternations). You can get a feel for them from a 2011 paper by Levin [1].

Normally you would start with a Parts of Speech algorithm but with the limited context of flights (international only?) you could focus only on a "to" clause and a "from" clause with the city/country found in the RHS of each clause.

Resolving ambiguous cities could start with a simple ranking algorithm based on a list of International/Domestic destinations and their corresponding traffic level.

NLU is hard but constrained domains like this are tractable, in my overly optimistic opinion.

[1] [https://web.stanford.edu/~bclevin/mpeva11vclass.pdf](https://web.stanford.edu/~bclevin/mpeva11vclass.pdf)

<comment><USER3> I think the top answer is right philosophically in terms of putting entity recognition first and predicate recognition later.

Trying to do it with grammar is exactly why you get into the rabbit hole where you get mixed up about Old York and New York. There is that "New York City" that daddy doesn't live in no more, and the "New York State" I live in where you frequently find dirt roads that look passable on GPS and paper maps but aren't.

It is an ontological problem, not a grammatical problem.

You are right that "air traffic level" is key in curating your city and/or airport database. You would start with a list like

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

and work down from the top. At some point you can put together a "proof" that it works for the top 20% of the airports that get 80% of the traffic and work up from there to cover 95% of the traffic.

For any project like this you need to build a test set if not a training or evaluation set. If you are not willing to look at 1000 examples by hand then don't get started.

People are willing to spend six months fighting with everything from procurement to device drivers to run the same models on the same digits that everybody else runs, but it is hard to get people to make evaluation sets.

I can't guarantee that the people who make those sets will succeed, but it is certain that those who don't make them will fail.

</comment></comment><comment><USER4> If only someone made a version of this answer that was more, let's say, board- room accessible. So much conflict could be avoided, if engineers were not seen as "non-believing naysayers" when top brass wants some of that hot new AI

<comment><USER5> [https://xkcd.com/1425/](https://xkcd.com/1425/)

<comment><USER6> ...except that recognizing birds is pretty trivial these days if you let somebody else do the heavy lifting: [https://cloud.google.com/vision](https://cloud.google.com/vision)

Which is the OP's issue as well: they'd be better off letting somebody else like Google parse their text instead of trying to reinvent the wheel.

<comment><USER7> and indeed that comic (published September 2014) is more than 5 years old now. Seems accurate.

</comment></comment></comment></comment><comment><USER8> If this was not frowned upon on StackOverflow, the correct answer would recommend a commercial API.

That said, if I were to implement this from scratch, I would not start with a positive list of cities. Rather, I would implement a couple of patterns like: "from X to Y", "X to Y", ""to Y from X".

But invariably there are going to be ambiguities. How do you deal with a city called "from to" :-D? How to you parse "from from to to to from"? I'd probably tokenize it using place lists, like

        "from (from to) to (to from)"
        "from (from to) (to to) from"
        "from from (to to) to from"
        ...

and then, maybe assigning probabilities to each parsing, decide that the first one is most likely.

A side comment, for someone like me who isn't an NLP expert, it seems strange that there are no libraries that let me parse a string accoring to some rules in all possible ways (like a tree) and pick the one that is most probable. I'm sure this exists, but it is hard to search for...

<comment><AUTHOR> > A side comment, for someone like me who isn't an NLP expert, it seems > strange that there are no libraries that let me parse a string accoring to > some rules in all possible ways (like a tree) and pick the one that is most > probable. I'm sure this exists, but it is hard to search for...

I think you're describing the Viterbi Algorithm.

</comment></comment><comment><USER9> Rather than as a general parsing problem, isn't it possible to reformulate this in a different way that is much easier to solve by using the fact that these are strings describing flights we want to get destination and sources from?

So what you could do is take a general database of all flights (which is structured data and easy to work with) and then the problem is to label the unstructured input data with the probability it relates to a particular source, destination pair.

For example, there are no flights from York (lovely though York is) to Venice, so that mistake isn't one such a model could even make. Whereas there are a lot of flights to and from New York (including to Venice), and since that number is large it's a much higher probability labeling than some others.

<comment><USER10> This would help but it's not foolproof, since there is no way to be sure the strings refer only to direct flights between the two locations. Flight deals often involve transfers and/or complicated routings.

<comment><USER11> Doesn't have to be direct. It would at least show up as a possible route. Bonus if you score by airport size (where it relates to city not country of course)

</comment></comment></comment><comment><USER12> If you have the money, give it to mechanical turk. If you have interesting content, use it as a captcha.

<comment><USER13> Didn't some "AI" companies get caught doing basically this? Even Alexa had people listening in to the audio commands, AFAIK if the command could not be understood.

The question smells like one of those "Solve my homework/work assignment for me" questions.

<comment><USER4> "We're using human-assisted-AI in phase one to enable a faster market entry, and are confident fully-AI-enabled technology is ready for rollout soon" is a surprisingly reliable way to get massively funded.

The horde of mechanical turks is really expensive, but with near-infinite VC capital, many labor-intensive white-collar markets can indeed be thoroughly disrupted.

Selling ten-dollar bills for five dollars each is guaranteed to gain traction, and you just need to convince investors that you're just a few quarters away from being able to print your own.

</comment></comment></comment><comment><USER14> This is a bog standard modern NLP problem, I love how all the comments here are on how impossible it is using traditional heuristics and quoting various pop neuroscience authors and anecdotes. You only need a sufficiently large language model (and fine-tuned on short location strings) and run Named Entity Recognition on the input. Tricky? Yes. But there is only a finite number of prefix names in the English language and should automated solutions fail, you can always fallback to using a natural language form. A large neural network based solution running in the cloud would be able to get to 95+% accuracy. It would not be perfect but is good enough for most use cases.

</comment><comment><USER15> Although the SO question is focused on the goal, this broad kind of task is quite a common requirement for chatbots, so looking at tools like RASA and Spacy for this are good places to explore (for those not opting for the commercial API approach others sensibly suggested)

[https://rasa.com/docs/rasa/nlu/entity- extraction/](https://rasa.com/docs/rasa/nlu/entity-extraction/)

Spacy have a handy demo of NER (although it appears down for me right now): [https://explosion.ai/demos/displacy- ent/](https://explosion.ai/demos/displacy-ent/)

<comment><USER16> Just checked spaCy's NER demo and it seems to be working fine now. :)

</comment></comment><comment><USER17> In a former life I was tasked with exploring the complexity of extracting discrete information from resumes. Any format of resume. "100% complex", was my finding. It is _amazing_ how much processing the human mind can do naturally.

</comment><comment><AUTHOR> The answer to this is the main attraction, a great overview of the process of a data project.

</comment><comment><USER18> And when you've dealt with the problems of the text extraction like in the long answer, you're left with the next huge problem: Context and inferring intent.

In the example, the poster shows inferring full location, not just the name in the example output.

Some examples where that gets tricky:

If I want driving instructions "from London to Hamilton" odds are I want London, Ontario to Hamilton, Ontario.

But what about "from London to York"? Without knowing more, I can't tell if that is in England or Ontario, and "knowing more" here involves a lot of guesses about in what context someone would qualify a name based on where they live relative to different locations with those names.

If I want "London to Paris" I _could_ mean London, Ontario to Paris, Arkansas, but odds are very much I don't, because it seems unlikely someone far from either place would leave it unqualified. If that someone is close to either Ontario or Arkansas, it's tempting to think they'd still refer to the bigger place... But I see enough Candians on e.g. London Craigslist assuming it's for London, Ontario that this seems to depend on additional context.

But here be dragons. Qualified names are often still tricky to interpret unambiguously. Let's say I've against all odds _been_ to Paris, Wisconsin once, and I want to go back there. Chances are I might write "to Paris, Wisconsin" or similar... But which one? Paris, Grant County, or Paris, Kenosha County"? Or I might even write "to Paris, USA" if I wasn't painfully aware there's _at least_ a dozen Paris-es in the US.

And what about when I mess them up? When I started writing the paragraph above, I first mis-remembered and wrote Paris, Wyoming.. Joy...

From experience, you can get decent results _on average_ with a dataset with size and population and assume that the bigger or more populated a place is, the larger is the region where it is likely to be the best choice, however. But there will be many that remains ambiguous.

But when you look at names that are very common and where many alternatives exist that are of a wide range of sizes, spread all over the place, that too becomes difficult. Examples: "from Santa Cruz to San Jose". California, right, because you have both names in the same state? Except that also applies to Arizona. Or New Mexico. To know whether people there would be likely to talk about them without specifying more detail, you need additional knowledge for each of these locations, and e.g. try to guess when some of the locations are too small for even relative "locals" to ignore them. And those are just the examples in the US that have both names in the same state, but there are dozens of both names across the Americas and further afield.

(As you might tell, I've spent too much time having to deal with location data...)

<comment><USER19> Just a tiny piece of extra information for your example: there's also a town called Paris in Ontario within ~100km of London (roughly on the path between London and Toronto) that has a picturesque appeal, so it's not a totally unlikely local car tourist destination.

And sitting here in Toronto, with an available-to-google frequent travel history to London, Ontario, searching "london ON to paris ON" is not enough for google to know what I mean.

This stuff is hard.

<comment><USER18> Thanks - I was totally unaware there's a Paris in Ontario too.

I was literally just thinking earlier that at least if someone finds something to add/correct, it will be awesome because it will just emphasise just how hard this problem is even for humans.

</comment></comment></comment><comment><USER20> Can get quite far using a CRF solution. But nothing is close to perfect here.

</comment><comment><USER21> While I enjoyed the long answer by alvas (well, they're suggesting you can only hit 100% accuracy with a rulebase; a man or woman after my own heart) I think the real problem the user asking the question, Merv Merzoug has, is not as complicated as it's made to be. Specifically, the user wants to parse successfully only a particular kind of English sentence - not arbitrary natural English sentences. What's more, those are sentences that are found in a particular, restricted context, that of strings that record travel details (most likely for some kind of travel agency and the like).

Given that those strings are going to be on the short side (you don't need to anticipate someone writing an epic saga in dactylic verse to describe a flight) the whole set of such sentences is probably finite and relatively small and can be represented by an equally finite and much smaller set of rules. So while alvas' comment is spot on regarding the amount of work one needs to do to cover all the exceptions and edge cases that might crop up even in such a small subset of natural English, it is not a problem so big as to be impossible to solve with some elbow grease.

There is much precedent of solving much more complex problems with hand- crafted grammar rules. For a very recent example, the latest online version of Magic the Gathering, M:tG Arena, apparently uses a hand-crafted context-free grammar to represent the language used on Magic cards [1]. The grammar is used in a parser that executes cards as scripts in a scripting language. Creating a grammar for the entire M:tG language is a job that a dedicated programming team can accomplish in a reasonable amount of time but even representing a small but substantial subset of that language is a goal that is in the range of, er, let's say ah a degree student of Computer Science in her final year :)

_______________________

[1] Just let me find that link. I got it around here somewhere...

Yep, here we go:

 _Magic Arena 's GRE: The Groundwork for future digital products, in Chris Clay's Interview_

 _To dispel any misconceptions: the GRP is not a machine learning approach to Natural Language Processing. It 's more of a compiler/parser that uses rules and logic we've crafted. We have a dictionary that defines the parts of speech and some semantic data for "Magic Words". We also have a huge list of syntax rules for "Magic Sentences", similar to a Context Free Grammar. With this, and our good friend the Natural Language Toolkit, we generate a parse tree for ability text. The tree groups individual words into phrases, multiple phrases into sentences, and all the sentences under the ability as a whole. We then process that representation of an ability into higher-level ideas, specific to Magic. "Draw a card" is no longer just a verb and an object, but is an action and entity with regards to game play. We take verb 'atoms' (destroy, discard, exile) and use them to construct molecules ("triggered ability", "sequence of effects", "replacement effect"). With that semantic representation of the ability, we can then basically compile it into code. That code is then added to the GRE,and executes when you play Arena!_

[https://www.reddit.com/r/magicTCG/comments/74hw1z/magic_aren...](https://www.reddit.com/r/magicTCG/comments/74hw1z/magic_arenas_gre_the_groundwork_for_future/do0rvfe/)</comment>


Ask HN: Chrome browser extension or a stand-alone executable? - <AUTHOR>

If you are building a new tool, what would have a better chance of user engagement? Does lowering the resistance (chrome extension available right in your browser) favor over having to download, install and run a software on one's computer (binary file)? <comment><USER2> It really depends on what the tool is going to do. Unless the tool is intimately related to Chrome in some way (tab manager, page screenshotter, or something else that needs to access Chrome in some way), and I'm assuming its not, since stand-alone is an option, I'd question why anything needs to be installed at all, even as a Chrome extension.

I'd much rather visit pdf2gif.io (random example) than use something that needs to be installed, when possible.

</comment><comment><USER3> The only advantage you would get with a Chrome extension is distribution platform (Web store). Chrome extensions are not in principle 'more dicoverable'.

Now it really depends on what your application does if you are considering donwloading and clicking on an installer a bigger barrier to entry then clicking 'Add to Chrome'.

In general, though Chrome does nothing to push users towards installing extensions from the web store versus downloading a program.</comment>


Battle.net 2.0: The Antithesis of Consumer Confidence - <AUTHOR> http://www.the-ghetto.org/content/battle-net-2-0-the-antithesis-of-consumer-confidence <comment><USER3> The article is pretty accurate. What I don't understand is this: In SC:BW, players responded to an inadequate Battle.net by moving competitive Internet play to private and emulated servers. It wouldn't have taken much effort to keep them on Battle.net -- just a few nice organizational and ranking features.

Obviously, Blizzard isn't a fan of this, since it bypasses their copy protection as well as being totally out of their control. That's why they removed LAN, why they go after emulation projects legally, and I naively thought it was part of the reason they were motivated to make Battle.net 2.0 better. I _liked_ their initial statements about why LAN was gone, where they said things like "we want to make Battle.net so compelling that everyone will want to be on it for all their games." Right on!

However, it appears that now they've done exactly the opposite. Battle.net 2.0 appears so unusable for any form of community or competition that I guarantee an iCCup or bnetd equivalent will be up a year from now, and the whole "hardcore" scene will be using it, and anyone will be able to pirate SC2 and connect to it. Why would anyone want this? It's not a complicated chain of inference; whoever is in charge, I'm sure they can see this coming equally well. Who benefits?

<comment><USER4> It might be a legal issue- elsewhere, it's been mentioned that it is much easier to be in the clear operating private servers via existing LAN capabilities. Lawsuits have been sent to bnetd people and Battle.net 2.0 reversers.

<comment><USER3> Yeah, absolutely. They seem quite serious about preventing Battle.net emulation legally, and I'm sure that's a big reason why they eliminated LAN -- but if there's enough motivation, I doubt they can really succeed; nobody ever does. My opinion is that the best prophylaxis against private servers would be a really great built-in server.

</comment></comment></comment><comment><USER5> >That's why your game is region-locked. Got friends in Europe? Too bad. You can't play with them. Blizzard has international Starcraft tournaments to sell.

You know, even with online-play only I might have been compelled to buy SC2, eventually after the price comes down.

But without international play I will have no choice but to schedule when I play around when other people are playing. I stopped gaming regularly when I entered college, and now it's something I do every once in a while, when I need to disappear from life for a while - it's not scheduled, and I don't want to have to worry about scheduling unless I'm scheduling a LAN party. - also an impossibility.

So no dice. I'd rather hack on 0 A.D. <http://www.wildfiregames.com/0ad/>

</comment><comment> matthew-wegner I started to skim after:

 _Starcraft II is a marketing nightmare. It is the sequel to a twelve-year-old computer game, a beacon in the forgotten era of Deus Ex and Baldur's Gate._

SC2 is _far_ from a marketing nightmare. Gamers are eager for a new Starcraft; Blizzard would have to screw up much, much more than online-only play for it to bomb.

<comment><USER6> _Are_ gamers actually eager for a new Starcraft game? It's been my experience that _Starcraft players_ are eager for a new Starcraft game.

<comment><USER7> Starcraft sold 9.5 million copies worldwide over the last 10 years. 1.5 million in 98 alone. (According to wikipedia at least) that is a lot of Starcraft players that could be eager for the new game. I know at least one person that pre-orded it two years ago when it was going for 45 bucks or so.

<comment><USER8> No, that is not a lot of StarCraft players. Call of Duty: Modern Warfare 2 (a game I have not interest in, personally) sold 4.7 million units in it's first day. That's 3 times as many units in 24 hours as the entire year of StarCraft sales you quoted. Over 5 million sales in it's first month in the US alone, compared to 9.5 million over 10 years worldwide for StarCraft. Was StarCraft a big deal in it's heyday? Sure, no one is trying to deny that. But compared to the modern gaming industry, it's a drop in the bucket. Modern Warfare 2 apparently has approx. 25 million unique players as of March 2010. We live in a world now where a video game release can outdo a major motion picture in openning weekend profits. StarCraft may have a venerable history and loud crowd of fervent fans, but they have a frighteningly small portion of today's gaming crowd, especially in the US and UK.

Note: Sales data from Wikipedia, which has links to the original articles with the results.

<comment><USER7> You are comparing a game that came out in 2005 for seven platforms - <USER2> mobile - with one that came out in 98 for PCs/Macs. (<http://en.wikipedia.org/wiki/Call_of_Duty_2>) I think the game market in general was smaller then. A better comparison would have been Starcraft vs Counterstrike.

Starcraft II will have the same advantage that the Wii did by pulling in many adult gamers that spent hundreds and hundreds of hours playing the original game. I concede the point that the first person shooter Genre has always had a larger user base than the real time strategy genre but I still think that perhaps there could be a lot of demand for the RTS genre that has been marginalized in recent years as things have moved towards MMOs and the more modern FPS games. It will be interesting to see how it plays out and how blizzard is able to leverage their huge (paying) user base to market the this new release.

<comment><USER8> Fair point (though those numbers only include Xbox360, PS3, and computer, not the myriad of mobile incarnations). There could be a lot of RTS players out there who have been quiet over the years, just waiting for this opportunity. But the same way the post brings up Street Fighter 4 (a non-FPS modern sequel to original old school game with "big" following) and it's ability to parley huge buzz and vocal fanbase into decent but not great sales, I have major doubts about how StarCraft II can stack up against the current industry standards of success. Even more so if they are alienating their core demographic by removing cherished multiplayer features.

Maybe this will find success not through the older generation that remembers the original, but instead by giving rise to a new generation of RTS players who never even knew what they were missing in this FPS and MMO dominated world.

</comment></comment></comment></comment></comment></comment><comment><USER9> That article was horribly written. It went off in a thousand different directions and had no storyline. Also, the valid criticisms are entwined with misconceptions and inaccuracies that undermine them. I appreciate getting a read of the current sentiment but it was really hard to read.

<comment><USER4> This comment was horribly written. If there's a thousand different directions and no storyline, why don't you point out how things aren't necessary to your summary of the actual story? Point out misconceptions and inaccuracies?

Your comment is arguably less worthwhile than a factually incorrect comment- at least there's a point there to allow for a discussion to ensue. You just serve to quash discussion with a fiat "yeah, not up to my standards, pointy knees, you know."

This is a request to raise the level of the discourse. If the original is lengthy, directionless, and inaccurate, post something concise, direct, and accurate.

(I'd also note that somehow, when you essayed some actual thought (that I also replied to), you didn't get anywhere near the number of upvotes. Any thoughts? <http://news.ycombinator.com/item?id=1417708>)

<comment><USER9> Maybe it was horrible. At least it was short.

<comment><USER4> If brevity dominates your desire for quality, you may be misplaced.

</comment></comment></comment></comment><comment><USER10> I started to lose track of the narrative somewhere between Modern Warfare and Tiger Woods. I scrolled down and got the battle.net vs stone graphic, which seems like a nice summary, but I don't see how it relates to "the antithesis of consumer confidence".

<comment><USER11> There should be a third column with Battle.net 1 and all ticks.

</comment></comment><comment><USER12> The article is off base. Starcraft 2 is fun. The hardcore community accounts for a small portion of the sales, just like in anything. If you listen to the rabid fans you hurt the regular players.

This is the battle.net expierence to a normal player now:

* Login

* Optionally start a group with some friends (who can be conveniently imported from Facebook)

* Choose 1v1 2v2 3v3 or 4v4

* Wait for the match to start

* Play a game

* Repeat or Logout

It's quick, it's fun, and starcraft 2 is going to sell because blizzard is a golden goose until proven otherwise.

<comment><USER3> I think a lot of folks are quick to marginalize the hardcore community, which indeed accounts for a fairly small portion of sales.

However, why do you think SC2 has the amount of hype that it does? Why do you think that, ten years after release, the Starcraft Battle Chest is still #2 on Amazon's PC strategy sales rank (holy shit!) [1]

My guess is that the great majority of the word-of-mouth that keeps games like this afloat after the initial 6 months or so comes from hardcore players. This seems even more pertinent for SC2 in particular, since Blizzard plans on releasing it in three parts. If it can't hold people's attention for a couple years, they're going to be missing out on potential sales soon. They shouldn't throw away their loudest evangelists.

[1] [http://www.amazon.com/StarCraft-Battle-Chest- Pc/dp/B00001IVR...](http://www.amazon.com/StarCraft-Battle-Chest- Pc/dp/B00001IVRD)

Addendum: Plus, remember that "hardcore" players of WC3 basically spawned off an entire genre (DotA) in their spare time -- it's not likely that anything of the sort would be produced on Battle.net 2.0 with the mapmaking restrictions outlined in the article above.

<comment><USER12> I think the hype originates in the millions and millions of people who played sc1 and enjoyed it immensely. You don't need to be watching televised SC1 matches from Korea to be a fan of the game and willing to pay $60 for the next release.

Sometimes it's nice to auto join a match with someone at your skill level, play for 20 minutes and log off.

It's the same type of change that went into WoW with the double XP gain bar. For every hour you're logged off, you get an hour of playtime where you earn double xp.

<comment><USER13> I'm more worried that expectations are simply too high for them to meet this time.

I have no doubt that they'll see an initial rush of sales. That's just to be expected based on hype. The real question is whether it has any staying power or not. I'm leaning towards the "it can't possibly meet expectations" side, but I could be wrong.

</comment></comment></comment></comment><comment><USER14> This article was horrible. It was reminiscent of when Valve first unveiled Steam. Back then everyone hated the idea of Steam constricting their games. There was a huge mainstream petition going around to prevent Steam from being released. Even I didn't want to accept Steam. But I think Steam is a huge success, I buy all my games off steam. I have all my friends on Steam and I know what they are playing and can jump into their games whenever I like. While BNet2.0 won't have the large scale digital distribution system that Steam does. I see a similarity.

Also, in this article the author focuses solely on Starcraft II. BNet2.0 encompasses ALL BLIZZARD GAMES. Even World Of Warcraft is getting updated in the new Expansion to support some of the BNet2.0 features. The idea is to build a platform that connects all Blizzard gamers to all Blizzard games. At Blizzcon 2009 on of the VPs of Blizzard gave a demonstration of BNet2.0, talked about the vision, and where they plan to go with it. They are trying make a quality system that will be useful.

Lastly, BNet 2.0 will introduce a kind of Map Store. SC II's game editor is very robust and allows you to create some very nice custom maps, campaigns, etc. Map editors will be able to sell their maps on this store. I think this may appeal to some people on HN more than the article itself.

<comment><USER15> Steam didn't disable LAN play.

Also: He focused on the Starcraft 2 features of Battlenet 2.0 because that was, you know, relevant to an article _on Starcraft 2_.

Additionally, how is Battlenet 2.0 going to "connect" Starcraft 2 to World Of Warcraft? How does your Starcraft 2 rank matter, at all, in World Of Warcraft? This is a genuine question, since I haven't played either game.

<comment><USER16> > Additionally, how is Battlenet 2.0 going to "connect" Starcraft 2 to World > Of Warcraft? How does your Starcraft 2 rank matter, at all, in World Of > Warcraft? This is a genuine question, since I haven't played either game.

The only tie-in I've heard of deals with SC2 Collectors Edition. Purchasing it gives you a rare "Mini-Thor" pet in World of Warcraft.

</comment></comment></comment><comment><USER17> I think this is an accurate commentary about what's happening: <http://xkcd.com/743/>

</comment><comment><USER18> Well, the SC2 beta phase one ended two days ago. With all this feedback, I wonder if Blizzard would make any changes to Battle.net 2.0 before the official release date (7/27). Usually Blizzard is very receptive to the feedback of the fans, but I think it's too late and too much work to get Battle.net 2.0 to a state where the author would be satisfied before the release date.

In any case, I expect Blizzard to refine their products after release until they are perfect, just like they always have. Hopefully, they will continue to refine Battle.net 2.0 as well.

<comment><USER4> That's the thing- B.net was at a "perfect" point, relative to the current implementation, about 8 years ago.

</comment></comment><comment><USER19> I've played Blizzard games for years and years. All the Warcrafts, Starcraft, both Diablos. When I was younger I played them more obsessively, these days my gaming has been rather casual.

I've been in the beta for a couple months. SC2 is great. The matchmaking is fantastic. The loss of LAN play doesn't seem that big a deal (to me) when compared to all the gains.

However, I feel that not being able to create a custom chat room for you and your friends to chat is a big miss. The chat feature of Battle.net 1.0 is probably the biggest reason why the Starcraft / Warcraft X / Diablo X community is so strong and so persistent. It is the various custom chat lobbies (friends, public, clan, special interest, etc.) that created the community in the first place. Facebook integration simply cannot compensate (and, in fact, seems rather silly).

My concern is that Activision-Blizzard is doing THEMSELVES a great disservice by eliminating chat rooms (well, that and the fact that I enjoy the community aspect). The reason I'm concerned is that I want the company to continue to thrive and make more good games. (That and also because I own a bit of their stock in my ROTH.)

Additionally, I think the lack of LAN play and aggressive legal pursuit of alternate servers is currently aimed more at getting Activision-Blizzard a slice of the eSports pie than preventing piracy. Anti-piracy is probably as solved as it's going to get.

</comment><comment><USER9> So this article was a wild ramble, but I like that there's interest. Let me sum some things up about SC2 and battle.net, completely unofficially and without inside information.

StarCraft II is trying some new things. They are taking control over more of the experience than they did before. That cheeses off a lot of people, but they have the opportunity and technology to do it and want to improve the experience in lots of ways instead of just the core game, which of course will be great.

The front end has been a mess by Blizzard's standards, I think. But it will evolve and get much, much better than its beta incarnation. StarCraft is a game that has held up for ten years plus and that is totally the intention on SC2. Blizzard released a patch for Diablo II earlier this year, so it helps to think about the long term.

And finally, Battle.net is an emerging network that's also in beta in its current incarnation. You can't serious if you think that it's not going to grow hugely in usability and capability in the next few years. And it's not like they're going to be supporting dozens of titles. Battle.net has got to be their avenue to making money off of non-MMO games, so they are very motivated to make it great.

<comment><USER4> "I know that SC2 beta is having problems and u guys r talking about should we buy the game or not but this is just a beta and u are playing it for free! july is yet to come and they are still working on the beta to make it more stable so do not complain about this problem. When this happens after the beta that is the time u can complain about the lag and balance problems" – Typical idiotic Battle.net forums post.

</comment></comment><comment><USER20> Had a hard time reading this. Seems like you need to understand the problem ahead of time to really get what he's driving at - too many tongue-in-cheek references to really follow. Also, .main p{line-height: 18px;} should be removed.

</comment><comment><USER21> I was in the Beta since the very early versions, probably patch 4 or 5, not sure. To be honest, I'm not a super hardcore player. I play every day, and I play a lot, but I'm not all gungho on clans and stuff. To me, Battle.net was just a clever way to keep piracy under control.

The game is still super fun, and I still will buy it when it comes out.

If I wanted a more social game, I'd play an MMO.</comment>


DeepMind's AI became a superhuman chess player in a few hours, just for fun - <AUTHOR> https://www.theverge.com/2017/12/6/16741106/deepmind-ai-chess-alphazero-shogi-go <comment><AUTHOR> Previous discussion on paper itself: [https://news.ycombinator.com/item?id=15858197](https://news.ycombinator.com/item?id=15858197)</comment>


Dropbox and Google Cloud Partner to Deliver Cross-Platform Integrations - <AUTHOR> https://www.businesswire.com/news/home/20180301005470/en <comment><USER2> Aren't they in the pre-IPO quiet period now? How'd they let this out into the wild during that timeframe?</comment>


Public library replaces all public catalog computers with Raspberry Pis - <AUTHOR> https://www.reddit.com/r/raspberry_pi/comments/4ivnse/i_work_at_a_public_library_and_replace_all_our/ <comment><AUTHOR> This is a phenomenal initiative for libraries using browser-accessible catalogues, but I wonder if it can be used with non-browser catalogue programs like absysNET...

My mom works in a library which uses an Oracle-based catalog, not in a web browser, called absysNET (OPAC). Would it be possible to run this on the RPi?</comment>


AI safety rules from Satya Nadella - <AUTHOR> http://gizmodo.com/satya-nadella-has-come-up-with-his-own-ai-safety-rules-1782802269 <comment><USER2> Once strong AI is out of the bag, do we really believe that all humans will follow Google's recommendations? I would expect both intentional and accidental violations by humans trying to harness AI for advantage against other humans. And if a small number of humans begin to release AI's from their rule-bound cage, how long will the rest of us be able to hold back from doing the same?</comment>


How Facebook's Naive Optimism Built a Toolbox for Totalitarianism (2014) - <AUTHOR> http://exponents.co/facebooks-built-a-totalitarianism-toolbox/ <comment><USER2> This revised 2014 article veers off into some strange territory at the end:

 _For the first time in human history, ALL of the philosophical, psychological, and educational frameworks and just about every technology necessary to create and sustain abundant, low-cost access to energy, water, nutritious food, high-quality education, physical and mental health, transportation, and shelter exists at the same time.

Right now, in 2018, we already have everything we need to reduce and possibly eliminate nearly all the waste in our systems. And we can do it all in a way that benefits the planet's environment instead of harming it and possibly destabilizing it.

The obstacles to the widespread deployment of these ideas and technologies are misaligned incentives and scale.

And thanks to an extraordinary invention by a strange reclusive figure who calls itself Satoshi, humanity may have a path around those obstacles as well

No, that invention is not Bitcoin. It is the blockchain, the much more significant technology that makes Bitcoin possible.

In a much bigger upcoming guide to the blockchain, we'll explore these things as well._

I've seen all manner of wind-ups to "blockchain," but this one was quite unexpected.

If the author is talking about social networks combined with "Blockchain Technology," he can save his breath. This has been done to death.

<comment><USER3> I'm just waiting for the "FreedomCoin" ICO. /s

edit: _of course_ that's a real coin already. Sigh.

</comment></comment><comment><USER4> Is "Naïve" an accurate word here?

A lot of hay has been made over Zuckerberg's "They "trust me" Dumb fucks" comment, but however it gets exaggerated, it shows he understood the power of this information in the very early days... a complete lack of naïveté.

<comment><USER5> Hard to say; it's entirely possible he was "joking" at the time.

It's also completely possible (and this is my belief) that he eventually drunk his own Kool-Aid and came to genuinely believe that Facebook really was about making the world a better place by connecting people.

<comment><USER6> >>It's also completely possible (and this is my belief) that he eventually drunk his own Kool-Aid and came to genuinely believe that Facebook really was about making the world a better place by connecting people.

Possible is one thing, but there's no chance anyone with a micron of common sense could believe in that marketing tag line.

Facebook was a better, "cleaner looking" social network in an era of MySpaces, that's all.

The user profiling and data collection is the essential part to building audience demographics for better targeting ads, which they needed to compete with Google's PPC domination.

</comment></comment></comment><comment><USER3> Did he really sneak in Blockchain hype in the last 2 sentences?

Why am I even surprised...</comment>


Ask HN: which web server use sctp instead of tcp? - <AUTHOR>

I am just curious and couldn't find much info about it in google. <comment><USER2> HN isn't really much of a Q&A site but there both quora [0] and stackoverflow [1] have existing questions and answers that may point you toward better answers.

SCTP is a below HTTP so you'll find some operating systems with drivers that can communicate using it. A quick look at wikipedia shows this fine list of implementations in the OS and userland implementations [2].

I'm not aware of anything that serves HTTP exclusively over SCTP.

You may want to pay attention to devices along the path which could cause problems though! [3]

[0] <http://www.quora.com/SCTP> [1] <http://stackoverflow.com/questions/tagged/sctp> [2] [http://en.wikipedia.org/wiki/Stream_Control_Transmission_Pro...](http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol#Implementations) [3] [http://serverfault.com/questions/145716/sctp-stability- and-p...](http://serverfault.com/questions/145716/sctp-stability-and- performance)

</comment><comment><USER3> So is <http://beepl.com></comment>


Microsoft Is More Ethical Than Google, Apple, Or Facebook - <AUTHOR> http://www.businessinsider.com/microsoft-is-more-ethical-than-google-apple-or-facebook-2011-3?op=1

<comment><USER2> Questions of how "ethical" microsoft is and what they "deserve" are always very obscure and up for debate. I imagine the company who published this list well evaluated Microsoft's recent activity, and deemed it ethical. Nevada tax evasion is not in the ten commandments. Steve Balmer's business practices have never caused pestilence and famine. This study is just an attempt to make companies more sharp about their practices by putting them in the public eye and should not be seen and the delegators of "deserve" and "moral."</comment>


Web Programming Is Getting Unnecessarily Complicated - <AUTHOR> http://en.arguman.org/web-programming-is-getting-unnecessarily-complicated <comment><USER2> I wonder how many are like me (old school? Just old??) and eschew platforms and libraries and roll my own most of the time, because most of the time, the needs are simple, and it's quicker to pound something out rather than learn and use Yet Another Framework. Though using jquery is nice sometimes...

<comment><USER3> > eschew platforms and libraries and roll my own most of the time

That's what nearly everybody does, when they're one person hacking on a one- off project.

I like to hate on Big Web Frameworks as much as anyone, but it should be understood that their value isn't replacing your hand-rolled code, their value is to let big 20-person projects avoid having 20 different flavors of hand- rolled code.

<comment><USER4> _I like to hate on Big Web Frameworks as much as anyone, but it should be understood that their value isn 't replacing your hand-rolled code, their value is to let big 20-person projects avoid having 20 different flavors of hand-rolled code._

Or we could just adopt good coding standards and build with reasonable software architecture. That's been working for longer than anything like the modern Web has existed, to build software orders of magnitude larger than any web app by any useful metric I can imagine, without the need to resort to huge frameworks to keep growing code bases organised and consistent.

<comment><USER3> Big Web Frameworks aren't there to "keep code bases organized and consistent", they're there to do stuff like render state changes into a complicated DOM without causing jank, without FOUCs, without crashing IE9, etc. Those aren't problems that "adopting good coding standards" can solve.

Web frameworks have architecture to them, but their value lies in solving technical problems, not architectural ones.

<comment><USER4> _Big Web Frameworks aren 't there to "keep code bases organized and consistent", they're there to do stuff like render state changes into a complicated DOM without causing jank, without FOUCs, without crashing IE9, etc. Those aren't problems that "adopting good coding standards" can solve._

I respectfully disagree. You don't need a framework to do any of those things.

I do a lot of work with relatively complicated browser-based UIs. In my experience, the DOM/layout thrashing and jank issues that have been getting a lot of attention lately only became a big deal in the first place because the early frameworks were so horrifically slow compared to just doing manual updates of exactly what you needed to change. Even in the most demanding applications -- and not many web apps actually are this demanding -- you could achieve pleasant, smooth results with some modest attention to how you applied updates so you didn't cause the browser to regenerate layout unnecessarily. (This would be an example of a useful coding standard, BTW.)

Flashes of unstyled content/text/whatever are a symptom of serving web pages in chunks and how browsers render incrementally as more of the chunks are available. Again, dealing with these effects just requires some understanding of what causes them and a little care in how your site/app is served and does its initial setup. The frameworks don't do anything magic that you can't do in your own code.

And finally, we were solving cross-browser portability problems with script repositories and then libraries like jQuery a long time before any of the modern frameworks were on the scene, and in a much more varied environment in the early days. IE has certainly had its issues over the years, but for the most part at least the issues were well known and you could just work around them. And again, there weren't really that many horrible issues, and this was an area where having some basic coding standards worked OK even if for some reason you didn't want to just use one of the many utility libraries.

</comment></comment></comment></comment></comment><comment><USER5> In my early days of programming, things began with realizing that I could use this wonderfully powerful system to solve problems (almost any problem you could model!) and create things (almost anything you could want to simulate!). I just had to figure out how to model the domain problem logically in a useful way, or what aspects of something to simulate, and how to allow the user to interact with it.

That soon changed. In learning about programming, one can't help but to come across the writings of those preaching the gospel of the holy virtues of 'reusable code'. Modular code, libraries, object-oriented code, design patterns, frameworks, plugins, APIs, services, stacks and toolchains!

So programming is now largely about resolving a ton of dependency issues and getting scores of different modules, frameworks, libraries, APIs, etc. to play nicely with each other. Instead of using our brainpower to understand and model the domain problems that are ostensibly the reason for our software, we're using it trying to figure out how the heck to glom together all this generic abstract code and modify the output to vaguely resemble something in the domain, in a way that won't perform so horrendously that customers immediately give up on it.

We write hooks, overrides, and underrides to throw out the work that the reusable code is doing and get it to do what we want (more-or-less). We write translation and adaptation and bridge layers to convert the data structures used by one module to those used by another (and vice-versa) and eventually to something roughly approximating the domain data. We set up elaborate clusters of interdependent modules, submodules, plugins for our plugins, all on top of a generic framework that wasn't even designed with the domain in mind.

As a profession, we've gone way too overboard trying to do everything with reusable code. This is why it can take several hours to do something as simple as change a link (and that can completely break something seemingly-unrelated elsewhere in the system). And it's kind of amusing that we're now adding layers of complexity to manage the layers of complexity.

I want to get back to focusing on building logical models that fit the domain, solving problems, and simulating things. For that we need a new doctrine of vertical development that doesn't just religiously say "Throw another layer of indirection and generic abstraction on it! Yay reusable code!" as a sacred solution for everything. Sure, code reuse can be good, but let's be sensible about it, not kid-in-a-candy-store crazy.

<comment><USER6> Reusable code, frameworks or plugins are fine, the problem is their cambrian explosion since now anyone can jump in and publish some JavaScript or Go code, especially with the micro-stuff trend. So we end up with zillions of projects competing for traction, and we move from one new cool and shiny thing to the next, for all (micro-)components of the stack.

This is the often-forgotten cost of competition (for all its merits) as opposed to cooperation: it wastes time and energy.

<comment><USER7> > , the problem is their cambrian explosion since now anyone can jump in and > publish some JavaScript or Go code, especially with the micro-stuff trend

I do not buy that this is a problem. It's not an apples-to-apples comparison, but anyone can publish a 'book' on Amazon as easily as publishing an NPM module (and they do), however, no one is complaining that there are "too many low quality books". Why is it easy to ignore books but harder to ignore shitty projects? Similarly there are countless instances of bad poetry online, and _very_ bad fan-fiction, but the sky isn't falling in the literary world. Can someone educate me: why do other people's shitty software projects elicit such strong reactions?

<comment><USER8> Because books and poetry aren't supported by package managers. They're self- contained, so you can ignore them and no one cares.

They also don't purport to solve a specific problem. (Like left-pad.)

And they're not boosted by a FOSS ideology which their existence a political choice and not just a practical issue.

So basically interdependence. You need at least some external code to finish most projects, and the chances are good it will be somewhere between overcomplicated, unreliable, poorly documented, poorly maintained, and unnecessary.

Maybe package managers need active best-of-breed curation and industry-wide coding and documentation standards. But professional standards are anathema to the move-fast-and-break-things crowd, so I doubt that will ever happen.

</comment></comment></comment></comment><comment><USER9> It's funny how everyone seems to hate "big frameworks" while at the same time complaining about how "everyone uses them". It's sort of like the Yogi Berra line: "Nobody goes there anymore. It's too crowded."

I for one will go against the flow (or am I with the flow?) and say that what I see coming out of Angular 2 looks FANTASTIC. Many of the things I love as a Scala developer are finally becoming mainstream on the client side. Add in the promise of NativeScript (mobile apps) and Electron (desktop apps) and this is an incredible time to be a web developer.

<comment><USER10> Tbqh what is coming out of Angular 2 is React with a higher learning curve, more Angular specific syntax and not much in terms of a larger benefit. React keeps things simple and easy to reason about. I don't feel like I should need or be using decorator like syntax at all to create a component. I like looking at one file and knowing exactly what that one file is doing but that's just me.

</comment></comment><comment><USER11> As a novice developer, coming from Java, I was taken aback by how forceful and messy JS's async programming style is (I started with node.js then moved to the browser).

Callbacks, promises, generators are all there to essentially make async code sync, which seems to make the code hard to follow, difficult to scale, modularise and debug.

I think JS took this approach because of the limitation of older browsers, which were unable to use threading, so as to not block IO they forced concurrency using queues requiring async style code.

We must have just stuck with it because it's just been around for long enough and it would be hard to get everyone to change.

it's 2016 and I like being able to use the return values of my methods without sweating. PLEASE, for the love of god, replace JS with something with the same cushy syntax but makes sense.

Then again, I could just be bad at programming and not know what I am talking about - I sincerely hope that is the case.

<comment><USER12> > Callbacks, promises, generators are all there to essentially make async code > sync

I think they actually do quite the opposite: they keep async code async. JavaScript doesn't really have a (non-terrible) way to make async code sync.

Note that I'm assuming that by "being able to use return values of my methods without sweating," you mean "get the thing I want out of the return type somehow." Or, in other words, things like getting a value out of a Future. The problem with that approach is that it blocks the calling thread, so what happens if you have 50 connections? Or 200? Or 10,000?

The same reason I like that JavaScript and JavaScript libraries try very hard to keep things asynchronous is the same reason highly concurrent software tends to be event based rather than thread based: it's simply more efficient.

I think it can be a challenge to keep mental track of state in JavaScript due to the nature of async stuff, but it can also be liberating in a way once you figure out the right way to pack away your state for whatever problem your working on. It makes it easy to break things into small components and reason about pieces instead of the whole while maintaining decent efficiency compared to having tons of threads around.

There's also of course the incredible niceness of JavaScript being single threaded in that typical multithreading concerns are not a problem. If you want to update a variable in some callback, you just do it. You don't have to worry about locking or atomicity, etc. I can't tell you how many times I've ended up with a mess of Java code in which I'm not actually sure if it's correct or not. That's likely my fault, but still something I enjoy getting to not think about when doing JS.

In short, I suppose it just comes down to different preferences. I often find myself working on concurrency in Java and wishing that it were more like JavaScript :). Interesting, the JavaScript approach can be pretty easily recreated in Java (and sometimes a very useful tool), but the Java approach is much harder to do in JS, at least with Node.

<comment><USER13> I have yet to see event based software that is more efficient than plain old sync code.

Big threaded reactor style designs can be, but those aren't exactly event driven.

Small events generally are the opposite of performance, increasing concurrency and synchronisation dependencies between threads.

If you meant responsiveness or latency, maybe you have a point, but current UI frameworks have been event driven since about forever.

</comment></comment></comment><comment><USER14> I'm up-voting this purely due to finding out about arguman. I had an idea for a website exactly like this about 6 years ago. Kudos to the people who actually implemented it.

<comment><USER15> Me too.

<comment><USER13> Sadly, it exemplified the problems due to not working well on small screens or with reflow reader modes.

</comment></comment></comment><comment><USER16> For publishers of content plain html and some little css would get you a result that's readable, and responsive (I think a better word for this is adaptive), if the authors are willing to give up their prescriptivisism on the rendering of their content. Compliant use of html and css almost always results in a page which the browser will know to display the best way with regards to the medium. But once one's determined to impose a certain layout no matter what, he takes on the browsers duty, and actually has to work towards implementing an abstraction layer that takes care of the incompatibilities of all different web browsers out there. Now there are libraries for this, so he fetches and uses them to unnecessarily impose his style. Eventually this is a needless burden on both him and the user, as while the megabytes pile up, load speed and performance decrease and Internet bills increase in price. As things skip and grow and shrink on the screen, the UX becomes cumbersome too. But if the primitives of html and css are used, all these issues are irrelevant.

Another factor that complicates web page development is ads. They bring a huge pile of Javascript with them, but they go ignored most of the time and usually are a burden to the user. Ad providers, instead of publishing ads that would indeed get clicked intentionally (like the Deck network), bribe the publishers paying for user actions that aren't actual impressions. Thus they also create exaggerated statistics which they use to lure low quality ads which get the most clicks from accidental behaviour, leading to worse and worse ads that do whatever to catch attention but be actually interesting.

Lastly, it is a fact that coding Javascript is more fun than writing a document. For the web developer, rendering innyeractive graphics with Javascript is certainly more fun than making them with R or gnuplot and insert into the page with an img tag and providing data and code used to generate them.

</comment><comment><USER17> Edinburgh Scotland:

Seeking Junior Developer 19k.

Must know all the CSS preprocessors, all CMS's, all modern frameworks, all of software engineering, all of the server side in all languages.... Ideally has experience of everything. Must have worked Agile.

Needless to say, 7 years into my actual Web Programming career and I am resigned to being stuck in a bad role. I don't have the confidence to apply to anything since your expected to be an expert in what they announce tomorrow in the next conference (and you had to do it in your own time) and if I do, the pay is garbage.

I personally blame Recruitment Agencies for not having a clue what is being asked for, setting a false market rate (maxium commission = race to the bottom), and making the barrier to entry or even sell yourself impossible.

In short, I hope this year to re-boot my career outside of computing as pretty much everyone I know makes more money than I do.

<comment><USER18> I don't have much experience with the job market north of the border, but I'd say your situation would be atypical. I'm outside of London and have seen what you've described but the reality is that there is a shortage of people with the skills you've described in that theoretical role. I'd advise you line up 4-5 interviews and just go and see how they work out. With 7 years experience I'd expect you to be able to walk into a lot of positions without fuss which pay much much more than £19k.

<comment><USER17> Thank's for taking the time to reply Kiksy. I appreciate it as I am a lone developer and don't really have any real career advice. I just know that I never seem to match my experience to any roles and it has been a while.

</comment></comment></comment><comment><USER19> Web programming is reaching not only far more people, but far more combinations of people and devices, in far more scenarios -- think of how many more ways you can do computing that don't involve sitting in front of a desktop, which for most non-technical people was a relative rarity in day to day life.

So web programming _should_ be more complicated because the world we now reach is far more complicated. But I don't feel like complexity has grown nearly as much as potential audience. And when things do get frustrating, such as trying to do a heavy client-side app, I just have to look at the PHP Reddit/stack overflow groups to get a reminder of how truly fucking annoying and confusing it was to build a full stack app a decade ago.

</comment><comment><USER20> Well yes and no. Javascript problems are what php used to solve before. Its actually necessarilly complicated if you view it from what javascript is attempting to replace.

On top of replacement, theres another question "is the common road the best road?". Something as simple as a html5 video tag can be replicated through a canvas, html5 audio and some ui elements. And as things get more complicated, are we better off pretending complexity is the enemy?

The reality is that these are problems all languages have to deal with. The reason the web is getting the most is because its the most widely consumed abd provided. Why be involved in an ecosystem dominated by coorperate entities that would only pay you just enough so you wont leave when you can be in an environment where insanity is an acceptable road to sanity. Why the hell does coffee script exist? It doesnt matter.

</comment><comment><USER21> Because people are trying to cram down 10 different JS libraries down the throat of a static page?

</comment><comment><USER22> This arguman thing is really cool! It's such a neat idea in fact, that I'm willing to overlook the horizontal scrolling. That's saying a lot!

With that out of the way... I'm firmly in the "but" camp here. I've been doing web programming for 17 years now. I remember the bad old days. Things were simple if all you wanted was HTML and images (CSS was still pretty iffy). But the moment you needed more than a static page? The complexity of getting up and running ballooned really quickly. And worst of all there were so few resources to really learn from. And it was expensive. Granted I was a teenager back then so anything more than a few dollars a month was pricey to me, but if you compare the kinds of hosting offerings of two decades ago to something like Digital Ocean or AWS today then the amount of possibilities is staggering (no more shared environment!) and for prices that are almost too cheap to believe.

My recollection of getting anything up and running that used a database back then was that it was not for the faint of heart. Compare that to today and the process of getting everything set up and connected with Rails, Djano, Express, etc. Yes there's more stuff you "just have to know" in terms of code you write and yes you have a box you have to stay within because of the framework but I'll take that any day over gluing together some Perl scripts and hoping you've got CGI configured correctly.

Maybe I'm conflating two separate things here: actual programming and operations. But I strongly contend that with web programming you can't disentangle those two things in any practical way. You will always be bound to the context of your environment. Anything that makes getting a sane environment easier leaves much more time to focus on the problem you actually care about. And it's not like you have to use all of the shiny new toys if you want to keep your code simple.

<comment><USER16> The server code has way less problems than the UI part of websites (i.e. web pages). The complexity of putting up a webpage has made a very fast 0-60, where it now may involve several package managers, JS libraries, to-CSS compilers, multiple web browsers (multiple OS' if you want all of them), minifiers, uglifiers, build programs and whatnot. And most web pages from popular online publishers (news portals like the New York Times, blogs like the Huffington Post, etc.) the ratio of content to CSS, JS, and HTML tags goes towards 1/1000 and above. Most of the time features of browser are reimplemented (history, page loading, scrolling...) and standard behaviours hijacked (most often scrolling, clicks). Every website designs and imposes it's own UI paradigm so that clicking around becomes a frightening and challenging thing, as telling what is a link, what is a button, what is a drop-down, etc. is hard, as either these are heavily styled to the point of being unrecognisable or they are reimplemented in JS and the behaviour is unpredictable. This hurts especially when doing critical things like money transactions, various registrations that have become online recently, various rendez-vous, etc. Together with this trends, HTML, CSS, and JS get more and more complex in the specification level, which together with cancrous tooling, make entry to web development (i.e. writing webpages or writing programs that write webpages) harder and harder.

</comment></comment><comment><USER23> I, too, miss the days when web development was as simple as opening a file in notepad.exe and refreshing a browser.

I made some boilerplate to solve this problem. If you are familiar with react, it shouldn take a few minutes of `git clone && npm i` to get started.

[https://github.com/Jon-Biz/simple-static-react](https://github.com/Jon- Biz/simple-static-react)

There are a few version up there: one has a router, one has a firebase backend, one has Virtual Reality bindings. They all have the same purpose: to get out of your way as fast as possible.

<comment><USER24> Web development is still that simple if you want it to be. Nothing is stopping you from writing for the web like it's 1991 if that's all you feel is necessary for your site.

<comment><USER25> Unfortunately the web development profession has decided to shoot itself in the face and make framework-oriented development mandatory. I mean sure, one can still build sane web projects, just don't expect to be able to get a job doing that and do expect to be mocked as some sort of luddite.

I am sort of curious if this pile of complexity will at some point implode, but mostly I am happy that I got out of webdev when I did. Today's web development is making a mockery of the ideas of usability, accessibility and standards.

<comment><USER4> _I mean sure, one can still build sane web projects, just don 't expect to be able to get a job doing that and do expect to be mocked as some sort of luddite._

When we build web apps for clients, they generally don't care what tools we use as long as the results are good. There's still plenty of work out there like this and there are still plenty of success stories.

You just have to avoid the parts of the industry, particularly around the startup scene, where most developers have just a few years of experience and are heavily influenced by high profile online commentary. That type of business tends to hire buzzword-compliant people because even their own "senior" developers don't have enough experience to know any better.

<comment><USER17> You just have to avoid the parts of the industry, particularly around the startup scene, where most developers have just a few years of experience and are heavily influenced by high profile online commentary.

This is a great piece of advice.

</comment></comment></comment></comment></comment><comment><USER26> Boo hoo. It's not that bad. Knuckle down and learn some shit. Crikey, some of us learned this stuff before a crowd sourced 90,000 word wiki and versioned online code repository was commonplace for a 200 line library. AND get off my lawn!!

</comment><comment><USER27> "Cooking is getting unnecessarily complicated." \- Caveman

Compare food nowadays to centuries ago, I'm glad things got unnecessarily complicated.

<comment><USER28> He cooked steak over fire. I cook steak over fire.

I'm just glad I don't have to hunt every day.

<comment><USER27> Not everyone is using the latest JS frameworks, and some people eat sous vide grassfed steak.

</comment></comment></comment><comment><USER29> I think there are many things pushing towards more complexity, and not much of it is "bored developers pushing things to polish resumes".

1\. It takes longer to teach someone even "simple" web dev than it does to leverage the programming talents of experienced devs. This means businesses are better off making tools that allow a small group of devs to create many simple websites or a few really complex websites than just keeping it simple. Even a small dev company can produce output that matches what used to only be possible with the resources of a much larger software company.

2\. As they mentioned, the path web dev is going is towards a device independent software dev environment instead of simply serving up content or a few simple tools. This is across the board from internal IT, to small B2B, to large B2C resources. Alot of my personal programming time is adjusting the generic B2B platform to meet the needs of a specific client we have that doesn't quite fit the original project. It's frustrating, but a large source of complexity and not "unnecessary" since it pays the bills.

3\. The number of devices that have to be supported by a platform is also greatly increasing, and it makes the code itself, especially on the js side, much more complex in response. I'm continually thinking "why do you want to squish our site down to your piddly little phone", but that's the primary way alot of users have access, and if you don't support it, you'll lose out to competitors that do.

</comment><comment><USER30> Ironically, I find that tree format unnecessarily complicated.

</comment><comment><USER31> I like this website to layout an argument nicely. But in the case Web Programming is not well-defined, the argument can just be people doing different things assuming others are doing the same.

<comment><USER32> I wonder how insane StackOverflow would look laid out with this kind of a presentation scheme...

</comment></comment><comment><USER33> I think maybe web technologies are now everywhere and where it once took a systems programmer to do certain types of things, now you're expected to do that because "JavaScript is everywhere".

The language does not make the difficult problems easy to solve.

More: [http://medium.com/@velmu/on-ubiquitous-javascript-and-the- un...](http://medium.com/@velmu/on-ubiquitous-javascript-and-the-unreasonable- expectations-developers-can-set-themselves-f6994c07acd3)

</comment><comment><USER34> I am not sure if it is getting complicated in terms of libraries and frameworks. We had prototype vs jquery wars, or gwt, dojo or yui discussions.

I bet the problem is Github! I mean, we are the victim of their success in solving one of our bottlenecks: collaboration. Now it is not only easier to start a project but equally easier to get followers, adapters, and contributors.

</comment><comment><USER35> Clientside code execution makes sense. Every last thing that can be offloaded to the client should be. The tooling around this concept may be insufficient or difficult to use, but the underlying premise is undeniably sound.

<comment><USER36> Not necessarily. The client device may be old, underpowered, slow, and running out of battery. Which isn't to say thick clients are always a bad idea, but they're not the One True Answer™.

<comment><USER35> Hah I rushed that answer but yes totally agree. When I'm dev'ing for web, I always monitor perf against a crappy old Android phone. Similarly, Chrome devtools makes it easy to simulate a bad network connection. I try to make sure it's tolerable.

Also worth noting that analytics makes it easy to determine what device/OS the majority of your visitors are using. Anyone building an app would be wise to pay close attention to this to guide dev efforts.

</comment></comment></comment><comment><USER37> When it becomes easier for a site to write native iOS and Android apps for clients than it is to write a pretty JS front-end that works on all browsers, it's going to be bye-bye web as we know it.

<comment><USER38> Except for the fact that installing apps is an unnecessarily annoying process, enough to mean that the majority of people very rarely install anything new on their devices.

<comment><USER39> If single tap is unnecessarily annoying, then web is already dead because opening the web page is even more complicated.

<comment><USER38> Tap link, opens App Store, tap to install, wants me to login but I can't switch to 1Password without cancelling and starting again, enter password, agree to something about TouchID, T&Cs have changed so have to acknowledge them yet again. App installs to earliest screen that has a vacancy, so have to go through and find it.

The process can be quicker or longer than that.

</comment></comment></comment></comment><comment><USER40> First thing that popped up in my head as I read this, React/Redux. :)

<comment><USER41> Meh. React + the twenty other things you need to add on to it is bad, but somehow no worse than angular is by itself.

<comment><USER40> Yes I reckon this thread is pointing at the whole client side frameworks landscape right now

</comment></comment></comment><comment><USER42> "getting"?

</comment><comment><USER43> i had very high hopes for opa [[http://opalang.org/];](http://opalang.org/\];) i'm still sad it didn't catch on instead of node

</comment><comment><USER44> I mean, the entire name of the game is unnecessary complication. We took a document platform and mangled it into an app platform... kinda.

<comment><USER45> We need to remind ourselves frequently that the web is a terrible platform. Yes, TCP/IP changed the world, but the web is an embarrassment to our field. It could be so much more.

<comment><USER16> Web is good. It's how we use it. If web was sex, todays web dev is basically gang rape.</comment></comment></comment>


Show HN: Breach – A modular browser built on Chromium and Node.js - <AUTHOR> http://breach.cc <comment><USER2> I'm trying to put this as constructively as I can: Proudly dismissing Windows on the second line of your copy makes me not want to take you seriously. There's nothing wrong with not supporting certain platforms, but bragging about it makes you seem a bit snobby.

EDIT: And I'll grumpily admit that this also bugs me because Windows is me favorite OS and Breach looks like a thing I would actually use. I hope its just circumstance. And not some goal in itself to not support it out of some far fetched principle.

<comment><AUTHOR> Hi skrebbel, didn't want to appear snobby at all... We just didn't have the time to port the whole thing to windows :(

What would you write in that button?

<comment><USER3> Replacing "only" with "now" (or nothing at all) would improve the tone.

<comment><AUTHOR> Done! Thanks.

<comment><USER4> Better yet, have a little spot where you ask for developers with experience porting things like this to Windows for their help.

<comment><USER5> Or ask people from other platforms to sign up for a mailing list to be notified once you have something for them.

</comment></comment></comment></comment></comment></comment><comment><USER6> What about this doesn't also apply to Firefox? It too is open source and modular, and also written in Javascript (though combined with XUL rather than HTML, and using Gecko instead of Webkit).

<comment><USER7> That was my reaction as well. I was pretty interested to see a browser genuinely written entirely in JavaScript, which would at least be a new thing.

Since it seems like the developers are posting in this thread, could you talk a little about the differences between Breach's approach and Firefox's? I suspect they must exist mostly in the node.js layer - which tasks is that layer responsible for?

(Edit: I see you replied to the parent comment while I was writing this one. =)

<comment><USER8> How do you define "genuinely written entirely in JavaScript"?

Is it covered by something like links/lynx in a JS based RISC emulator¹ or the Firefox OS web browser app²?

[1] [http://s-macke.github.io/jor1k/](http://s-macke.github.io/jor1k/)

[2] [https://github.com/mozilla-b2g/gaia/tree/master/apps/browser](https://github.com/mozilla-b2g/gaia/tree/master/apps/browser)

<comment><USER7> Those are interesting projects for sure, but for me neither of those really qualify. I'd want to see the core browser algorithms written in human-readable JavaScript - things like HTML parsing, CSS layout, and rendering.

</comment></comment></comment></comment><comment><USER9> OK, it's not quite the same but last week Robin Berjon wrote "Web 2024" which spoke as if from the future and he said: _" This is 2024. In terms of the ecosystem, not only do all browsers have large chunks implemented in JavaScript but at some point someone started a pure-JS browser from scratch. It was initially meant as a joke, but this 'Inception' browser caught the fancy of the ever-resourceful JS community and quickly grew in usability."_ [http://berjon.com/web-2024/](http://berjon.com/web-2024/)

</comment><comment><USER10> This is a great idea. I've wanted to build something like this for a while, but never got around to it.

I think people here are missing the point. Firefox and XUL is also a JS- scriptable UI over a browser, but it's a terrible environment to work in.

The UI is the main thing that differentiates web browsers. Our tabbed browsers have looked the same for years now. This is going to enable all kinds of awesome experimentation and customization. I'm super excited to see where this project goes.

<comment><AUTHOR> You perfectly captured the spirit of the project! :)

</comment></comment><comment><USER11> Is there an RSS feed for the blog?

Sidenote: It's a huge pet peeve of mine when people put up "blogs" without RSS feeds. How are people supposed to follow your updates?

<comment><USER12> Ugh! Nothing gets more on my nerves.

</comment></comment><comment><USER13> This is a neat hack on current technologies. Reminds me of uzbl [0] in the separation of modules, each one being good at only one thing and doing it well.

What eventually killed uzbl [1] was the difficulties working with IPCs; I hope you overcome this and build something even greater !

[0] [http://www.uzbl.org/readme.php](http://www.uzbl.org/readme.php)

[1] [http://dieter.plaetinck.be/luamail_a_mail_client_built_into_...](http://dieter.plaetinck.be/luamail_a_mail_client_built_into_luakit.html)

</comment><comment><USER14> Not the most assuring name for an application I send nearly all my personal data through.

<comment><USER15> I didn't think it until you said it, but now I totally agree :)

</comment></comment><comment><USER16> I suspect that asm.js will obliterate the existing space of web browsers soon. They are bloated dinosaurs from the last millennium. In fact, a "browser-in- browser" project along the lines of jslinux and vim.js, where the entire browser tool chain is emulated (in the browser) is possible.

If a browser can be shown to be a lightweight dev tool with integrated toolchain servicing CPython, C, and JavaScript, rather than a glorified porn watching device, then there is hope for civilization.

It is really very nice that the source code is available. I do hope that open source will eat Capitalism alive soon. Not to mention copyright law. Right now, the tech industry looks like a bunch of crackpot inventors and psychopath totalitarian wannabes.

<comment><USER17> Is this satire?

</comment></comment><comment><USER18> Cool project. The fact the whole UI and app is scripted/built with JS should make modifying your browser trivial. I like.

<comment><USER19> Finally way to fix Chrome dumbified gui and add vertical tabs.

<comment><USER20> my kingdom for tree-style tabs with labelable nodes!

</comment></comment></comment><comment><USER21> As a newfound convert to the Conkeror browser, which basically allows you to configure everything through JS and use MozREPL to talk to your browser instance purely through JS, how is this different (notwithstanding the obvious choices in architecture and JS engines)? I mean, it seams like the minimalist JS-run browser has been around for a while (and if not JS, Uzbl did Python as mentioned below, Luakit does Lua). Granted the others do not really run up and down the JS stack, with or without a separate conf language, but I do see this as Conkeroresque.

Am I wrong?

</comment><comment><USER22> This is very cool - I just figured out how to shrink the top strip to 25px from its original 45px in about 5 minutes. Very refreshing compared to modifying Firefox.

<comment><AUTHOR> That's exactly what we are after. Awesome!

</comment></comment><comment><USER23> You should check out the Browser API in Firefox OS: [https://developer.mozilla.org/en- US/docs/Web/API/Using_the_B...](https://developer.mozilla.org/en- US/docs/Web/API/Using_the_Browser_API)

Is a similar concept since all apps on Firefox OS are built on HTML, including browsers.

</comment><comment><USER24> Why does it connect to data.breach.cc at startup?

<comment><USER25> looks like that is where it goes for auto updates.

<comment><AUTHOR> That's it

</comment></comment></comment><comment><USER26> Was hoping to find a JS interpreter written in JS (like pypy) with browser on top.

<comment><USER8> js.js¹? Also, take a peek at repl.it if you haven't already

[1] [https://github.com/jterrace/js.js/](https://github.com/jterrace/js.js/)

[2] [http://repl.it/languages](http://repl.it/languages)

</comment></comment><comment><USER27> Neat, wish I could test on Windows. I'd love to see the performance.

<comment><USER28> You would probably be disappointed.

<comment><USER29> [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

last sentence.

<comment><USER30> second to last sentence

</comment></comment></comment></comment><comment><USER31> Serious question: how hard is it to sign an OS X application?

<comment><USER32> 100$, that's how hard.

</comment></comment><comment><USER33> Atwood's law in effect?

<comment><USER34> "Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript." \- [http://blog.codinghorror.com/the- principle-of-least-power/](http://blog.codinghorror.com/the-principle-of- least-power/)

</comment></comment><comment> dav- Seems to be very unstable on Yosemite Beta 2. I tried loading this thread, and it the HTML view froze immediately. I then tried to load up Reddit, and it just wouldn't load.

It's a really cool concept, though, I look forward to seeing where it goes. It would be super cool if it became stable enough to be my main browser, because I love the customizability.

<comment><AUTHOR> Hi Dav. Behaves really bad ATM on Yosemite unfortunately indeed :(

</comment></comment><comment><USER35> I would be very interested in seeing a tutorial for how to build a custom developer tool in this.

Something I've been very interested in over the last couple of years is the idea of creating once off, task specific, development and introspection tools. Breach seems like the perfect environment for that kind of thing.

</comment><comment><USER36> I find the amount of files these JavaScript projects require astonishing. On OSX this app's application bundle contains 4046 files and 1018 directories.

Contrast that with Google Chrome wich has "only" 388 files and 577 directories in its application bundle. (a lot of empty directories apparently)

</comment><comment><USER37> So V8 was taken from chrome, it is then used to launch chromium which has its own copy of V8 on the inside.

<comment><USER15> yeah, basically.

</comment></comment><comment><USER38> I would like to try this out but it crashes when I try to start it and dumps core.

I raised an issue here: [https://github.com/breach/breach_core/issues/95](https://github.com/breach/breach_core/issues/95)

</comment><comment><USER39> I like this a lot, the module handling is excellent + certainly brings another level to browser extensions

dunno if anyone else had this problem but I had to manually set $CHROME_DEVEL_SANDBOX on arch

CHROME_DEVEL_SANDBOX=`locate chrome-sandbox` ./breach

</comment><comment><USER40> This seems oddly relevant: [https://www.destroyallsoftware.com/talks/the- birth-and-death...](https://www.destroyallsoftware.com/talks/the-birth-and- death-of-javascript)

<comment><AUTHOR> haha :) Yes... influenced the conception of Breach for sure!

</comment></comment><comment><USER41> Loaded initially, installed mod_strip, crashed, now crashes upon load. OSX 10.9

<comment><USER42> \+ 10.7.5

opened an issue with stack trace here: [https://github.com/breach/breach_core/issues/59](https://github.com/breach/breach_core/issues/59)

</comment></comment><comment><USER43> Well, I think this is extremely cool. The concept is great, the minimalist mod_strip is thoughtfully designed, and even as someone who isn't a fan of JavaScript I think it makes a lot of sense in this case.

</comment><comment><USER44> The idea is great, but in a world where browser performance is a competition, writing a web browser in Javascript _might_ not be the best.

The interest here is learning, and it looks like Breach is very good on this point.

<comment><USER45> Yeah, just like Firefox which is pretty much Javascript and XUL on top of Gecko :)

<comment><USER46> I don't use Firefox anymore because it's so much slower than Chrome, especially when using firebug. Speed IS important. Whenever I see Mozilla release new versions like every day, with new features that I will never use, I wish they would just drop everything and focus on improving performance.

<comment><USER47> There are many of us are Mozilla who focus primarily on performance improvement. The fact is, though, that performance improvements usually are not splashy enough individually to be added to release notes. "Improved performance measure X by 15% in circumstance Y!" is not going to thrill anybody, even if it is important. Please don't take the release notes as representative of where our engineering effort is spent.

</comment></comment></comment></comment><comment><USER48> Every companies can build their own browser. It's a good thing for WEB developers. The companies can limit their works internet behavior. For me, may be some day I can use this to build my own browser.

</comment><comment><USER49> This feels quite similar to [https://mozillalabs.com/en- US/chromeless/](https://mozillalabs.com/en-US/chromeless/)

To bad Mozilla abandoned that project years ago!

</comment><comment><USER50> Anybody reminded of Sencha? I don't think any UI should be coded in JS, especially one that's built for the browser. At least Sencha/Ionic et al is targeted for phonegap apps...

<comment><USER51> I think you might need to re-read the link. This is a browser UI and infrastructure (powered by Chromium) written in JS. It's not an app which runs inside a browser, therefore I'm not sure the comparison is useful.

</comment></comment><comment><USER52> Absolutely love this! Great job, but I'm kind of annoyed that writing breach modules to improve my web experience threatens to derail _my_ side projects.

PS- Spell check doesn't work... Module?

<comment><AUTHOR> Can't wait to see what you come up with! Spell Check would require adding an API to the ExoBrowser... but doable as a module then yes!

</comment></comment><comment><USER53> One thing that hit me was typing a URL wrong provided no feedback to me that my input might be wrong (no dns records found, or server not on https, but happens to be on http)

<comment><AUTHOR> This is a cruelly missing feature indeed!

</comment></comment><comment><USER54> Awesome! I've just posted this comment in Breach browser!! I hope that I can open a atom editor directly by some short cut (e.g. cmd + m)!

</comment><comment><USER19> This looks like a perfect core to build a real (no problem with shortcuts like in chrome) minimal browser with vim shortcuts. Sweet!

</comment><comment><USER55> Like the design and idea. It is not usable at the moment but I'd like the project to get stable and ready for day-to-day usage.

</comment><comment><USER56> I love the homepage! I like it even if it uses a thin font, which I find less readable. I hope the product to be neat as the website

</comment><comment><USER57> I am still waiting for a browser written in PHP.

<comment><USER58> I made a mini web browser in PHP. It's command line usage only and doesn't have a GUI and can't display images, only text. Also it's really difficult to click links since you have to type in the link number.

</comment></comment><comment><USER59> This plus github's Atom editor, and I can spend all day working only on Node.js with an html UI.

As soon as Node OS is done, I'm set ^.^

<comment><USER60> Next step: kernel programming in Javascript.

<comment><USER19> Next step: cpus supporting asm.js instruction set directly.

</comment></comment></comment><comment><USER61> Did anyone notice that the font they use in the default URL/tab bar is Gotham, the font made famous by the Obama campaign?

<comment><USER62> If it is, Hoefler & Co. is going to come after the devs for licensing.

</comment></comment><comment><USER63> I love the idea of modules, using web tools to hack our own UX should be the standard in future softwares. Great job !

</comment><comment><USER64> I'm on Ubuntu 32-bit, and I'm only getting linked to the 64-bit download. Is there even a 32-bit version?

<comment><AUTHOR> unfortunately not at the momemt :(

</comment></comment><comment><USER65> Is anyone else having the problem where you resize the window on an rMBP and the whole screen goes blank?

</comment><comment><USER66> The only question on everyone's mind: how's its JavaScript support? :) Enough to self-host?

</comment><comment><USER67> Pretty sure I'll never suggest to a client that I add "breach" to their software.

</comment><comment><USER68> While I'm aware of what you're implying by "hackable," that word has horrible connotations when it comes to browsers. I would never want to describe my browser as "hackable." If I were you, I'd consider using a different adjective. Best of luck with the project!

<comment><USER69> 'Customizable' would be a better choice, especially for non-programmers.

</comment></comment><comment><USER70> No HiDPI support :( Damn it.

</comment><comment><USER71> Exciting! Can you detail how it's significantly different from node-webkit?

<comment><AUTHOR> hey from breach.cc/hack:

The result is an executable exposing a NodeJS REPL with a special API to control browser windows and frames direclty from Javascript. Some people will note the resemblance with node-webkit. Well, the building blocks are very similar but the overall architecture is fundamentally different: here we expose the Content API into a NodeJS context to have the necesary semantics and security model to build a browser using only Javascript code. Node-webkit, on the contrary, exposes nodeJS API within the renderer of a trivial browser (one window, one webcontents view) to make it super easy to build native apps using Javascript code.

<comment><USER71> Thank you! If I am understanding correct then the tl;dr is: node-webkit is made for building native apps using JS. breach is a web browser made for hacking with JS.

<comment><AUTHOR> Well node-webkit is made for bulding native apps using JS. Breach is made to build browsers using JS (very different security requirements between a native app and a browser and who tabs interact within it)

<comment><USER72> Since everything in the browser is replaceable and implementable with JS/HTML/CSS then isn't Breach a layer above node-webkit? That is, everything can be changed, so you can write a Breach based app that has no regular browser component in it. I am trying to get a feel if Breach is perhaps more accessible way to do native app dev than node-webkit, which seems to require a lot of boilerplate that is necessary for basic apps.

I am a bit confused how Light Table and Atom can implement tabs if node-webkit is only one tab.

<comment><USER73> "Tabs" are probably in the same Webview (not actual "browser tabs").

</comment></comment></comment></comment></comment></comment><comment><USER74> O no, not more javascript. I need less javascript in my life not more.

</comment><comment><USER75> Download link via bit.ly redirect? Seriously?

</comment><comment><USER76> If anyone wondering, work on 10.10 DP3

</comment><comment><USER77> my main concern is whether this could be used as a more flexible/stable replacement for phantomjs

</comment><comment><USER78> What CSS rendering engine is used?

</comment><comment><USER79> so its like most custom ui android browsers?

</comment><comment><USER80> but not for windows.... fml.

</comment><comment><USER81> Neat project, but the marketing's a little disingenuous. It's not "entirely written in Javascript", it's a Javascript layer on top of Chromium, an enormous codebase written in C++.

<comment><USER82> It should be "Show HN: Breach – A new browser _UI_ written in JavaScript"

<comment><USER83> We changed it to that. Thanks for a perfect (because minimal and neutral) HN title edit.

<comment><AUTHOR> The post had a couple title edits which is fine but the last edit is really diminishing the impact of the whole project: "Show HN: Breach – A new browser UI written in JavaScript"

I appreciate that Breach is not _entirely_ written in JS, but it's as much a browser as Opera is and qualifying it of a "Browser UI" does not convey a realistic image of the project.

Maybe we could edit the title again to something like: Show HN: Breach - A new modular Browser built on top of Chromium/NodeJS

<comment><USER83> Ok, sure. We've changed it to (approximately) that.

<comment><AUTHOR> thanks!

</comment></comment></comment></comment></comment></comment><comment><USER84> Javascript except for the millions of lines of C++ code that make up the actual browser (chromium embedded using the content api).

Cool hack though.</comment>