Show HN: Breach – A modular browser built on Chromium and Node.js
breach.cc
breach.cc
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.
A modern, HTML5-capable browser which performs well on a A2000, A3000, A4000, or A1200 running AmigaOS 3.1, with 128mb of RAM, a 33-50mhz 680030+ processor, and a 2 or 4mb Picasso video card would make one "seem a bit down to earth". It would also make a lot of us old-time Amigans happy.
What would you write in that button?
I'm impressed how something as simple as reading "only available on $NOT_MY_OS" in a nicely laid out box gives me the complete opposite emotion than what you intended. My comment got a large number of upvotes, so apparently many felt the same. And still, if you look at it, there's nothing wrong with the text in and of itself. Only on this and that OS. Fine, good to know.
So apparently, writing it with that word ("only"), with the OS logos instead of the names maybe, and so happily and centrally and proudly laid out, was what changed the perceived intent. I really thought that you guys were some kind of anti-Windows crusaders. And probably, the exact same text elsewhere, or slightly different text in that spot, would completely change that.
Damn, copy is hard!
"Now available on [apple]/[linux]"
suggests that it was previously available but not on those platforms. You're going to find a lot of people searching high and low for the .exe file IMO.
Personally I'd stick with "Available on [apple]/[linux]", drop the "only" if you're worried about it sounding like it's a choice for exclusivity reasons. Then you probably need to add a by-line below the button indicating "MS Windows and other OS versions not yet available, please contact us through the forum [or whatever] for details". Or have a click through to gather email addresses so you can contact users later if MS Win or other versions come out.
Copy is hard, huh.
EDIT:
Downvote all you want--how many times have you had to deal with packages that magically only build on Windows, OSX, or Linux? Or only on a particular version of Ubuntu?
On Windows, VS debugger beats everything else I've seen hands down.
It's not hard to support Windows if you're writing good cross-platform code; there are a lot of libraries (Qt, Boost, etc.) that make things much easier than they used to be.
Again, I see lack of Windows support mostly as programmers being lazy (and I've said the same thing about lack of 'nix support, so don't think I'm being biased).
If you don't write portable code you're doing it wrong.
"Lazy" would imply that Windows support is somehow a requirement that's being shirked by developers, which frankly it isn't. Microsoft is not entitled to have developers support, expend effort on, or even give a moment's thought to their platforms.
And this attitude being displayed toward Microsoft is just lazy (and very likely the province of the young), because while they did give us a crappy browser and Webforms for way too long, and they are fun to poke fun at, they've done more than most companies to push both the computer revolution and the Internet as a whole forward to what it is today. So give them a little credit, pull your head outta the sand and actually take a look at what they do once in a while also. You might be surprised what you find.
As far as I'm concerned Microsoft has squandered any goodwill they may have been due, if they deserve any credit it is for driving me to open source.
As much as everyone bitches about them, the entire reason we even have affordable desktops and laptops enabling this magical open-source revolution is because of the work Microsoft did in the 80s and 90s.
That's like saying if Henry Ford had never mass produced cars, no one would have figured it out...
Yes MS created the PC ecosystem in the 90's, but if they hadn't, someone else would have (Apple? IBM? Maybe even Sun?). Market pressure would have eventually driven down prices, it always does...
Apple was busy shooting itself in the foot as a boutique brand. IBM was not interested in lowering prices. Sun (and SGI for that matter) were heavily wed to the workstation and high-end server market.
Microsoft (and Intel) by careful work made it possible for cheaper hardware to still run a product people wanted, and so create the market pressures you're referring to.
They were a pure software company, and used that to enable competition in the hardware market.
Who uses Windows for native apps that are truly Windows exlusive? Even Microsoft Office is a web app now, it's on OSX and iOS, and can even be run on Linux if you're crafty enough. Windows-only games? Fewer and fewer.
I'd definitely argue that Windows is not a requirement, though going cross-platform is a bonus.
As far as giving MS credit, they have been open sourcing many of their projects, and playing a little nicer with the non-Windows ecosystem...
You need to narrow it down substantially for that claim to make any sense.
(as for their contributions, I'm not going to get started on what would just end in a flamewar - suffice to say we have very different views on what the computing world is likely to have looked like without MS)
Please stop punishing users for your platform fanboyism. Really.
Also, code portability for a project like this is important, but that's not universally true. Having a hard and fast requirement for code portability imposes a set of concerns, design and maintenance issues that complicates a project. It (almost) never comes for free, and is a legitimate concern for any project--even ones where a portability requirement is almost a given.
If it is useful at all on anything, for anything, then it is doing pretty well.
And, unless you are the sort of person for whom using another platform when necessary is no great stress, then perhaps you shouldn't even be looking at installing untested alpha-level software releases anyway.
I'm pretty sure Chromium and Node build just fine.
https://github.com/joyent/node/wiki/installation
http://www.chromium.org/developers/how-tos/build-instruction...
EDIT:
https://github.com/breach/exo_browser/wiki/Building-the-ExoB...
What else am I missing from your package.json?
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. =)
Basically, the idea is to take the Chromium Content API and expose it to JS (that's similar to Firefox).
Doing it we figured, why not add some APIs to do interesting stuff in JS as well... and that's how we embedded NodeJS and exposed the Content API within a NodeJS tread....
So you have access to all the nodeJS modules while building your own modules for Breach... makes it fairly convenient :)
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/
[2] https://github.com/mozilla-b2g/gaia/tree/master/apps/browser
The basic motivations are totally the same. I also believe that is's probably way simpler to rewrite an entire web browsing experience on top of Breach.
Chromium/Chrome Build Process: https://code.google.com/p/chromium/wiki/LinuxBuildInstructio...
Firefox Build Process: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_g...
The pages are in fact different, but the latter in the case of Firefox is what I used to complile it myself (disclaimer: I considered building Chromium from scratch but never found the time interest). As build tools go, I know gyp/ninja are more hip, but I see gyp and mach (both Python based build management tools, I will compare those instead of Ninja which is slightly different) as both good, but do things differently enough to make it an apple-oranges comparison. Keep in mind Chromium people started from scratch, but Mozilla/Firefox devs were building a system on top of autoconf (which everyone hates gathering my reading of many such comments on HN) to simplify the build process.
Can someone who is familiar with both explain why gyp/ninja is superior?
While I don't hate autoconf, the combination of gyp and ninja is quite nice -- although I have more experience with cmake and ninja. From what I've seen of gyp, it has many "typical" "modern" build-tool features -- and I'm really happy they ended up keeping gyp featureful, and ninja simple and fast.
I imagine you'd need about as big as a mess (no criticism, it's a large project with a long history, complex dependencies) as Firefox to have any reason to choose mach over just autoconf/automake for a new project. And if you're going with a "new" build tool, I think I would go for CMake (many people hate CMake, too, though) or perhaps Waf or SCONS.
So, not sure if I think gyp is "superior" (although it certainly is good) -- but the combination of a "smart" build tool and ninja as a build "blunt instrument" is pretty great: ninja is fast.
Interestingly, though, the new menu introduced with Australis doesn't appear to be functional unless it's in the top-level window; the menu buttons in nested windows don't seem to do anything.
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.
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?
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
[1] http://dieter.plaetinck.be/luamail_a_mail_client_built_into_...
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.
Am I wrong?
Is a similar concept since all apps on Firefox OS are built on HTML, including browsers.
last sentence.
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.
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.
Contrast that with Google Chrome wich has "only" 388 files and 577 directories in its application bundle. (a lot of empty directories apparently)
I raised an issue here: https://github.com/breach/breach_core/issues/95
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
opened an issue with stack trace here: https://github.com/breach/breach_core/issues/59
The interest here is learning, and it looks like Breach is very good on this point.
I hear a lot of firefox hate, and while it certainly used to be true that it wasn't very good, it's no longer true.
Really, every browser is slow as heck and buggy, so to each his own ;)
To bad Mozilla abandoned that project years ago!
PS- Spell check doesn't work... Module?
As soon as Node OS is done, I'm set ^.^
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.
I am a bit confused how Light Table and Atom can implement tabs if node-webkit is only one tab.
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
Breach - A new modular Browser UI written in JS ?
Cool hack though.