Ted Leung on the air: Open Source, Java, Python, and ...
Sam's here
Sam and Miguel
This is the proof I was there
I was pretty interested to hear what Rebecca Wirfs-Brock had to say. Designing
Object-Oriented Software was one of the first O-0 books that I read
as a grad student back in the late 80's, and I've always appreciated
the CRC method as a lightweight yet effective mechanism for design.
Rebecca has a new book out, which looks like it elaborates on these topics.
It's hard to say, because she didn't talk about the book directly.
Instead, she talked about "Skills for Agile Designers" . Part of her
talk was about Agile methods -- she's not in the fundamentalist Agile
camp. The next section her talk covered "Tools for Seeing" -- ways
of looking at a system to bring the key design criteria into focus.
She talked about stereotypes of object roles as a way to bring out
the issues that will need to be dealt with. This is intended to be
a generative sort of approach -- if an object is acting as a
coordinator, then the design is likely to solve the following
problems, etc. She also mentioned how this perspective helped to
appreciate Peter Coad's use of color in UML diagrams. Someone in the group pointed out Streamlined
Object Modeling as a good resource for this kind of philosphy.
Another interesting topic was the use of JavaDocs as a way to yank
stuff back up and map it back to CRC cards (if you were using them).
The idea is to have a custom doclet that pulls just the descriptions
for class and method comments and renders them all into a big page(s).
This can then be used to try to trace stuff back to the CRC cards to
make sure everything was covered and nothing was gold plated.
The final section was called "Tools for Shaping Solutions", and
included a discussion of Problem
Frames by Michael Jackson.
I really enjoyed her talk but found it to be more focused on object
design/modelling and less about finding balance in the application of
Agile methods. Wilhelm pointed
out that her audience is probably normally people for whom object
modelling = RUP, and so in comparison a lot of the techniques that she
covered were Agile in comparison. Since this was a 3 hour talk
compressed into 1 hour, there were probably lots of things that got
left out. All in all an evening of quality presentations, and of
course, some good beer and conversation afterwards.
It works like this. When jar files are created, place three new attrbutes in the manifest: jar-id: a string representing a unique id for this jar
jar-version: a string representing the version identifier for this jar
jar-dependencies: a comma separated list of jar-id#jar-version tuples which
specifies the jars that this jar directly depends on
If all jars embedded this information, then we just compute the set of dependencies needed by the application (root) jar, get those that we don't have, compute their dependencies, and repeat until we have all the jars.
As for the notion that open source's usefulness to opponents outweighs the advantages to users, that argument flies in the face of one of the most important principles in security: A secret that cannot be readily changed should be regarded as a vulnerability.
It isn't that secrets are never needed in security. It's that they are never desirable.
It's simply unrealistic to depend on secrecy for security in computer software.
The secret to strong security: less reliance on secrets.Go read the whole thing.