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

Wednesday, April 24, 2013

Welcome

Hello All,

My name is Deven Jarvis. I am currently a Junior at the University of West Florida, majoring in Computer Science with a minor in Computer Engineering. You'll find my few true passions in the computer science field strong, but my interests and skills to be many. I already have a website outlining my interests and skills, but thought it would be even better to have an actual blog where I can fluidly express my views within the field, share the skills I have developed, and update the world with progress on projects I am currently working on.

As far as passions go, I can generally sum them up within two fields: embedded software development, and large scale computations. Embedded systems are something I am highly interested in, and hope one day to work with developing software for embedded systems within the aviation industry (either passenger, or unmanned aircrafts). Due to this, you'll most likely find that many of my posts here are related to lower-level programming in C or Assembly languages, as I delve deeper into multi-threading, firmware development, and other hardware focused endeavors. As for my interest in large scale computations, this varies from computationally-intensive simulation development, to large data creation, manipulation, and analysis. Currently my focus is on a project involving said simulation interests, but am planning to move towards a big-data analysis project following completion of my simulation library.

As skills and interests are concerned, I have done a little bit of a lot of things. These include game programming, databasing (Oracle SQL work), web design (XHTML, CSS, PHP, Javascript), graphics programming, cryptography, computational mathematics, etc. Though my passions align with the two above topics, I am always eager to learn and try new things, or revisit old ones in a new way. I am hoping to write a few how-to's and such on here between project updates, and will most likely include various different skill sets that I find under-represented on current free online resources.

I claim at no point to be the best at anything. When you believe you're the best, you leave yourself no room to grow better. However, I do believe in my abilities, and my perseverance to learn and adapt to any and all new situations I find myself in. I hope to prove that so in the upcoming months as I update this blog. Next time I will give official introductions to my two current projects (I try to maintain two at any given time, within various, differing disciplines), and then follow that post with a tutorial of sorts.

Until then,
DevenJ