Robert Cowham's Weblog 5 to 9 of 43 articles Syndicate: full/short

P4Web Usage and Action Codes   08 Jun 07
[print permalink all comment ]

People ask from time to time how to browse a Perforce repository, and the easiest answer is to use p4web.

Some advantages:

  • It's free, and in browse-only mode doesn't consume extra licenses - which means that you can "publish" changes via your Perforce server to managers and other people who may not normally have a Perforce license.
  • It will "serve up" things like Word documents such that they are typically opened in Word by your browser
  • It can give "canoical" or fixed URLs for documents or other configuration items stored in Perforce, so that fixed references always get the latest versions (as opposed to a file share where it is often unclear which is the latest and if there are any other versions etc)
  • The default URL to get the head revision is very simple:
    • <p4web-base-url>/<document path within perforce without double slash at start>, e.g.
    • http://p4web-machine/depot/some/path/to/document.doc

Example of Accessing a Document

A test document has been setup in the Perforce Public Depot.

The direct URL to load the document is http://public.perforce.com/guest/robert_cowham/test/testdoc.doc 

Alternatively it can be accessed for example with the history via p4web as:

http://public.perforce.com:8080/guest/robert_cowham/test/testdoc.doc?ac=22

Bear Security in Mind

If you setup in browse only mode as a user with access to the whole repository, you may be bypassing other security requirements and protections.

Consider setting up different p4web instances with different access permissions. Putting a separate layer on top of p4web with usernames and passwords, while possible, is likely to lead to maintenance problems.

DNS Alias to keep the URL fixed

If you start referring to a Canonical URL which then becomes used inside documents, make sure that the machine where p4web is running is accessed via a DNS alias so that it can be moved easily without breaking the references.

Also consider having a setup (e.g. via Apache or IIS virtual server settings) where the default web port of 80 is used to avoid ugly port components of the path such as :8080 or some other port  being required.

Parameters

The following were culled from personal experience and postings on perforce-user (by Noah Salzman  and Nick Levine )

Action Codes
10	Changelist Detail
http://p4web.example.com:8080/12345?ac=10

14	Branch Specification
http://p4web.example.com:8080/foo_branch?ac=14

16	Label Spec
http://p4web.example.com:8080/build_tag_123?ac=16

22	Revision History
http://p4web.example.com:8080//depot/main/foo.c?ac=22

64	View Head Revision
http://p4web.example.com:8080//depot/main/rel1/foo.c?ac=64

69	Submitted Changelists
http://p4web.example.com:8080//depot/main/rel1/foo.c?ac=69
http://p4web.example.com:8080//depot/main/rel1/...@build_tag_123?ac=69

142	View Annotated
http://p4web.example.com:8080//depot/main/rel1/foo.c?ac=142

143	View Fully Annotated
http://p4web.example.com:8080//depot/main/rel1/foo.c?ac=143

Note: the single forward slash (versus a double forward slash) is  
important in URLs that do not include depot paths.
107	List Jobs  (p4 jobs)
http://clrfi.alu.org:8080/?ac=107
http://clrfi.alu.org:8080/?ac=107&jsf=Job&jsf=Status&jsf=Date&jsf=Title&jsf=Area&jsf=Priority&ft=status%3Dopen

111	Describe Job (p4 job)
http://clrfi.alu.org:8080/job000005?ac=111
URLEncode the "@" (%40) or "#" (%23), for example, show contents of head rev

//public/jam/src/Build.com#2 is
http://public.perforce.com:8080/public/jam/src/Build.com%232?ac=64 

For #1
http://public.perforce.com:8080/public/jam/src/Build.com%231?ac=64 

For label @jam2-2-0 it is:
http://public.perforce.com:8080/public/jam/src/Build.com%40jam2-2-0?ac=64 

 

Vinterleir 2007 with Suganuma Sensei   19 Mar 07
[print permalink all comment ]

This is a personal review of the Norwegian Aikido Federation (NAF) Vinterleir (winter school), 15 - 18 March in Tromso. Jessica Loeb and myself formed the London contingent - unfortunately Francis and Craig who were due to come too were not able to in the end.

