<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>Serge&#039;s Technology View &#187; history</title>
	<atom:link href="http://blog.dragonsoft.us/tag/history/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dragonsoft.us</link>
	<description>Talk about Technologies, Software Architecture and Management</description>
	<lastBuildDate>Tue, 31 Jan 2012 01:43:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Remember the titans &#8211; 2</title>
		<link>http://blog.dragonsoft.us/2007/12/24/remember-the-titans-2/</link>
		<comments>http://blog.dragonsoft.us/2007/12/24/remember-the-titans-2/#comments</comments>
		<pubDate>Mon, 24 Dec 2007 20:39:11 +0000</pubDate>
		<dc:creator>Serguei Dosyukov</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[borland]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[history]]></category>
		<guid isPermaLink="false">http://blog.dragonsoft.us/2007/12/24/remember-the-titans-2</guid>
		<description><![CDATA[I was looking for information about Eli Boling and found no info about his whereabouts in regard to Remember the titans, but I have found interesting location on Borland Web-site by Danny Thorpe - this is not a blog, but something similar about &#8230; <a href="http://blog.dragonsoft.us/2007/12/24/remember-the-titans-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was looking for information about Eli Boling and found no info about his whereabouts in regard to <a href="http://blog.dragonsoft.us/2007/12/16/remember-the-titans">Remember the titans</a>, but I have found <a target="_blank" href="http://homepages.borland.com/dthorpe/products.html">interesting location on Borland Web-site by Danny Thorpe</a> - this is not a blog, but something similar about projects Danny has been working on during his presence at Borland. I am going to quote it here since I suspect it might disappear after information published <img src='http://blog.dragonsoft.us/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Last record is 2001 where page has been abandoned by the author.</p>
<blockquote><p>Danny Thorpe, Staff Engineer, Delphi R&amp;D, Borland Software Corporation  </p>
<p>These are the products and internal projects I&#8217;ve worked on over the past few years. Historical dates subject to change without notice.</p>
<p><strong>Delphi 6 &#8211; May 2001</strong><br />
Most D6 compiler and RTL enhancements were a result of the Kylix efforts. Fortunately, Windows doesn&#8217;t inflict PIC codegen on us, but D6 benefited from the new internal assembler, language and directive enhancements introduced in Kylix, and new platform neutrality functions and constants carried over from the Kylix RTL. Function overload resolution got a little bit smarter, so WideString and AnsiString parameters in different function overloads were no longer considered ambiguous.</p>
<p><span id="more-116"></span><strong>Kylix &#8211; January 2001</strong><br />
Kylix &#8211; the first component-based Rapid Application Development environment for the Linux operating system. It&#8217;s Delphi for Linux!</p>
<p>I was a founding member of the Kylix Project, with Chuck, Eli, and Allen.</p>
<p>In mid 1999 CEO Dale Fuller said &#8220;Take us to Linux&#8221; and away we went to grok this &#8220;new&#8221; platform called Linux, to chart its waters and bring the Delphi ship to its commercially virgin shores.</p>
<p>My involvement with the compiler prior to Kylix had mostly been ad-hoc spelunking to fix some particular bug or issue, or occasionally implement a new feature in a very well defined area. As the Kylix project progressed, I seemed to collect compiler responsibilities like a snowball rolling down Everest.</p>
<p>Markus Armbruster, a classical Unix guru in every sense, kick started the project by passing on a lot of between-the-lines expertise to the team and implementing a prototype linker to emit Linux ELF executables. Markus also designed and implemented resource linking for Linux ELF executables. (There is no standard defined for embedding replaceable resources in Linux. For Kylix, we wanted a single exe solution for simple application deployment. That meant inventing a way to use standard ELF file sections to store resource data, and in a way that the data could be removed and replaced without needing to relink the program.)</p>
<p>Eli Boling was the technical lead for the Kylix compiler stuff, even though he was fully tasked working on another Borland project at the time. Eli implemented Kylix&#8217;s IP relative exception info from scratch (there is no language independent exception handling standard in Linux as there is in Windows) and pulled me out of the drink on the many occasions I found myself in way over my head.</p>
<p>Chuck ported the compiler source to compile with Gnu (not as simple as it sounds) and architected a new inline assembler (CHASM) written in portable code. The old BASM inline assembler was monolithic assembler code with no hope of being ported or enhanced. I later fleshed out the rest of the x86 instruction set and addressing modes in CHASM and then (on a roll!) added Pentium III, Pentium 4, MMX and SIMD instruction support. (CHASM is that good). I took over the linker work from Markus and (eventually) implemented linker support for emitting ELF shared libraries and Delphi packages.</p>
<p>By the time the linker was fit enough to emit shared libraries, it was clear that the codegen still wasn&#8217;t right for PIC, so I went off to figure out a way to make the code generator understand GOT relative addressing. Which means, I had to go off and figure out what GOT relative addressing really meant, and follow that up with an expedition to figure out how the compiler represents addressing modes internally.</p>
<p>Many thanks to Tagawa-san who fixed the many &#8220;register pressure&#8221; side effects caused by PIC consuming one of the precious x86 general registers. PIC (Position Independent Code) is really designed for IP relative addressing (referring to a code address as a distance relative to the current instruction pointer), but the Intel x86 instruction set doesn&#8217;t provide IP relative addressing modes. There were days when I could have sworn the designers of ELF&#8217;s PIC standard must have had &#8216;make Intel look bad&#8217; as one of their design objectives.</p>
<p>Allen kept me well fed with PIC and ELF related linker issues as a result of his work to get the IDE to load packages dynamically (and survive). I think Allen ended up spending more time debugging the Linux program loader (and implementing fixes submitted to the Linux source maintainers) than debugging the IDE! While the ELF spec was designed to support dynamic loading of shared libraries, the Linux program loader (ld) had a number of issues prior to the glib 3.0 release, particularly in the area of recursive loading at program startup. Doing anything at program startup is difficult in C code, so that area of the loader simply wasn&#8217;t well exercised by traditional C programs in Linux. &#8220;Clearing out the cobwebs&#8221; was a popular curse muttered by the Kylix team.</p>
<p>In the middle of all that, I also ported the Delphi Runtime Library (RTL) to the Linux environment, using glibc as much as possible (no direct kernel calls).</p>
<p>As the Kylix Project dragged on, observers would occasionally express concern at the inordinant amount of time Kylix seemed to be taking. &#8220;Delphi releases only take a year or so to crank out. Why is Kylix taking so much longer?&#8221;</p>
<p>One word: Infrastructure. To implement the full Delphi development experience in Linux, we had to implement more than just the development tool itself &#8211; we had to implement infrastructure that we took for granted on Windows which wasn&#8217;t provided by Linux. Embedded, replacable resources. Exception propogation between modules. Nonambiguous external function references.</p>
<p>It&#8217;s a credit to Linux&#8217;s flexibility and openness that we were able to do all this, to implement the infrastructure that the Delphi development environment needed as a base, and to do it on Linux terms using Linux standard APIs and file formats.</p>
<p>If there&#8217;s something you can&#8217;t get from the Windows program loader, you give up and look for something else to do. If there&#8217;s something you can&#8217;t get from the Linux program loader, you complain about it bitterly on several public forums, then you go off and figure out either how to make the loader give you what you want, or learn from the loader sources how to get the information you need through other means.</p>
<p>The Linux community can be myopic and vicious, but the Linux platform is still pretty cool despite their best efforts.</p>
<p>Title upgrade to Staff Engineer. Twice the product in half the time. Whee.<br />
Stone Hammers<br />
Our task was to create the Delphi RAD development experience on the Linux platform. That meant using the traditional Linux development tools (gcc and gdb) to construct a subset of the Delphi tools, then use that subset to construct a larger subset, and so forth until the full development toolset of syntax highlighting code editor, GUI form designer and GUI debugger was up to Delphi customer expectations.</p>
<p>If you&#8217;ve ever used a GUI debugger to surf around inside a running program, switching to Linux&#8217;s command-line text debugger, gdb, is quite a culture shock.</p>
<p>On one particularly frustrating &#8220;bad Linux&#8221; day, Dale Fuller popped his head into my office and gave a cheery &#8220;How&#8217;s my Kylix doing?&#8221;</p>
<p>I spun around and vented: &#8220;This is going to take forever. It&#8217;s like building the Concorde with stone hammers!&#8221;</p>
<p><strong>Delphi 5 &#8211; August 1999</strong><br />
Threading work in RTL and VCL: threadsafe strings, threadsafe VCL component streaming, better support for multiprocessor threading. IDE form designer: enable &amp; support Eddie Churchill&#8217;s work for the new treeview/diagram view data module designer. Miscellaneous work spelunking around inside the compiler. Umm, what else? I can&#8217;t remember.</p>
<p><strong>Delphi 4 &#8211; July 1998</strong><br />
Senior R&amp;D Engineer. Implemented DBGrid support for new ADT database fields. ADT support driven by new Oracle 8 server release. ADT support also added to Midas and ClientDatasets. Delphi 4 provided better support for Oracle 8 ADTs than any other development tool for Windows&#8230; including Oracle&#8217;s own tools!</p>
<p><strong>Delphi J-code &#8211; Fall 1997</strong><br />
This was a research project to explore the feasibility of compiling Delphi source code into a different machine code format &#8211; Java byte code. This was not about translating Delphi source to Java source, but about viewing the Java realm as two distinct entities: the Java source code language, and the Java Virtual Machine. Delphi J-code was going for the machine, not the language. Much later, Microsoft&#8217;s J++ would do exactly the opposite: J++ went after Java the language, ignoring or undermining the Java Virtual Machine.</p>
<p>I worked on implementing the core RTL (System.pas and SysUtils.pas), compiler &#8220;magic&#8221; functions, and compiler-RTL glue code. Oh ya, and a Java implementation of the Win32 variant semantics. Yowza.</p>
<p>This research project was demonstrated at a technology briefing at BorCon98. From the feedback at that conference, it became clear that expectations for the product concept ran much higher than we could afford to invest in the project. The market wanted more than just a command line Delphi compiler that emitted Java byte code. The project was shelved in favor of devoting R&amp;D resources into more promising and lucrative endeavors.</p>
<p><strong>Delphi 3 &#8211; May 1997</strong><br />
Right after Delphi 2 shipped, while the development team was out on vacation, I discovered Win32&#8242;s DIBSection architecture, and reimplemented TBitmap to use DIBSections instead of device bitmaps. This move was not without costs, but this put to rest once and for all the nasty problem of bitmap images changing format across read-modify-write cycles. Device bitmaps are always in the pixel format of the current video mode. If you load a 24 bit BMP file on a machine running 8 bits per pixel (256 color) video, modify the bitmap, and then write it back to the BMP file, the output will be 8 bits per pixel with significant color loss compared to the original. DIBSections allow you to operate on bitmap data independently of the current video mode pixel format.</p>
<p>There. I&#8217;m off my Delphi 3 soapbox now. Oh ya, we also implemented support for creating ActiveX controls in Delphi 3. &lt;shudder&gt;</p>
<p><strong>Delphi 2 &#8211; March 1996</strong><br />
After 5 years of developing new ways to break the product, I changed jobs from Senior Quality Assurance (QA) engineer to R&amp;D Engineer in late 1995. First tasks: port Graphics, Grids and DBGrids to Win32.</p>
<p><strong>Delphi 1 &#8211; February 14, 1995</strong><br />
Senior QA Engineer. Wrote language and RTL test suites for new Delphi language syntax, exceptions, classes, long strings, etc. Ported Zombie architecture to Win32 using OLE Automation for interprocess marshalling and application probing, in preparation for Delphi 2</p>
<p><strong>Zombie &#8211; circa 1994</strong><br />
Designed (with Ramin Halviati) and implemented the (patented) &#8220;Zombie&#8221; internal testing architecture.</p>
<p><strong>FullTilt! Pinball &#8211; August &#8211; September 1994</strong><br />
Moonlighting as a contractor for Cinematronics, I designed and implemented the pinball game&#8217;s component model and collision physics with Dave Stafford and Mike Sandige. Cinematronics licensed an early version of the pinball engine to Microsoft for the Win95 Plus! Pack&#8217;s &#8220;Space Cadet&#8221; pinball game. Cinematronics was later acquired by Maxis, who published FullTilt! Pinball in 1996 and a sequel in 1998.</p>
<p>The pinball object model and collision physics code were originally implemented in Delphi. (yes, pre-Delphi 1.0) When Microsoft got the hots to license the game engine for the Win95 Plus! Pack, I had little choice but to translate the Delphi code to C/C++ before turning the source code over to them. I don&#8217;t know when Microsoft became aware of the Delphi project at Borland, but I certainly wasn&#8217;t going to hand it to them on a silver platter.</p>
<p>Considering the great span of time between the principal coding and the retail release, I don&#8217;t know how much of my original code survives in the retail release of FullTilt! Pinball. Cinematronics paid me for my time, but that wasn&#8217;t really why I opted to work a month&#8217;s worth of 9pm to 3am nights, after my 10am to 7pm Borland days. I learned a great deal of codesmithing and performance wisdom from Dave and Mike, and took great delight in inflicting OOP and Windowsisms on poor Mike. ;&gt; It wasn&#8217;t a job &#8211; it was an adventure!</p>
<p><strong>BTSLite &#8211; Fall 1993</strong><br />
Designed and implemented, with Mark Edington, the first Delphi VCL production application and the first Delphi database application: BTSLite. UI prototyping started on an informal basis late October 1993, using a Paradox Engine based database layer that Mark Edington was writing. BTSLite went online six weeks later in early December, 1993. Note that this was six months before the Delphi product had a database architecture! BTSLite was later converted over to using the Delphi database classes and BDE to further test the database architecture prior to Delphi 1.0 release.</p>
<p>After a trial period of a few weeks, the Delphi development team adopted BTSLite as its defacto bug tracking system. Within 18 months, most other development groups within Borland had adopted BTSLite. BTS has been through many revisions since those early days: transformation into a Delphi Midas thin-client app running against a Delphi Midas server with an Interbase SQL back-end by Josh Dahlby, WebBTS client and middle tier server work by Steve Trefethen. Steve also implemented a dynamically loadable package system for BTS (with some design input from me), so that BTS users can load only the functionality they use (engineers typically eject the reporting and project charting modules). BTS is still the most widely used bug tracking system within Borland.</p>
<p>Why was it called BTS&#8221;Lite?&#8221; The first implementation of a Windows GUI bug tracking system (BTS) was built by Mark using Paradox for Windows. The objective was to implement the feature set and responsiveness of the old Paradox Dos BTS application (also written by Mark). The performance of the PdoxWin BTS on queries and even UI refresh was, um, &#8220;suboptimal&#8221;, to the extreme that Delphi R&amp;D just plain refused to use it. The Delphi BTS app implemented a subset of the functionality of the PdoxWin version, and ran what seemed like 100 times faster than the Paradox implementation. The Paradox for Windows team believed the bottleneck was down inside the BDE somewhere. Delphi demonstrated that BDE wasn&#8217;t the bottleneck. BTSLite got the &#8220;lite&#8221; label because it was a functional subset of the original BTS, and also faster. After deployment of BTSLite, the Paradox for Windows BTS system was fondly referred to as &#8220;BTSHeavy&#8221;.</p>
<p><strong>Turbo Pascal for Windows 1.5 &#8211; Spring 1993</strong><br />
Point release of TPW to synchronize with the release of Windows 3.1</p>
<p><strong>Borland Pascal 7.0 &#8211; November 1992</strong><br />
BP7 was the pinnacle of Dos development tools. Everyone on the Pascal development team was intensely proud of the BP7 release, for its unprecedented feature set, quality level, and completeness as a development environment. Though never spoken, I think everyone on the team realized that this would be the last release of the Dos tools line. Dos was out, Windows was in. If there had to be a conclusion to the long history of Turbo Pascal products for Dos development, BP7 was the ideal grand finale. Salut!</p>
<p><strong>Turbo Pascal for Windows &#8211; Fall 1991(?)</strong><br />
Turbo Pascal&#8217;s first major paradigm shift. Painful lessons learned in the development of OWL and the TPW IDE would shape the design of the future Delphi project.</p>
<p><strong>Turbo Pascal 6.0 &#8211; November 1990<br />
</strong>My first Borland product. Hired straight out of college by Pascal QA manager Eberhard Waiblinger, Borland dunked me head first into the school of total immersion OOP, Software Quality Assessment / Quality Assurance, risk metrics, and commercial software development processes.</p>
<p>How confident and ready-for-anything I must have seemed at the job interview (In my dressed-to-kill new suit. Thanks, Mom!). After all, I had been programming professionally for five years for a state agency while in high school and college! In only a matter of weeks I would discover just how vast my ignorance could be. &#8220;Great googleymoogley, these guys are the pros! There&#8217;s Anders somethingberg, who builds compilers with his bare hands! And Chuck somethingski, who juggles objects and polymorphs like an air traffic controller!&#8221;</p>
<p>The fun part about programming, and working at Borland, is that you never really shake that feeling of virtual vertigo. The more you learn, the more you discover you don&#8217;t know.</p></blockquote>
<hr/><span style="font-size: 7pt">Copyright &copy; 2012 <strong><a href="http://blog.dragonsoft.us">Serge&#039;s Technology View</a></strong>. This Feed is for personal non-commercial use only.</span>]]></content:encoded>
			<wfw:commentRss>http://blog.dragonsoft.us/2007/12/24/remember-the-titans-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remember the titans</title>
		<link>http://blog.dragonsoft.us/2007/12/16/remember-the-titans/</link>
		<comments>http://blog.dragonsoft.us/2007/12/16/remember-the-titans/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 02:42:44 +0000</pubDate>
		<dc:creator>Serguei Dosyukov</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[borland]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[history]]></category>
		<guid isPermaLink="false">http://blog.dragonsoft.us/2007/12/16/remember-the-titans/</guid>
		<description><![CDATA[Well&#8230; it is not about the movie. Nice movie though&#8230; Doing some research about Delphi you probably will immediately notice a page on wikipedia and off course there are a few well known names here. Everybody knows about Anders Hejlsberg, but &#8230; <a href="http://blog.dragonsoft.us/2007/12/16/remember-the-titans/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well&#8230; it is not about the movie. Nice movie though&#8230;</p>
<p>Doing some research about Delphi you probably will immediately notice a <a href="http://en.wikipedia.org/wiki/Borland_Delphi">page on wikipedia</a> and off course there are a few well known names here. Everybody knows about <a title="Anders Hejlsberg" href="http://en.wikipedia.org/wiki/Anders_Hejlsberg">Anders Hejlsberg</a>, but let&#8217;s see what other ex-titans of Delphi world are doing these days &#8211; as it turned out <a title="Danny Thorpe" href="http://dannythorpe.com/">Danny Thorpe</a> after being at Google and Microsoft for some time finally settled at not that well known place called <a href="http://www.cooliris.com/" target="_blank">CoolIris</a>. As it was indicated in his last entry in his <a href="http://blogs.msdn.com/dthorpe/archive/2006/04/14/576171.aspx" target="_blank">MS blog</a>, there are places better then Google, MS and Borland after all&#8230; You can read about his new adventures in his <a href="http://dannythorpe.com/" target="_blank">blog</a>.</p>
<p>Spirit of innovation always been something growing inside Borland and now CodeGear, but after some time it seems to outgrowing a mothership&#8217;s corridors and offices and tend to find bigger more innovative places. It is a natural process, but it is sad to see it to happen, thinking how much more those people could do if they are to stay.<br />
In order of departure:</p>
<p><a href="http://en.wikipedia.org/wiki/Philippe_Kahn" target="_blank">Phillippe Kahn</a> &#8211; <a href="http://www.fullpower.com/" target="_blank">FullPower Inc</a></p>
<blockquote><p>When someone is talking about Pascal, his name is one of first come to mind.</p></blockquote>
<p>Anders Hejlsberg &#8211; Microsoft</p>
<blockquote><p>I think the only person who do not blog from this list, but there are plenty of <a href="http://en.wikipedia.org/wiki/Anders_Hejlsberg#Interviews" target="_blank">interviews </a>with him.</p></blockquote>
<p><a href="http://www.removingalldoubt.com/" target="_blank">Chuck Jazdzewski</a> &#8211; Microsoft</p>
<blockquote><p>CJ: &#8220;Yes, I work at Microsoft. Yes, I believe it is a great company and is a fabulous place to work at. No, I don&#8217;t think that everything that Microsoft does and produces is wonderful and perfect. I believe that everyone is entitled to their opinion, as am I.&#8221;<br />
Steve mentioned one particular blog entry - <a href="http://www.removingalldoubt.com/PermaLink.aspx/a32977e2-cb7d-42ea-9d25-5e539423affd" target="_blank">Fatherly Advice To New Programmers</a> - bad title, good reading.</p></blockquote>
<p><a href="http://dannythorpe.com/" target="_blank">Danny Thorpe</a>- CoolIris</p>
<blockquote><p>DT: &#8220;As a junior engineer at Borland, I was witness to the creation of Delphi. Over the years I contributed to the development of Delphi’s run-time library, VCL component library, IDE, compiler and language on Windows, Linux and .NET platforms. I’ve had the enormous pleasure of working closely with Anders Hejlsberg, Chuck Jazdzewski, Eli Boling, and many other software wizards in Borland’s heyday.&#8221;</p></blockquote>
<p><a href="http://www.corbinstreehouse.com/" target="_blank"><span style="color: #3848a8;">Corbin Dunn</span></a> (somewhat outdated), but <a href="http://www.corbinstreehouse.com/blog/" target="_blank">blog</a>is active &#8211; having fun at Apple working on the AppKit</p>
<blockquote><p>At least this is where I saw his name mentioned recently, not much in his blog though.</p></blockquote>
<p><a href="http://www.stevetrefethen.com/blog/" target="_blank">Steve Trefethen</a>- Falafel Software</p>
<p>Any other name worth mentioned? Comment on this post&#8230;</p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2012 <strong><a href="http://blog.dragonsoft.us">Serge&#039;s Technology View</a></strong>. This Feed is for personal non-commercial use only.</span>]]></content:encoded>
			<wfw:commentRss>http://blog.dragonsoft.us/2007/12/16/remember-the-titans/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

