Category Archives: Feature Development

Posts about emerging feature in GradeL.

Falling Behind

It has been a busy summer and the new school year is already underway.  I’ve acquired a few new responsibilities, which have taken up more of my free time, leaving less time for my side projects such as GradeL and yard work. :)

I thank you for your patience and  hope GradeL users will remain patient as I try to catch up on requests for fixes and features.  Right now my focus will be on maintenance and bugs.  Then, as time permits, I’ll try to tackle additions. The irony is that part of my time is being taken up learning a new grade book program at work :)  Go figure.

More minor additions on the way.

Thanks to the requests of a user from the forum, I’ve made a few more additions to GradeL for the next release.  Many of these are already documented in the Wiki.

Now, when a student has comments entered for the current marking period, an asterisk will appear before the student’s name as a reminder to the teacher that the comments exist.

Asterisks appear before names of students with comments.
Asterisks appear before names of students with comments.

I’ve also added more information to the OnlineGrade export file.  For those familiar with the OnlineGrades file format, the assignment category now appears between the <EALR> tags.

The next release is being prepared and should be available sooner or later.  If you’d like a sneak peak, you can download the current snapshot of the executable archive or the source archive.  However, use these at your own risk.

Checking for Updates brings new dependencies.

Many of the programs I use these day provide a feature where they will update themselves or at least check to make sure the user is running the most current stable version.  I have added the latter to GradeL.

Now, in the Help menu, there is an option to “Check for Updates“.  When this item is selected, the program uses an HTTP request to check a file on my server, which contains the latest version number and compares it to that of the version being run by the user.

Check for Updates menu item.
Check for Updates menu item.

For those interested in the implementation, I originally just spawned an instanced of wget with the Gambas EXEC command and then opened the file, read the contents, and deleted the file.  Fortunately, after digging a little deeper in the Gambas documentation, I discovered the Gambas component gb.net.curl, which includes an HTTPClient object type.  You can use this object to retrieve an file via HTTP and store it in a string buffer.  The Gambas documentation provides a good example of what I did.

Message report the results of the update check.
Message reports the results of the update check.

So, although GradeL will not depend on wget, it will now require two more Gambas components, gb.net and gb.net.curl.  Look for this feature in the next release of GradeL.

Period & Exam Weights

The interface that I originally chose for editing period and exam weights was not great. I have updated the dialog so that it’s function is more natural and easy to navigate. The grid will size itself to the appropriate number of semesters and marking periods and then the use need only enter values between zero and one into the appropriate cells.

The new interface will be included in the next release.

Take care!

Flexible Grading Scale

I have been adding subtle improvements to GradeL recently. One that I think deserves mentioning at this point is the new flexible grading scale. In the past, GradeL had a fixed scale that required users to have 13 grades (A+…E), because that is the grading scale that I have to use. However, I realize that other users may have different requirements. So, when the next release is made public, users will be able to adjust the number of grades and the minimum percent to achieve that grade.

Here is a shot of the new dialog:

The spin control allows the user to change the number of grade needed and the grid will automatically resize when the number is changed.

Development Continues

Although this new school year has not provided me with a lot of time to work on GradeL, I have been making some progress. The current development version does run on the latest Gambas 2.10.2.

I have reverted back to a single file interface. My implementation of multiple windows for multiple files was buggy and difficult to maintain. I have added better support for recent files in the File Menu, which makes switching between class files quite easy and fast.

I’m also spending some time cleaning up my code so that it is easier to maintain. I hope that this process will result in a more stable piece of software. As soon as I feel that it’s ready to go, I release the next version. Stay tuned.

If you’d like to try out the latest development snapshot, you can download it here.

Saving Preferences

I’ve had various feature requests recently, but the two most requested are the weighted category fixed discussed in my last post, and the ability to save settings. I’m happy to report that the next release will automatically save preferences, grid size, and window location. Hopefully, I’ll get 0.8.13 release soon. No firm date yet.

More Work on Weighted Categories

I think I have solved the problem of calculating weighted category grades when a category is not used. For example, at the beginning of the year, you may not have given a test yet and want to report an accurate grade for your students. The fix will be included in the next release of GradeL. Stay tuned…

Building a GradeL deb Package

Well, I finally read up on creating basic deb packages so I can build debs for each new release. Turns out it isn’t that big of a deal. I used this How-To as a reference.

I successfully created a deb for the latest development snapshot of GradeL and installed it on an Ubuntu Fiesty box. I even removed all traces of Gambas to test that the dependencies would be resolved. I’m happy to report that everything worked like a charm.

So, the plan will be to release both the source tarball (as usual) and the binary deb for easy installation on distros like Debian and Ubuntu. Look for a deb with the next release!