Interview with Ken de Camargo, Jr.

By: Clay Shannon

Abstract: Medical doctor and C++ programmer Ken de Camargo Jr. talks about Rio de Janeiro, his freeware utilities, probabilistic record linkage, squash, and Brazilian barbecue.

> Ken, as a resident of Rio de Janeiro, Brazil, you speak Portuguese

Ken, as a resident of Rio de Janeiro, Brazil, you speak Portuguese. Do you speak any other languages?

Yup. English (fluently), French (so-so) and Spanish (also so-so).

I recently read a description of Rio de Janeiro as being the loveliest port in the world with the ugliest city (this was a 19th century description). Is Rio still ugly, in your opinion?

I think no matter how hard we try to screw things up, it's still beautiful. :) Seriously, this area has been endowed with one of the most beatiful natural landscapes in the world, but centuries of human occupation haven't always respected it.

If Rio is not your home town, where did you move there from? Where else have you lived during your life?

It is my home town. I've lived here all of my life except for a one-year stay in Montréal, Québec, Canada.

Have you ever been to the USA? If so, contrast and compare the USA to Brazil.

I've been there only briefly, for a three-day seminar in NY (and then there are some people who say NY isn't even the US <g>), so I don't feel comfortable to do that comparison.


Having said that, however, in terms of a daily life I think most people would be rather surprised how life in a big city can be much similar to that in any other big city anywhere else in the world.

Yes, I lived in New York City (actually the borough of Brooklyn) for one year in the late '70s, and I consider New York City to be a foreign country.

What misconceptions do you find that foreigners have about Brazil?

It'd be easier to list what are not misconceptions... :) Don't even know where to start: we speak Portuguese, not Spanish; this is not a city in the middle of the jungle, with native huts and wild animals everywhere (yes, I get that a lot); we're not more concerned with or practicing sex than any other place in the world... As I said before, daily life can be much similar to any other big city (at least those I've been to).

What would surprise the average person the most about Brazil, if given the opportunity to live there for a year?

It's hard to tell. Probably that it is not that exotic as that hypothetic person might have imagined.

