loading...

The odd one out: Working With Unusual Programming Projects.

thomasthespacefox profile image Thomas Leathers ・2 min read

Programming projects come in all shapes and sizes, each with their own set of challenges and requirements... Though sometimes, projects come along with oddly specific requirements, unusual ways of operating, or even just unusual areas of functionality...

For example:

SBTCVM

My first example comes in the form of SBTCVM. SBTCVM is a project to develop balanced ternary Virtual machines and related tools and utilities.

So how unusual is it? well. Its not like you can just buy a balanced ternary microprocessor... And that's partly why i wanted to start working on such a project as SBTCVM, so i could experiment with balanced ternary computer logic without using a soldering iron, the other reason sums up to me having read a Wikipedia article or two, and writing a balanced ternary calculator in python, and a balanced ternary integer mathematics library to power it with.

Many of SBTCVM's oddities are not unique to it, but also can be found in balanced ternary computers in general. For example: Balanced base numbers like Balanced Ternary have an equal number of negative digits as they do positive, centered around zero.

What this means is it turns quite a few digital computer concepts on their heads. The address buses all start at negative. Zero is in the center. (technical term: MNI or Max negative integer) The same is true for everything from RGB colorspaces, to SBTCVM's own text encoding...

Game Engine.

Another example of mine would be Desutezeoid: a point and click game engine i wrote, complete with scripted events, driven entirely by small string "keyids" that either exist in a list or don't, and XML tags... It works to create a crude system of states of values, and special XML tags called "forks" that react to them.

Naturally the specific "operations" that can be preformed, are related to point and click games, such as showing or hiding a particular screen object, or reacting to a mouse click on a specific screen object.

Some tips:

Research:

I can't stress this enough: One of the most important parts of programming is knowing what you are working with, and having an idea of what you are going to make your project do, and ways it can do that.

Test core ideas:

Its very important to ensure the core ideas of a project first. For example: SBTCVM's predecessor was far more limited and strewn with test code, but it did do one important thing: Show that it was possible to virtualize a balanced ternary computer in python at the instruction level.

Don't be afraid to try something new:

New ideas are a natural part of programming, and computing in general. The most important thing about starting a programming project is that you enjoy working on it, and have fun.

In conclusion:

Programming projects can be quite Unusual at times, and do even more unusual things... What are Some Odd, obscure, unusual, and unique programming projects you've worked on/used?

Posted on by:

thomasthespacefox profile

Thomas Leathers

@thomasthespacefox

Hi, I'm Thomas, chief developer of the SBTCVM project, and all around artist and programmer. I do have more of an understanding of balanced ternary than most i would say.

Discussion

markdown guide
 

Trying to get ahead of the game with quantum computing?

 

Not really... Balanced ternary in an electrical sense, is just taking into account the direction of a current, as well as its on/off state... (creating a ground state, a positive state, and a negative state, hence "balanced" ternary) Quantum computing involves relatively complex concepts such as superposition, and other mind-boggling concepts I'd rather not get into :)

 

Yeah, I was thinking pos/neg/superposition as +1,-1,0 so your work could be leveraged for quantum computing. However, it is probably more complicated that than. Seems an interesting field of study nonetheless.

to clarify, What SBTCVM's VM virtualizes is still technically a digital computer, in the sense that it has finite and exact states, though technically, it could be possible to devise a machine with both balanced ternary logic and superposition.... if you want to learn more about SBTCVM, I'd recommend the SBTCVM blog: sbtcvm.blogspot.com/