Hello All,
I am officially announcing m impending alpha release of my C++ particle systems modelling library: SysMo. This library, as described before, utilizes advance generic programming and OOP techniques to allow for an extensible library that can be modified for nearly any simulation purpose. The simplicity and generic concept of this library, allows it to be utilized with other C++ libraries seamlessly.
The concept for the library originates from my recent introduction with entity relationship database diagrams. The library implements analogously the concepts of entities, attributes, and relationships but with respect to simulation rather than databasing. These concepts are found to be highly extensible, and can be utilized by developers looking to program:
-Theoretical/Scientific Modelling
-Real World Simulations
-Various Game types
-Data Management
-etc.
I truly believe the limits to the applications of this library only exist within the developers imagination and ingenuity.
By utilizing generic programming concepts, developers can easily extend relationships to utilize their own, unique functions in any situation. I believe I will write a tutorial shortly on how to use the library, including how to add functions of your own to use with the library.
The library is currently not a final release, and is still in alpha stages. Entire programs can be built with the library, but many bugs and exceptions must be considered when writing those programs. There are also a few, processor heavy functions, that I would like to make more efficient in the future. To allow for a stronger focus on this library, so as to achieve a high level of polish in all aspects, I will put previously mentioned project ideas on hold to focus on making this library the best it can be. I truly believe this library has the potential to be very impactful and useful to many developers out there. So far, I have yet to be able to find another library like it.
I will also be spending my time programming more examples showing off the library and it's many potential uses. Right now I am using SFML for the graphical representation of simulations.
If anyone is interested in getting more information on the library, or would like to request a specific tutorial or example utilizing the library, just let me know in the comments.
The alpha release of the SysMo library will be uploaded to: https://sourceforge.net/projects/sysmolib/ later this week. An extremely simplistic example of a win32 program utilizing the library can be found in the portfolio section of my personal webpage: http://students.uwf.edu/dkj3/ .
Until then,
DevenJ
Deven's Programming Blog
Sunday, June 2, 2013
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
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
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
Subscribe to:
Posts (Atom)