<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>Spotlight: On Developers and Technology</h2>
<p><i>27 August 2001</i></p>

<br>
<h4>Spotlight 13: Scott Hutinger</h4>
<p>
Scott Hutinger is best known for his work in the <a href="http://porting.openoffice.org">Porting</a> project, but he is also probably familiar to readers of the <a href="//mail_list.html">discuss</a> forum for his his frequent contributions to the list. Scott's contributions, to Porting and to the general OpenOffice.org project, are enormous and important. I asked him to provide some insight into his work for OpenOffice.org, and into his interest in the project.  The below is a slightly edited version of his emailed response.</p>

<p>Skydiving is what spawned my interest in OpenOffice.org, at the beginning, when Sun announced they were going to release the source code.  I did some x86 window communication code to extract and set a skydiving device that gathered jump information.  I wanted an easy way of allowing a user like me the ease of using different platforms daily.  I should have known from working with Blackdown and the JDK, that porting tends to take up all the free time that could be spent really using what is ported.
</p>

<p>
Porting is really pretty simple, in most instances, but it takes a bit of time to figure out how to do it.  The first time a person tries to do a port, it's a bit overwhelming.  Once past that overwhelming feeling, it get's a lot easier.  I just want people to know that it's certainly easier to port [code someone else has written] than to write your own code.  A person can get in however deep they want, which isn't the case when writing your own code.  People just don't know what they are missing with this strange porting thing.  So come on all you people that haven't started, it's really easy!
</p>

<p>
My interest in the Mac OS X port began when the Lisa was released and I just happened to have access to all those cool toys Apple was starting to make.  The problem was, I was an assembly language person who thought high level languages were pretty lame.  Today my mind is 180 degree's different.  Thanks to the Mac, I started my first high level language with C, since it allowed me to still write half my code in assembler.  I hide this fact pretty well, so don't tell anyone. </p>


<p>
The Mac OS X port is really one of the most interesting ports.  It has a lot of code that needs to fit inside an OS that is a bit different than most.  Although I seem to make a lot of noise that doesn't make sense to some, it's about a passion for an OS and OpenOffice.org, not against people.  About 10 years ago at an Apple World Wide Developer conference, I told a friend of mine that the Mac should move over to Unix.  I tend to take strange views that are pretty strong.  Lucky for myself, someone else thinks a bit different that got this OS X thing a reality. </p>


<p>
I think once the OS X port starts moving, it's going to be a pretty fast port.  I know things are changing with OS X, which is about to become a lot more stable in all areas.  It's about prime time for take-off shortly.  Don't forget to fasten your seat belts, and anyone is allowed to board.
</p>
<br>
<p><a href="spotlightindex.html" target="_blank">Spotlight Index</a></p></body>
</html>

