|
7/13/02
Today I received my Day Sailor Helmsman Certification.
That means I can check out the Day Sailor from the Providence
Community Boating Center.
To pass the test, I had to set up the sails on my
boat, do two tacks, two jibes, and successfully park the
boat at the dock. I had a little trouble on the first
jibe and started to heel and take water into the boat, but
then recovered and finished the jibe. I also had a
bit of trouble parking because I wasn't coming up steeply
enough into the wind and missed the dock twice before successfully
docking.
The Community Boating Center in Providence is located in
Providence's commercial wharf. There are several tugboats
tied to a concrete pier just to the west of the center
and oil tankers and other large ocean-going cargo ships
are regulars in the harbor.
I've always enjoyed large-scale industrial technology
so its fascinating sailing in the harbor and watching what
is happening. The cargo ships are outfitted with cranes
and rise about 3-4 stories above the water. They generally
spend about a two weeks unloading their cargo so you can
see the cranes and belts and scoops unloading whatever it
is that they are carrying. It is fun to watch the
ships change and see the different kinds of cargo that each
ship unloads. Of course, it is also fun to sail.
7/10/02
I am still basking in the glow of a wonderful backpacking
trip in the Great Gulf Wilderness. After three years
of Saint Louis, I am glad to be back within a few hours
of mountains. It was great to discover that
New Hampshire has real mountains!
I left Providence in a half-organized rush at 12pm.
About halfway through Boston, I realized I had left my hiking
boots at home. Oh well, I guess it would give me a
chance to strengthen my ankles. I arrived in
Gorham, NH at 4pm. Enough time to buy a parking permit
at the Androscoggin Ranger Station. Without much
knowledge of the area, I decided to head for a tent platform
about 3 miles on the Osgood trail.
My timing was perfect. At about 8pm it started to
rain and I arrived at my camp. I set my new North
Face Talus tent up on the platform and tried to get Teton
come in out of the rain. He would have none of it.
The wolf in him wanted to dig a nest under a pine tree.
He seemed to have forgotten mountain mosquitos. By
morning he was so bitten his eyes were swollen shut.
My goal that day was to get to the Madison Hut, which was
over the summit of Mt. Madison, 5367 feet above sea level.
As we left the cover of timberline and began the ascent,
great black clouds started billowing over the peak from
the north-west. The wind began blowing hard, and with
a 60 lb pack and tennis shoes, I decided that discretion
was the better part of valor and headed back down.
Not wanting to camp in the same spot, I decided to head
for the Madison Gulf trail. I had seen campsite markers
in the Ranger Station in that general vicinity, and guessed
that I was probably only a mile or so away. By this
time, I was pretty sore and my feet were bruised and battered.
Fortunately, the trail wasn't too difficult and I reached
a new camp after about a mile.
The second camp was gorgeous. It was on a precipice
about 200 feet above the confluence of the Peabody River
and the Parapet Brook. I fell asleep and dreamed of
a great symphony as the river roared a deep base and
the brook gurgled melodiously in an alto timbre.
The site overlooked Mt Washington to the southwest and
Mt. Adams to the North. A trail led through the trees
up to Madison Hut and I intend to take that trail the next
time I go. As I awoke in the morning, I was just so
thrilled to have the priviledge of having this beautiful
place as my back yard for a day.
6/19/02
Out in Providence, I am keeping myself gainfully occupied
by reviewing statistical analysis
using the "R" package, which is a
GPL version of Splus.
My idea is to put together some of my data mining skills
to and use LTER project
data as examples for a review of statistical analysis.
The temperature readings in the figure begin
July 1988 and end July 1989. It looks like it
will fit nicely to a sine curve!
I find temperature data interesting is that it is
strongly correlated to other natural phenomenea: snowmelt,
water
temperature, and phenology.
It is also readily available and intuitive.
5/20/02
I am on the road out to Providence, RI for a big adventure
in finding a job and learning a new town. Its great to think
that I will be living in the hometown of H. P. Lovecraft,
just down the street from The Shunned
House.
4/21/02
I need to thank Borland for pricing me out of JBuilder.
I've been using JBuilder since I started programming Java
and was really excited to get the latest refactoring JBuilder,
until I found out that the refactoring portion only came
with the $3000 version. How lame is that?
I went on a quest to find a new development environment.
I tried IBM WebSphere Studio. I came away feeling like it
would be great for using on a big project with lots of other
developers, but for my own stuff, it was simply overkill.
A lot of my friends had been talking about
IntelliJ and so I gave that a try. I love it! It does
everything that the JBuilder Enterprise did and it is probably
the most usable IDE I have ever used. At $395, it is within
my own budget.
The thing I like most about IntelliJ is that it seems
as though they designed it with test-first programming in
mind. The JUnit integration is beautiful. I can change packages,
change classes, change methods, and it is all handled by
the IDE, so no more tedious refactoring query-replace sessions.
3/01/02
Every so often I am struck by the similarities between
XP and Marxist Theory. Even the XP "core elite" have grasped
this relationship, and have a "Manifesto
for Agile Software Development."
In practice they are quite similiar. Each offers an excellent
framework for sociological analysis. Once you have a little
circle of life, you can analyze many previous projects and
point out the points on the circle that would not have failed
had it been for XP. You can also debate nearly infinitely
on the effects of PairProgramming on the other practices.
PairProgramming and CollectionCodeOwnership are clearly
tied together. If you have pairs, then you have a sense
that no one person owns a part of the code. PairProgramming
means that all source is peer reviewed and that solid architecture
(MetaPhore) will arise from refacting simple, but solid
initial steps.
Also, like Marxist theory, XP can be a red-herring to
divert people from dealing with their real problems. Certainly
a development team can get the perfect XP paradigm figured
out, but if they can't figure out what to do, because the
customer relationship lacks shape and definition, then they
can't really deliver the product. Likewise, you can't assume
that the planning game will replace a simple spreadsheet
of tasks, assignments, priorities, and a detail-oriented
lead that makes those tasks happen. How much methodology
do you need to track an XSL spreadsheet?
2/01/02
The waterfall process is a standard topology of project
management that has some well-known problems, but also is
well-understood and common in development practices.
During the "requirements" phase, it pays to develop a
working UserInterfacePrototype to show to the customer.
The customer can then pilot the system and define the requirements
precisely on paper. It is extremely important in waterfall
to get the requirements correctly the first time, because
any changes after the implementation begins are extremely costly .
During the "design" phase, each developer is assigned
a feature from the functional specification and they do
a design. The design phase should include a PlanOfAttack
and that should list all the files and or packages that
the developer will be changing. For waterfall,
you will need to segregate the ownership of all code because
during the course of implementation, each developer will
work pretty much independantly and you will need to spend
a lot of time in integration later. That underscores
the need for RigidInterfaces.
During the "implementation" phase it is helpful to divide
up any task into InchPebbleReleases. Each of these releases
should be accompanied by UnitTests, SystemTests, and a PeerCodeReview
by a different reviewer each time. Having InchPebbleReleases
addresses some of the big problems with traditional waterfall.
- Small releases are easier to review effectively.
- Integration with existing applications is incremental.
- Architecture is evolved iteratively through each review.
PeerCodeReviews are performed with the aid of the DesignDocuments
and automated tests. The programmer should have UnitTests
for all their new code, as well as a SystemTests. This helps
the reviewer to verify code coverage and also see the behavior
easily.
PeerCodeReviews are an interesting aspect to waterfall
in that they have the same independent relationship with
a number of other practices. The most prominant being
SourceCodeLocking. If you do PeerCodeReviews it is
important to make sure that only one programmer is working
on any one piece of code.
Testing is traditional testing, done in house (alpha testing),
and externally by selected customers (beta testing). Most
people underestimate the quality required before beta testing
can begin. Beta to the user might as well mean release.
When you send code into Beta it should have no bugs or missing
features. With waterfall, ZeroDefects is a must
because fixing a bug nearly equivalent to the cost of a change.
|