Tromso is a very nice small town in the north of Norway, well inside the arctic circle. At this time of year there is plenty of snow and yet the daylight is a good 12 hours (it is far enough north to range from almost no daylight mid-winter to no real darkness in summer). There is not a vast amount to Tromso, but one of its attractions is that it seems to take about 10 minutes by car to go anywhere, including being out of the town and in some lovely nature.

The Vinterleir is traditionally taught by Bjorn Eirik Olsen (6th dan), Technical Director of the NAF, but this year, in honour of 30 years of aikido in Tromso (which was the first club in Norway at all), they invited Suganuma Sensei (8th dan). He has been 11 times to Norway but always in the south for the summer camp, and I think he very much enjoyed the different surroundings of snow and nature.

This also worked out very well as they have the Doshu Moriteru Ueshiba leading the summer camp in July this year. That promises to be a rather larger affair than usual!

I have actually been half a dozen times to the Vinterleir - there was a period when I went every year, but the last time was 5 years ago - Benedict who is now 4 and a half years old changed life a little!

As ever, the welcome in Norway is always extremely friendly and the atmosphere is a huge part of the success of the camp. Most people stayed with dojo members which was very nice, and in my case, together with Geirr from Oslo, we were kindly looked after by Ingelill.

It was great to see that Suganuma sensei had brought a large party from Fukuoka - nine in all. As was mentioned at one point in the speeches, it was also very nice that the Japanese group were not just fairly senior teachers, but ranged from a 17 year old to a 70 year old, and beginners to a 6th dan.

Suganuma Sensei

The training itself was excellent as usual - very clear and precise. Suganuma sensei's teaching seems to vary very little from year to year, and is very unflashy on the surface and always seems to be oriented towards the basics in these courses. He is always very clear about techniques and gives lots of smaller pointers to particular things to watch out for ranging from use of atemi to positioning for maximum safety during nikkyo.

There are times when this can almost seem a little boring - and it certainly contrasts with Inaba sensei who spends quite a lot of time talking/lecturing during courses can also give some very interesting food for later thought and reflection (although some people find that very boring!).

Suganuma sensei is very attentive during the practice and frequently helps beginners with great patience, including taking ukemi for them to make sure they have understood.

Over the years it has become an interesting exercise to tease out more from what Suganuma sensei is demonstrating, and I was starting to get a better sense of how he uses his body and energy, and feels the connection with his partner. I still have lots of questions about the "shape" of some of his techniques which I can not replicate without expending a lot more muscle in comparison with other ways of doing the same techniques. Something to work on next time.

One very interesting point for me was when he mentioned how often we tend to provoke a negative response from our partners by inappropriate or hard techniques. This is something I am finding very fruitful for my current practice.

I will certainly be back again, although am interested to know if his teaching varies for example in his home dojo(s), although an interview with him implies that it doesn't. It was very useful to practice a little with Tokuda sensei (6th dan) and get an alternative feel from someone who has trained with Suganuma sensei for many years. A very clear use of energy and sense of sticking and controlling in some techniques. I would love to arrange a visit on a future trip to Japan. For me a lot of the interest is because of the contrast with Inaba sensei - two very inspiring, but very different, teachers.

My Class

Due to the number of people on the course and the size of the main dojo not being sufficient to accommodate everyone, people were divided up into groups and roughly a third went off for a separate class at various points. I was asked to teach one of these and had some fun doing it.

I taught a somewhat relaxed and very much feeling based class rather than technique based, mainly because this is what I am finding most interesting in my personal practice at the moment. We started with some breathing exercises, breathing out and sucking the belly in, and then rotating the hips to drop the tanden/belly forward and using this to allow a fast in-breath, but with no hint of force or strain. It is important to feel as if breathing first into the belly and not fill the upper chest, or at least not let stiffness in there. Also there can be a temptation is to "sniff" which tends to stiffen the body - I find it much easier to do with an open mouth. This exercise certainly seemed a little strange at first, but I then built on it to show some simple techniques, e.g. from katatedori, where I find that an out-breath to absorb your partner's attack/energy, followed by a quick in-breath seems to release some energy upwards which makes it much easier to lift their arm and indeed their energy.

