Skip to main content

A Handwritten Message or Why It Paid to Write a Book (and homage to Richard Bolz)

A month ago, Miguel ordered a signed copy of my book from my website. So I wrote him a message, signed it, and shipped it off.

I soon after received the following handwritten letter:

Dear Steven,

I spent last week on vacation, and right before leaving, I put in an order for the newest "Oracle PL/SQL Programming" book. I was happy to get back home and find the book package on the front porch. Yeah!!!!!

When I opened the book I noticed your handwritten note on tyne first page and I felt very special. Not even my mother sends me handwritten messages anymore --- your message made me feel special, and I am still happy to this day when I think of it.

Thanks for the message and for sharing your knowledge and experience with us. Your enthusiasm, views, attitude and energy makes me think about the most important mission every software developer has - do what is right, with responsibility, quality and respect to others.

When I moved to the United States in February 1999, I was lucky enough to join a team that was taught PL/SQL by Richard Bolz. His teachings, not only the language, but life in general, made me think differently, and pushed me to design and implement solutions that I as and am still proud of.

Because of Richard Bolz, I started studying PL/SQL, read, studied and practiced with your book, attended a few seminars where you were the presenter and had the opportunity to meet you in person.

So it is my turn now to write you a message - a handwritten one - to say thanks for impacting and changing my life through PL/SQl. I have been living in Indianapolis, Indiana, for the past 15 years, and have been successful doing consulting work for clients, using PL/SQL, Oracle Forms, Oracle Reports, and sometimes supporting Oracle Enterprise Business Suite Solutions, thanks to the Knowledge tI have acquired ion PL/SQL.

Thanks for everything you do for PL/SQL developers!

You are most welcome, Miguel, and I am honored that my message meant something to you.

Now, as for the sub-title for my post: Why it paid to write a book.

I have been paid big time for writing Oracle PL/SQL Programming (1st edition 1994, now in its 6th edition) and (a few too many) other books. Now, certainly, I mean - in part -  that I have received a decent amount of money from royalties on sales of those books. But the real payoff for my writing comes when I hear about how my work has improved another person's life.

For one thing, that probably means that I have indirectly help bring more happiness and health to lots of kids (children of my readers). I really like that idea. Beyond that, well, I don't know, call me un-American or old fashioned, but I don't think that corporations are people, too. I like helping people more than I like helping corporations.

But, don't worry, I'm OK with helping companies, too.

I also wanted to publish this letter so that more developers can be introduced to the name Richard Bolz.

I've known and worked with Richard for years, sadly (for us, not him) he's retired now. Richard was involved deeply with the Ada language. In fact, back in 1978, as Associate Professor of Computer Science at the Air Force Academy, Bolz taught the very first course on the Ada programming language. He also did a presentation on Ada to the folks at Oracle when they were deciding which programming language would serve as the model for PL/SQL. So it is likely that we can, at least in part, thank Richard for the wonderful decision to build PL/SQL based on Ada.

Richard was one of the finest trainers I have ever met. The level of professionalism he brought to both his training materials and his presentation of them shamed me with their quality and polish (I hate to prepare. There, finally I've admitted it). He was totally devoted to his students and co-workers, which was reflected by their admiration for and loyalty to Richard. He received the ODTUG Best Speaker award in 2002 for his presentation titled "An Overview of PL/SQL".  

If any of my readers ran into Richard or was trained by him, I'd love to hear from you!



Comments

Popular posts from this blog

Why DBMS_OUTPUT.PUT_LINE should not be in your application code

A database developer recently came across my  Bulletproof PL/SQL  presentation, which includes this slide. That first item in the list caught his attention: Never put calls to DBMS_OUTPUT.PUT_LINE in your application code. So he sent me an email asking why I would say that. Well, I suppose that is the problem with publishing slide decks. All the explanatory verbiage is missing. I suppose maybe I should do a video. :-) But in the meantime, allow me to explain. First, what does DBMS_OUTPUT.PUT_LINE do? It writes text out to a buffer, and when your current PL/SQL block terminates, the buffer is displayed on your screen. [Note: there can be more to it than that. For example, you could in your own code call DBMS_OUTPUT.GET_LINE(S) to get the contents of the buffer and do something with it, but I will keep things simple right now.] Second, if I am telling you not to use this built-in, how could text from your program be displayed on your screen? Not without a lot o...

How to Pick the Limit for BULK COLLECT

This question rolled into my In Box today: In the case of using the LIMIT clause of BULK COLLECT, how do we decide what value to use for the limit? First I give the quick answer, then I provide support for that answer Quick Answer Start with 100. That's the default (and only) setting for cursor FOR loop optimizations. It offers a sweet spot of improved performance over row-by-row and not-too-much PGA memory consumption. Test to see if that's fast enough (likely will be for many cases). If not, try higher values until you reach the performance level you need - and you are not consuming too much PGA memory.  Don't hard-code the limit value: make it a parameter to your subprogram or a constant in a package specification. Don't put anything in the collection you don't need. [from Giulio Dottorini] Remember: each session that runs this code will use that amount of memory. Background When you use BULK COLLECT, you retrieve more than row with each fetch, ...

Table Functions, Part 1: Introduction and Exploration

Please do feel encouraged to read this and my other posts on table functions, but you will learn much more about table functions by taking my Get Started with PL/SQL Table Functions class at the Oracle Dev Gym. Videos, tutorials and quizzes - then print a certificate when you are done! Table functions - functions that can be called in the FROM clause of a query from inside the TABLE operator - are fascinating and incredibly helpful constructs. So I've decided to write a series of blog posts on them: how to build them, how to use them, issues you might run into. Of course, I am not the first to do so. I encourage to check out the  documentation , as well as excellent posts from Adrian Billington (search for "table functions") and Tim Hall . Adrian and Tim mostly focus on pipelined table functions, a specialized variant of table functions designed to improve performance and reduce PGA consumption. I will take a look at pipelined table functions in the latter part...