Browsing Nirvana – Achieved?

So as anyone who has worked with me since around 1995 or so knows that I am a notoriously heavy browser of the web. Since tabbed browsing came out, I have been using a complex two-level hierarchical system to manage my web pages. I’ll have a window that has a general sort of topic – like maybe a web page I’m developing – plus several tabs for some php functions that I’m using or MySQL documentation or whatever. And several other windows set up similarly – sometimes ‘singletons’ for various links I’ve clicked off that people have AIM’ed or Twittered to me. The end result is I can never find anything, and when my browser crashes, I’m screwed. This is why I’ve been so excited about Google Chrome coming to Mac, and about Stainless browser for Mac. Which I still play with, and is getting better every week.

However, I think I’ve just made a change that might have switched up how I use them all. I’ve added a third layer of hierarchy using Fluid. Fluid lets you make little Site-Specific Browsers (SSB’s) for websites you keep open all the time. They show up on the dock as separate applications with their own sets of windows. Basically indistinguishable from a regular Mac OS X application. So here’s how it’s made a difference for me. There are certain sites that I keep open all the time, and certain sites that I’m just browsing and not finished with (hence the window staying open). The ones that I keep open all the time I’ve made little SSB’s for, and closed their windows within my main Safari application (Safari is today’s browser of choice, I switch back and forth from Stainless lately). Now, when I’m trying to find something that’s in one of my always-open applications, it shows up in the dock. I can command-tab to it. Once I’m in it, I can command-squiggle (tilde) to the correct window. Anything that isn’t in one of my always-open applications is in my regular Safari, which only has 5 windows of its own to flip through.

It may sound insane, and probably is, but now that I have this new third layer of hierarchy I feel like a great weight has been lifted. Whereas before I would have to go through ruthless window-culling rampages – “Seriously, I’m not going to do anything about this thing I’ve been sent, I’ve left this window open for 3 hours, let’s accept I’m going to do nothing here and close it” – now I don’t need to, because I can get to everything I need. Furthermore, as a bonus (though I haven’t seen it in action yet) I should have some level of crash-isolation – it should hopefully only knock down one of my SSB’s, and not everything. We’ll have to wait and see how that turns out to be.

I’ve tried Fluid before, once, and it didn’t stick. This time, I still have one main problem – cookies won’t pass between SSB’s and/or Safari. For most people this may be okay but it’s annoying for me. Not a huge deal, just annoying. The other thing I did was spend a full 30 minutes or so making sure I had identifiable icons for my SSB’s – this has helped IMMENSELY. Why they haven’t set up a protocol for this that just requests the icons from the websites is totally beyond me, but, whatever, I just did it and it looks…mediocre. Which is good enough for me! I even made a little icon for my own web application that I run all the time.

I shall report back with how it goes, but it really does feel like a huge weight has been lifted from my shoulders right now.

Another new Braydix

http://desk.nu/Universix.iso

Now it's starting to get out of the proof-of-concept phase, and into the alpha release stage, almost…

