History

Overview

In the beginning

My affair with computers started back in 1975, when I took a course in computer science. I was 16 and intrigued. In those days, in order to run a program, one had to go down to the basement in a university building, punch each code line on a separate card, wait in line with the carefully ordered packet of cards, and ultimately hand it over to the operator at the window who, in his own good time, fed it to a huge and noisy machine. The waiting went on, sometimes for hours, until finally the output came back - a continuous, neatly folded, wide paper. The printout usually started with a banner page displaying one's name in very big letters, followed by a page of cryptic job event notes, ending with a page notifying 'Error'.

A special pass drew me into the inner circle, as it granted me entry to the terminals lab. I was 17 and thrilled. I could try new ideas and see the results immediately, all printed in green capital letters on a gray 24x80 screen. I found an obscure document listing the terminal control codes, and discovered how to access other terminals in the room. At that age I could not resist the temptation: I would sometimes sit in the back row and send meticulously designed sequences to one of the other terminals just to see the guy sitting over there jump in surprise.

Career

Close...whole applications

A few examples:

  • A 3D modeler for architects which used a hidden line removal algorithm to make a wire frame view appear solid; this modeler could also calculate areas and volumes
  • Another 3D modeler written for what was at the time a new IBM graphic terminal able to fill polygons fast enough to show rotating solid objects in real time with simple shading
  • A mini relational database which featured an innovative plug-in architecture and was so versatile that it remained in service for nearly two decades
  • Graphical editors for VLSI design and for exploring mathematical properties of abstract graphs
  • A graphical editor for the knowledge base of a large expert system
  • Language translators for porting large systems from one prolog variant to another and from Pascal to C
  • An object oriented computer aided training authoring tool
  • An environment for the distributed compilation of a multi-platform application

Close...designed user interfaces

UI designs that span from the very limited IBM 3270 terminals with their text-only 80x24 dual-intensity green characters, through the older personal computers, like Apple II and the first DOS based PCs, to contemporary web and Windows based environments like MS-Windows and X11

Close...infrastructure libraries

A few examples:

  • A clib-like library written in IBM 370 assembly language to be used in Fortran applications
  • A library written in C++ to replace the non-portable and hard to use STL across a range of Unix and Windows variants
  • Libraries for portably accessing multimedia and operating system services
  • Communication protocol libraries

Close...communication protocols

One such protocol included a custom implementation of TCP over UDP to enable the creation of the BackWeb patented polite agent; another protocol allowed the remote execution of commands in a distributed compilation system involving Unix and DOS machines; yet another used TLI to connect the parts of a distributed database.

Close...object oriented databases

This object oriented database was created to be the backbone of a distributed backup system, using a subscribe/notify mechanism to implement an efficient blackboard architecture.

Close...miniature desktop animations

These animations were the innovative BackWeb infoflashes, inspired by Jim Henson's 6.5 second spot commercials and by Sergio Aragones' marginals in MAD magazine.
Shortly after the first BackWeb release, many amusing little programs appeared on the web using similar techniques.

Close...coded device drivers

One of which was a driver for an innovative voice/fax/data modem by National Semiconductor.

Close...compression algorithms

Mostly variants of LZW, which I used to reduce database size and communication times.

Close...hardware devices

Modems, terminals, switches, pointing devices, microphones, telephones, fax machines, cameras, cassette tape recorders, sensors...

Close...large distributed systems

A few examples:

  • BackWeb - A content management system that enables the distribution and management of messages and alerts to selected subsets of numerous end points
  • Proficiency - A complex environment for supporting collaboration among engineers using different CAD systems
  • Prosight - A portfolio management system for software development projects
  • Norton Enterprise Backup - A distributed backup system optimizing the use of resources in a heterogeneous network
  • Rosh Intelligent Systems - A client-server expert system for diagnosing and fixing problems in any field-serviceable device

Close...dozens of programming languages

From proper general-purpose programming languages, such as C++, Java, C, Pascal, Fortran, APL, Python, Prolog, Cobol, Snobol, Lisp, PL/I, Basic, several assembly languages, Javascript, Tcl, Ruby, OpenScript, to smaller special-purpose languages like HTML, CSS, SQL, bash, Toolbook ActionScript, Actor, LEX, YACC, Awk.

Close...and methodologies

Object oriented design, design patterns, logic programming, functional programming, procedural languages, aggressive programming...

Close...numerous technologies

'Technologies' is a very broad term which includes HTML, CSS, DHTML, XML, J2EE, JSP, COM, DCOM, ActiveX, SQL, ASP and STL, as well as phrases like streaming media, N-tier architecture and many others.

