September 2003 Archives

Jonathan Gennick

AddThis Social Bookmark Button

I’ve just arrived home from the Software Development
Best Practices
conference in Boston. This is the first year I’ve been to
the east-coast show. I was looking forward to it, and wasn’t disappointed.

The venue

The venue was great. Boston’s Prudential
Center
is a big conglomeration of an upscale shopping mall, restaurants,
convention center, hotels, and office buildings. It’s quite an interesting place
to wander in. We don’t have much shopping where I live in northern Michigan,
so I took advantage of a few breaks in the action to buy a new watch for my
daughter, gifts for my son, and otherwise bring joy (er, money) to the mall
merchants. It was nice too, to find the Embedded
Systems Conference
just down the hall in the Hynes Convention Center.

Executable UML

Lately I’ve developed an interest in Model Driven Architecture (MDA) and the
whole idea of going from model to code, so I tried to attend as many MDA and
executable UML sessions as possible during my two days at the show. Marc Balcer
of ModelCompilers.com gave a good presentation
on Making UML Executable to a packed room on Wednesday morning. Paul
Dorsey followed up with Business Rule-Based System Development using the
UML
. I’m told Paul’s presentation was quite good, and I imagine it was,
because by the time I got there the room was full and his audience was overflowing
into the hallway. I didn’t have a prayer of getting in to hear Paul’s talk.
Thursday, however, I managed to get in to hear Paul Francis, from MDA tool vendor
Kennedy Carter, talk on The OMG Model Driver
Architecture and Executable UML
.

I’ve always had a tough time coming to grips with executable UML, because for
all the presentations I’ve seen, and articles I’ve read, I’d never, before this
conference, actually seen anyone sit down, create a model, compile it, and run
the resulting executable. So Wednesday I went looking for someone to show me
the goods. One of the presenters took me as far as generating XMI (XML Metadata
Interchange) from a model, but that wasn’t very satisfying. I wanted to see
some executable UML actually execute! Finally, I went next door to the Embedded
Systems conference, and made the rounds of the MDA vendors on the show floor.
Surprisingly, there were quite a few–apparently model-driven development is
used more in the embedded systems realm–and on my third try I managed to find
someone to show me "Hello World" done using UML. He did it by creating
one object, and then creating a state diagram for the object that triggered
execution of a C++ statement every second. The C++ statement he supplied wrote
"Hello World" to cout. I should have paid closer attention, but I’m
fairly certain I was at the I-Logix
booth, and that the tool being used was Rhapsody.

In model-driven development, the idea is to generate as much code as possible
from the UML model. For example, the bulk of the code for the class in the "Hello
World" program was generated by virtue of the fact that we added the visual
representation of a class to a class diagram. Likewise, the logic to control
the loop that displayed "Hello World" every second came largely from
the state diagram and the timeout event used to transition from one state to
the next. The only code we had to write in the traditional manner was the invocation
of cout as the action we wanted in response the timeout event. This brings up
an interesting issue, that of what language to use to describe an action.

If you’re going to have executable UML, you need some way to describe actions
that you want the developed system to perform. You also need building blocks,
small actions that you can combine to perform useful work. To this end, the
Object Management Group (OMG) has defined
a set of action semantics for UML. Don’t confuse action semantics with actual
syntax. The OMG has gone only so far as to define the functionality that a language
should enable, but so far the task of defining and implementing syntax has been
left up to the various tool vendors. There’s actually some controversy in that
some vendors buy into a UML-specific language that is translated to a deployment
language such as C++ or Java when a model is compiled. Other vendors, including
the one giving me the demo, take the approach of using the deployment language
(C++, Java, etc.) in the model. In the long-run, I think the idea of a UML-specific
action language will win out, that multiple vendors will implement different
syntax, resulting in different languages, but all in support of the defined
action semantics, and that tools will translate as needed from one vendor’s
language to another.

A Z80?

