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.
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.
They really really need a new name. There's no way that thing is going to be marketed successfully. Not even if the software itself was able to power web4.0 apps, skipping web3.0 alltogether.
.sig: No such file or directory
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 Unix philosophy is to name things as if you were throwing up? *UZBL* *wipes mouth*
About damn time, I say. For the past few years I have browsed the web with hundreds of tabs at a time. Firefox tends to crash after 50 tabs. Opera tends to crash at about 450 tabs. Some of this varies with RAM, but we're all familiar with the firefox single-thread issues, which really puts a downer on things. Let the window manager do its job: tabbing is for losers. Also what's with the insistence on keeping all tabs in RAM anyway?
.. in particular, I hate the web, surfraw is great, if it only worked. Web scraping utilities don't always work because webmasters insist on changing layouts, templates, HTML, and don't understand how to make long-term APIs for their content. So, my plan is to make something like xpather (from firefox) that allows a user to select elements on a page and figure out the xpath to retrieve the data. This can be dumped into a standard scraper definition file format or something, and then uzbl only has to pop up whenever some idiot changes a web page. Until then, these scrapers harvest data for me.
I've been working on some scripts to use with uzbl
Then all of us web-haters can send these xpath scraper template files around and live in harmony, or something.
Does it run on Windows?
Populus vult decipi, ergo decipiatur...
"Force shits upon Reason's back." - Poor Richard's Almanac
To anyone who wants to try it out on Ubuntu. I'm sure it will work for other platforms too :)
http://kagashe.blogspot.com/2009/06/uzbl-new-usable-browser-on-ubuntu-904.html
The learning curve is a bit steep...
Yup, say no more - that's the Unix philosophy in spades.
#DeleteChrome
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!
http://en.wikipedia.org/wiki/Lynx_(web_browser)
http://lynx.isc.org/ ---home_page
Politics is Treachery, Religion is Brainwashing
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
Actually, I'm runing this on fedora 11 right now, and flash works just fine for me (not extensively tested, just youtube & addictinggames). Sure it's a mite choppy in fullscreen, but about the same as it is on XP/IE [7,8] Actually, uzbl as a whole works just fine for me. It has seriously joined the war between Iron and FF on my system. The lack of uri editing might be a problem, but I'm sure I'll be fine.
It seems to me that this uzbl thing is basically a page-rendering widget, based on webkit, that is made to allow interested hackers to quickly develop their own, totally customized user interface. They give you the "browser", but you are pretty much left to design and create your own systems for cookie management, bookmarks, history, navigation, etc.
Sounds like I might have fun doing that if I ever had that much spare time. More likely, I would find myself using it as a convenient way to embed Webkit rendering into some app I was developing.
Censorship is the opposite of education. If neo-darwinism were defensible, people would not need to try and censor ID.
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
Only marketroids use Flash for their fucking annoying banner ads that either moves all the time, plays music and sounds or even worst starts playing a fucking video while I'm trying to read the godamn fucking webpage.
Annoying Flash crap = I can't focus on the actual page content = I close the fucking website and never go there again.
A single executable that forms part of a UNIX application doesn't take nearly as much physical space as a dedicated device. It takes more pockets to carry a dedicated phone, a Nintendo DS, an MP3 player, etc.
Let the window manager do its job: tabbing is for losers.
Firefox became popular back when Windows 98 was still supported. In Windows 98, there was a concept of "System Resources", involving two 65,536-byte heaps called "user" and "gdi". A new window took a lot more out of each heap than a new tab.
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.
I wouldn't be surprised to find that a tab required almost as much system resources as creating a new window
I seem to remember that with rsrcmtr open to show the percentages, opening five new tabs in Firefox 2 took noticeably less resources than opening five new windows in Firefox 2. I can't give you exact numbers anymore since I converted my old Win98se laptop to Puppy Linux and my old WinME box to XP.
I spent a few days playing around with uzbl ( the git repo is still on my computer ). It's nice and I can't wait for it to mature more but right now Vimperator + Gecko is what I'll be sticking with. uzbl is kind of slow and the the ui was not very pretty but it might have been the way I wrote the status_format, not sure. I also was having problems using it in tiling mode with Awesome WM. Also, they need better docs. I'm sure after uzbl and webkit matures more I might even replace vimperator with it.
It is surprisingly useful and fits well within just about any minimalist desktop setup. As it is it has a little ways to go before it's really a good substitute as the main browser, but I'll make sure to always have it installed now.
Little programs connected by pipes, right. Back in 1978, that was kind of cool. Anyone remember when you got multiple columns from ls by writing ls | mc ? "ls" originally just produced a one entry per line list; if you wanted multiple columns, you used the "mc" filter to create them. Now, the feature list of "ls" is huge.
Actually, UNIX and Linux are way behind in inter-program communication. Using pipes for message passing is like hammering a screw. Windows at least has a standard way for programs to talk to each other in a coherent way. UNIX has about five such ways, none of them very good. OpenOffice and GNOME both have reasonable message passing systems, but they're different and don't talk to each other. Attempts to get out of this mess have produced things like AJAX and JSON, which are widely used and ugly, and more elegant schemes like Google's message marshaling system, used by few outside Google.
It works on almost all distributions what just has needed depencies. Do not market Ubuntu again as somekind special distribution (it has less users than Fedora, wonder why... http://feedproxy.google.com/~r/SourceGuru/~3/4YJnJ4snkn0/ )
As in example, you can find the uzbl from Mandriva (cooker) repository as well, if you want to try it.
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.
No? Then it's not a browser at all. Today it's impossible to browse the net without eazylist & co. It makes NO sense to change your browser if you switch and immediately get hit with shitloads of ads. That's exactly why I did not switch from Firefox to Opera, no matter how fast Opera is (and was). I don't want to maintain my own list of adblocks, other people did it well. I just want to be subscribed to the best up-to-date set of rules and only Firefox does this seamlessly.
% man uzbl
No manual entry for uzbl
They call it unix way? WTF? I want to know how to use it, I type man uzbl and what? No man page?
Pathetic.
X-axis = learning
Y-axis = time
Therefore, something that has a steep learning curve is *easy* to learn.
It would be nice to have the option to mark the post as "flame-bait" but not subtract rating points.
Indeed. Sometimes, modding "+1 flame-fu" would be appropriate, if it were possible.
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
I don't know where everyone has gotten this "bad_UI == unix" idea from, except maybe from wishful thinking due to denial that Unices need a UI update.
The only "philosophy" unix has about software design is that tools should be orthogonal, as simple as REASONABLE for a task, and interoperable with tools for other tasks, and that some sort of UI should let you easily combine their power.
How does that fit into the modern GUI? As scriptable components, like COM on windows or DCOM/DBUS in KDE. In other words, not single-channel text streams and pipes like this so-called browser promotes or old-style command-line tools promote, but modern objects with clear object-oriented interfaces. However, even after unix gets that, it needs some easy way to link the things together. Where's the thing to link them together? The closest thing I've seen would be Automator, and that's for OS X, not standard unix.
I like unix as much as anyone, but really... Unix people really need to stop shouting about the unix philosophy until they start being the best at it again.
Web browsers essentially do four things: ask for pages (possibly when you click on a link), render pages, embed plugins, and run scripts.
HTTP, on the other hand, does eight things: OPTIONS, HEAD, GET, POST, PUT, DELETE, TRACE and CONNECT.
A complex modern browser could easily be split into separate http and renderer components (Konqueror may work this way), and possibly many simpler components than that.