2008-10-23

Upcoming Browser JavaScript Engine Benchmarks

I've seen lots of people recently saying that Firefox's TraceMonkey JavaScript engine blows Google's V8 out of the water...but was a little skeptical so I decided to do some benchmarks of my own. Now with any benchmark, everything here needs to be taken with a grain of salt as performance will certainly vary upon which sites you are viewing. For this test I have used WebKit's SunSpider. Also, since Chrome and Safari do not have native ports available on Linux right now, I had to do the test under Windows XP. The test machine is dual-core so multi-process/threaded apps should show a benefit, but I feel it's totally fair as single-core machines are quickly going the way of the dinosaur and do not accurately represent the future, which is what we're talking about here. Also as Chrome does not have a stable/final release yet, I've compared with many other browsers' development builds.

So let's get to some numbers. On my test machine Chrome completes the SunSpider test with a total time of 2423ms; pretty nice! Ok, now what about Firefox? The current release, 3.0.3 takes 4244ms. Well, what about the new beta for 3.1 that just came out? It scores at 3823ms. So, wait...that's not too terribly much faster than 3.0. Do we have TraceMonkey enabled? Nope. I don't know why, but the default build of FF3.1.beta1 comes with TraceMonkey disabled by default, so after enabling it the results jump down to 1654ms. Wow! That really is faster than Chrome. Ok, so how about "minefield" AKA the nightly trunk build of Firefox (FF-3.1.b2pre-20081023): 1567ms! So yes, yes indeed Firefox 3.1 and the TraceMonkey JavaScript engine are indeed faster than Chrome and it's V8 engine.