I then focussed on keeping very soft and relaxed arms and shoulders while performing simple koky-ho from ryotedori (2 hand grab) or tenchinage, and allowing the arms to drop in a very relaxed manner without any sense of strain or pushing.

People seemed to enjoy it (after the initial confusion perhaps on the breathing and where I might be going with it!) and I had several appreciative comments afterwards which is always nice. My sources are mainly Inaba sensei's teaching regarding the breathing, and Peter Ralston's book "Zen Body-Being" for a fascinating approach to relaxation and effortless power which I am finding very rewarding to study.

Grading

I missed the kyu grading, but watched the dan grading on Saturday with interest: three shodans and two nidans, of whom I knew 4: Vegard, Steinar, Haakon and Kai Hare. The shodan grading took a good 20 minutes or more - any number of techniques being required to be demonstrated. Somewhat unnecessary in my opinion, but then Inaba sensei does rather tend to an alternative approach others find not rigorous enough. Interestingly the nidan gradings were shorter, since the requirement to work through the basic techniques was dropped in favour of a more free style approach. The candidates all did very well and deservedly passed. A nice surprise at the end was when Stein-Are Engstad was called out - he seemed very surprised and didn't know quite what was going on only to be awarded his yondan.

The Party

As always the party on Saturday night was a great success, and this year was held in Polaria (the Polar Centre) - one of the main tourist attractions in Tromso. The food was delicious and there were some very good speeches around the celebration of 30 years. Birger Sorenson was present who started the club in Tromso as a 4th kyu back in 1977. In that first group were Bjorn Eirik and Kore (both present) so we were treated to a few reminiscences of life back then (including some slightly alternative views of exactly what did go on!), and a little earlier in the evening a slide show of some photos over the years.

Suganuma sensei also spoke, and offered his congratulations. He also mentioned that in the summer camps a few years ago I had asked him the question "What was the most important thing in Aikido?" He answered that it was musubi or connection. A couple of years later, I asked him the same question, not wishing to catch him out, but genuinely interested if he had changed his mind or not. When this was pointed out to him at the time, he saw the funny side, and this year saved me the trouble of asking it again by saying that he still thought musubi the most important thing!

I realised that he had demonstrated the importance of "connections" off the mat as well - it is one of the qualities that make him the very impressive man that he is. You don't build an organisation of 100 or so dojos over 30 years if you can't establish and more importantly maintain good connections with people. There are lots of aikido teachers who are technically very capable, but very few who have the personal qualities and lack of ego of Suganuma sensei. I am sure that his many years of study of zen alongside his aikido has had a large influence.

The dancing afterwards was ably lead as ever by Bjorn Eirik and Birger Sorenson! Having been kicked out at 1am those of us who were left walked through the centre of a still buzzing Tromso, and while the main diehards went to the "Fun Pub", a smaller group of us enjoyed a beer at a slightly quieter local. The morning did however roll around rather early!

Touristy Things

The hosts had arranged a visit on Sunday morning for the Japanese, and Jessica and I tagged along. We took the cable car up the mountain on the mainland (to 420m), and were met by a couple of Sami (Lapp) hosts who gave us a reindeer sleigh ride and some coffee in a "lava" or tepee like tent. It seemed rather touristy and kitsch at first, but thanks to the really friendly and genuine guides turned out to be a lot of fun. The reindeer sleigh rides were only a quick circuit of perhaps 200m, but my ride became a touch more interesting when in response to my question "do you ever race?", much encouragement was given to the reindeer who promptly got over excited and veered off course heading for his mates down the hill. It turns out that reindeer don't like to be touched, and aren't terribly easy to control - starting out consisted of pulling the reindeer forward with them initially resisting, and then turned into a quick sprint and a leap on to the sledge as the reindeer suddenly bounded off!

