Lightdesktop now self-hosting (ish!)

So my nifty LightDesktop project has (almost, kinda, sorta) hit a new milestone – I’m writing you this blog post from it right now!

I have officially transferred all the development files into the filesystem (in Rackspace Cloud Files), and should be able to develop it…from it. I will be getting a ‘dev’ version vs. a ‘prod’ version distinction going so I don’t destroy the filesystem for everyone when I botch something (usually the CREST-fs filesystem) and post it up. Considering my development environment is it, itself – that makes sense.

So no more CentOS box (or VM, actually) for a while. And, man, does dogfooding pop all kinds of bugs that I want fixed ASAP. Window management is pretty horrible.

I am REALLY impressed with the browser. It has been able to handle nasty Javascript-heavy sites with relative ease. AOL – not usually a company I associate with doing things right – has some kind of insane Web 2.0 AIM client hooked in to their webmail that works suprisingly well. I’m shocked they made it so well, and even more shocked that it runs in my slightly janky browser. But that’s all due to the WebKit people, and, indirectly at least, Apple.

One thing that I’ve really enjoyed is how lightning-quick everything is. When you make something as super minimalistic as this thing is, there’s not a lot of stuff going on to slow things down. I have done enough testing (though not quite ‘living’) in the new system that when I get back to using my Mac normally, it feels sluggish. And that thing has 4 gigs of RAM and a core 2 duo and whatnot! This thing has – crap, I don’t even know (poking through /proc…)…a 2.2GHz Celeron, single core. 2 Gigs of RAM though. And I bought it at Best Buy for $300 or $400 dollars! They of course didn’t want to sell it to me – I had to go to a second Best Buy to find one where they would. Must’ve been set up as a bait-n-switch or something. Or maybe they were legitimately out of stock, who knows.

Oh, another fun anecdote – I have Windows (Vista, ugh) installed on here too. And at one point I inadvertently let it reboot into Windows. I figured, well, let me grab all my software updates and stuff….nope! Didn’t work. The wireless had mysteriously stopped working for no discernable reason. I wondered if the hardware was broken. Rebooted into Lightdesktop, and the wireless came right up. Love it!

A new LightDesktop Release

So my evil ploy of tricking myself into playing with LightDesktop a few weeks back worked like magic. I’ve been hard at work since then and I think I’ve got some good stuff –

  • Lots of optimization work in the CREST-fs filesystem. It’s getting faster and faster. It’s still much slower than a raw hard drive though, but there are quite a few optimizations yet to be done.
  • New Signup and Server side architecture (based on Rackspace Cloud and Cloud Files. Infinite Storage! So awesome.)
  • A GUI logger-inner-thing. Feels more ‘pro’ to me, for some reason.
  • I’ve yanked the old DAV-fs fallback – it just sucked too much, and made things complicated. And I like things uncomplicated. If someone were dying for this I could put it back. I think 99.999% of the users of this thing will use the server-based storage.

Numbers:

The system, when full installed, boots in 15 seconds on my eeePC. No joke.

The install CD is around 26MB in size.

As a test, I timed myself doing a real-world install – I downloaded the ISO, created a VM in virtualBox, had it boot up, logged in as me – and had my files sitting in my home directory in 3 minutes 48.5 seconds.

Again, the premise here is: all your data lives in the cloud, the OS does too (or is hosted from it) so you get automatic updates and everything. There’s no such thing as ‘installing’ an application, you should just be able to use one. It’s alpha, blah blah blah, will delete your data, will destroy your computers, drink your beer, and insult your mother. Caveat Download-or.

The Files

CDROM ISO
USB disk image

How long to install your OS?

So I was thinking that I wanted to play with something on Ubuntu yesterday. I wasn’t sure that I necessarily wanted OpenOffice and all kinds of other crap that just come with a standard distro/download, so I went for a minimalist install, and figured I could just grab the various little bits that I needed to upgrade the system to a point where it did what I needed.

I spent about an hour and change (including download time) getting it to work, and it never really did what I wanted it to. Kinda disappointing. But what I thought was strange was how looooong everything took. I mean, literally, we’re talking like 60, 90 minutes? That’s serious.

So out of curiousity today, and as a deliberate way of easing my way back into lightdesktop development, to bench how long it would take to download and install LightDesktop onto a VirtualBox VM.

My timing included creating the VM, and downloading the image to work from.

3 minutes 48.5 seconds.

That’s getting from nothing to having my crap sitting in the home directory in less than 4 minutes.

Damn! I gotta get back into this stuff. I like it when it works.

Braydix is now LightDesktop

So I have new downloads of the Braydix thing – I’ve been able to shave boot times way down with the new 2.6.30.x series kernel. I’ve also simplified and stripped down the bootstrap system to help speed the boot times further.

While I was tearing everything up and smooshing it back together, I also took the opportunity to start renaming it to the name I think I’ll be using going forward: LightDesktop. I made a website too (well, I repurposed a botched previous website I made at least…). I actually enjoyed making the text on the website because I went with a far more informal tone for fellow nerds – the only ones likely to ever look at or use the thing.

I’m still unhappy with how it works on my crappy little Asus netbook, but it’s pretty solid on Craptop (my Toshiba). I think there’s something funny with the wireless drivers for the ath5k, but I’m too exhausted to look into it much.

Downloads are up: ISO and FAT fs image for USB memory sticks.

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?

Braydix v0.2

Well, I got some time, and I upgraded my laptop to 4GB, and I finished copying stuff from various other machines I’ve been using, so I got a chance to poke around my Braydix CD project. I was able to clean out a decent number of megs, and fix two…rather crushing bugs.

Bug #1 – reported by Bryan – it doesn’t actually work, at all. So I figured I’d make it work. That seems like a good fix.
Bug #2 – discovered by me, once I made the CD thing work. It uses static nameservers that only work in my house. For people who aren’t in my house, this is probably a good fix.

Issue #1 was actually the stupid VMWare install getting its filthy tendrils into my systems, so it tried to always use vmxnet drivers for the ethernet card. That only works in VMware, not in real life.

I still have some ideas for this thing to make it more ‘interesting’, hopefully nothing so complicated or difficult so that I won’t end up doing it…

So it’s here, I’m still throwing these up on this mediafire thingee because it’s free.

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!