Experimental Research Projects

I often tinker with code prototypes to try new ideas or experiment with novel technologies that sometimes end up in a business idea or other projects. Sometimes these pieces are the glue for much bigger ideas that germinate lucrative products or attract impressive venture capital investments.


Experimental Software

Nuclear Physics

  • For this project I used codes for distorted Born waves for spin +1/0/-1 particle reactions, tuned using DOE optical parameter model database, and a genetic algorithm energy sequencing optimizer to maximize nuclear reaction yields of desirable nuclides and minimize undesirable nuclide species.  Quite a bit of SQL database work to stage model data and parameter sweep spaces, and not a little hitting of nuclear physics textbooks before I got this one coming out right.  First tackled in 1994, I shelved the project for a dozen years until I was able to tackle the physics and apply it properly in 2007.  A patent draft has been written and reviewed by a retired USPTO examiner.

Self-Programmed Predictive Neural Network AI Engine Models

  • This project is ongoing in 2009 and I am trying some exciting techniques to predict data-driven system states that are many-to-one, and somewhat less many-to-many. This project also uses genetic algorithm techniques to optimize neural network performance behaviors in entire classes of problem solvers, not just single-shot applications.

Source Code / VC++ Project Downloads

You can download my code projects as-is, though I may not support them. Min VC++ version required to read project files is given in [brackets]. Note: some projects have license agreements you must agree to abide by in order to download them. Please email me with why you want the code and I'll send a download link.

Distributed Computing Grids

  • Core Continuum 1.0 distributed computing server, client and SDK framework for application code and data distribution and versioning, control, execution, inter-node messaging, and much more [7.0]

Internet

  • CLEAN and SIMPLE yet fully featured X.509 secure sockets layer (SSL) server and SSL client (HTTPS) implementations using OpenSSL (SSLeay+) [7.0]
  • batch reverse IP address lookup using WHOIS queries for address details [6.0]
  • tracert-like console app, lists router hops, latencies at each hop in ms, etc. [7.0]
  • HTTP file download/retrieval example using wininet.dll [6.0]
  • HTTP file download/retrieval example using sockets [7.0]
  • RPC server and RPC client implementation projects [6.0]

Database

  • MS SQL Server custom stored procedure DLL example [7.0]
  • MS SQL Server custom stored procedure DLL for FTP [7.0]
  • MS SQL Server custom stored procedure DLL for base-64 encoding [7.0]
  • Simple ODBC class without MFC CRecordset example [7.0]

Grab bag

  • Lempel-Ziv variable-length file data compression & decompression [7.0]
  • GNU Chess 4.0 [7.0]
  • a fun source code puzzle for programmers [6.0]
  • Windows 98/ME VXD thread CPU time in ms example [6.0 + Win98 DDK]
  • Kanerva sparse distributed memory implementation (AI memory) [6.0]
  • 26-element stock data batch Internet retrieval (SQL-loadable text) [7.0]

"Darwin Engines" - self-programming software development systems

  • Also called evolution algorithms, the two key questions for this technology are:
     
    • (a) How long would such an evolutionary system need to run before it begins to exhibit a distinct observable change in its organizational phase? How would we recognize such a change in phase within an autonomous, self-organized computing network?
       
    • (b) What is the right atomicity of opaque execution and data?  Atomicity maps an execution thread instance onto self-selected and organized binary code instructions and binary data. Genetic solutions are a natural Darwinian theater in which to drive a selected population of vectors - some code, some data, where their various I/O costs, bandwidths & latencies (RAM, disk, network, etc.) are optimized by competitive selection, however there are two fundamental problems to overcome, (i) selection of meaningful fitness functions, and (ii) the sparseness and 'brittleness' of the binary solution space.
       
  • Question (b) has an enormous impact upon the answer to question (a). For example, if we designed a self-evolving system using binary bit fields to generate machine-language execution code, the system would be tied to the hardware upon which it evolved. Yet abstracting away the hardware could well result in a system that requires geologic time frames to develop interesting, much less useful, behaviors. A more likely system will assemble software and data components in larger chunks that may be hand-crafted at first, and only much later be also evolved.
     
  • My PhD thesis proposal does two things. First, it estimates the computational self-organization change of phase boundary conditions using a model based in part upon a novel evolution architecture that attempts to solve the two problems identified in (b) above (but is necessarily not revealed here!), and in part upon first principles. Second, it tests for the change of phase boundary conditions using a public-participation distributed supercomputing grid, similar to the PrimeNet, FAAH and SaferMarkets grids I've created.
     
  • Ultimately, the question is how to accelerate evolution to select for thread-vector populations that reliably perform computing services of significant commercial value. Most likely I will build and commercialize this technology before submitting the PhD thesis.
  Contact | Subscribe  | News & what's cool  | Archive of things done | Hall of Fame | Personal | Other

Last updated 2 December 2001