Codic Engine.Net:  How it's Done

Who is Doing This?

Christopher, the owner of PhoenixPo.com Web & Design.  He also goes by the online handles "PhoenixPo" and "Kaine" (rhymes with "line").  Christopher is in the Master's of Information Technology and Management program at the University of North Carolina at Greensboro.  Really, this is his personal project and not even remotely related to classes, any of his jobs, or interests associated with the codesets.  Honestly, he only favors one or two of them, but provides examples of all codesets entered.  One person, many code sets, ambitious objectives--it fits PhoenixPo.com's model perfectly--"Rising to the Challenge."

 

What's My Secret?

The secret is capturing all the metadata about a code set.  I will expound upon this later.

It also helps to be obsessed with logic problems like this, which is 80% of why I made the Engine. 

My other secret is the Codic Engine.Net is one program.  Code sets make up only one class file that extend a common class specific to code sets.  Because everything is based on one program to decode all code sets, there is hardly any repetition.  When needed (marked in the code set's metadata), customized encoding and decoding classes are used.  However, I have only had to do a customized decode for two questions out of four major code sets (having an average of about 30 questions each).  All other translations are handled with the same routine.

 

What Started This?

I'm asked that a lot by people who view my "pet projects".  I start projects when I see a way I can benefit people by using my skills.  So far, my "pet project" list includes SSSAthletics.org, the CSC Picture Project, and the ResNet Work Order Entry System (restricted access, no link provided).  See my portfolio for a brief list of what I have done so far.

This particular project began in September 2001.  One list service on campus I was subscribed thought it a nice idea if they had a code set of their own.  I worked for a few days and came out with the "Lemur Code," but kept it to myself.  In order to gain acceptance, I thought it prudent to provide an encoder/decoder for the code set.  I worked for a month and came out with the first version of the Codic Engine, a Visual Basic for Windows application.  By then, the list service's fascination with a code set had long since past and no one ever really took notice. 

During the time I developed the VB Codic Engine, I took precautions and made it extendable from the start.  Because if this, I turned my attention to code sets online.  The two I found easily were the "Geek Code," which I was originally familiar with, and the "Furry Code," which was for some subculture the rest of society can only call "odd."  I found others, but these proved to be the most difficult and complex of all, so I targeted them for use on the Engine.  If it could encode and decode these two, it would be able to do anything. 

It was difficult doing the Engine, and I only had a basic programming knowledge, extended enormously thanks to my research and experience with writing the Engine.  After 34 revisions spanning 3 impressive program versions, I finally dropped the project in February 2002.  In September 2002-2003, only one more major version was produced.  Since no one was actually using the program, to my knowledge, I thought it fruitless to continue it.

One of the major flaws in this program was it didn't really capture any of the metadata involving code sets, such as behavior of each question and answer and such.  However, the most critical flaw was that it was an application--one had to download it to use it.  To download it, one had to be aware of its existence.  In the world of instant communication, it would have been better, both advertising-wise and user-friendlier, to have the code as a hyperlink the user clicks and a site automatically decodes it.

Fast forward to fall of 2003.  Well-versed in ASP and having studied Microsoft's .Net Framework, I began constructing a new Codic Engine, almost from scratch.  This one captured almost all the metadata about a code set--from if options are displayed, to differences in modifiers, to behaviors of various questions and answers, took these into account, and translated the code sets with far more skill and ease than anything else.

For those of you who wonder, the Engine is made with a VB.Net back end.  I am using VB.Net simply because I can read it faster than C#.  Of course, now I wish I had written it in C# because it's a bit more geeky.  Actually, both languages seem to have the same capabilities, so it really doesn't matter which one I write it with.

 

Why Build the Engine?

My motivation here is the same as computer hackers--I want to see if I can do it.  Pure and simple, I want to do someone no one else has yet to do.  I am off on a good start and every day I work on the Engine, I feel more and more certain completing the project is within my reach.

 

What's in a Name--the Codic Engine?

Why is it named such?  What else would you have me call it?  If you can think of a better name, I'm always open.  I call it the "Codic Engine" because it reminds me of a software engine--it churns out decoded codes and makes codes.  "Engine" just seemed to fit.  "Codic" is another story.  A "codec" is a piece of software, such as DivX or mp3, that tells a computer how video is encoded and how to read it.  The Engine uses code sets, the template for codes inputted into it, to tell it how those codes function and behave and how the Engine should decode them.  Add to this the word "code" and "codec" sound and are spelled alike begs for some creative spin.  Therefore, I chose the fictitious word "Codic," just as other businesses choose equally fictitious words that become household terms after it (like "Q-tip" being a cotton swab).  I add ".Net" after it to differentiate the Engine from its predecessor and to tell people what I am using to make it.

 

Kaine's Stance on Open Source?

I like open source as long as it's not my program that's open sourced.  I fear that if I open source the Engine, or any of my other projects, someone with far greater ability will come along and steal it from me.  I don't want this to be someone else's project, nor do I want another to get credit he or she does not deserve.  I will, however, share snippets of code with a few trusted people--namely, the codeset creators themselves or their representatives or people I look to for comments on the Engine's design.

Topics

Codic Engine.Net

Main Page

Objectives

Technical Overview

 

What's New?

About the Project

About the Author

Want to Help?


Codic Web Service

FREE Web Service

What You Need

Haunted Attraction Pictures     Statbar Modifier     CSC Picture Project     DevFolio.com    

 

Last updated: 2004/01/16