Lomont.org

(Also lomonster.com and clomont.com)

This is the homepage of Chris Lomont, PhD.

I am a co-founder of Hypnocube, maker of fine blinky lights (and other tech items).

I used to be a research scientist, working at Cybernet, initially on quantum computing, although later my time was been spent working on image processing and computer security.

I have also been a game developer, a PhD student, small business owner, and many other things.

To see more about me, check out my about page.


Date Event
Jul 26, 2024 MinimalTicTacToe
Aug 28, 2023 Correct alpha and gamma for image processing
Jul 23, 2023 IOS PNG Errors
Jun 24, 2023 Problems using SSIM for image quality comparisons
Jun 6, 2023 Accurate color conversions
Nov 22, 2022 Button debouncing and pattern matching
Aug 27, 2022 A better quadratic formula algorithm
Aug 26, 2022 Lomont floating point notes
Dec 7, 2020 Rtk Gps Project
Jun 23, 2019 Chris Lomont's lines of code over time
Jun 1, 2019 New C# syntax and features
May 15, 2019 30 Algorithms in 60 Minutes
Feb 25, 2019 Computation: Theory, Methods, Limitations, and the Future
Jul 21, 2018 Intro to Wireless Communications
Apr 2, 2018 Cryptography Best Practices 2018
Mar 14, 2018 Intro to Functional Programming with F#
Jan 10, 2018 Meltdown and Modern CPU Architecture
Nov 19, 2017 The Cosmic Distance Ladder
Nov 1, 2017 Walking Ant Probability Problem
Jun 19, 2017 Overview of Cryptology
May 1, 2017 A Universal FRACTRAN Interpreter in FRACTRAN
Mar 5, 2017 Generating Uniform Random Numbers on [0,1]
Feb 21, 2017 Efficient divisibility testing
Sep 17, 2016 Making Three NOT Gates from Two
Aug 29, 2016 Compression Notes
Aug 29, 2016 LZCL: An embedded compression library
Aug 23, 2016 Average segment length
Aug 23, 2016 How many prisoners?
Aug 23, 2016 Pick a Number
Jul 1, 2016 Test site features
Jan 1, 0001
Color Conversions This is a quick note for converting byte values colors in 0-255 back and forth to floating-point colors in 0-1. The Problem A common (yet incorrect) method (shown in C++) looks like this: 1 2 3 4 5 6 7 8 9 10 11 12 #include <cstdint> // uint8_t // byte color in 0-255 to 32-bit float in 0-1 float ColorU8ToF32_BAD(uint8_t colorB) { return colorB/255.0f; } uint8_t ColorF32ToU8_BAD(float colorF) { return (uint8_t)(colorF*255.
July 10, 2016 After many years of letting this site langush, mostly because it was getting obsolete technology wise (1998 technology!), making it hard to update nicely, I have finally started a new website at www.clomont.com. My plan is to merge most of this content into it, hopefully keeping a lot of the more popular links and items at the same relative locations, then move the new site back to here, and point all my personal sites to the new one.
Oct 10, 2012 I added an C# implementation of the newly released SHA3 hash algorithm on my software page, and a program to compute file hashes. Here is a zipfile of the VS2012 project (11MB), and here is the implementation as a HTML file.
Aug 5, 2012 I added a small, single source file QR-Code generator to my software page. I also added a QR code embedding a zipfile with a QR code generator in it :)
July 16, 2012 I added a nice logic puzzle and solution to my new Riddles page. The logic puzzle is titled “How many Prisoners?”
June 8, 2012 I updated the source and executable for my small disk utilization utility, DiskInfo. See my software page.
June 8, 2012 Here is a page describing a recent art installation Gene and I did in Seaham, UK.
June 8, 2012 Here are slides for a talk I have given recently: Introduction to the Lambda Calculus.
June 8, 2012 It’s been a long time since an update, mostly since I have been very busy. Here are slides for a talk I have given recently: Computability and Computation.
Oct 8, 2011 Over the weekend I got it in my head to disassemble the sound ROM on the Williams arcade boards to generate old school arcade sounds from the original algorithms. Here is a page with initial notes and some C# code that reproduces the original cycle-accurate algorithms. Here are some sample results, decimated down in sample rate to 44.1khz WAV files: one, two, three, four, five.
Oct 7, 2011 I added a project page on a nice wooden torus I designed and made out of laser cut wood. Included are template files and source code the generate the geometry.
Sep 27, 2011 Here is a is a command line tool (CodeStats, 29K executable, 31K project file) that gathers statistics about source code in C#, C++, C. Read more on the software page.
Sep 20, 2011 Here (PDF, 223K) is a detailed exposition of how to prove R. Sabey’s 2004 pandigital approximation (1+9^-(6*7))^3^(2^85) to e is accurate to 18457734525360901453873570 digits (including the leading 2).
Sep 12, 2011 I extended my previous C# FFT code to allow for various conventions that different fields use in definig the FFT. This should make it easier to adapt to your specific uses. Have fun. Read the PDF about it, download the C# file, view the code, or get the whole VS 2010 project.
Aug 29, 2011 I posted notes for a talk I gave showing how space and time intertwine to form spacetime. A simple. clear, complete derivation is given of the Lorenz Transform and what it implies. Experimental evidence is listed. Here is a 1MB PDF, and here is my talks page.
Aug 25, 2011 Posted an update to the SHA-3 candidate code for Skein since they updated their specification somewhat. I’ve been busy and not posted most of the things I have been working on over the past few months. Hopefully I can fix that soon. HypnoCube sales are taking off and keeping the shipping pipeline from China to here to retailers takes some time. Tomorrow I give a talk about special relativity with an especially direct and simple derivation of the Lorenz Transform. I will post it soon.
June 19, 2011 Bug fix to the SSIM code. Did not dispose of the Bitmap immediately after use, leaving the file handle locked until GC kicked in. Now IDisposable is respected. I also fixed an error in the WELL512 implementation and an error in my uniform spread algorithm in my survey article on random number generation.
June 3, 2011 This article (1.5MB PDF) is an introduction to Intel’s Advanced Vector Extensions (AVX), written for their developer network. It covers the new registers, feature detection, assembler and compiler support, and an example using C++ intrisics. The appendix is a brief listing of all the AVX functions. Here is the C++ project described in the article (10MB zipfile).
Apr 7, 2011 It’s been a while since I posted something due to general business. Yesterday I gave the Don Buckeye talk at Eastern Michigan University to a group of faculty and students. The topic was showing how a common device (I chose an iPhone for the concrete example) requires sophisticated mathematics to design and implement. I showed how each math class that an undergrad could take and even many graduate courses are required to cover the full breadth of technologies. Here is a link to the PPT (and PDF) slides (including many I did not have time to show). A recording was taken which I will post if I can get a copy.
Sept 12, 2010 I added several projects to the software page. All are C# programs with sourcecode included. One is an x86 Intel binary disassembler with PE file reader. One is a Chess interface. One is a Planet Wars simulation for making bots for the University of Waterloo competition. The last is a 4x4 Tic Tac Toe retrograde analysis generator and interface to play with.
Aug 2, 2010 I added some content to the last post on laser-cut polyhedra, adding a new smaller version of the previous one. See project page for details. Other than that I’ve been pretty busy with work, finishing the 8x8x8 HypnoCube, and coding for fun. Hopefully soon I’ll redo this website, add a blog to start writing, and post some papers.
Apr 25, 2010 My wife was out of town for two days recently, so I decided to work all night both nights playing with 3D shapes on the laser cutter. The result was I designed and built a neat translucent polyhedra (a truncated icosidodecahedron), about 20 inches across. Perhaps we’ll sell them and related shapes as kits, since poeple seem to like them, and I designed a general way to construct them. See the project page for details, pictures, and DXF files for your own laser art.
Apr 25, 2010 I finally finished my “Theory of Everything” talk mentioned on the Nov 2007 post, and delivered it in three 1-hour talks. It explains the background for constructing theories of  everything by using symmetry groups to merge quantum mechanics and general relativity, motivating it to a technical but non-physicist audience. PPT and PDF are available on my talks page. It was motivated by Lisi’s paper, "An Exceptionally Simple Theory of Everything," but almost exclusively covers the background needed to understand the abstract.
Apr 24, 2010 At the request of Namco, I have redacted all information on my PacMan emulation pages that contain their material. My first Cease and Desist!
Feb 7 30, 2010 I added a small C# TCP/IP client/server architecture demo under Software. It consists of a small Server class, a small Client class, and a demo program. Developed for work on the 8x8x8 HypnoCube, I’m posting it here for others to use. There is a VS 2010 Beta 2 project file (zip).
Jan 30, 2010 I spent a few weeks in London and Paris, which was fun. Working on audio for the HypnoCube I ran into some Fourier Transform issues, so spent the last week designing and writing up a nice Fast Fourier Transform class in C#. It was designed to be small, free, decently performing. In the process I made a Real to Complex FFT that is twice as fast as the usual FFT,perfectly suited for Audio Processing. Read the PDF about it, download the C# file, view the code, or get the whole VS 2010 project.
Dec 7, 2009 I posted a tool I wrote for investigating directory sizes on multiple drives and for finding duplicated files. Both an executable (400K) and a Visual Studio 2010 beta project (156K zip) are available. It was written in C#, and has some interesting WPF items such as an interactive pie chart and multithreaded tasks interacting with the UI nicely. See the software page for details.
Dec 6, 2009 I posted two articles I wrote for Game Programming Gems 8[amazon.com]. I was able to keep the copyright for publishing on the web, so I can post them here. The lamer of the articles is titled “Secure Channel Communication” (138K PDF) and is an overview of items to consider when designing game network protocols. The better article is “Introduction to x64 Assembly” (368K PDF) which covers many aspects of assembly programming on x64 systems, including register set overview (wuth MMX and SSE), assembler support, interfacing with C/C++, and details on the calling convention used on x64 systems. Both papers are on my papers page.
Sept 4, 2009 It’s been a while since a post - I went climbing in Idaho, I bought a Robotron 2084 upright arcade machine, I wrote a lot of software, gave several talks, and have been busy. I posted a C# implementation for Structural Similarity Index (SSIM) image comparison under software. Here is an executable, a HTML version of the code, and a project file.
April 27, 2009 I posted a C# implementation for arithmetic compression/decompression under software. Here is the CS file and here is ArithComp.htmlHTML of the code. Finally, here is a project file. Have fun.
April 14, 2009 I posted a C# implementation for a SkipList under software. Here is the CS file and here is HTML of the code. Finally, here is a project file. Verdict - SkipList is better than .NETs SortedList, but worse than SortedDictionary. Oh well, it was a learning experience implementing all the interfaces.
Mar 29, 2009 I posted a global illumination renderer in C# on the software page. Command line EXE, Sample Scene, and the complete sourcecode (VS2008 C#) are available.
Mar 15, 2009 I added another software item: a simple fullscreen WPF overlay app that demos simple physics. As usual it is placed on the software page, complete with C# sourcecode (VS2008 project file).
Mar 8, 2009 I added a few software items: a C# implementation of Skein, one of the hash functions contending for a SHA-3 candidate. I also added an interactive Mandelbrot C# program that can use multithreaded C#, SSE, OpenMP, and other methods to render mandelbrots in realtime. There is also a (very slow) infinite precision method included, all with source code. Runs under Vista x64.
Jan 17, 2009 During a trip to Key West, my wife wanted a Tetris game, so I wrote one in C#, .NET, and WPF. Source code is included on my software page. Here is a zipfile with the exe and config file (119K).
Dec 11, 2008 I posted a program with source that converts Visual Studio code into HTML under software. Here is an example of the output the program makes, and here is the exe, and here is a zipfile of the (Visual Studio 2008, .NET 3.5, C#) source tree. Happy hacking :)
Dec 2, 2008 Over the last two months I have been doing the Project Euler (www.projecteuler.net) problems in C# (and some in the new Mathematica 7!) to learn the language better. Over the Thanksgiving weekend I finally finished all of the current (219 of 219) problems. I (username lomont) am usually ranked in the top 10 of 50,000+ users and now want to get the top score, then I may retire from the competition. I also may post hints and/or solutions to the problems on my website.
Oct 22, 2008 Been busy again :) I have a lot of items to post, but only time to do a few. So here is a very detailed description of PacmanEmulation.htmPac-Man hardware, and here is a PacmanASM.htmlcommented disassembly of the Z80 sourcecode. Also posted is a XP and Vista usuable FMTracker ported from my old DOS days FMTracker. I added OPL2 chip emulation to make it usuable without needing the old ADLib chips. Included are songs and complete C++ sourcecode. See the software page for more. Things I hope to post soon are a paper I wrote on embedding data in zip (RFC1950) files in the choices made during the compression phase. This came about writing a better compressor for .NET in C# than the included deflatestreams, which are horribly broken.
July 20, 2008 It’s been a busy four months. I bought a house, among other things. Here is a talk I gave in May titled “C# for C++ Programmers.” As much as I hate to admit it, C# is a very good language, and using it makes me a lot more productive. Currently the seminar I run at work, "Weekly Programming Fun," is covering a lot of C# development. Many programmers are learning it at Cybernet. I also changed hosts, so this site is still on shaky ground, and my email is slightly flaky. Finally we’ve been seling a lot of HypnoCubes and HypnoSquares; at sometimes it takes a bit of time and scheduling to keep things flowing smoothly. A final note - we’re back on finishing the 8x8x8 HypnoCubes, and have switched (tentatively) from the Gumstix to an EmbeddedArm TS-7800, which is a sweet SBC.
March 23, 2008 I updated my Lego program from last time to make a nice screensaver, including many models. The Screensaver assembles/disassembles LEGO models, and includes C# sourcecode. Check out the Screensavers section of my software page.
Feb 24, 2008 I added program (with C# sourcecode) to view LEGO CAD files to the software page. It is my first C# program, and comprises a weekends worth of work, totalling about 2500 lines of code. There is no way I could have done this so quickly in C++, so I may have to start doing all my play coding in C#. I also built the behemoth 1800+ piece Technic 8421 Mobile Crane LEGO kit and posted pics and a video on my LEGO page. To top off the LEGO triumvirate posting, for testing my viewer I modeled the Technic Kits 854 Go Kart and Technic 853 Car Chassis from my childhood and posted the ML-CAD files to my LEGO page.
Feb 8, 2008 Games Programming Gems 7 was released [amazon.com], and due to copyright deals I worked out I am able to post my two articles on my papers page. The first one deals with implementing subdivision surfaces (PDF 254K) for geometry, including details on creases, corners, textures, normals, data structures, and pointers for high performance implementations, all in one handy place. The second one is an overview of various pseudo-random number generation (PRNG) algorithms (PDF 136K), and presents fast code for a very useful class of PRNGs introducued by L’Ecuyer, the WELL algorithms. These are better than the popular Mersenne Twister in many ways, and were constructed by the same researchers.
Nov 18, 2007 I posted slides (PowerPoint, PDF, PowerPoint 2007) on my papers and talks page for a talk I gave recently on Special Relativity to a group of engineers. The point was to derive E=mc2 from simple ideas. There is also historical and biographical information leading up the ideas of Special Relativity. Coming soon: Garrett Lisi’ “An Exceptionally Simple Theory of Everything” for engineers and non-physics scientists. Although likely not the final Theory of Everything, it contains a lot of fascinating math and shows how theoretical physics fits reality to beautiful symmetries.
Oct 14, 2007 I recently analyzed in depth the Excel 2007 formatting bug. Here is a link to my results page, here is the PDF (500KB) and here is a link to my papers page where it is canonically referenced. Enjoy, and send comments/corrections.
Sept 4, 2007 I just returned from a Labor Day hiking/biking trip in the Upper Penninsula. Fun fun :) Also I posted a solution on my puzzle page to a 51 piece wooden burr puzzle at the request of a puzzle collector.
Aug 21, 2007 I added a 256-color demo for the CoCo3 to my Color Computer (CoCo) page. It includes assembly code. Use as directed.
Aug 18, 2007 I was recently (well, now a few months ago) offered a job at Google in Mountain View, California. After consulting with my wifey, we decided not to take the job. However the interview process was interesting, long, and harder than any I’ve ever heard of. However, I answered all their questions, and hope to post a complete story about it soon (after I review my legal requirements!)
Aug 18, 2007 I spent today (Saturday) reworking a Lemmings tool I wrote over a weekend about a year ago. It is now ready for primetime. It can decode six DOS Lemmings games, and is the base for a Lemmings clone I hope to do. Go directly to the Lemmings page, or get the exe as a 115KB zipfile download (requires .NET 2.0). Or check out the software page for general software goodness.
Aug 2, 2007 I just returned from a two week climbing, hiking, and shooting trip in Idaho. Along the trip I made a big update to my Color Computer Hardware Reference(1MB, PDF). See my Color Computer Page for the announcement.
July 7, 2007 After a recent discussion of how many digits of a transcendental number could be computed in a finite amount of RAM, I concluded that the Thue-Morse constant is likely the best candidate for the transcendental number. I wrote a program on an old 8-bit computer (the TRS-80 Color Computer 3) that computed the TM constant to a massive 10^314013 digits (but it will never practically finish - the Univers will end first). See my Color Computer Page for assembly sourcecode and a program using similar techniques to compute 287273 digits of e.
May 17, 2007 Under Software I posted an Ataxx game clone (2.8MB zipfile) I wrote. It plays quite strongly (I cannot beat it above level 3, and I am usually good at such games). Have fun!
May 6, 2007 Under Software I posted a 6309/6809 disassembler (115K zipfile) I wrote. I also updated my Color Computer Page with some info and my intended plan to write a C compiler (with certain C++ extensions for making cleaner code).
Apr 6, 2007 Under papers, Misc other writings, I added a detailed explanation of how I developed (as a beginner) an exploit for the recent ANI file handling vulnerabilty under Microsoft Windows NT, 2000, XP, 2003, and Vista. Here is a PDF (183K) detailing the flaw and attack, and here is a ExploitANI.zipzipfile (193K) with related files. Rename the cursors back to ANI at your own risk!
Mar 17, 2007 Under software, I added a C++/CLI implementation of Conway’s Game of Life (6MB, source and 4000+patterns), using Bill Gosper’s HashLife algorithm. The program comes with sourcecode, and is about 5000 lines of C++ code. Also included are 4000+ patterns collected from around the web.
Mar 16, 2007 Under software, I added a C++ Four Fours program (36K). This program figures out how to write positive integers using only four 4’s, and user selected operators. For example, 12 = 4*(4-4/4), 10 = sqrt(4)*4 + 4/sqrt(4), etc. Output is a CSV file easily viewed in Excel.
Jan 25, 2007 For a break from trying to get our 8x8x8 cube running (damn Linux under Gumstix makes hardware hacking troublesome), I decided to write some compression routines. I wanted most of all a fast, small overhead decompression engine, for adding data to embedded items. I started making up a method, which turned out to be a variant of LZ77/LZSS, but I think my handling of literal runs makes my method compress better. For small datasets it outperforms the common and slick QuickLZ library. Hooray! My attempt to make a compression routine is apparently a decent one! The result is under my Utilities section in under software, or you can jump directly to this page.
Dec 27, 2006 Under software, I added a spinning cube (61K exe), each face containing a zooming in and out Mandelbrot set, rendered using a GLSL Pixel Shader (requires at least shader model 3.0). Hopefully I’ll clean the source and release source soon.
Dec 21, 2006 I updated my free Sudoku[Wikipedia] program, fixing some painting problems and adding some niceties. Click here to get the executable, and here to see the page. It is useful for creating and finding solutions to puzzles, but is very much a beta (representing about 20 hours of work in my spare time). Oddly enough, one University of Michigan Engineering Freshman person wanted me to write such a program for his programming assignment (I looked him up from his email, and Googled the assignment). What is the world coming to when even UM Engineering students try this type of cheating?
Nov 4 , 2006 I uploaded a command line utility (ren2.exe) with C++ sourcecode to do file renaming using regular expressions to the software utilities section. This allows you to do much more powerful group file renames, and has a html preview to show how files will be renamed before doing the changes. It is beta, so please send any feedback on it.
Aug 18, 2006 I uploaded a rectangle packing program with C++ source (104K) to the software page, utilities section. This program visually packs a list of rectangles into a given rectangle as best as it can, and is fast. Since the general problem is NP-complete, there is no known efficient algorithm. Future improvements could allow rotations of the rectangle, and a 2 pass version to get better packing. Uses include part placement, texture map merging, and many others.
Aug 9, 2006 I have uploaded a BETA version of an online password hasher. Let me know of improvements, errors, or if the entire idea is flawed.
Aug 9, 2006 Due to numerous requests for me to release my Metaballs Screensaver without the nag screen, I have done so. Pick it up from the Screensaver page.
Jul 25, 2006 I spent the weekend in retro-computing, developing an assembly-code mandelbrot renderer for my TRS-80 Color Computer 3. The resulting sourcecode, emulator and development information, and programs are under the software page or the direct Color Computer Page.
Jun 20, 2006 Gene and I finally turned on our site to sell our 3D LED cubes, at www.hypnocube.com. We now have 4x4x4 RGB cubes for sale as kits and completed cubes. Be sure to check out the videos and the instructions on how to build such a cube! Hopefully soon I will finish the pages on this site for the Hypnocube.
Jun 19, 2006 I implemented a Loop subdivision renderer (104K) in OpenGL/C++, which I placed under the software section. It is not optimized, since I plan to implement the full gamut of corners, boundaries, normal interpolation, texturing, color interpolation, and creases before trying to make it fast. A final version might be GPU based if I have time.
Apr 2, 2006 Due to numerous requests for code to my Logitech G15 keyboard system info tool, I added a download for the source (124K). For details, look for the G15 tool on my software/utilities page or the direct G15Tool page.
Mar 11, 2006 I added a new system info tool that runs on the Logitech G15 keyboard screen. Check out my software/utilities section or the direct page for more info. Also posted under software/games are a TicTacToe engine with source and a Zombie Infection Simulation with source. I wrote both to help train developers where I work - they implement various sample brains to learn about C/C++ and AI development in a more interesting manner than usual.
Mar 11, 2006 Sorry it’s been so long since a post. I have been travelling and playing (Vegas, Acapulco, NY), building a new PC, and writing several interesting programs I hope to post later today. Gene Foulk and I continued building our 3D LED cube (Main Page, Part I, Part II, Part III, Part IV, Videos). We have created nice PCBs, cases, and a new 4096 color RGB 4x4x4 cube. We also registered the website www.hypnocube.com for selling these cubes as soon as we work out some final issues. Stay tuned!
Dec 3, 2005 Gene Foulk and I continued building a LED cube (Main Page, Part I, Part II, Part III, Videos). We added some pictures of the new 8x8x8 cube, and show a lot of the work involved. Improvements to the 4x4x4 cube include: many more programming features, rock solid images, more visualizations, more symmetries, more transitions, PCB and case design, and almost production quality results. We hope to have kits for sale soon, and are working to get them manufactured and placed in stores.
Sept 30, 2005 I added a preliminary Sudoku[Wikipedia] program, free for download. Click here to get the executable, and here to see the page. It is useful for creating and finding solutions to puzzles, but is very much a beta (representing about 10 hours of work in my spare time).
Sept 4, 2005 Gene Foulk and I continued building a LED cube (Main Page, Part I, Part II) This past month we added a lot of programming and hardware modifications, resulting in a 256 color LED cube. See the new page for details, or click here (15MB) and here (15MB) for the latest videos.
August 5, 2005 An article titled “Floating point tricks” was accepted to appear in the book series Games Programming Gems, in volume 6, appearing spring 2006. This article shows how one can design fast algorithms by using clever access of the bit representations of the IEEE 754 floating point format, which is de facto on most computer and video game consoles. For a more detailed abstract see my papers page. For complete details, buy the book!
July 31, 2005 Gene Foulk and I started building a LED Cube (Main Page, Part I). This weekend we made a 4x4x4 bicolor prototype controlled from an 18F4620 PIC. We will beef it up over the next few weeks and build two large cubes (one each, greedy bastards…), at least 8x8x8 and perhaps as large as 13x13x13. It all depends on cost, timing problems, current drain, and moon phase…..
June 17, 2005 My superballs prank won the Gold Medal on a Gizmodo office prank contest. I have a page on this site for the video, which was hosted once at Purdue’s math site. However, the resulting traffic caused them to pull the page. Go to my Superball Prank page for more!
June 7, 2005 I updated my high-performance, free AES code. It now has a much easier to use interface, and supports some block chaining modes for increased security. You can find it under software.
May 11, 2005 I added two new papers. “Taming the floating-point beast” details methods to improve floating point comparison performance, in some cases by a factor of 20! The other is a solution to a hard integral problem I have doodled with since high school.
Feb 24, 2005 I released a beta version of an MP3 ID3v1 and ID3v2 tag editing tool called "Chris Lomont’s TagTastic TagRasterizer" under my Software\Utilities section. It is more featured than most (probably all) commercial ones. It is written in C++.NET. Let me know how it works for you!
Feb 24, 2005 I added a section for a new consulting (removed 2019) business I am starting with some others I know, under the Consulting navigation link.
Jan 20, 2005 I rewrote the site using php, and updated the photos section. Now I only have to add some MySQL stuff to have a completely interactive website :)
Jan 10, 2005 I added a simple webcounter to the software page that I wrote while on a Christmas trip to Hawaii (Maui, to be specific).
Nov 16, 2004 Added pictures of some of my 3D puzzles, and a page about a 3D burr puzzle I created.
Nov 9, 2004 Added a new screensaver - an animated Mandelbrot set screensaver that requires OpenGL and a fast video card. See the screensavers section for more!
Oct 29, 2004 Added version 0.43b of an emule client that does not share your files back (for you leeches out there). See the software section, under Miscellaneous. I also added a lot of photos to the site, so be sure to waste your time and my bandwidth by looking through them.
Oct 21, 2004 I placed a new paper, “The Hidden Subgroup Problem - Review and Open Problems” online at my Publications page. It covers what is known about the HSP (which is the central issue in quantum computing algorithms), corrects proofs, unifies notation, and presents a good overview of state of the art.
Oct 19, 2004 After trying to obtain historical stock data for simulations, and finding out how expensive it is to buy, I collected it myself. And now I will seriously undercut the other vendors! This page sells 700MB of historical stock data.
Oct 05, 2004 Added three talks I give under my publications page. The talks are "Quantum Computing 101," "Math and Videogames," and "Mathematics and Insanity." I also added links to a joint column with Ed Pegg at MAA Online on Angelic and Evil Numbers.
Sep 24, 2004 Added a 2D and 3D maze generation program with source under miscellaneous software.
Sep 20, 2004 Added a page and videos (20MB) (8.5MB) for a practical joke I played at work involving two thousand superballs. You should see this if you like good jokes :)
Sep 10, 2004 Had a paper on geometric algebra accepted for publication in a book - publications. (Added a regular expression file renamer with source to utilities.) Update: somehow I lost my renamer…..
Aug 08, 2004 I added a lot of software to the Utilities and other computer sections, mostly stuff I have been playing with over the last few months. All are beta, but many are useful. Included are