What did you use to create "Helper", your Help authoring utility?
(
http://planeta.terra.com.br/educacao/kencamargo/hlp_en.html)

C++ Builder, of course.

Tell us about your "Hello, World!" application. What exactly does it do, and what tool did you use to create it?
(
http://planeta.terra.com.br/educacao/kencamargo/hw_en.html)

It was also written in C++Builder, and *for* C++Builder programmers. It helps creating international versions of programs, by automating (to an extent) the process of replacing hard-coded strings with resource strings.

What about "File Catalog"? (
http://planeta.terra.com.br/educacao/kencamargo/fcat_en.html)

That started out as a plain C app. It was my first shot at Windows programming. I was trying to figure out the whole event-driven thing, and created that with BC++ 4.5. Then I rewrote it as a C++ app, and finally, when C++Builder came out, I rewrote it as a VCL app.

Your "Moonlight" application (
http://planeta.terra.com.br/educacao/kencamargo/lua_en.html) is "An implementation of the Lua programming language". What is LUA, and what exactly does "Moonlight" do?

Lua is a scripting programming language created by some colleagues from another university here from Rio (whom, before you ask, I've never met - remember, it's a *big* town <g>). More details can be found at
http://www.lua.org Moonlight is an IDE of sorts, that includes a syntax-coloured editor, an interpreter with debugger, full context-sensitive help and extensions for dealing with dbf files.

What is "Eureka" (
http://planeta.terra.com.br/educacao/kencamargo/eureka_en.html)--besides the name of the town in which I grew up in Northern California?

Eureka is what Archimedes supposedly screamed while running around naked. :)
No, seriously, it is a sort of scrapbook with a hierarchical tree structure, where you can put text and images and organize them in snippets. Behind the scenes everything is stored in a dbf file.

Is it true that you are a medical doctor?

Indeed. Although I've been away from medical practice since 1995. I worked a couple years as a general clinician. Then for ten years I worked at the Medical Psychology unit of a large hospital, while working as a psychotherapist in private practice, before I became a tenured professor in public health at the Instituto de Medicina Social, from Rio de Janeiro State University.
http://www.ims.uerj.br I also have Residency, Masters and PhD in Public Health, and that's what landed me in the current job, where I mostly teach (undergrad and postgrad) and do research.

If so, what place does programming have in your profession as a doctor? Is it a hobby, a sideline, or do you use it in your practice?

I use it a lot for my researching activities. The two most important utilities I've developed are specifically designed for use in my area of research. Areas, actually (not just one thing). More on that later.

I see you quite often on the newsgroups. Do you participate in these in your off hours, or also while at the office?

You have to understand that my office is not a medical office, but even then it's always busy, I can hardly do anything while I'm there, so usually I participate in off hours. But since I have a *very* flexible schedule, that can mean almost any time. <g>

How did you get started in programming?

Back while I was still a resident in Public Health, we were at one point in charge of managing a health care unit (where we also worked as physicians). We needed to get information on the sort of patients that were coming to us. I tried at first using the programs that were available in an Apple II clone we had at our institution, but they weren't (or didn't seem to me at the time) flexible enough for what I wanted.

Coincidentally, at the same time a cousin of mine had lent my father a computer (he was expecting to sell it) which dad was using to play chess. It was a Sinclair clone, 16 kb memory, used a TV set as a monitor and a cassette recorder for memory storage. And it had a Basic interpreter, which I learned to program from reading the manual (that must have been one of the rare times I actually did that <g>).

I created a small data management program, and the rest is history... :)

I am basically self-taught, with the exception of a one-year course in systems analysis I took in 1988 while I was working in the planning and management staff of the University hospital.

How many years have you been programming?

Almost 20 years.

What tool[s] did you use prior to C++ Builder?

Sinclair Basic (yuch), Mix C for CP/M, Mix C for DOS and Borland's C++ 4.5 and 5.

What programming languages do you know besides C++ Builder? Which ones do you currently utilize?

Besides Basic and C, I also learned Cobol (double yuch) and Mumps. I also know a bit about Lua.

I hardly ever do anything but C++ these days.

Would you recommend a career in medicine to young people today?

Trick question! :) Honestly, I can't give a blanket reply to that. I think it depends a lot on what are their motives, and on which country they live. Here, for instance, earnings for doctors are far less than those in the USA.

Would you recommend a career in programming to young people today?

See above. <g>

If so, what courses would you recommend they take? What languages/technologies should they key on?

I'm not the best person to ask that, being largely self-taught in that area. Again, I think that this depends a lot on what they want to do in the future.

I also think, however, that given the great instability that the world economy goes through, and the fact that technology can take surprising turns, I think that the key attribute today is being multi-talented, being capable to learn new things and having both the curiosity and discipline to do that.

Which software project/product that you have participated in are you most proud of?

The two apps used in research I mentioned before. They are both being used in fairly wide circles here in Brazil, and helping a number of researchers to do their jobs. Since they are all freeware, as everything I write, I can't expect better payment than that. :)

One is an utility for joining tables that do not share a common unique key, using a method called probabilistic record linkage (that's a project I work on with my wife, who is also a PhD in public health); the other is a data management tool for working with textual databases, for aiding in the use of qualitative methods of text analysis.

What software project[s] are you currently working on?

Those two. We're always adding some requested features and ironing out the unwanted ones. (bugs? what bugs? <g>)

If you had a webcam on your shoulder throughout a "typical" workday, can you give us an outline of what we would see (excluding episodes devoted to "personal hygiene" and the like, of course)?

You got me worried for a second there. :)

I usually wake up very early, take my daughter to school (she starts classes very early, at 7 AM), return home, check my e-mail, some news on the internet, read some of the things in the newsgroups, take a shower and head to work. I live close to the university, and it's a 15 min walk to my office there. At work the routine varies widely, according to time of the year and a number of other things (see below). In the afternoon I return home, and usually get back to the computer, at which point I'm at the same time writing some paper, doing a number of things on the internet (surfing, seeking academic papers, reading and writing in the newsgroups, etc.), and at times writing some code. I eventually get hungry, have dinner, watch TV, talk to wife and kid, pat the dog, go to sleep.

Boring, eh? <g>

If there is no such thing as a "typical" day for you, how about just choosing a recent day that's not too out-of-the-ordinary and giving us the rundown of what happened, when, where (also perhaps how and why?).

I usually have at least one class per day, meetings with my grad students for discussing their work, a number of administrative meetings (I am also chairman of my department, unfortunately) during the week, some field research (interviewing people or observing their daily work)... I also have to attend a number of symposia and congresses, occasionally people invite me for lecturing, and I participate a lot in examination committees of masters theses and doctoral dissertations. Since I work in an interdisciplinary field, people call me a lot for those.

What do you do when you're not involved with work, directly or tangentially? (Hobbies? Sports?)

I play some squash, sometimes. I like going to the movies and we usually go to a club on the weekends for swimming, sauna, chatting with friends. I read a lot - mainly science fiction.

What was the funniest experience you've ever had related to medicine?

The one that jumps to my mind was one of the first patients I attempted to get a medical history, while still a student, and he kept repeating the same sentence ("I am taking too little medication, and not too often"), and I became increasingly frustrated up to the point I gave up and cheated - looked at his chart. There it was written, in large letters: "patient is mentally handicapped".

What was the funniest experience you've ever had related to programming?

The most recurring are idiotic bugs that keep me awake through the night until I give up, and it's the first thing I notice on the next day. As Homer Simpson puts it, "Doh!".

What was the most interesting experience you've ever had related to medicine?

I can't single out one... I guess the most challenging and rewarding was helping a former patient of mine to deal with his final days. It was very saddening on one hand (to make a long story short, he was a former psychiatric patient who had recovered marvelously and was going on with his life, that became seriously ill and asked me to help him with the whole thing), but I did feel I made a difference.

At one point, he was telling me how hard it felt when everyone around him, trying to offer him some comfort, kept saying that things would get better, that he'd get over it - and he was a smart guy, he knew that wasn't true. At that point I said "I can understand that, after all you do have a very serious health problem", and then he started crying. I though to myself that I had screwed it for good, but to my surprise he turned to me and said: "Thank you. You are the first person that allows me to admit that".

It turns out that in trying to help, everyone was actually making things worse, by making him feel as if they couldn't bear hearing about how bad he was. In me he found someone to whom he could actually complain without being dismissed, and that was what he needed at that point. He died in a couple of months, surrounded by his family and friends. I went to his funeral, and his whole family came to thank me.

Recalling this still brings tears to my eyes (honestly), but I think this was one of the most fundamental experiences I had as a human being, not to mention professionally.

What was the most interesting experience you've ever had related to programming?

I usually find it very rewarding when I see people using something I wrote for their daily tasks. As I wrote before, that's is very gratifying. As a general rule, I find an enormous pleasure in programming, it's an intellectual challenge and at the same time a tool for doing useful things.

What was the most frustrating experience you've ever had related to medicine?

Medicine is an exercise in frustration... :) I had a number of patients in private practice that simply kept repeating over and over the same relationship patterns, hurting themselves and others in the process, and actually being able to see it ex-post facto, but never changing... that's incredibly frustrating, believe me.

