90s programming buzzwords galore.
- Changed Delete Paste feature to show the list of the currently logged-in user’s pastes, with the title, key, format, and creation date. (Previously it just expected you to remember the key.)
- Changed keybinding for Logout to Control-Shift-L. (Previously it was Control-Shift-1, for some reason that I don’t know.)
- Added command line interface.
- Added new global menu Text, and moved the Save and Load menu items into there.
- Added buttons to List User’s Pastes and List Trending Pastes to get the currently selected paste.
It’s been a while since I updated this last, but I’ve started working on a couple projects again.
- WeatherLog will be getting another release fairly soon, with the new data subset features as well as improved help files.
- PastebinGTK is getting an update as well, mainly minor usability improvements.
This is hilarious.
More info about this: http://goatstream.com/research/papers/SA2013/index.html
Recently I’ve been working on my least favorite part of programming: user interface design.
These are what I have so far for the dialogs to specify criteria for selecting a subset of the data:
This other one is the advanced dialog, and allows the user to specify from all of the criteria at once. The selection mode can be either “match all” (all criteria have to match for the data to be selected), “match at least one” (the data has to match at least one of the criteria), or “match none” (none of the criteria can fit the data). The comboboxes in the middle specify the conditions that have to be met (equal to, not equal to, less than, etc), while the entries specify the data to be compared. As shown in the screenshot, some conditions (between and outside) require multiple values, while others (equal to, not equal to) don’t require but can use them. The entries are not case sensitive.
So in the previous screenshot, the criteria will match data in which the temperature is less than 10 degrees, the precipitation type is snow,the wind speed is between 5 and 15 kph, the humidity is less than or equal to 67% and the cloud cover is anything other than sunny or partly sunny.
It’s not perfect, but it’s not bad for a start.
The code clean-up went pretty well. There are still parts of the code that are less than great, but on the whole it’s much better. (And I found quite a few bugs while working on that.)
- Total LOC of 1.8: 7280
- Total LOC of 1.9: 6240
- Total LOC removed: 1040
So I was able to remove about 14% of the code. And that doesn’t even take into account all of the changes that did not necessarily result in less code, just cleaner and clearer code.
Now that this is out of the way, I can start working on the data subsets, which I had planned for 1.9 but will now end up as 1.10.
- Minor improvements:
- The entire list of data is no longer refreshed when a new row is added.
- Fixed bug where Edit wouldn’t save the data.
- Import will now only prompt for overwrite confirmation if the current profile isn’t blank.
- Rearranged a few menu items.
- Fixed bug with Import as New Profile where the title would not be updated.
- JSON files are now the default when choosing a file to import.
- Exported JSON is no longer indented.
- Fixed bug with Import where the title would not be updated.
- Fixed bug where Import, Import and Merge, and Import as New Profile would not save the data.
- Fixed bug with Add Profile where the name would have whitespace stripped after it was checked to see if the name was valid. This caused issues where it would not catch that the profile already existed.
- Improved consistency of some dialogs.
- Code improvements:
- Moved launch and setup code into a new file
- Added function to update the title, so the code to do it each time can be simplified.
- Created file io.py for reading and writing profile files. Changes all functions that did these to use the new functions.
- Renamed import_append() to import_merge().
- Cleaned up lots and lots of code.
- Merged a whole bunch of the dialog classes.
I’m going to push off working on the data subsets (which I was going to do for 1.9) and instead have the next release be all code improvements. Currently there are large parts of the code that have issues; saying that it’s less than great would be a massive understatement.
- Major changes:
- Added the ability to merge profiles. Currently this has to be done two at a time, though I may add the ability to do more at once later.
- Switch Profile and Remove Profile now use listviews in the dialogs to show more than one profile at a time. They also have a second column to show the date the profiles were last modified.
- Added the ability to copy or more data to other profiles.
- Minor improvements:
- Remove Profile can now delete more than one profile at a time.