Why do I bother.

February 28, 2007


I got a real soaking this morning so have sat with my top drying on my monitor all day which has worked. I don’t want an LCD monitor.


As I am about to leave I now wonder why I bothered. It is chucking it down so I will get all of a few yards before I am soaked again.


Update: It stopped raining in the time it took me to get changed and get to my bike.
There was not a drop on the way home!. Clearly I out smarted the weather man this time;-)


Tags: topic:[cycling] topic:[commuting] topic:[rain]


nautilus ssh://foo.com

February 26, 2007

I know no real geek would dream of using nautlius or any file
browser, after all the pinnacle of UI design was the screen on the
vt220, however this is so cool as to make it worth it. If only for
your “friends” so that they will stop using ftp. I know
this is not new news to many but I was surprised to discover a few
people who I expected to know this did not. I’ll not name names.


The nautilus file browser will allow you to browse files over ssh.
If you have a system “foo.com” into which you can ssh,
with or without a password then enter this URI into the nautlius
location bar: “ssh://foo.bar” If you can’t see the
location bar hit the pencil symbol it allows you to type it in.


I did this on a system running Nevada build 58 and it then
proceeded to ask me if I wished to store my passwords in the gnome
keyring and then popped up a window displaying the root file system
of my remote system.


Now if you bookmark that you can easily copy data from one place
to another using a secure and if you have set up ssh to do it,
compressed channel.


Very cool on a laptop and you need to copy files onto your server or if you want to browse your home server
from work.


Tags: topic:[gnome] topic:[nautilus] topic:[ssh] topic:[solaris] topic:[opensolaris] topic:[nevada]


Reverting to build 55

February 26, 2007

My home server is back at build 55. After reading the heads
up message
about ZFS on build 58 I wasted no time to send the
system back to build 55 which was the last release I had installed
prior to build 58. I miss the improvements in gnome that have turned
up in the later releases but data integrity trumps everything.


Hopefully I will be able to get to build 59 (which despite what
the heads up says I am told should contain the fix) later this week.


Tags: topic:[solaris] topic:[opensolaris] topic:[home server]
topic:[zfs]


Birthday Ride

February 25, 2007

Just a short ride today due to rain so better make it hilly. Over
Polseden Lacey then a quick sprint up to Ranmore and back then over
to Box hill to go up the Zig Zags. Regroup at the top then over
Headly Heath and down into Leatherhead to find a new Cafe, which was
definitely not too expensive! Then home to wash the bike as the roads
were covered in mud and water washed off the fields.


Only 44 miles.


Tags: topic:[cycling] topic:[molesey bbt]


London OpenSolaris Group meetings

February 22, 2007

Another fine presentation at the London OpenSolaris User Group
meeting last night. Jarod Nash managed to squeeze an almost complete
tutorial for SMF (aka Greenline) into 90 minutes and only twice
suggested that marketing renaming things was not the best thing in
the world twice.


A very entertaining talk that included implementing an SMF service
and building on the talk from Gavin
about FMA
him demonstrating SMFs ability to handle fatal memory errors. It
culminated with Jarod copying /bin/ls over /etc/svc/repository.db and
rebooting the system so we could all see the recovery.


There was also a competition announced where the winner could win
an Acer Ferarri laptop (if it were a Campagnolo
Lap top I’d be really wishing I could enter) however as a Sun
Employee I am not eligible.


Anyway for those who missed it here are the details:


THE GREAT SUN FERRARI GIVEAWAY!!!

Sun is
giving members of the OpenSolaris Community the opportunity to win a
an Acer Ferrari laptop, pre-loaded with Solaris.

All you have
to do to enter to win your very own Ferrari is submit a proposal for
an OpenSolaris project by June 20th 2007 and demonstrate* the results
of your proposal at the July LOSUG meeting.

Criteria
======

The project must:

1. Champion OpenSolaris
2. Be
Original – Must not have been done before.
3. Be useful to
the community
4. Have the “Cool” factor