What was the most frustrating experience you've ever had related to programming?

Making the transition from character-mode, sequential programming to graphics event-driven. Although that actually paid out in the end.

What 3rd party tools do you find essential?

Helper. :) I use Inno-Setup for creating installation programs and CS-RCS for versioning. I also use a number of 3rd party libraries and components sets. Among those I'd point out to Topaz, from Software Science (
http://www.softwarescience.net/), a very good BDE replacement, with excellent support (hi, Alfred, hope you're reading this).

What do you hope to see from Borland in the future?

(I hope that doesn't get edited out) Technologically, I hope they keep delivering us more of the same. Borland tools rock, period. As a client, however, I wish they'd return to the old times, when we seemed to be more important to them, when even the little guy doing stuff on his own, like myself, meant a lot for the company.

I always purchased educational licenses here in Brazil (and once in Canada), and over the years that has become increasingly restrictive up to the point where now, as an individual, I simply can't do that.

I was told by Borland Brazil that those were orders from Borland US, but was never able to verify that.

And everytime I try to, people at first talk amicably to me but end up shutting virtual doors in my face. I feel a lot like Michael Moore in his documentaries at that point. <g>

What effect do you foresee C# and VisualStudio.NET having on Borland in general and Delphi in particular?

I think that whatever Microsoft comes up with Borland can improve on and write better programming tools. But I can't even guess in terms of market acceptance what this will mean.

How many hours per day do you spend programming/at the computer?

Varies a lot according to my other activities. Anything from none to twelve.

How much time do you spend on the newsgroups/surfing the web each day?

Also varies a lot. At least one hour/day, I'd say.

Which programming web sites do you have bookmarked?

A lot... :) Torry's, Borland's, a number of SourceForge projects...