A few years later I moved on to more serious work. I was 23 and heading for a fascinating enjoyable career. I built whole applications, designed user interfaces, infrastructure libraries, communication protocols, created one of the world's first object oriented databases, pioneered the very first miniature desktop animations, coded device drivers and compression algorithms, interfaced an assortment of hardware devices, designed and implemented large distributed systems, learned and used dozens of programming languages and methodologies, and mastered numerous technologies.

Homeware

Close...the world's networks

Prior to the days of the web, I used tools like listserv, ftp and UUCP. My connection to the university Unix computer was made over a 300 baud modem, and later on over a "high speed" 1200 baud modem. Back then, it was incredible to realize that one could exchange notes and files with people living in Australia, Norway and Canada just as if they were next door neighbours.

Close...Cthugha

Cthugha, a.k.a. "scope on acid", was the world's first music visualization software. A similar idea appeared later in WinAmp and in Microsoft Media Player.

In my spare time I explored the world's networks. Toward the end of the DOS era I came across, really liked and made a small contribution to Cthugha.

Close...BBC model B

The BBC model B computer was a real gem. Both its hardware architecture and its fast Basic variant interpreter were logical, systematic, well documented, free of design errors and a true example of conformance with the Law of Least Astonishment. I still have it and it is just as good as new.

Close...writing programs

Several examples (I couldn't possibly list them all):

  • A word processor written for the BBC-B computer. I had to use a few assembly routines so it would not be too slow on the 6502 8-bit CPU running at 1 MHz.
  • An interactive maze generator/solver. The game had to use the BBC-B 32K display buffer as working memory since all I had at my disposal, for code and data combined, was 32K of RAM. Amazingly, the double usage of the display buffer did not affect the display.
  • An efficient integer-only Mandelbrot set drawing program with some unique display-based acceleration techniques.
  • A smart touch typing instructional program for the Apple-II. It created lessons based on the student's past performances: adding new letters after reasonable mastering of the previous ones, and increasing the frequency of repeatedly mistyped letters.
  • An assortment of programs, such as bat-N-ball, music generators, snow and wind simulator.
  • Experiments with various algorithms before actually implementing them at work.

I spent countless hours with a Commodore VIC-20, BBC model B, TRS-80 and Apple II, writing programs in Basic and assembly language.

Close...electronics

With a soldering iron and a small pile of components I interfaced my home PC to the front door, the telephone (the PC made a different sound depending on who was calling), a cassette tape recorder, my 8 mm movie camera...

Close...some animations

I created my first 3D computer animation by connecting my BBC-B to the tv and to the 8 mm movie camera. The computer repeatedly drew a frame on the tv and instructed the camera to picture it. I left the entire setup to work overnight and in the morning the film was ready. Some animations showed rotating 3D shapes, others showed zooming into the Mandelbrot set.

I also enjoyed spending time on one of my favorite hobbies, electronics, which helped me create some animations.

CloseViruse and worms...

Computer viruses had been described in the scientific literature long before they became a reality. I followed closely the appearance of the first PC viruses and network worms and the arms race that followed.

Close...heterogeneous network

A Mandrake Linux server running Apache and Postfix, plus several Windows 98 and Windows XP client machines.

The Internet brought along exciting challenges: new application types accompanied by new security threats. I set up my own heterogeneous network at home, where I apply what I've learned about security, networking and administration.

Close...technologies...

HTML, DHTML, CSS and XML; Flash and streaming media; graphic file formats like GIF, JPEG and PNG; HTTP 1.0 and 1.1; PHP, JSP, ASP, SSI, CGI, and more.

The concepts of web sites and web applications presented me with yet another area of interest. I readily utilize the available technologies and languages to develop sites and applications.

Close...creating and editing...

I have a rich experience with the obscure features of GIMP and Photoshop, the secrets of font design and the power of Macromedia Flash and Director. I have studied the details, strengths and weaknesses of multimedia file formats and mastered diverse tools to convert and edit sounds and videos.

On the artistic side, I enjoy creating and editing images, sounds and videos.

Close...a few programs

Examples:

  • Recognizing DTMF and Caller-ID telephone signals in real time.
  • Enhancing and creating high resolution images from low resolution video sequences.
  • Matching images scanned with a hand held scanner and combining them to increase the resolution and the number of gray levels.

An ongoing interest of mine is manipulating real-world data. I learned DSP and image processing and wrote a few programs.

Change of mode

Around the year 2000 the idea of changing direction began to settle in. I was 40ish and getting younger. I went back to studying mathematics, and worked on a few projects of my own. One of them was bitFormatiom Consulting, which I started in 2004.



But enough said about me. Is there something I can do for you?