Timeframe

========
Proposals must be submitted by the June LOSUG
meeting on June 20th 2007.

Demonstrations will take place at
the July LOSUG meeting on July 18th 2007. A decision on the winner
will be made by the panel at the July meeting following which the
prize will be awarded.

Panel
====
The panel will
consist of two (2) Sun employees and one (1) community member.


Rules
====
1. The panel reserves the right to extend
the deadline if it feels the criteria have not been met.
2. Panel
members may not submit an entry, nor may Sun employees, their
families or dependents.


* The definition of “demonstrate”
is to show a completed project or functioning prototype, that must
use working code.




Since it appears the dates of London
Open Solaris Group
meetings are so hard to find I have posted the
dates here
in a form that can be uploaded into a calendar. For those in Sun
there is now a calendar called “LOSUG” which contains
the same information on the emea calendar server.


NEXT LOSUG MEETING

Date: Tuesday
March 13th , 2007

Location: Central Hall, Westminster

OTHER
DATES:

April 18
May 16
June 20
July 18
September
19
October 17
November 21
December 19


Dates are correct at the time of
posting.


Tags: topic:[open solaris] topic:[london] topic:[user group]


Good Morning Build 58

February 21, 2007


This was not really good morning as I was introduced to the new system last night. It is not often that all the systems I use regularly are on the latest build but I am now.



: enoexec.eu FSS 1 $; uname -a
SunOS enoexec 5.11 snv_58 sun4u sparc SUNW,Sun-Fire Solaris
: enoexec.eu FSS 2 $;


16 byte CDB with scsi.d

February 19, 2007

I’ve been working to put USCSI support for LUNS greater than 2Tb
into diskomizer (a test program for testing disks). So while I have a
system that has a LUN greater than 2TB I thought I would just test
out scsi.d as
it has the code for all the SCSI commands in it. Alas there was a
trivial bug that meant the lookup of the names of commands did not
work. So I have spun a new version (1.9). Download it from here.


Now for the sad out there here is the transition from 10 byte CDB
to 16:


00000.015415100 fp5:-> 0×2a WRITE(10) address 40:01, lba 0xfffffffe, len 0×000001, control 0×00 timeout 60 CDBP 60002278ebc dd(11510) cdb(10) 2a00fffffffe00000100
00000.016729900 fp5:<- 0×2a WRITE(10) address 40:01, lba 0xfffffffe, len 0×000001, control 0×00 timeout 60 CDBP 60002278ebc, reason 0×0 (COMPLETED) state 0×1f Time 1360us
00000.016828400 fp5:-> 0×2a WRITE(10) address 40:01, lba 0xffffffff, len 0×000001, control 0×00 timeout 60 CDBP 6000388d3b4 dd(11510) cdb(10) 2a00ffffffff00000100
00000.018059000 fp5:<- 0×2a WRITE(10) address 40:01, lba 0xffffffff, len 0×000001, control 0×00 timeout 60 CDBP 6000388d3b4, reason 0×0 (COMPLETED) state 0×1f Time 1272us
00000.018205900 fp5:-> 0×8a WRITE(16) address 40:01, lba 0×0000000100000000, len 0×000001, control 0×00 timeout 60 CDBP 600060c8704 dd(11510) cdb(16) 8a000000000100000000000000010000
00000.019467100 fp5:<- 0×8a WRITE(16) address 40:01, lba 0×0000000100000000, len 0×000001, control 0×00 timeout 60 CDBP 600060c8704, reason 0×0 (COMPLETED) state 0×1f Time 1320us
00000.019611800 fp5:-> 0×8a WRITE(16) address 40:01, lba 0×0000000100000001, len 0×000001, control 0×00 timeout 60 CDBP 6000227ab6c dd(11510) cdb(16) 8a000000000100000001000000010000
00000.020823300 fp5:<- 0×8a WRITE(16) address 40:01, lba 0×0000000100000001, len 0×000001, control 0×00 timeout 60 CDBP 6000227ab6c, reason 0×0 (COMPLETED) state 0×1f Time 1257us