How do you keep current with your programming skills?

I try to get a grasp of what's going on the tech newsgroups (usually googling them when I have a doubt), and reading books.

Who do you consider to be the best programmer you know personally, or know of?

Personally I have a friend (classmate from junior high) who's a programming genius. He was hired by an American company to help port and develop their product here in Brazil. That I know of, that would be hard to tell. Maybe Plauger, Kernighan or Knuth.

What is your "claim to fame" outside the realms of medicine and programming?

That I have fathered the most amazing little lady the world knows. <g> (actually not so little anymore, she's 15 now)

If you could live anywhere on earth at any time, when and where would it be, and why?

That'd be Montréal. I love it. It is a cosmopolitan town sans the violence they usually have, with an excellent public transportation system and wonderful quality of life. Although in all honesty the weather is not quite as good. :)

If you were given 30 seconds of free television air time, to be broadcast all throughout the earth, and could say anything you wanted, what would it be?

Burma! (sorry, I panicked)

Beats me. There is a lot I'd like to say, but I don't think any of it would fit in 30 secs.

What is you favorite programming book?

I'd say the C++Builder How-To. It was the first hands-on book written for C++Builder, and still very useful although it was originally written for version 1 and hasn't been updated since. The new C++ Dev Guide also ranks high IMHO.

What is you favorite non-programming book?

Just one? That's tough... Let me at least pick one fictional and a non-fictional, OK?
Fiction: Neuromancer, by William Gibson. Non-fiction: Genesis and development of a scientific fact, by Ludwik Fleck

What is you favorite food?

Plenty. :) Barbecue, perhaps (as we do it here).

So how is barbecue different there?

There's a traditional way of doing barbecue in Southern Brazil (shared with other countries of the Mercosur area, notably Argentina and Uruguay), which is to let huge chunks of red meat (and sausages, at most) cook over cinders with just salt as dressing, and serving it rare. You slice the outermost parts of the meat, and then return to the grill. Originally there were no grills, just holes in the ground filled with charcoal.

This sort of tradition led to the barbecue house restaurants, where you eat as much as you can for a fixed price (drinks not included).

What is you favorite beverage?

Diet coke. Yes, really.

What is you favorite color?

You mean colour, right? <g> Blue.

No, I'm a dyed-in-the-wool American, and I don't like to waste vowels pointlessly like those letter-squandering Brits. Color it is and color it shall remain. ;-)

What is you favorite movie?

Tough, again. In SciFi, I oscillate between 2001 and Blade Runner. In comedy, I have a large list. Almost everything that Jacques Tati did, Stanley Kramer's "It's a Mad, Mad, Mad, Mad World" and everything the Pythons did.

What is you favorite song?

Even tougher! Among the classics, Beethoven's 9th (particularly the last movement) or Bach's Toccatta and Fugue in D minor. Otherwise, anything Beatles, most of U2...

What is you favorite musician or musical group?

Beatles 4 Ever!

What is your favorite line from "The Princess Bride" (unofficial movie of the Borland community)?

"I am Inigo Montoya..." and you know the rest. (I haven't actually seen the movie yet, just a small part of it)

("...you killed my father, prepare to die!").

Finally, the question I always like to ask: What would you rather eat: the fat from behind a caribou's eyeball, or a frosted poptart?

Can I have the bill, please?

This interview took place via email May 2003.

Clay Shannon is a Borland and PDA-certified Delphi 5 developer and the author of "Tomes of Delphi: Developer's Guide to Troubleshooting" (Wordware, 2001) as well as the novel he claims is the strangest one ever written, "the Wacky Misadventures of Warble McGorkle" (see Wacky Warble, etc. for more information on the 4 Novels application, which contains this and three other novels he has penned).

You can find out more about Clay at: http://hometown.aol.com/bclayshannon/myhomepage/index.html
You can look into Clay's shareware and determine his current availability at:
http://hometown.aol.com/bclayshannon/myhomepage/business.html
You can contact him at:
BClayShannon@aol.com


Server Response from: ETNASC01