The first episode was disappointing, not necessarily all bad. Have to keep in mind that TopGear wasn’t brilliant straight away, but hopefully it’ll improve as they continue. The presenters need improvement, though they are under the shadow of a team that’s been together for a few years.
Hopefully the producers read the FinalGear website and will correct the problems (I think the test track sucks, doesn’t seem to be very interesting).
Elliott Huges has written a series of blog posts on what’s wrong with the Linux desktop, and I believe he’s spot on. I really can’t add much more to it than that, because I’ld just be repeating what he said (and I wouldn’t write it anywhere as good).
Because my knowledge of Solaris is very, very, minimal. I have to constantly blog everything I do, not because I want to blog it, because really, it’s not interesting. I have to constantly blog everything because I’m got a really bad memory, and this just happens to be the only place that’s really easy for me type my notes.
(I’ll really know that my memory is going if I search for something and the answer shows up on my own blog.)
Anyway, getting a really simple webserver going in a Solaris zone, this should be really easy, as long as I find a good guide, which, Sun as provided. This thing is, it covers Solaris, and not necessarily OpenSolaris, as the default zone type has changed to ipkg, which means things are a little different. How hard can it be?
Follow the guide, it’s pretty easy, it starts about halfway on the page.
pkg install SUNWapch22
Update the ServerName and ServerAdmin in httpd.conf. Done!
First off, install, not too difficult just follow the normal install procedure. Now, before you reset, to setup a mirrored root pool, follow this blog post. Be sure to su into root, as I believe the command:
prtvtoc /dev/rdsk/c5t0d0s2 | fmthard -s - /dev/rdsk/c5t1d0s2
won’t work with pfexec because it uses a pipe.
Easy enough. Then do a “pkg refresh” and image-update, after the install. Follow the release notes, if in doubt.
Then, once you’ve done that, follow the update procedure at this forum post. In the meantime, I enabled “Extra” effects in the appearance settings, and went off to VladStudio to get a nicer wallpaper.
Next you can setup CIFS, though if you’re going to be using the CIFS sharing stuff via ZFS, be sure to read up on the ACL file permissions in the ZFS Administration Guide. (That links to a PDF version, because I just seem to like reading the PDF more.)
After following the CIFS guide, I had to reset, manually adding the SMF service didn’t seem to work for me the first time, also, after updating the PAM conf, be sure to passwd <username> for the account so that the CIFS password is updated.
Setup auto scrub for ZFS, a handy script has already been written up.
crontab -e as root, and add the script.
This is pretty much a starting point, I’ll install “gcc-dev” and “ss-dev” for development tools, then maybe gvim which is covered in a previous post.
I have to admit, I’m not very smart, I don’t really provide any good answers on Stackoverflow, and I haven’t even written my own compiler. However, I do like trying things when someone has done all the hard work for me so I can learn off it. Jeremy Kerr, is a smart cookie, and one of the developers working on getting the Linux kernel onto IBMs Cell processors, so, when I came across a post of the linux.conf.au hackfest, I thought it would be a good chance for me to fiddle with multiprocessor optimisations.
Again, I don’t have to do any hard work, because Jeremy even steps you through a solution, neat huh! Now the trick is, I don’t have a PS3 running Linux (though I do have a PS3), however, I do have my desktop PC with a Q6600@2.4GHz running Solaris, so I figured I’d use that and see what performance I can get.
Ok, so first the baseline. The source code is available on Jeremy’s site, so it’s easy enough to download and compile, it defaults to using gcc and only requires the math library and PNG library. However, I won’t be using the command prompt, having recently just switched to Netbeans I decided to setup a project, and initialise a Mercurial repo so I could always revert my mistakes.
I’ll also be using Sun Studio Express as installed via the OpenSolaris IPS system.
Ok, so here’s my time results with my initial debug settings:
GNU
real 0m23.244s
user 0m23.224s
sys 0m0.010s
SunStudio
real 0m24.201s
user 0m24.181s
sys 0m0.010s
Pretty close, however I’m not comparing gcc to Sun Studio, as such, I’m just switching to only Sun Studio from now on. Right, now, time to see what the optimisation flags do, I’m just going to go with the shotgun approach and use the -fast flag…
real 0m11.328s
user 0m11.315s
sys 0m0.008s
Crikey!! Now it’s important to keep in mind that the fractal code lends itself to the optimisations that Sun Studio does, in particular the math library is optimised, and a whole lot of other shit that I don’t know about (like I said, I have never written a compiler). It’s also using MMX, SSE, performing inlining of code, etc.
Now Sun Studio has a nifty application for profiling code, well, two really, actually probably more, but for now the one I’m talking about is the “collect” utility. With collect you can profile your application and then use the “analyzer” GUI app (or the command line equlivent), to look through your app and see where it’s spending all it’s time…
Which I will continue in a later post…
Because I’m such an operating system whore, I though it might be a good idea that I post my procedure for getting Ruby on Rails and PostgreSQL setup. Steps could be missing, unfortunately I won’t know until I decide to install another operating system, and then switch back to OpenSolaris or something.
Right, first off, best follow the instructions over at The Observatory, actually, that’s a very good blog for newcomers to Solaris, in particular, if like me, you’ve come from a Linux background. Now with the PostgreSQL install:
pfexec pkg install SUNWpostgr-83-devel SUNWpostgr-83-server SUNWpostgr-83-libs SUNWpostgr-83-client
That should be the libraries needed for PostgreSQL, I included the developer files because the postgres gem will compile a native driver (you may also need to pkg install gcc-dev and SUNWscp too), the gem also needs to find the pg_config program, with PostgreSQL 8.3, that’s at /usr/postgres/8.3/bin so you’ll need to:
export PATH=/usr/postgres/8.3/bin:$PATH
With that, all you should need to do is:
pfexec gem install postgres
Now, the database setup, this is fairly easy, Sun already have guides on this, it’s just a case of doing a Google seach. In this case, you get Sun’s BigAdmin PostgreSQL install guide, it’s for 8.1 and 8.2, but just follow the 8.2 guide with 8.3 in its place. There is one thing I had to do however, and that’s change the postgres user’s shell from pfksh to bash.
Then it’s just a case of adding my user, and creating a database.