Features:

  • SSL
  • Actually loads images (nice, right?)
  • Should have better VESA/VGA support.
  • (some testing has worked with booting via USB thumb drives, but I don't think this ISO will. Maybe that means I can’t count it as a feature? I dunno.)
  • WIRELESS – using the familiar and intuitive Ctrl-Alt-F2, wpa_gui -something_something, ctrl-alt-F1 method – how easy!
  • Almost installable – if you already have a formatted and correctly
    labelled ext3 partition, you can copy it to your HD.
  • Will run in 128MB, maybe even as little as 64MB.

Uses:

  • Security dorkwads – bad men can't 0wn what isn't 1nst@ll3d
  • Kiosks dweeblings – no GUI other than a browser
  • Old, decrepit POS computer-hoarders – this will actually run on your crappy computer
  • Remorseful netbook owners – this will actually let you do something useful, like checking out Facebook, on your otherwise useless would-be laptop. This is my current use case.
  • Bloat warriors – next time you see a completely horked Windows XP installation or something even worse limping along painfully, know that with 120mb of storage, and 128mb of ram, you could be doing soooo much better…

Unfeatures:

  • Doesn’t have a pleasant installer. Won’t format your drive (though, this could be a plus…)
  • No bookmarks – c’mon, isn’t that what Google’s for?!
  • No disk cache
  • Doesn’t utilize the memory it saves (yet)
  • Doesn’t save wireless settings (by default)
  • Disk image is more bloated than it should be
  • no sounds?
  • No Flash (this is a problem…but solvable?)
  • static IP’s aren’t yet supported (DHCP only)
  • Nasty way of invoking the wireless configurator – and it’s not that friendly

So if 99% of what you do for fun or for work ends up with you browing the web, why have your computer do anything else?

SuperBraydix

So this is the latest n’ greatest of Braydix. Ah, that rhymes, kinda.

Here.

It has bits that look ugly, and the VGA detection isn’t very good, and it only works with Ethernet, but it works for me (not for Bryan, because he did something bad in a past life) on one of my two computers, and in VirtualBox. The font metrics are screwed up for some reason, too. And you can’t actually install it, it only runs off of the CD. It would be a trivial matter to make it run off a USB thumb drive, too, but I haven’t gotten to that yet.

As I mentioned in a previous posting, this is 33 or 34 MB, it’s just got a huge initramfs, and no root filesystem. This makes things soooo much easier. I think it messes with memory usage a bit, but it ran fine on a 256MB machine with, like, a Pentium 2 or some horrible CPU like that. The browser is actually the Qt demo browser – totally untouched by me (to the point that it still boots to a trolltech.com web page).

My next steps are probably to work on making it installable from USB, get better graphics drivers loading up, maybe get some wifi going…maybe fiddle with getting it to launch from /sbin/init, and get it to shut down without complaining. Oh, and get it to load/save bookmarks from Teh IntarWebz. All in due time, perhaps.

Google Chrome

So for my first day being self-employed, I got a chance to work on my PC. So I decided to give Google Chrome a spin. Here are my very brief thoughts on the matter –

I don’t know why, but I don’t find it pretty. I’ll leave the why’s and wherefore’s to other people better qualified than me. But even though the interface is quite spare, which is good, it just looks ugly to me. Perhaps I am ignorant. Who knows.

The whole ‘every tab gets its own instance thing’ – I don’t think people understand this yet. This is not a speed play. I’m sure they’re trying to make it as fast as possible – but it’s not for speed or reduced memory use. It will probably slow things down and increase memory use, in fact. It’s for stability. Whenever you’ve crashed your browser and lost all of your tabs and windows and such – you know the pain that Google is trying to prevent. What is supposed to happen, allegedly, is that the offending tab will, indeed, crash. But nothing else will. Your other tabs should survive. If that’s useful to you, then you should give the browser a spin.

Since under Chrome it’s possible to have very very long-lived browser processes, looking at memory use right after launch of Chrome, versus right after launch of Firefox (or any other browser) doesn’t really make sense. Look at the memory use of the two after they’ve both been up and in active use for 8 or so hours. My bet (though certainly not certain!) would be that Chrome will not have used up much more memory than it started with. Whereas if my personal experience is anything to go by, Firefox will have bloated out significantly. In fact, Firefox tends to get all whacky for me and stop loading stylesheets and stuff after a certain amount of time (which could be days). I am to the point where I can recognize this, and know that it’s time to relaunch it. I’m thrilled at the prospect of not having to do so. We shall see – because I’m going to try to run Chrome into the ground today, and see what happens.

Braydix v0.1 !!!

So this is something I’ve been fiddling with, off and on, for the past few months. I’ve been talking about it for far longer.

It’s a very minimal Linux install with a copy of the latest Firefox. And by ‘latest’ I mean ‘3.0’, by the time 3.01 came out, I was too far along and too impatient to try and recompile. The idea is you can burn this to a CD and chuck it into any PC you’ve got laying around and it should, for the most part, work. Put the CD in and make your computer boot from CD, and it should come up with a Firefox window. Download link is at the end of this post, feel free to skip ahead if you don’t need the blow-by-blow.

It was an interesting exercise. Basically EVERY single thing I thought was going to be easy, was hard. Everything I thought was going to be hard, was easy. And in the end, I moved away from compiling my own stuff and towards just repackaging other stuff, when I could. I stole pretty mercilessly from CentOS, though when I realized that just simply booting from a CD was going to be so difficult, I poked around at Knoppix to see how they do it.

This is really a proof of concept, something to convince myself that I could actually do what I set out to do. There are lots of improvements to make, most of which I probably won’t, until I feel like it or become inspired –

  • Faster
  • Smaller
  • More Features
  • Installable?

One thing that came up that was really disappointing was that I ended up having to use XWindows (X11). I hate XWindows. It’s a bad software design. But Firefox for Linux relies on it for the little widgets (the controls that you use to interact with the software), and the event management. That would be a moderate to heavy software-engineering project – porting it to talk straight to the GDK equivalents instead, and then compiling GDK to talk directly to the Unix framebuffer. Getting a copy of GDK compiled for the framebuffer was actually easy.

I had also set a ‘requirement’ that I fit it in under 100 MB, so I could upload it to this very nifty website, Mediafire. I bet I could’ve made that goal, if I had tried harder. But I had missed deadline 1 I had set for myself, and 2, and even 3…so I started to get impatient. Heck, just stripping debugging symbols would probably had been enough to make it through, but I didn’t want to bother when the result compressed to under 100MB.

The real lesson for me in this is in the merit of good scaffolding. Use other stuff that’s already there as scaffolding for whatever you’re building, and swap it out for your own custom stuff when you need to. You’ll make more ‘agile’ change and progress that way. And VMWare for the Mac, while absolutely critical, is not a pleasant environment to work in. Had I to do it over again, I would’ve bought a $500 laptop from Dell and used that. I ended up doing my GDK and Mozilla compiles on ‘compy’, a 256MB P2 or P3 with very feeble abilities, but some disk space and the ability to run 24 hours if necessary. Cross-Compiling and building and installing are also very weird and unpleasant tasks; the standard ./configure && make works sooooo much better when you’re going to run the thing from where you build it. That’s part of the reason for Compy, I could say “./configure –prefix=/usr && make install” and get stuff to work. Then I’d copy it onto my VM’s and work from there.

If I could ever actually dedicate any time to work on this project, I would love to make it install onto a hard drive and use nearly the whole damn thing for a really sophisticated web cache – that could detect when the user was disconnected and serve back stale content it might otherwise disregard in that case. Then you could throw this thing on a laptop and go on a plane, and (for well-designed applications, in limited cases) you could use them ‘offline’. Hence my comments a few posts ago about how little I like Google’s “Gears” project. I’d also like to take on the prospect of making it work directly with the framebuffer instead of going through the abomination that is XWindows. Furthermore, there’s some to be gained from doing non-library builds of the GDK libraries to make them ‘link in’ to Firefox, instead of being loaded at runtime. There will also have to be some kind of window management, of some sort, because all the little Firefox windows have no borders right now. Whether that’s done in X (bleah! Ptui!) or in the framebuffer, I do not know. Or maybe directly in Firefox? Anyways, for the most part, those are pipe dreams, because it’s doubtful I’ll be able to scare up any additional time to poke around.

So what are you waiting for?! DOWNLOAD HERE!

Camino crash

Post started originally 2/3/07 – Okay, today I actually managed to hang and crash camino.

Total web-browser lifespan – Hrm, looks like I was using it for a week as of 1/23, so figure I was using it since 1/16 – today’s the 3rd of Feb., so – 2 weeks and change, it looks like. Not bad. If I can postpone my next crash for another 2 weeks and change, I should be doing OK.

Camino’s crashiness seems to have been caused, for the most part, by my fondness for CamiTools – the lovely little Camino extension that lets you do lots of things – of which the only important thing is the ability to use FlashBlock. Apparently CamiTools does not work so good on Intel. So keep it under advisement. I think I might even be able to blame this one big crash on CamiTools.