In the "I couldn’t resist a good deal" department, would you believe
I bought myself a Z80? Remember the Z80? It’s an 8-bit chip that many years
ago was used in some personal computers. Now, the Z80 is apparently widely used
in embedded systems. That vending machine you buy a Coke from, for example,
might be driven by a Z80. At the Embedded Systems conference, Zilog
had a great deal on eZ80Acclaim!
development kits
for only $99, which is half the normal price. I’ve no idea
yet what I’m going to do with this thing, but it just looked too interesting
to pass by.

Ken Pugh

Wednesday, I attended several sessions by Ken
Pugh
, who presented twice in one day, and then led a birds-of-a-feather
(BOF) session in the evening–wow! Ken is a really good presenter. He’ll keep
you awake and interested. In his session on Human Centric Development
Ken talked a bit about personality types, and brought up the issue of introverted
programmers versus pair-programming. Ken’s the first person I’ve seen to hit
that issue head-on, and he had a couple good suggestions, I thought, for approximating
pair-programming without actually programming in pairs. Ken is dead-on in addressing
the issue. Speaking for myself, I could never write code, nor could I write
books or magazine articles, with someone looking over my shoulder. Pair programming.
Bah!

Wednesday evening, Ken facilitated a session on problems with geographically
distributed teams. I work remotely as an O’Reilly editor, so I attended Ken’s
BOF session. Many issues were raised: poor-quality video conferencing, speaker
phones that don’t work well, cultural issues, language issues–one lady was
on team in which not all members share a common language–the importance of
meeting people in person at least once in awhile, feeling disconnected from
the water-cooler conversations at the office, problems coordinating geographically-separated
developers working on the same code, and more. I don’t recall that we solved
any problems, but it was quite a lively discussion.

And that’s it!

And that’s pretty much all I have to say about the Software Development Best
Practices conference. If you happen to do any work with eZ80Acclaim!, shoot
me an email
. I’d love to learn more about embedded systems and how they
are developed. I also wouldn’t mind hearing from people successfully doing model-driven
development using UML.

Jonathan Gennick

AddThis Social Bookmark Button

Wednesday, 12:00PM, San Francisco

It’s Wednesday morning, and this is the first dispatch I’ve had time to sit
down and write since my first
on Monday
.

Investing in our future: Accoss the aisle from the O’Reilly booth was
ThinkQuest, an organization funded
by the Oracle Foundation. ThinkQuest sponsers a nationwide web design competition
for students, and the
grand prize winners showed off their work at the show
. It’s heartening to
see young people at a conference like this. My congratulations to all that participated
in the contest. You can view the winning web sites on the winner’s
page
. The site I saw is the one on dairy farms. Actually it’s part of the
larger, The Inside
Scoop on Farms
site. It’s well done. Have a look, and be sure to check out
tipping cow cage on the page
about cows
.

Automatic space and memory management: Two new innovations in Oracle10g
are automatic space and memory management. You can now add storage to an Oracle
databases simply by adding a new disk to a pool managed by the database itself.
Data is striped across all disks, and when you add a new disk, the database
automatically moves data onto that disk to balance the I/O load. If you need
to remove a disk, you can have the database move data off it. The database can
also resize memory structures in the SGA automatically. I haven’t delved deeply
into these features yet. Indeed, I’ve had a tough time even getting close to
the right people! The campground booths demonstrating the features have been
crowded every time I walk by.

HTML DB: Another campground booth that’s been generally crowded is the
one demoing HTML DB. I’m very impressed with this product, and there’s obviously
lots of interest in it. Using a web interface, a reasonably sophisticated end
user can develop a database application. Anyone who can develop for Microsoft
Access should be able to develop in HTML DB, and believe me, I’d much rather
develop for a database like Oracle that can scale than for a database like Access. Years ago I had to integrate an Access application with Oracle, and it was a very painful project. Mostly I wanted to run away screaming. It’s good to see something like HTML DB that sophisticated end users can use instead of Access.

Optimizing Oracle Performance: Cary Millsap’s session this morning on
trace data was well-attended. Cary is the author of our just-released book on
Optimizing Oracle Performance.

