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!

Joining the new millenium, finally

I got a hi-def TV. Yay! And Rock Band. It’s pretty cool.

I was fiddling with how to hook up my 360 to the TV, and still have my optical digital output go through the AV system, and came across this useful piece of information.

However, in the end, GTA IV looked worse (at least on my TV), using the HDMI input rather than the component video. I finally switched it back, and I think it looks better. I believe it’s because the actual content is at 720p, and the Xbox or my TV is trying to do something clever to dither the output or something, and look like shit in the process. Oh well. So I’m not fully 100% digital. I guess I’m not completely in the new millenium, after all.

Two items, tenuously related – Google and iPhone OS 2.0

Google is fallible

We always think of Google as the unstoppable juggernaut that can do no wrong. But this isn’t so. Examples : First, Google Browser sync. This was a neat little extension you would install in Firefox, and it would automatically synch your bookmarks, cookies, history – everything – to a central Google server somewhere. Pretty neat, sure, though a little scary – though what with Google isn’t? After Firefox 3 came out, I tried to see if I could grab the latest Google Browser synch. Though I’d been working without it while using the Firefox 3 Beta, once FF 3 was officially released, I assumed a new version of the plug-in would be as well. Nope! It’s been discontinued…perhaps there wasn’t enough take-up? Perhaps there were too many internal business conflicts regarding it? Who knows. But here they built a thing, and finally they say “Whoops, sorry, we’re taking this thing down now.” There are alternatives, of course, but I just thought it interesting, because it made me think of them different.

Once I’d gotten it into my head that super behemoth Google can slip up, I was able to look at another feature I’d thought about myself before – Google gears. This is a browser plug-in that lets you access web applications offline, as well as online. Take a look at this architecture description, and my gut says they’re doing it wrong. (Bias alert: I have thought about solving this problem a different way.) Being able to use Gears with my google Docs and google reader are both pretty neat though.

So the iPhone 2.0 software came out (more about this in a minute). I need an RSS feed reader. NetNewsWire is out for iPhone. I need that. I get it. To ‘synch’ my read-items vs. unread-items, I need ‘newsgator’. And, just like that, in the blink of an eye, I move off of google reader, and onto NetNewsWire for Mac and NetNewsWire for iPhone. I’m not yet 100% convinced about how well it works – I still get definite feelings of ‘clunk’ going on, but I can read my newsfeeds while in the subway. Win.

They’re human beings – flesh and blood, like you and me. Prick them and do they not bleed? Their dominance can be challenged when they misstep. They’re no Microsoft, yet, but they definitely are mortal.

iPhone OS 2.0

Exchange support took a while to get going. I had to delete and readd my account, twice. I wanted it to ‘automagically’ figure out that I was on Exchange before, and I should now be on Exchange and use Push features, but it isn’t that clever. The fact that it wanted to WIPE OUT my contacts Really, really freaked me out! i don’t use the calendar on my phone all that often, so wiping that out and replacing it with my Exchange calendar is not a big deal. Emails show up on my phone faster than they show up on my computer. I can send, receive, accept, and decline meeting requests. My calendar has my Exchange calendar. This makes my life a bit better.

However, my battery has suffered, for sure. It could also be that I was poking and prodding my phone all the time, but I do think that Exchange activesync whatever it is seems to slurp more juice.

I have been gorging myself on apps. Like some kind of guy who just wandered out of a desert into an all-you-can-eat buffet, I’m stuffing every single application that looks like it might be interesting – and many that aren’t – onto my phone. Plenty are shitty. Plenty are crashy. Some are pretty neat.

  • Aim – crashy, but useful
  • Twitteriffic – sluggish, pretty…jury’s still out
  • eReader – requires an ereader.com account? May toss it.
  • PhoneSaber – AWESOME
  • Remote – Haven’t tried it yet, but I hear good things.
  • Facebook – Lame
  • Cube Runner – Fun!
  • iPint – Cutesy, marketing stuff. Kinda ok. Wish I liked Carling beer better.
  • Whrrl – Haven’t fiddled to much, dunno.
  • NYTimes – Nice concept, crashed on me and even took my phone with it once.
  • NetNewsWire – Pretty straightforward, probably a few point-releases and it will be good.
  • Scratch – Pretty cute toy! If the controls were a liiiiittle more real-timey, it would be better.
  • Loopt – I can’t tell if this is genius, or shit. It’s weird, and I keep feeling like I don’t know what I’m doing with it.
  • Mobile News – Simple, does what it’s supposed to.
  • WeatherBug – Not bad, little more detail than your regular Weather app. S’ok.

