It has been some time since my last post and the MoneyJarWeb project has had to be put back some time. This is largely because of house moving and holiday going. Suffice to say I am now back to work.
Creating a Build & Web Server
So the past few weeks I have been getting to grips with setting up my development environment. Previously I had been working entirely out of the eclipse IDE and uploading my work to my private GitHub repository. This meant I could synchronize my work between my laptop and my home PC. However, I had always wanted to have a build server to automate and test my builds, and the past few weeks I have been working towards that goal.
Unfortunately I don’t have any money to buy or build a dedicated server. I have some old unused computers but they are the old generation Pentium 4’s which consume a lot of power and generate a lot of noise. So as a compromise I am using my home PC as a build server. I have also configured my PC to act as a web server using Apache and Tomcat.
Over the last few weeks I have been getting to grips with Ant and Jenkins, to automate my builds and to deploy my application to my home web server. It took a few days to figure it out but I think I have finally got it all working.
Now, I can wrote code on any device, upload the working code and tests to GitHub. This will notify Jenkins which is installed on my web server that the source code has changed which will then trigger a build. It will then build, test, and deploy the application to my web server which is then immediately available. Now that it is configured, there is very little I need to change with each new feature. It will automatically, build, test, and deploy my application, leaving me to focus on more important things; such as, designing my program, and writing code.
There has been a lot to learn, and fearing that I’ll forget these things too quickly I have opted to start writing mini self-tutorials on this blog. Originally I was using MediaWiki to keep all my acquired knowledge in one place, however I have since found it too much to maintain and organize. By transferring this knowledge to my blog it allows me to take advantage of the WordPress tagging and category system. Making my knowledge base easier to navigate and easier to maintain.
These tutorials will mostly comprise of code snippets and explanations to myself for future reference. Hopefully they’ll be of use to other people as well, but mostly they’ll act as a reminder for my future self.
It’s a problem I have been struggling with, knowledge I had acquired weeks or months ago I soon forget and then find myself learning the same things over and over. Particularly things that I use less frequently, such as, SQL queries, Git Commands, Emacs Commands, and how to upload files via a HTML form. By writing tutorials I hope to be able to retain the information better, and failing that, have a place where I can quickly reacquire that knowledge.
Over the next few weeks I’ll add new posts and reference material to remind myself how to use write an Ant buildfile, as well as useful HTML/JSP snippets that will come in handy in other projects.