I know I need to get out more.


The price of breakfast.

February 18, 2007

It is not global
warming
that is causing our rides to be longer. It is the prices
in the Lucky Duck. We were all lined up for a shortish ride to Shere,
breakfast in the Lucky Duck, and home when the fact that the Lucky
Duck is a bit pricy. (A pot of Tea and beans on toast cost more than
£5). While it is true we are a bunch of tight fisted cyclists
there is a practical reason mostly we only carry £5 each rather
than a wad of cash. So we suddenly find ourselves heading for Henfold
Lakes (2 cups of Tea and beans on Toast £4.20) via Ockley and
about 40 miles to get there and about 20 miles to get home.


Well it is encouraging us to get the miles in which we will all
need if we are going to make a good show of the London to Canterbury
in July. We will have to step up the miles even more. It was a good
ride, 63 miles but did not get home before 12.


Etape du Britain

February 15, 2007

Now I just need to get a place.


It is kind of pricey but I will still be there. You get to ride the route of stage 1 of the Tour.

Anyone joining me?


Testing timezone enabled cron

February 14, 2007

My proof
of concept for cron to understand timezones
has moved to being
closer to production code and I’m in the process of trying to get it
put back in to Solaris. The biggest sticking point at the moment
appears to be that the UNIX standards all say
you can’t do this in a crontab
file.


Meanwhile following Adam’s
point that it’s
tested or it’s broken
I have started work on a test suite to test
the new functionality in the blind optimism that a way around the
standards can be found.


First I wrote a script that understands the five time fields used
by cron and a timezone and can tell you if it is running when it
should not. It is called crontest
and can be run from cron like this:


15,45 * 1-18,20 2 * exec lang/sh/crontest 15,45 \* 1-18,20 2 \* Africa/Addis_Ababa


When it thinks things have gone wrong it prints an error with the
process id and the parent process id so that it can be tied back to
the entry in /var/cron/log.





Now I just need a crontab file that
contains all the possible cron entries. Hmm that is not so easy.
However if I can fill the crontab file with random entries I should
get good coverage. So I have another script, crontab_create
which generates random, but legal, crontab entries which call the
crontest
script. So I end up with a crontab that looks like this:





TZ=Asia/Tbilisi
42,50 0 1-25,27-28,30 1 * exec lang/sh/crontest 42,50 0 1-25,27-28,30 1 \* Asia/Tbilisi
37,45 0-21,23 1-20,22-23,25 * * exec lang/sh/crontest 37,45 0-21,23 1-20,22-23,25 \* \* Asia/Tbilisi
32,40 0-16,18-19,21 * 1 * exec lang/sh/crontest 32,40 0-16,18-19,21 \* 1 \* Asia/Tbilisi
27,35 * 1-10,12-13,15-21,23 1-11 * exec lang/sh/crontest 27,35 \* 1-10,12-13,15-21,23 1-11 \* Asia/Tbilisi
22,30,57,59 0-6,8-9,11-17,19 1-5,7-8,10-16,18-28,30 1-6,8-9,11 * exec lang/sh/crontest 22,30,57,59 0-6,8-9,11-17,19 1-5,7-8,10-16,18-28,30 1-6,8-9,11 \* Asia/Tbilisi
TZ=Asia/Tehran
17,25,52,54-56 0-1,3-4,6-12,14 2-3,5-11,13-23,25 1,3-4,6 * exec lang/sh/crontest 17,25,52,54-56 0-1,3-4,6-12,14 2-3,5-11,13-23,25 1,3-4,6 \* Asia/Tehran
12,20,47,49-51 1-7,9-19,21 * * * exec lang/sh/crontest 12,20,47,49-51 1-7,9-19,21 \* \* \* Asia/Tehran
7,15,42,44-46 0-2,4-14,16 1,3-13,15-22,24,26-27,29 1-2,4 * exec lang/sh/crontest 7,15,42,44-46 0-2,4-14,16 1,3-13,15-22,24,26-27,29 1-2,4 \* Asia/Tehran
2,10,37,39-41 0-9,11-18,20,22 1-8,10-17,19,21-22,24 1-9,11 * exec lang/sh/crontest 2,10,37,39-41 0-9,11-18,20,22 1-8,10-17,19,21-22,24 1-9,11 \* Asia/Tehran
5,32,34-36 0-4,6-13,15,17-18,20 1-3,5-12,14,16-17,19 1-4,6 * exec lang/sh/crontest 5,32,34-36 0-4,6-13,15,17-18,20 1-3,5-12,14,16-17,19 1-4,6 \* Asia/Tehran
TZ=Asia/Thimphu
0,27,29-31 1-8,10,12-13,15 1-7,9,11-12,14 * * exec lang/sh/crontest 0,27,29-31 1-8,10,12-13,15 1-7,9,11-12,14 \* \* Asia/Thimphu
22,24-26 * 1-2,4,6-7,9 1-3,5,7-8,10 * exec lang/sh/crontest 22,24-26 \* 1-2,4,6-7,9 1-3,5,7-8,10 \* Asia/Thimphu
17,19-21 0,2-3,5 1-2,4-26,28-30 2-3,5 * exec lang/sh/crontest 17,19-21 0,2-3,5 1-2,4-26,28-30 2-3,5 \* Asia/Thimphu
12,14-16 0-22 * * * exec lang/sh/crontest 12,14-16 0-22 \* \* \* Asia/Thimphu
7,9-11 * 1-16,18-20,22 1 * exec lang/sh/crontest 7,9-11 \* 1-16,18-20,22 1 \* Asia/Thimphu
TZ=Asia/Tokyo
2,4-6,56,59 0-12,14-16,18 1-11,13-15,17 1 * exec lang/sh/crontest 2,4-6,56,59 0-12,14-16,18 1-11,13-15,17 1 \* Asia/Tokyo
0-1,51,54 0-7,9-11,13 1-6,8-10,12 1-7,9-11 * exec lang/sh/crontest 0-1,51,54 0-7,9-11,13 1-6,8-10,12 1-7,9-11 \* Asia/Tokyo
46,49,55 0-2,4-6,8 1,3-5,7 1-2,4-6,8 * exec lang/sh/crontest 46,49,55 0-2,4-6,8 1,3-5,7 1-2,4-6,8 \* Asia/Tokyo
41,44,50 0-1,3 2 1,3 * exec lang/sh/crontest 41,44,50 0-1,3 2 1,3 \* Asia/Tokyo
36,39,45 0 1 * * exec lang/sh/crontest 36,39,45 0 1 \* \* Asia/Tokyo
TZ=Asia/Ulaanbaatar


I needed some tuning so it would not be starting more than 100 jobs
in anyone minute or at least it would not every minute as cron would
then delay some jobs which in turn throws up false positives. I now
have it with 551 timezones and 2756 cron entries which. There is
probably (certainly) an optimization on the script to generate the
cron entries so that they only run in the current month or at least
for the likely length of the test.





It has been running for 24 hours on my
home server. I can see the entries run from the log and I’ve not had
any email telling me things have been submitted at the wrong time. So
I am reasonably happy. Just to prove that it does what I think it
does I added a line were the arguments to the script did not match
the time specification of an entry that is running. Sure enough I get
email (the crontab entry I changed the 25 minute to 50):





Your "cron" job on pearson
exec lang/sh/crontest 23,25 0-11,13-18,20 1-10,12-17,19 \* \* GMT
produced the following output:
17182:24396: Bad min: Should be 23,25 is 50:


This covers the easy cases to test that jobs that run run at the
correct time. The harder part is to verify that every job that should
run does run. Need to think that one through.