Our hosts were young guys whose family apparently has some thousands of reindeer in their herd who spend the summer around Tromso (from April onwards), but they winter about 100km further south and inland where the climate is drier and the snow easier to dig for lichen/moss in. They were very friendly and enthusiastic with their explanations on details of dress and life, and it was very enjoyable. The only problem was that our time was a little limited and it would have been great to have a walk after lunch given the great weather up there.

Conclusion

A great course, leaving me feeling rather well exercised, and with some more happy memories to add to the store associated with Norway. Thanks to Bjorn Eirik and all the other members of Reimeikan.

Microsoft, SCM and "Large" Projects   13 Mar 07
[print permalink all comment ]

There have been some interesting posts recently on the challenges faced by Microsoft in developing Vista. It has of course fairly recently made it out of the door which in itself is a major achievement. However, it has become clear that many features originally scheduled for inclusion have been dropped (WinFS for example). The sheer challenge of developing such a vast system is immense, and a key part of any such development effort is the change, configuration and release management.

Some fairly recent blog postings have highlighted some of the issues involved, and seeing as SCM is right in the mix, I though it worth a review.

Overview of Vista - Paul Thurrott's Supersite for Windows

The sheer size and scope of Windows Vista makes it difficult to review, to digest, and to understand. If you step back too far, it doesn't look very impressive at all: It's like XP with a spit-shine. But if you get too close, it's easy to get lost in the seemingly never-ending lists of new features.

A previous article by Paul bemoaned various lost features.

Joel Spolsky wrote an article How many Microsofties does it take to implement the Off menu? reflecting on UI choices and how less is usually more.

This attracted a comment (or was it coincidental): Moishe Lettvin's Windows Shutdown Crapfest posting:

The most frustrating year of those seven was the year I spent working on Windows Vista, which was called Longhorn at the time. I spent a full year working on a feature which should've been designed, implemented and tested in a week..

The key SCM-related part of Moishe's post is:

In small programming projects, there's a central repository of code. Builds are produced, generally daily, from this central repository. Programmers add their changes to this central repository as they go, so the daily build is a pretty good snapshot of the current state of the product..

In Windows, this model breaks down simply because there are far too many developers to access one central repository. So Windows has a tree of repositories: developers check in to the nodes, and periodically the changes in the nodes are integrated up one level in the hierarchy. At a different periodicity, changes are integrated down the tree from the root to the nodes. In Windows, the node I was working on was 4 levels removed from the root. The periodicity of integration decayed exponentially and unpredictably as you approached the root so it ended up that it took between 1 and 3 months for my code to get to the root node, and some multiple of that for it to reach the other nodes. It should be noted too that the only common ancestor that my team, the shell team, and the kernel team shared was the root.

Joel Spolsky then chimed in:

Of all the things broken at Microsoft, the way they use source control on the Windows team is not one of them...

When you're working with source control on a huge team, the best way to organize things is to create branches and sub-branches that correspond to your individual feature teams, down to a high level of granularity. If your tools support it, you can even have private branches for every developer. So they can check in as often as they want, only merging up when they feel that their code is stable. Your QA department owns the "junction points" above each merge. That is, as soon as a developer merges their private branch with their team branch, QA gets to look at it and they only merge it up if it meets their quality bar.

I think there are various interesting things about this discussion.

Managing Complexity and Reducing Dependencies

From the days of The Mythical Man Month: "Adding manpower to a late software project makes it later", it has been clear that the challenges of managing large scale systems are many. The whole book is a joy to read, and the Wikipedia articles referenced give a good highlight.

I particularly like the idea of Conceptual Integrity to help keep things simpler both in development and control.

Microsoft's products would appear almost by design to have a very high level of interdependencies between them (although this is changing: "And what happened is as the projects got larger and larger, we introduced too many complex interdependencies on early software, more so than we could really digest throughout the system," said David Treadwell, corporate vice president of the .Net Developer Platform group).

One advantage of the dependencies is that if your customer buys one product then they pretty much have to take a slew of accompanying products too.

Branches and Sub-Branches - Your SCM Tool

Back to Joel's comment that the best way to organise things is branches and sub-branches. This is a fairly classical SCM approach to the problem which has many benefits.

