Meet Uzbl — a Web Browser With the Unix Philosophy
DigDuality writes "Dieter@be over at Arch Linux forums, a release engineer for Arch Linux, got inspired by this post. The idea? To create a browser based on the Unix philosophy: 'Write programs that do one thing and do it well, programs that work well together, programs to handle text streams because that is a universal interface,' among other points. The result? A fast, low-resource browser named Uzbl, based on WebKit, which passes the Acid3 Test with a perfect score. The browser is controlled (by default) by vim-like keybindings, not too dissimilar to vimperator for Firefox. Things like URL changing, loading/saving of bookmarks, saving history, and downloads are handled through external scripts that you write (though the Uzbl software does come with some nice scripts for you to use). It fits great in a tiling window manager and plays extremely well with dmenu. The learning curve is a bit steep, but once you get used to it, it's smooth sailing. Not bad for alpha software. Though built for Arch, it has been reported to work on Ubuntu."
This is a really fun web browser to tinker with. However, I'd recommend people should use a backup browser until they get it up and functioning to their specific needs. I'm still trying to work around with the cookies scripts, myself.
http://sourcemage.org/ - Have fun
Worse is better!
I suggest NUZBL.
Tubby or not tubby. Fat is the question
So it's not a web browser, but rather a HTML rendering widget you can use to write a web browser, or use in other programs? I think .NET has one of those based on the I.E engine...
Come as you are, do what you must, be who you will.
I'm very tempted to try it, but it has those nauseating, voodoo-like vi keybindings. What's wrong with using the sweet and pure emacs keybindings? Well, I'm going to go take a look now and see if that's configurable.
MODERATOR HINT: I'm guilty of attempted humor, not flamebait.
Caveat Utilitor
The goal isn't to gain popular market share.
I don't think they're looking for standard users, and kind of the whole point was to create a learning curve. This implies that it's targeted at powerusers and developers. With the script-integration, this could be useful for quickly churning out a limited-use kiosk with a few helper apps or something (e.g. a novelty photo booth with web integration).
Anyway, the price is right.
"They were pure niggers." – Noam Chomsky
Does it run on Windows?
Populus vult decipi, ergo decipiatur...
"Force shits upon Reason's back." - Poor Richard's Almanac
The learning curve is a bit steep...
Yup, say no more - that's the Unix philosophy in spades.
#DeleteChrome
Novel ideas usually don't live on by themselves unless they become useful. The worst thing the developers did (besides the name) was create a "steep learning curve" for the common web browser. The best thing the developers could do is work with an existing product that already has market share and works great like Chrome (also based on Webkit) and make their additions to it in support of better key bindings.
That depends on whether the goal is to obtain the largest possible marketshare. If that is the goal, or if that is your sole definition of "useful," then what you say does apply. If they don't give a damn about competing head-on with the likes of IE or Firefox then what you say is completely irrelevant. What I don't understand is the (usually) unstated assumption that marketshare numbers are the only reason why anyone creates any piece of software. While it's important in terms of attracting developers and, in the case of browsers, for putting pressure on Microsoft to make IE more standards-compliant, there are many reasons why someone might write a browser and this includes reasons that wouldn't personally motivate you.
I see the same sentiment shown when some people discuss Linux as though its only purpose is to compete with Windows. They then act like Linux is a complete and utter failure if it doesn't bust up the Windows desktop monopoly. I disagree with this; Linux just "is." If it happens to displace Windows, that's great. If it doesn't, that's fine with me too. Though I have happily introduced folks to Linux who showed an interest in it, I'm not out to win converts; I just want something that works for me. There are those of us for whom Linux is a good solution, who have no dependency on any Microsoft products, and who are able to do our computing completely aloof from Microsoft, unaffected by any decision Microsoft makes. It's abundantly possible that this is intended to be a niche browser, designed for the relatively small number of users who are technically inclined and willing to tinker with something like a Web browser and its supporting scripts.
It is a miracle that curiosity survives formal education. - Einstein
It's pronounced "useable", I suppose?
but you could say the same about the Chrome developers
Ahem. Chrome was based on webkit which was derived from the Konqueror browser for KDE. Maybe not a huge market share but probably in the hundreds of thousands of users globally at the time.
and I guess we could say the same about Firefox..
Firefox was based on mozilla which was the open sourced version of the venerable and at one time market-dominating Netscape Navigator.
No, it doesn't matter if the browser has useful features to YOU. it matters if they are useful to someone. And apparently someone out there wanted a modular browser with vi keybindings out there bad enough to write the damn thing. If it's not for you? Don't use it.
This comment is fully compliant with RFC 527.
I like the idea, and I'd love to play with it a bit, but there are a few stupid design decisions:
Why don't you just use a reasonable config by default?
There really is no excuse for this. I mean, yes, I can understand where not everyone would want that "reasonable default", but that's why it's a default.
We don't want to store anything "automagically" in the users home. Some people prefer different file/directory layouts
Uhm... ~/.uzbl? How difficult is that? And if you don't like it, rm -rf ~/.uzbl!
Or just create an example script that sets up the default config, and put it in your FAQ.
We considered the option of having a global '/etc/uzbl' which user specific ones could override but that would overcomplicate things.
I'm sorry, but even mplayer is officially friendlier than uzbl. How the fuck is it "complicated" to read one config file, then another?
Uzbl itself doesn't use much gtk stuff (only the statusbar) so we could do without gtk. But Webkit needs a widget toolkit to create widgets (think javascript popups, html forms etc). Officially, it also supports QT and wxwigdets.
So, why doesn't uzbl also support these options? I'm using KDE, so Qt makes sense.
Uzbl.run( )
command is any uzbl command as defined above
return value: a string, either empty or containing the output of the command. Very few commands return their output currently, including js, script, and print.
They obviously realize that JS runs in a single thread. So the obvious implementation here would be to use a callback, not a return value, so you don't block the entire page while you run that script.
I mean, I want to like it, but that's a number of facepalms right off the bat, so I think I'll stick with Chrome until I have time to fix them.
Don't thank God, thank a doctor!
What are you doing that requires 450 or even 50 tabs for that matter? You sound like an RMS nutjob.
Only the State obtains its revenue by coercion. - Murray Rothbard
http://slashdot.org/article.pl?sid=98/02/24/114700
11 year old dupe article.
Hmmm... as an aside... wonder why no posts there.
Cwm, fjord-bank glyphs vext quiz
This browser is simply a wrapper around Webkit - so things like passing Acid3 with a 100/100 score is something that it inherits by default. It's not like the developers of this project did anything in particular, other than chose to use Webkit, to make it pass Acid3 or be standards compliant in other areas...
As mentioned above, Webkit isn't the most unix-like unix software being a big, monolithic program written in C++ .
All this project does is wrap a purposely obtuse front-end around a popular, open source browser engine.
Specialist Mac support for creative pros, Melbourne
If it does more than wget, doesn't that mean it already has too many features?
Notepad is, and was designed to be, an extremely basic text editor. It doesn't have lots of features not because those would necessarily make it hard to use, but because they'd take resources to develop. It is just a simple program to display a text file, little more.
Now compare Vim to something like UltraEdit. Here you have a tons of features. Maybe even more than Vim has. However it is still simple to use the basics. You can fire it up and open up a file and edit it with no more effort than notepad. It is easy to do the simple stuff.
The real mark of well designed complex software is where the learning curve is variable, meaning it is only as steep as it needs to be for a given thing. Simple lings are easy to learn, more complex things are harder. You don't have to bash your head against a wall learning all sorts of complicated things to accomplish the basics. The complex capability is there, but it doesn't interfere with simple stuff.
That's why something like Vi fails to impress me. When I got my current job, I had to learn about it, since it is the only text editor that comes with Solaris by default. I was annoyed with it as it is the first and only text editor I've ever encountered that I couldn't edit text in without a manual. I tried to use it, and couldn't make it work. Our Solaris guy had to show me how it worked. He, like you, seemed to assume I'd love it once I learned about it because of its power. I challenged him to show me something it could do that UltraEdit couldn't. He wasn't able to come up with anything.
The real challenge to good software is to make things as easy as possible, and make it so the complicated doesn't interfere with the simple.
"The guy had an itch and he scratched it, there is nothing wrong in that. Not everything that is made has to be useful."
That's true, and so is the fact that Uzbl is about as attractive and useful as a dirty stranger scratching an itch.
A www browser controlled by vim-like key bindings? Well that isn't unique, there are other browsers which do that already, in fact you can do that even with Firefox or Opera, as well as some of the console based browsers. It's the kind of throwback 'feature' that excites impressionable students, idiots, and people who write desperately bad distro/free software reviews where they claim they "fall in love" with "wonderful" "awesome" "elegant" "smooth" "integrated" applications and distros (visit LXer.com for acres of that kind of inane verbiage).
The point was not to have vim-like keybindings. They can be changed easily. That is the point. Change is easy.
And the UNIX philosophy is "do one thing and do it well", not "duplicate something badly for no useful purpose" (c'mon, everyone knows that's the Arch philosophy).
You, sir, are the biggest fucking idiot I have met all day.
It doesn't dupe FF, IE, or Chrome. It displays web pages. That is ALL. Firefox displays them in tabs, along with having bookmarks, skins, downloads, and addons. All internally! IE has nearly as extensive a list (no skins) While Chrome does it with just tabs, downloads, and bookmarks. None of those things are necessary. I like slim. Slim is good. Uzbl is slim. Firefox is not. IE is not. Chrome is not. If you disagree, keep using IE/FF/Chrome. I don't want to.
It, actually is very attractive. Very, very attractive.
*runs off to play with Uzbl wmii scripts*
It's not being marketed. At all. STFU and go back to Firefox. This isnt for the masses. It's for us geeks who like slender forms.
On a more serious note:
Why is it, that all the GUI desktops abandoned Unix's philosophies completely and instead went the Windows way (which of course actually is the MacOS/Xerox/$otherProductItGotTakenFrom way)?
I mean, imagine how great it would be, if we had all the tools of Gimp, Openoffice, Firefox Add-ons, etc, as separate entities, only bound to a document / data trough its mime type. You could mash up and reconnect everything at will. Pipe stuff trough that wizard, and then trough that.
Or connect a OOo tool and a Gimp tool trough pipes, and then draw with them, etc.
Imagine it like this:
- A global toolbox with all the
- tools (something you "draw" with),
- wizards (something that you apply to the selection/document) and
- views (a view and controller for the model [file]).
- A window for every view of a file.
- A location bar, showing the current position/selection as an XPath.
- A properties box, showing all the properties of the current element/selection.
- The things in the toolbox would itself be normal files -- scripts or libraries implemented in every language with an API for it to be exact -- that you could show in views, edit with the properties box, apply wizards and tools to, etc.
(Yes I got to this ideas a long time ago. I just got no time or money to implement it. If you do, please tell me. )
You could build your own tools like with shell scripts. And because that would make it much easier to create new apps by slowly growing them, we would get much more innovation. :)
Also it would pose no problem for those noobs who dislike the shell for no reason.
Any sufficiently advanced intelligence is indistinguishable from stupidity.
> Have you ever had a few hundred applications open at once like that? It
> doesnt work there either. I will wait while you try it in unix or windows
> with say paint. You will quickly see what I mean.
Soooo, just for the kicks, I held Mod4+Z (my keybind to open an urxvt) for a couple of seconds, waited for all the windows to appear, and issued "ps aux|grep urxvt|wc -l". Over 200 terminals + one zsh for each. System load went from about 0.2 to about 5.8, then quickly dropped down and has been around 0.4 now for a couple of minutes. The system feels fully responsive (although changing back and forth from/to the virtual desktop on which the terminals are takes a slight moment). Total memory consumption went up from about 700mb to about 1700mb.
Now, opening 200 terminals at once slowed the system down a bit, but only for a moment, and no kitten was killed and the WW3 didn't start. Memory is another problem, but I suppose that in such a "multi-process" web browser things like password vaults, history, bookmarks, etc could be implemented as separate daemons and only communicate to the UI what is necessary.
That's not the correct way to use vi. Command mode is normal mode. Never leave it in any other mode, including insert mode. Ever. Only use insert mode when you're actually inserting something.
There's also usually a status area which tells you which mode it's in as well.
http://sourcemage.org/ - Have fun