Wednesday, March 26, 2014

Repository Hurricane

Of late, I've uploaded a storm of repositories.

In the past, I was trying to consolidate by language and even set up my own library through the use of sub-repositories. It has come to my attention that is not the typical way of using repositories, and that it is perfectly common to make a repository for each project, even if there is only one or two files in it. So that is what I'm attempting.

In any case, here are some repositories that have appeared recently.
  • C++
    • cooperative_tasks (public) - if you took Introduction to Mechatronics (ME 305) at Cal Poly, I would call this the C++ implementation of what you learned in that class. This is a bare bones implementation of a cooperative multi-tasking environment for those times when you don't need the complexities of RTOS's such as FreeRTOS or ChibiOS.
    • iopin (public) - this is an class for easily setting up the input/output pins on ATMega chips which makes setting or resetting the pin modes incredibly easy; all the bit-logic is taken care of internally, as well.
    • variable_16bit_pwm (public) - this class makes it easy to initialize and tweak a pwm signal using the 16-bit timer on ATMega chips; it is a little specialized at the moment and may have some bugs; I would like to take this concept and template or base-class it for use with 8-bit or other-bit timers as well.
    • varsofttimer (public) - this class, in short, is a way of (hopefully) trivially setting up a variable software timer with an endless number of events. This is definitely in the works and might benefit from simplification, but the idea is to descend a class from the base class and write the specific method which will be called by the interrupt routine; it uses linked-lists with a hardware timer to determine which event happens when.
  • Configuration Files
    • bash_settings (private) - I like my bash settings to be consistent between various operating systems, so this contains common files such as .bashrc, .bash_aliases, .bash_logout, etc. It also holds a script to "install" the files (by making symbolic links to them). I do (or will do) this for the other repos as well.
    • vim_settings (private) - the same idea applies here, but with my vim settings rather than my bash settings; I can get a vim environment up with all my preferred plugins up-and-running rather fast thanks to VAM, as well.
    • tmux_settings (private) - same idea as the above, but these settings are for tmux, which, if you haven't checked out, is a fantastic way to battle bad connections to an ssh login. I use this with the Raspberry Pi server. Side note: you may have to use screens if you are logging on to the Cal Poly servers (vogon, unix1, etc.) where you can't install programs.
    • mercurial_settings (private) - yup; same deal, but for my preferred Hg settings.
  • Other
    • preferred_PPAs (private) - PPAs are private repositories for code which may allow for more up-to-date code. For example, I like to get the most updated version of Vim, so I have to compile it myself since it is not yet packaged and distributed with Ubuntu. Mostly, this repo just contains a shell script that gathers up and adds private repositories if I don't already have them added. This is useful when re-installing or trying out a new Debian distro, but requires add-apt-repository.
The last five repositories, which have to do with my preferred configurations or repositories used, are all currently private. I might make them public, or just share them individually, if you or others are interested in browsing them.

1 comment:

  1. Uhh... please note that if a repository is empty (*cough*cooperative_tasks*cough*), it just means I haven't uploaded code yet. I will. Eventually.


Please keep your comments respectful and in the spirit of constructive criticism.