It is interesting to note that Joel mentions SourceDepot which Microsoft uses internally, and which is a re-badged version of Perforce circa 1999 (when win2k was in development), with some Windows specific improvements such as memory usage, but from what I can gather no fundamental algorithm improvements. Perforce of that era only had the ability to easily propagate changes between directly related parent-child branches. Things like grand-parent <-> grand-child propagation skipping over intervening parent were possible but tricky - the tool didn't default to handling it. (Note that I am interested in the original comment about there being a tree of repositories, as opposed to a tree of branches - if the former, then it makes things much more difficult to improve merging across separate repositories).

Microsoft's new Team Foundation Server tool (uses a similar branching model and terminology but totally re-architected it would appear), does not yet support good common ancestor detection either.

Over the years Perforce has addressed this in various ways, and from 2005 it is working well and with reasonable performance at large sites. Thus in Perforce you can pull changes from one sub-branch to another without going via the parent, and changes propagated back to the common parent will not cause major problems for either sub-branch. There still remains a very large question as to whether "uncontrolled" propagation of changes is a good idea (as Laura Wingerd puts it - "why we don't allow driving through hedges" - Ch7), and my advice is certainly to think carefully and plan your normal strategy (with tightly locked down exceptions maybe permissible). It still comes back to managing complexity: the more you allow changes to be propagated all over the place in an ad-hoc fashion, the harder it is to track what has gone one.

As mentioned by Joel, Accurev is a very interesting looking tools and their stream browser certainly looks attractive, and has raised the bar in terms of features for the SCM vendors. My impression is that Perforce still has the advantage in terms of scalability (see Google paper) and performance, but I would certainly put Accurev on my evaluation list if advising a client in this area.

3rd BCS CMSG Conference - 15 & 16 May 2007   13 Mar 07
[print permalink all comment ]

The 3rd BCS CMSG Conference is now open for registrations with a good lineup of speakers, and an excellent looking venue.

A number of people commented on problems getting to Cambridge (not so convenient from various parts of the UK), so hopefully Oxford will fit the bill a little better. In addition, we can up the budget a little for a slgithly more commercial venue.

Some other differences this time around:

  • PB Projects is doing the bulk of the heavy lifting in terms of organising details etc - yes it costs us, but it seems to be working fairly well. and takes some (though not all - e.g. sorting out timetable/speakers) of the load off the committee.
  • Only just realised that offering a group discount might help bring in a few more people - we more interested in having more people there than making a vast profit (haven't yet managed to get the committee fact finding trip to the Caribbean off the ground to spend our current surplus, but am working on it...)

So, the first registrations are already in, and look forward to plenty more!

Meanwhile, am hopefully getting a little breather to allow rather more blogging than of late - have a stack of topics piled up awaiting that spare moment!

 

Agile SCM Column December 2006   22 Dec 06
[print permalink all comment ]

I had some fun with the Agile SCM Column at CM Crossroads this month:

A Christmas (Configuration) Carol (Abridged)

We have endeavored in this Ghostly little tale, to raise the Ghost of an Idea, which shall not put our readers out of humour with themselves, with each other, with the season, or with us. May it haunt their houses pleasingly, and no one wish to lay it.
Their faithful Friends and Servants
C.D., R.C., B.A & S.B.
Charlie's Ghost

In which the ghost of (Configuration) Charlie appears to our heroine SCM Sally to help her in her dealings with VP of Development Ben ('Benezer) Scrooge.

Continued...

Sometimes inspirations strikes, though it is interesting what turns out in the end - had a couple of different ideas (and a lot more quotations from the original), but it evolved into what you see. Not quite as provocative as a previous column:

National Treasures of Agile Development

Introduction

Recent research has discovered a very interesting cache of papers about a little known Tribe called the Agile Developers. The first document is a draft dated July 4th (the year is illegible).

(Document starts)

When in the Course of human events, it becomes necessary for some developers to dissolve the bands which have connected them with others, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation.

We hold these truths to be self evident,

Continued...

 

Copyright © 2008 Robert Cowham