Stan presented second (in lieu of Tom) on his experiences with Git, a popular version control system. He also touched on a personal project, “Adventron.” You can read the notes below:
Version control allows you to control changes made to documents. This is commonly used when programming, and even more when there’s more than one programmer involved. There are different kinds of version control systems (Git, SVN, and others.) Stan focused on git, a particular version control system developed for controlling changes made to the Linux kernel. Some of the benefits of version control (or “revision control”) are:
- Professional organizations use version control. It allows for more than one person to work on a project without worrying about different versions floating around.
- Branches. You can separate known-good code from experimental code by “branching” into a new test environment. If your new changes are good, you’re able to merge them in. Otherwise, deleting a branch is easy.
- Commits. “Committing” your code allows you to log the progress you make while you change your code. Many commits are encouraged.
- Diff codes tell you what code you’ve added/deleted. You can see exactly what’s changed since your last commit and between commits.
- Super easy to revert code.
- Github gives you a place to push code to if you don’t have your own server, allows you to download your source anywhere, anybody can check out your code, big projects (like Facebook’s PHP to C code converter). Social pressure makes you a better, more pro-active coder.
There are different flows you can get into with git (a “flow” being how you work with the system.) GIT flow: make changes, git add (add to verson control), git status, git pull, git commit, git push. GIT can be run on many systems and frontends are available if you’re uncomfortable with the command-line. More resources:
Linus speaks to Google on git
Understanding Git Conceptually
Why Git is Better than X
Stan also discussed his progress on a game he’s working on titled “Adventron”. It’s a Java port of a game he wrote when he was younger. Some notes:
- Levels are stored in plain text
- Applets can’t read files on the server, unless the applet is signed
- Collision detection was slow, split map into quadrants
The development version is at http://projects.schwertly.com, and you can read his experience specifically on his blog post, “Lessons Learned Porting Adventron to Java“