Jun, 2004 Began rewriting website with CSS ideas from www.kernelthread.com and www.csszengarden.com, and with standards conforming XHTML.
Apr 09, 2004 I Added two papers to the math section: one on a quantum pattern matching algorithm, and one on a fast quantum algorithm for computing the Fourier transform over abelian groups.
Mar 06, 2004 Been a while since I updated this site. I've been busy writing code and trying to prove theorems. A recent work: the US Currency Screen Saver. View images here.
Sep 18, 2003 Started giving a seminar on Quantum Computation at Purdue. See my new Quantum Computing page for details.
Sep 08, 2003 Added a new paper, proving doing convolution or correlation of quantum states is physically impossible, thereby ending research along those directions. See the math papers section, or http://arxiv.org/abs/quant-ph/0309070
Aug 10, 2003 New KnotSaver screen saver posted under software section, made of animated mathematical knots. See the pictures !
Jul 13, 2003 New paper posted: Quantum Circuit Identities under the papers section. In it I construct all one qubit identities of length less than four from a set of unitary operations.
May 29, 2003
Apr 26, 2003
Mar 13, 2003 Added a new screen saver - 3D string art. See the screen savers page. It uses a very nice antialiased properly gamma corrected line algorithm from a paper by Nelson, which is the best line algorithm I have seen for doing nice work.
Feb 28, 2003 Added a paper under the math section explaining the magic constant 0x5f3759df floating around the net for inverse square root code, and I show that 0x5f375a86 is probably a better choice.
Dec 20, 2002 Posted a paper showing how to use fixed point math, polynomial approximation, and forward differencing to speed up numerous computer applications, with an example being a circular gradient fill algorithm.
Nov 30, 2002 Posted a paper showing a simple proof that the Utilities Problem is unsolvable. It is equivalent to the graph K3,3 being nonplanar.
Nov 12, 2002 Added files to the (new) professional section - resume, CV (removed 2019), and stuff needed for academic applications.
Aug 10, 2002 Added a program to solve cross sums - see the Computer Page or the direct link.
Apr 20, 2002 Updated a paper on curves for publication.
Mar 07, 2002 Expanded my LEGO page, with LEGO Mindstorms creations. I added a new Clock built with LEGO. I also added a file format converter that converts MLCAD LEGO CAD files into an intermediate text format, with all geometry simplified and normals smoothed, as well as a Real3D plugin that imports/exports the file format to make the process more flexible.
Jan 22, 2002 Added a LEGO page, with LEGO Mindstorms creations. I also added Excel templates here (removed 2019) and here (removed 2019) under the classes page (removed 2019) to make the gradesheets for Purdue math TA's easier to do. Look at both templates before choosing.
Nov 12, 2001 Added a a good new metaballs screen saver, and solutions to the "Four four's" problem: write the integers from 1 to 100 using 4 4's to construct each number (actually, I found I can do up to around 150….) (Note: Mar 2007 - this program and results have been superseeded by my C++ FourFours program - see the software page)
Jul 24, 2001 Added a HP48/49 calculator page and a program with source code that displays spinning 3D scaled polyhedra. It also can be found on hpcalc.org.
May 19, 2001 Cleaning of site, and reworking layout. Added many new programs (Knots, MandelSaver, and more), some new graphics (molecular animations, some test images), a humor page (removed 2019), a math paper, and CSS for easier future updating of layout.
Nov 21, 2000 Added a short video showing the symmetry between a cube and tetrahedron.
Nov 02, 2000 Added source code for AES - Advanced Encryption Standard. Added a cool new polyhedral screen saver under screen savers. Added neat morphing graphics demo: rings
May 10, 2000 Added a  list of irreducible polynomials that generate different finite fields for some work I was doing.
Feb 29, 2000 Added a tutorial under the computer page to show how to do a simple Win32 C++ application under Microsoft's Visual C++ 6.0.   (Note: Win2000 has properly noted Feb 29 as a leap day. No bugs here)
Feb 04, 2000 Played around to get a new look for the icons on top.
Oct 02, 1999 Added a photo to my personal page taken at a local restaurant.
Aug 01, 1999 Added a new screen saver I wrote from ideas of Hugo Elias under the software page.
Jul 28,1999 More solutions to Hartshorne's Algebraic Geometry under my Math page.
Jul 18,1999 Added solutions to Hartshorne's Algebraic Geometry under my Math page.
May 21, 1999 Updated this website to take a break from studying.
Sep 02, 1998 This site was thrown together in about 30 minutes to test this server. More later…. (4 digits avoid Y2K).

Find the hidden message....

Can I host a gecko? Aardvarks in summer crave the herbs excreted routinely. Hogweed colonizes all of the aardvark pack; daises of drowsy dent, dig, and distract. Can an asexual astronaut abide? Centralist! If icebergs irritate into I, icemakers impinge. A bamboo cabdriver did eavesdrop firsthand. Got hastier ideas? A baldheaded beast baroness of backbiting bachelors badgers both bookworms. Damp bogs scare aardvarks! As one abominable anagram obscures a sadist, zero vaccinated taxmen do weeklong mixers. An icebreaker mimicked arthritic jellyfish. Wanderer bimbos of ubiquity, apocalypse did fret agronomy! Oh, shall the gimp be I? A quartet kibbitzing banned lunatic sacrilege.

Chris Lomont, 2005