MacBook Air

It’s super light. The display is gorgeous. The performance is adequate. The keyboard works great. I never really noticed the backlit keyboard, but it’s nice to know it’s there. The single USB port is annoying. The no-built in CD is for the most part, fine, except for when the lack of a USB port is bothering you. The weight is great. The form factor is superior to any other ‘ultraportable’ – it’s absolutely perfect.

However, it has a nasty tendency which pisses me off something fierce:

If you do anything that makes it run at full CPU, and use the graphics chip pretty moderately, it will actually shut down one of the cores (!). I can trigger this by playing a flash game for like 10 or 15 minutes. Or from watching YouTube. There are some fixes, which I will speak about in a moment.

My theory is that Apple had designed the MBA to work with Intel’s new Atom CPU. But Intel said “Sorry, that’s going to be another 6 months.” Apple said, “screw you, Intel, we need to release this. Help us out.” Hence the release of the un-codenamed non-roadmap weirdo CPU that powers the MBA. It uses too much juice and runs too hot for the chassis it’s in, hence the weirdo CPU speed throttle and core-dropping.

One of the workarounds I heard of was to reapply the thermal paste between the CPU and the heatsink. Some on the Apple Support Forums swear by this. I’m not dicking around with that stuff because you know I’ll end up destroying this damn thing that way. Instead, I sent it to Mike’s Mac Shop – my former employer – to have a motherboard swap. Unfortunately – that didn’t seem to help. Grrr.

The final thing I had heard of doing was grabbing this software called CoolBook and installing and configuring that so as to ‘under-volt’ the CPU – giving it less power than it’s spec’ed to use. I don’t like the UI on this program, and the documentation is super-sparse. And I don’t like having to pay $10 to fix this problem which seems to me like Apple’s fault.

But damn, if it didn’t fix the problem. I can’t make it drop a core anymore. The laptop works the way it’s supposed to know. I can make it get pretty damned hot, mind you, but both cores stay up.

So I’ll certainly update if I feel like coolbook’s not doing the trick – but it sure as hell seems that it is now.

Once the MBA gets ‘refreshed’ with actual volume quantities of Intel’s Atom CPU, buy one. They’re great. The USB thing will bother you though, so be prepared.

Mario Kart Wii

So I got it and I got lots to say.

It's pretty damned cool. I haven't used the plastic wheel very much
but I think it adds a nice touch. I thinks its still going to be
easier to play with a wiimote+nunchuk, but I enjoy the feel of the
wheel.

There's not that much that's different from the previous versions,
just slightly better graphics. And of course the online multiplayer.
More about that in a moment.

Weirdly enough, even many of the maps are the same as from previous
versions of the game. I understand one or two like that, but half?!
That seems…lazy. But whatever.

The fact that it won't tie in to the friend codes you _already_
laboriously entered on your Wii is actually shocking. I imagine
Nintendo is erring on the side of caution against online predator
types or something, but…really!? I already entered a 10-digit code
to get my friend hooked up with me, THEN he did the same…now we have
to do that AGAIN?! C'mon! If I've been able to dupe my prey into
entering 10 digit codes and divulging his/her own, then it's over.
Making me re-re-enter them (or a completely different one?!) is NOT
protecting anyone, it's pissing people off. So I suppose instead that
all my foes shall be anonymous hordes from Teh Intarwebs. So be it.
Not such a terrible thing.

My only real complaint – and there's some bias to it – has to do with
the architecture of the multiplayer. I think the WFC connection is
just to some kind of queue. I think it's set up as some kind of
mid-1990's style client-server game. Efficient, sure – but it only
fucking works when the goddamned server is not-firewalled!! When the
hell does that happen?! Who the fuck has any kind of network with no
firewall?! Crazy people. Crazy people whose PC's are swimming in
viruses and porn dialers.

