Sunday, April 28, 2013

Current Projects

Hello All,

Today I just wanted to share a bit on the projects I am currently working on. These projects currently are meant for portfolio work, and will be uploaded to my personal website for employers, and others that are interested, to see. Due to the nature of portfolio work, and my desire to demonstrate my personal programming skills I will, more often than not, include my source code for the project, as well as an executable program, demonstrating it's functionality. If you are interested in seeing my portfolio, you can go to: http://students.uwf.edu/dkj3/ and navigate to the portfolio tab at the top. Currently my portfolio is fairly bare, hence the desire for more portfolio projects right now.

As for the details on what I am working on currently, I have two projects for the time being, and both pertain to my programming passions, as well as exemplify a skill I have in programming, that I find important to show future employers. My primary project, which is nearing completion, is a particle systems modelling library. This library, is based on my belief, that nearly all systems and processes can be broken down and represented as a system of particles in one way, shape, or form. Thus, utilizing advance object-orientated approaches, and advance generic programming techniques, I have developed a library, that can be utilized to model, I believe, any 3 dimensional particle system.

My concept in designing this library stems from my brief excursion with databasing, in which all data is made up of entities, attributes of said entities, and relationships between the entities. With this general concept in mind, I extended the databasing definitions a bit, in order to meet the needs of my systems modelling library. Entities, represent a type of particle, and can have multiple instances (a.k.a. multiple particles, just each of the same "type"). These entities, or particles, each have properties called attributes, that describe various aspects about the entities. The entities then have relationships to themselves, or other entities that control their behaviour or attributes under certain circumstances.

The relationships can be positional (if they are wiling a certain distance of each other), relational (seems redundant, but this is type of relationship is useful when you need all particles to change when one of them does), or individual (the hardest of all three to explain, but can be related to neural nets. When one entities attribute is a certain value, then another entities' attributes are changed). I believe these three types of relationships, are the only relationships needed to define most, if not all, particle systems. By allowing for generic functions, and functional parameters, my library allows for a completely generic and adaptable approach for any circumstances. This project is in it's final stages, and just needs an example executable to be created before I can release it on my portfolio page. The goal of this project, is to exemplify my knowledge of object oriented and generic programming techniques in C++.

My secondary project, is written in C, and will be used to exemplify my knowledge of multithreaded programming. Though not nearly as far along as my systems modeling library, this project will eventually act as an error system for flight or general transport situations. The idea is to use one thread to constantly update and monitor the status of various variables pertaining to the vehicle and it's travels, recognize when problems of errors occur, and then use another thread to allow the user or the built-in system to correct said errors while continually updating and watching flight variables with the original thread. Most transportation methods, especially that of flight, have a massive number of ever changing variables, that can quickly cause other errors when something goes wrong. This puts greater need on having a multi-threaded error-reporting system, as the program needs to not only correct errors as they occur, by also continually monitor all other variables to allow for the correction of multiple, back-to-back, errors that could elsewise be detrimental to the aircraft. This system will also attempt to be as frugal as possible with computer resources, as in practice one would be running such a program on a small embedded system built into a transportation vehicle. This project isn't nearly as complete, but I hope to have it finished by the end of Summer.

I'll be constantly updating on the progress of said projects.

Until then,
DevenJ

No comments:

Post a Comment