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.
|Dec 7, 2020||
Rtk Gps Project
I built a RTK-GPS gadget and wrote enough software to do basic GNS tasks such as finding distances, decoding GPS NMEA and RTCM messages, finding intersections, and doing boundary detection.
|Jun 23, 2019||
Chris Lomont's lines of code over time
Over decades I’ve written a lot of personal code. I made a bar chart race showing how many lines I’ve written in different languages over time.
|Jun 1, 2019||
New C# syntax and features
Here’s a brief summary of C# features by vesion.
|May 15, 2019||
30 Algorithms in 60 Minutes
This is a 60 minute talk in which I tried to cover 30 algorithms and data structures in a concise manner. It covers all sorts of areas: sorting, string searching and matching, backtracking, randomness, skip lists, hashing, bloom filters, graph algorithms, space partitioning, concurrent and immutable data structures, cache oblivious techniques, compression, boolean satisfiability, and control theory.
|Feb 25, 2019||
Computation: Theory, Methods, Limitations, and the Future
These slides are from a talk I gave on many aspects of computing, starting with classical computing (Hilbert’s 10th problem, Church and Turing, Godel, boolean functions, complexity theory, transistors, Moore’s law and demise), then going through physics (relativity, quantum mechanics, quantum field theory), and finally into quantum computing basics (qubits, superposition, entanglement, no cloning, basic gates) and quantum algorithms (Deutsch, Simon, Shor, Grover).
Then I cover advanced quantum topics, such as quantum machines,quantum complexity theory, the Quantum-Church-Turing-Deutsch principle, graph isomorphism, quantum error correction, and quantum security. A final speculative section covers even weirder computation ideas (closed timelike curves, string computing) and how computing seems intertwined with the nature of reality (It from Bit, Simulation Hypthesis, Free Will Theorem).
|Jul 21, 2018||
Intro to Wireless Communications
This talk is an intro to wireless communications, starting with the basic physics of EM waves and how they interact with materials, then how antennas work, then on to antenna properties and design. Next modulation schemes are discussed, showing how data is encoded and transmitted over noisy channels via modulation, spread spectrum, time and frequency division, and other methods. Noise in the form of doppler, intermodulation, and other causes is covered. Information theory (channel capacity, Shannon entropy, error correction) is covered. Finally specific protocols are analyzed under this framework: FM, NTSC, remotes, WiFi, Bluetooth, ZigBee, satellite radio, GPS, and cellular formats.
|Apr 2, 2018||
Cryptography Best Practices 2018
This talk covers cryptography best practices as of April, 2018. Background on each area is covered, with each section ending with a best practices slide. Sections are Symmetric Encryption, Asymmetric Encryption, Key Lengths, Hashing/HMAC, Password usage, Key Exchange, Random number generation, Digital Signatures,
|Mar 14, 2018||
Intro to Functional Programming with F#
This talk is an introduction to functional programming, with a focus on F#. The first section covers functional programming history, techniques, and benefits. The second part shows how this is used in F#, covering F# syntax and some special features like Type Providers, Units of Measure, and performance compared to C#.
The third section goes into mind-bending topics like immutable data structure implementation, currying, the y-combinator, contravariant and covariant functors, and category theory.
|Jan 10, 2018||
Meltdown and Modern CPU Architecture
This talk covers CPU architecture from the early days (Intel 4004) through modern designs (2018, Intel i7 and i9), with a view towards how the Meltdown and Spectre exploits were discovered. It covers virtual memory, process separation, cache issues, RAM details, pipelining and stalls, branch prediction, Moore’s law versus physics, and finally how Meltdown and Spectre are the consequence of many of these design decisions.
In the end I show the code for Meltdown along with a demo.
|Nov 19, 2017||
The Cosmic Distance Ladder
The Cosmic Distance Ladder is how mankind has determined the distances to various astronomical objects, basically by deducing closer “rungs” on the ladder and using them to determine farther distances (higher rungs on the ladder).
These notes are from Terry Tao, modified by me to suit my audience and to add other topics.
|Nov 1, 2017||
Walking Ant Probability Problem
Here’s a math puzzle.
|Jun 19, 2017||
Overview of Cryptology
Here are slides for a long (3-4 hour) talk covering many aspects of cryptology. Topics include simple ciphers, breaking codes, private and public key crypto, block modes, stream ciphers, key exchange, random number generation, modern crypto design, hashing, password security, breaking (differential, higher order, many more..), out of band attacks (timing, cache, power, hardware, …), homorphic encryption, quantum protocols, and more….
|May 1, 2017||
A Universal FRACTRAN Interpreter in FRACTRAN
Here’s FRACTRAN, a weird fraction based programming language, written in FRACTRAN.
|Mar 5, 2017||
Generating Uniform Random Numbers on [0,1]
How does one generate uniform random numbers in [0,1] using IEEE 754 floating point formats? It’s tricky.
|Feb 21, 2017||
Efficient divisibility testing
Here’s bit tricks for efficient divisibility testing.
|Sep 17, 2016||
Making Three NOT Gates from Two
This is a hard puzzle about using two NOT gates to build three.
|Aug 29, 2016||
LZCL: An embedded compression library
Here’s an embedded compression format I designed to meet certain requirements. It’s small, fast, and efficient.
|Aug 29, 2016||
Here’s some notes on compression.
|Aug 23, 2016||
Pick a Number
Here’s a result that is completely non-intuitive.
|Aug 23, 2016||
Average segment length
What’s the average length of a segment chosen uniformly by area on a unit square?
|Aug 23, 2016||
How many prisoners?
This is a nicely hard problem in the common prisoners and warden format.
|Jul 1, 2016||
Test site features
A post to test site features such as tables, math, code…
|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
|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
|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
|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||
I finally graduated with a PhD in mathematics!I placed online my PhD thesis ("Error Correcting Codes on Algebraic Surfaces"), under the papers page, or this PDF.
I am currently employed at Cybernet, doing quantum computing research.
|Apr 26, 2003||
I was married!Yay :) I plan to post some adventure pics sometime….
|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