Who I am
I am a software developer and author of computer books. I also work on some problems in theoretical physics. This is my personal Web site where I publish information about:
My professional experience
I received my first software development contract in 1979: My task was to simulate the take-off distance of TU-154 aircraft with engine failure at Budapest airport under various weather conditions, to compute tables of maximum take-off weight. Since then, I worked on many software projects and I am thoroughly familiar with the entire software development life cycle. I authored or co-authored studies for large software projects: For instance, I was one of the authors of the $65M Automation Master Plan of the Canadian Patent Office in 1988. I designed and developed the Windows version of Industry Canada's Integrated Spectrum Observation Centre, with over 120,000 lines of C++ code. I created NORTEC's HELP (Humidification, Engineering and Loadsizing Program), an application for professional engineers and salespersons dealing with large-scale building humidification systems. I also wrote several books on the C++ programming language and the Linux operating system. As part of my scientific research, I independently developed a precision orbit determination program used to analyze the anomalous trajectory of the Pioneer 10 and 11 spacecraft. More recently, I worked under contract with NASA JPL on the Solar Gravitational Lens, investigating the possibility of using gravitational lensing by the Sun to image distant targets, including possible life-bearing exoplanets. I am also one of the maintainers of Maxima, the preeminent open source computer algebra system.
I am just as competent with modern software development technologies as with ancient systems. I routinely switch between developing an interactive app for my Android smartphone and maintaining 50-year old legacy LISP code for Maxima. I am familiar with formal software project management and development methodologies. Last but not least, I also have experience designing and debugging hardware.
Chatting with a friend of mine, a photography buff, he mentioned how useful he finds it that one of his cameras offers a histogram feature. Since we were talking about AI models earlier in the same conversation, this looked like a perfect opportunity to demonstrate what language models can do in late 2026. While we were talking, I sent this prompt to Claude 5.5 Opus: "Create for me a self-contained Web application, preferably in the form of a single index.html file, to which I can upload an image, and it generates a histogram." That was it. That was all. No elaboration, no detailed "contract", just a simple request.
The result, I think, speaks for itself.
WebCAS is a complete computer algebra system (CAS) that runs entirely in your Web browser, with no installation, no server and no account, so your computations never leave your machine.
Written from scratch in plain JavaScript, with no dependencies beyond MathJax for typesetting, it provides exact arithmetic with arbitrary-size integers, rationals, radicals and complex numbers. Its algebra covers polynomial factorization over the rationals and Gaussian rationals, partial fractions and simplification of trigonometric, logarithmic and radical expressions.
The calculus engine handles derivatives, series, limits, symbolic sums and Laplace transforms. At its core is symbolic integration built on the Risch algorithm: for a large class of integrands, including rational, exponential, logarithmic and trigonometric ones, WebCAS either finds an elementary antiderivative or proves that none exists. Beyond elementary functions, it can express antiderivatives with erf, Ei, Si, Ci, polylogarithms, Bessel and hypergeometric functions. Definite integrals are corrected for branch-cut discontinuities, and results of integration, equation solving and differential equations are checked numerically before they are shown.
WebCAS also solves equations and systems, both symbolically and numerically. It computes with matrices and eigenvalues, solves ODEs and PDEs in closed form or numerically, and takes assumptions on variables into account. It draws function, parametric, density and contour plots, which can be exported to SVG, PNG or pgfplots. All of this works in a notebook interface with a full programming language (functions, lambdas, loops), and sessions can be exported as scripts or LaTeX.
Two cannons, aimed at each other and firing at approximately the same time, will result in a mid-air collision, regardless of the weight of the cannonballs or the speed at which they are fired. (Ignoring air resistance.) This is a neat little simulation, created by Claude, demonstrating this. Click the link in the title for some background.