That’s it for now. I’ll try to write more later.

Jonathan Gennick

AddThis Social Bookmark Button

Monday, 8:30AM, San Francisco

It’s Monday morning here in San Francisco, and I’m beginning my seventh OracleWorld
conference
. I’m presenting this year, for the first time, so if you’re here
attending the conference, please stop by and hear Peter Linsley and I talk about
regular expressions in Oracle. It’s session 40105, and it’s Tuesday at 5:00PM
in Moscone Room 123
. If you’re not at the show, you can read my
article
on Oracle’s new, regular expression features in Oracle Magazine.
For even more details on the topic, order Peter Linsley’s and my book, the Oracle
Regular Expression Pocket Reference
.

Attendence: I haven’t seen any official numbers yet, but my perception
is that attendence is low this year. Registration lines weren’t as long as in
years past, and there just did not seem to be very large numbers of people milling
about the convention center yesterday. I also note that the conference organizers
plan to close the show floor in mid-day for Larry’s keynote tomorrow. I’ve not
seen them close the expo area like that that before. Is low attendence leading
them to close the expo in order to pack in as many as possible for Larry’s talk?

Conference backpack: Every year I go to OracleWorld, and every year
I get some sort of backpack at registration packed full of show materials. Typically
these packs are designed in such a way that they are not useful beyond the few
days of the show. Not so this year. The backpack they gave me yesterday is hands-down
the best OracleWorld backpack I’ve ever received.

Monday, 1:30PM

Publishing Seminar: I spent the morning in a seminar put on for publishers
and authors that cover Oracle topics. Various Oracle executives talk to us about
their product lines, answer questions, describe what they see as important,
potential book topics, and so forth. Ken Jacobs kicked things off with a fascinating
historical perspective on Oracle. Ken’s been around since the days of Oracle2,
and early on was Oracle’s representative to the SQL standards committee. I didn’t
know this before today, but Ken was instrumental in creating the concept of
database roles (for security) and getting that concept into the ANSI standard.
So whenever you issue a CREATE ROLE statement, think of Ken.

The 2-Day DBA: Is two days enough to learn what it takes to manage a
small-to-medium size Oracle environment? Andy Mendelsohn suggests that it is,
and in fact Oracle is currently developing a "2-Day DBA" course. Given
some reasonable constraints on the size and complexity of the environment, and
especially factoring in all the new, ease-of-use features, I can see where it
might be possible to put forth a methodology for managing a database that could
be learned in a few days. Take backup and recovery as an example. There’s plenty
of potential complexity there, but much of it you can choose to ignore. The
very first database I managed, we protected using cold backups, and it was a
development database, so we didn’t care about up-to-the-minute recovery. We
had one recovery plan: if we lost anything, we restored the files from the previous
night’s backup and restarted the instance. Given that environment, I had no
need to learn about hot-backups, point-in-time recovery, or any other of the
many facets of backup and recovery; we just ignored all that complexity. (Later,
for other projects, I did learn more) For those here at the conference, Ken
Jacobs will be talking more about the new, "2-Day DBA" program in
his Wednesday
keynote
.

Interesting Oracle books: Sam Alapati came up and introduced himself
to me this morning. His book, Expert
Oracle9i Database Administration
, was recently published by Apress. Sam’s
a genuinely nice guy, and his book is a real labor of love. It’s getting some
good reviews too. Sam’s book covers not only Oracle per se, but also some of
the Unix skills you need as a DBA. I might just pick up a copy myself. I also
ran into Kirtikumar Deshpande, who tells me that his next book, Oracle Wait
Interface: A Guide to Advanced Performance Diagnostic & Troubleshooting
Techniques for Oracle
(wow! long title) will be available, I think it was,
late this year. I have a lot of respect for Kirti’s knowledge in the area of
performance.

That’s it for now. I’m off to check on our booth, to make sure it’s all set
up and ready to go for this evening. Check back on this page later, because
I’ll write more later.

Advertisement