Now I, by history have been a network builder and troubleshooter for a good chunk of my career. So I’m biased when I say this, but that’s totally insane. The reason that I believe that it’s set up this way is that I can spend half an hour trying to play online and get either booted out in the first few seconds of a game, or sometimes I might even make it a minute or so into the game before I get kicked off. But when I disconnect my entire goddamned network, and plug my Wii _directly_ into my cablemodem connection, it works like a charm, and flawless.

Now at first, I figured maybe it’s my cranky Vonage box getting in the way, so I put my more modern Airport Extreme box in its place. Same results.

The only other, possible bizarre thing that Big N might be doing is that their servers act as ‘game servers’ (without players) and those slots exist in the queue as well as un-firewalled Wii’s, but are simply all used up due to demand. That’s serious levels of network architecture, but if I were building the system, I sure as hell would not build both a client and a server to run from the Wii, it just seems…excessive. But we’ll see how it really is set up as time goes by and perhaps as Nintendo builds more centralized capacity. It’s true that I haven’t heard of any Microsoft-style giant Failure of centralized systems yet on Nintendo’s side, and there are more Wii’s than 360’s, but time will tell.

Still, I thought that style of developing multiplayer games went out in the 1990’s. But I guess Nintendo is dealing with a larger scaling problem than anyone else (except maybe World of Warcraft) has.

And, with a nearly completely decentralized architecture, as you can imagine, multiplayer works great – once I fucking eviscerate my goddamned fucking network of course.

Edit – a tournament just popped up – that should be pretty exciting! Hopefully I can give it a whirl soon.

-B.

Bloggin’

So this twitter thing is actually working for me, shockingly enough.
I'm starting to write little bits here and there and its making me
miss updating my blog.

So! Here's stuff I should've blogged about but didn't.

1) I have an xbox. Its pretty. Its noisy. I'm shocked at the shitty
games out for it, though there are some gems. Bioshock is awesome.

2) assassin's creed – very very cool bits in it, some repetitiveness
in some places. I'll make it to the end.

3) iPhone software announcement. Disappointing. Lame. Pay to play? Ug.
Only distributing through iTunes? Limiting. Not shocking, but oh well.
I thought apple would only sign apps that needed network access. That
would've made sense. I hope the iPhone hackers keep making progress to
keep apple honest.

4) I cannot imagine life without an iPhone. Was I really alive before I had one? No.

5) MacBook air – I have one for work. Tiny, light, gorgeous display.
Thermal issues though. I'll exchange it when I have time.

-B.

Twitter

So as my millions of fans have begun complaining about my infrequent posting as of late, I thought I would try and hook up with this Twitter thing. It also has to do with my desire to not grow up and try and get hip to all of what the young kids are doing. Quite frankly, I don’t yet get it. But, if nothing else, it will allow me to send little short text message blurbs about what I’m doing or thinking and allow them to show up somewhere where people can see ’em.

I only just hooked it up to my phone – I should’ve done that before, it’s far more…’immediate’ that way. We’ll see. Keep an eye out on my little twittery section on the upper right hand corner (or wherever else I may have put it) of my blog.

iReview

So, I'll only mention stuff you haven't heard.

It's fast.

It's tiny, but heavy. Perhaps it's the glass?

The UI and OS are awesome.

Best mobile web browser ever.

I think a couple of point releases and it'll be really great. It's
already pretty good, well, great.

Little tiny bugs pop up here and there, but no real dealbreakers.

I want GAMES, dammit! And I need a password wallet thingee.

Keyboard is not as fast as a blackberry (or treo) keyboard, but it's
ok. Only ok.

It's extremely pleasant to use. Little need for any manual.

Battery life's ok, managed to drain it during a day of very heavy usage.

I think it's important to differentiate between the hardware and the
OS. The hardware is really cool. The OS is insane.

The only real step backwards for me is the keyboard. I'm just not as
fast with it as I am on a treo or blackberry keyboard. And I expect to
get faster, but still…

Sent from my iPhone