Saturday, February 22, 2014
Weekly project -- code to the interface, not the implementation
Remember rule #1 of coding for good Object Oriented Programming: code to the Interface, not the implementation. (Though sometimes, the implementation can be a good basis for a first version interface, maybe?)
Thursday, February 13, 2014
Weekly project -- Open Chess TD
Whether it be the occasional work on Project Euler, or playing around on my ocarina, or just reading up on a subject I'm not familiar with, I've always liked having something outside my normal work routine to work on, whether it's simply to practice my skills or to expand the picture of the world I can see. However, one thing I've always been bad about is letting the side projects be either a burden to me, or to just keep them in my head, where they do no good because I never work on them.
To that end, I'm going to start writing weekly on whatever side project I'm working on. It's mostly for the purpose of encouraging discipline, I need to work on my discipline, and Lord knows I need much more of that in my life.
So on to the star of this weeks post -- OpenChessTD. The TD here stands for Tournament Director (similar to WinTD, a commercial software that does the same thing I aim for with my software).
So up to this point, I've broken down the coding into several modules based on feature and place within the MVC protocol.
1. OpenChessTD-module
2. OpenChessTD-WebDriver
3. OpenChessTD-SwingView
4. OpenChessTD-Ear
5. OpenChessTD
So to break down the (eventual) function of each package:
OpenChessTD-module: This provides the data model functionality around which any front end (such as the SwingView) will have to send data through. It will also contain any function that is needed across all modules.
Completion -- ~90%
OpenChessTD-WebDriver: This takes the data passed from the user into the front end and launches a script that will automatically login to the USCF TD/Affiliate area and enter the tournament information, including time control, Player USCF ID, and match results.
Completion -- ~10%
OpenChessTD--SwingView : Provides a front end written with Java's Swing library.
Completion -- 0%
OpenChessTD : This modules is intended to eventually house an html/JSP frontend for the app.
Completion -- 0%
OpenChessTD-Ear: This is the EAR module needed to potentially run the app as a Java EE app. It also provides a central location for most dependencies.
Source code can be found here.
To that end, I'm going to start writing weekly on whatever side project I'm working on. It's mostly for the purpose of encouraging discipline, I need to work on my discipline, and Lord knows I need much more of that in my life.
So on to the star of this weeks post -- OpenChessTD. The TD here stands for Tournament Director (similar to WinTD, a commercial software that does the same thing I aim for with my software).
So up to this point, I've broken down the coding into several modules based on feature and place within the MVC protocol.
1. OpenChessTD-module
2. OpenChessTD-WebDriver
3. OpenChessTD-SwingView
4. OpenChessTD-Ear
5. OpenChessTD
So to break down the (eventual) function of each package:
OpenChessTD-module: This provides the data model functionality around which any front end (such as the SwingView) will have to send data through. It will also contain any function that is needed across all modules.
Completion -- ~90%
OpenChessTD-WebDriver: This takes the data passed from the user into the front end and launches a script that will automatically login to the USCF TD/Affiliate area and enter the tournament information, including time control, Player USCF ID, and match results.
Completion -- ~10%
OpenChessTD--SwingView : Provides a front end written with Java's Swing library.
Completion -- 0%
OpenChessTD : This modules is intended to eventually house an html/JSP frontend for the app.
Completion -- 0%
OpenChessTD-Ear: This is the EAR module needed to potentially run the app as a Java EE app. It also provides a central location for most dependencies.
Source code can be found here.
Subscribe to:
Posts (Atom)