So what about the other guys? Well, first off let's try Safari which shares it's webkit rendering engine with Chrome. The current release, 3.1.2 scores at 4894ms. So how about the development build? With webkit-r37604 (and Safari/WebKit's new SquirrelFish JavaScript engine): it goes to 1664ms. That's faster than Chrome/V8 too, but not quite as fast as FF/TM.

Opera's latest release is 9.6, and I didn't manage to find a development build available for it's next version...probably because it's still proprietary unlike the open source competitors we've discussed so far. Opera scores 5979ms which is slower than both Safari and Firefox's current stable releases, but it's still much better off than Internet Explorer. Internet Explorer 7 scores an abysmal 90522ms. That makes it almost 58 times slower than Minefield. Microsoft, that's absolutely pathetic. I didn't get a chance to try out IE8, but from what I understand it's not much better off in the JavaScript department. See update below...

Here's a chart I threw together in OpenOffice of the results. I omitted IE7 because it was such a huge difference that it made it hard to tell the difference between all the others.

sunSpiderBenchmarksChart

Lastly, just for fun I tested my iPhone and Mobile Safari (running firmware 2.0.2), it took 136081ms. But hey, for a device running an ARM @ 412Mhz with 128MB of RAM vs. a full fledged computer with a dual core processor, and a gig of ram...that's still got to be better than Internet Explorer 7 did. I wish I had a Windows Mobile device to test, and a Android/G1 too, but oh well.

So, yes, with TraceMonkey enabled...Firefox reclaims its place as the fastest browser, but Safari and Chrome certainly aren't too far behind either. With this extreme increase in JavaScript performance on it's way...maybe it's time to finally retire the old "web 2.0" buzzphrase and move onto Web 2.1

UPDATE:
Seems I owe Microsoft an apology for not benchmarking IE8 before. They really have made some progress. The following numbers can not be fairly compared with the above because it was ran inside a virtual machine with only access to a single core and half the RAM, but here they are. IE8-beta2 scored at 9542ms. But, for reference, in the same virtual environment Firefox "Minefield" was still able to pull off 1873ms. So, as while still no where near as fast as the other guys, IE8 is lightyears ahead of IE7 in its javascript performance.

2008-08-12

Guide: How to install Quickbooks Enterprise 8.0 on Ubuntu 8.04.1

I recently had the "fun" of forcing Quickbooks Enterprise Server 8 onto an Ubuntu 8.04 server. Intuit only officially supports Fedora and OpenSUSE with thier RPM installer, so I had to work a little Alien magic and do quite a bit of hand editting, below you will find a guide of how to do this yourself. Do note, that a large portion of this guide is derived from an older one located at http://brousch.orthicomp.com/howto/qbent7-linux-server-ubuntu-dapper.html ...the rest comes from reading through the non-functional post install script inside the RPM.

1. Login as root (or you can use sudo on each command if you just really want to)
2. apt-get install alien rpm lsb lsb-rpm gamin
3. mkdir /var/lock/subsys
4. ls to directory containing RPM
5. alien qbdbm-VERSION.rpm (do not use the "--script" option, Will Fail)
6. dpkg -i qbdm-VERSION.deb (for some reason Alien will bump the last number)
7. add "daemon.* -/var/log/qbdbfilemon.log" to /etc/syslog.conf
8. touch /var/log/qbdbfilemon.log
9. /usr/lib/lsb/install_initd /etc/init.d/qbdbfilemon
10. /usr/lib/lsb/install_initd /etc/init.d/qbdbmgrn_18
11. addgroup quickbooks
12. Add users who will be accessing the samba share to the quickbooks group
- usermod -G quickbooks USERNAME
13. Create a directory that your quickbooks data will go in (referred to as PATH from here out)
14. chown :quickbooks PATH
15. chmod -R 770 PATH
16. If the path you just created is not already within a Samba shared directory, set it up as one.
17. Use your favorite text editor to edit /opt/qb/util/qbmonitord.conf
- Remove the default path and type in the new one you just created
- qbEnterprise does not scan for subdirectories, so if you have more than one directory each one will need to be added on seperate lines in qbmonitord.conf
18. /etc/init.d/qbmonitord start
19. /etc/init.d/sysklogd restart

Now the original guide I went by had a list of commands to create links for putting it into the startup of your system, but I believe the last two commands (taken from the install script) should take care of that for you. However, when I was setting this up, the first time I attempted using the script which failed out, but may have done this for me before failed. So, if it's still not working right after you finish my guide, try going back and doing this too.

- ln -s /etc/init.d/qbmonitord /etc/rc2.d/S85qbmonitord
- ln -s /etc/init.d/qbmonitord /etc/rc3.d/S85qbmonitord
- ln -s /etc/init.d/qbmonitord /etc/rc4.d/S85qbmonitord
- ln -s /etc/init.d/qbmonitord /etc/rc1.d/K15qbmonitord
- ln -s /etc/init.d/qbmonitord /etc/rc6.d/K15qbmonitord

For more info see the Linux Install Guide PDF that was included on the CD

If converting an old company file to Enterprise'08, you'll need to make the user you login to the samba share with during the upgrade, the owner of the .QBW, .QBW.ND and QBW.TLG files.

Hope this helps...and good luck!

UPDATE:
Make sure to also create "/var/lock/subsys/" and touch /var/lock/subsys/qbdbfilemon and /var/lock/subsys/qbdbmgrn_18 or you will get some weird errors with the file saying it's in use when it's really not!

2008-08-08

My Next Smart Phone

So a lot of my recent posts have dealt with the iPhone...but that's probably because I've spent so much time with it this past month. As while I'm very glad I finally upgraded from my usual cheap/free basic phone (with no interwebs); things are still far from perfect...and I love redesigning/dreaming about all my gadgets and such.

So, it's late...and I should probably be in bed right now, so for both our sakes I'll try to not be as wordy as usual...well, at least from here on.

1. I want an open source OS, and I want to hack around on it without having to “jailbreak” it. I completely understand Apple's thinking and methodology with it's App Store...however, I should have the option of installing unapproved 3rd party apps (at my own risk of course). This also entails that I want access to a command line terminal and the ability to mount my phone's hard drive just like it were any other external usb drive. My next phone will quite definitely be running OpenMoko/Android/LiMo/OpenSymbian or something like that. To sum it up, I want to be able to do whatever the hell I want to with MY phone.

2. I want a true 16:9 screen....not 16:10, not 3:2... standard 16:9, with preferably 480p resolution and OLED rather than LCD.

3. This is obvious, but of course I want a more powerful CPU (dual-core would be awesome). I want a much more powerful GPU that can handle playing up to 720p video (Nvidia's new Tegra line claims it can already). More RAM, more hard drive space....you know, the usual ;)

4. A much much better camera. I've honestly never had a phone with a camera in it before. However, now that I have one....I want it to be at least as capable as my shitty 8+ year old digital camera (3.1MP). I'm talking at the bare minimum 5 megapixel, if not 10. I want all the settings, like apature and shutter speed. I need a manual focus option, white balance...the works. I need some sort of flash mechanism too. The iPhone's current camera has really shitty capability for taking low light shots. Furthermore, this camera needs to be capable of recording video, not just stills. My wife's 3 or 4 year old Razor can take video (albeit really shitty quality, but still video) why can't my frickin' iPhone? I'm hoping at least 480p resolution too. Zoom would be nice too, but I'll understand if it gets left out... Oh also, have some sort of lens cover built in for when I'm not taking photos (Nokia knows what's up).

5. A hand editable equalizer. Every set of headphones is different, I really need at least a 5 if not 7 level EQ that I can tweak to perfection rather than just a handful of presets. Side note: I haven't been able to figure out if the “iPod” app's EQ settings are system wide or are just for the iPod app. This is partially due to the fact that thru various setbacks I have still yet to getting around to jailbreaking my phone so I can transfer my music collection over (maybe it'll finally happen this weekend with Pwnage 2.0.2).

6. A more repairable design. Handling my iPhone is like handling a hand grenade everyday. I spent hundreds of dollars on this thing...and it could all be over with just one little accidental drop. I really wish I had the capability to replace my own battery or screen in the unfortunate case they were to break. Somehow I just know it that before my 2 year contract is up I'm gonna have to pay apple a hundred or two more to fix/replace mine when it breaks.

7. Here's a weird one... slightly bigger. Yes...I wish my iPhone was bigger. I've already discussed how and why I'd like it to be a little longer, but also a little bit thicker too I think. This would give room for a bigger battery most importantly, and as while I don't think it's current battery is nearly as bad as most make it out to be, it could always be bigger. I think because of it's size (and sheen) it just feels way to delicate for a klutz like me to be handling on a regular basis.

8. Stereo Bluetooth. I love my Smokin' Buds and all, but it'd be really cool to be totally wireless one day...too bad the current iPhones only support mono via Bluetooth :/

9. Front side web cam. Not only do I want the main camera on the back to be much better...I want a second one (like was rumored) on the front for video chat. I don't know about you, but I just think that would be awesome.

10. Use a standard USB port or something. It just irritates me that Apple has to have proprietary ports on their iPods and the iPhone. Why not just put a mini USB or Firewire port on there? Maybe it's just me, but I think it would awesome to be able to whip out a roll-up keyboard and start typing away (thus completely eliminating my need for a laptop altogether)...or even think about being able to plug your smart phone right up to a printer, ok perhaps that's just silly but maybe not, I should at least be able to print to a network printer that uses either Post Script or PCL. I don't know... perhaps Apple has good reason for using it's own port, maybe it can handle more bandwidth and or voltage that USB 2.0 or something. I mean, a simple converter dongle could get the job done right now...I'm just thinking what's the point.

11. Use more of a matte finish. Honestly, the shiny look of the iPhone is great for press pictures and whatnot, but it just ends up in smudge city at the end of the day. I really wish companies would go for some sort of rugged rubber or something rather than the shiny, brittle plastic. Obviously the glass on the front would have to be glossy...but why the rest of the phone? I've already noticed the cheap chrome plating around the edge chipping and getting rough in not even a month of usage so far.

That's about it. An hour later now, it looks like I failed on the whole keeping it simple concept. Honestly, number 1 and 4 are the only ones I really really need...but they'd all be nice ;)