Release [Explorer's Application] Captain's Log

Gah... I don't mean to double post, but I can't seem to figure out how to edit a post (maybe it's cause I just registered on the forums). Just after my last post I started Captain's log up again and opened the database I was testing with, it worked fine when I was trying to reproduce the bug but now after restarting it's taken multiples of the same star type in one system and turned them into 1 in the overall star count.

Again, sorry for double posting.
 
Gah... I don't mean to double post, but I can't seem to figure out how to edit a post (maybe it's cause I just registered on the forums). Just after my last post I started Captain's log up again and opened the database I was testing with, it worked fine when I was trying to reproduce the bug but now after restarting it's taken multiples of the same star type in one system and turned them into 1 in the overall star count.

Again, sorry for double posting.

Okay I can kind of replicate your problem.

It's caused - believe it or not - by clicking the star icon too fast ;)

In order to generate the fancy icon in the jump table, I have to jump through a number of hoops, which involve; getting a blank icon, getting the number of that type of stars in that system, painting that number on the icon, generating a graphical mask of that icon (so I can make its background transparent), then grouping that icon with any other star type icons for that system.

This all takes a certain amount of time to generate - it's why loading and populating the Jump Table takes so long, upon initial startup of CL.

Unfortunately, I didn't think to block any "button clicked" signals whilst generating this icon - so it's possible to create a race condition between the user of CL clicking the PR icon rapidly, and generating the Jump Table icon with the count :)

The solution is - at the moment - to click slower ;)

I'll add in signal blocking to those icons and the fix will be in for the next point release.

Meanwhile - try restarting CL and see what the count is - and adjust the count up or down to suit the real data - more slowly ;)

Regards
 
Just want to say thank you for the last update and especially for adding functionality to manually start the parser.
Works fine with my setup running CL on a separate computer.
 
Okay I can kind of replicate your problem.

It's caused - believe it or not - by clicking the star icon too fast ;)

In order to generate the fancy icon in the jump table, I have to jump through a number of hoops, which involve; getting a blank icon, getting the number of that type of stars in that system, painting that number on the icon, generating a graphical mask of that icon (so I can make its background transparent), then grouping that icon with any other star type icons for that system.

This all takes a certain amount of time to generate - it's why loading and populating the Jump Table takes so long, upon initial startup of CL.

We implemented a number of QImage/QPixmap caches for our generated icons in KDE - here's a link to the Qt4 C++ sources of one in case you want to adapt it for CL: http://api.kde.org/4.x-api/kdelibs-apidocs/kdeui/html/kimagecache_8cpp_source.html
 
We implemented a number of QImage/QPixmap caches for our generated icons in KDE - here's a link to the Qt4 C++ sources of one in case you want to adapt it for CL: http://api.kde.org/4.x-api/kdelibs-apidocs/kdeui/html/kimagecache_8cpp_source.html

Thanks for that suggestion :)

Unfortunately, caches are not going to work in this case.

In order for me to dynamically update the star count-per-star-type, the star icon with the count of stars in the jump table is generated dynamically, according to the number of stars of that type registered for that particular system in the jump table. This is done for each type of star registered for that system, and for each jump in the table.

If a user goes to an earlier jump, to - say, correct the star types and amounts for that system - upon each click to either increment or decrement a star type, I have to rebuild the one or more "count icons" in the jump table for that jump/system.

Now, I could probably implement some kind of Clever Caching Thing, and keep a cache of previously generated icons - but then I've got even more problems than I have currently. And to be frank, it's probably over-engineering a solution to the problem.

I've just thought of another possibility. Rather than dynamically generating a pixmap, I could probably do what I do with the clicky-input stars on the right-hand side. That is, I cheat and use QToolButtons for those, set an appropriate pixmap, and bung the text to the side or below. But I think I tried that approach originally, and for some reason the text wouldn't render in the centre of the QToolButton when it had a pixmap set, so I'd have to compromise and have the count underneath or to the side of the button. Since I think having a star count in the centre of the icons looks cool, and also saves space, that's why I settled for the dynamic generation of pixmaps in the end.

I'll have another go at using QToolButton again - my memory of all this is hazy since I got the current system working - but I'll have to try something to speed up the initial jump table population eventually. Once you get to a couple of hundred - or thousand - jumps, all with star types registered in each, initial loading after starting CL gets slow. And I've ran out of tricks on the Python side of things to speed that up ;)

If I can get text rendering properly in a QToolButton with a pixmap set, then this would probably speed things up a lot. Then again, I'd have the problem of keeping track of thousands of dynamically generated QToolButtons, all needing a unique name. So we're back to square one; what's better - dynamically generated pixmaps bunged into a custom QWidget then shoehorned into a QTableWidget row, or trying to keep track of potentially thousands of QToolButtons? :)

After typing that lot out, I've kind of came to the conclusion that short of rewriting CL in C++, there's no awesome way of doing this other than what I've already done :) (Plus, my C++ is rusty to the point of uselessness).

There is another possibility, which is to compile the Python into C using Cython then compile the C to an exe. I've done this before, and even wrote in StackOverflow on how to do it. But for CL it's going to be a PITA - and I've only ever done that for Linux, not Windows.
 
Okay I can kind of replicate your problem.

It's caused - believe it or not - by clicking the star icon too fast ;)

In order to generate the fancy icon in the jump table, I have to jump through a number of hoops, which involve; getting a blank icon, getting the number of that type of stars in that system, painting that number on the icon, generating a graphical mask of that icon (so I can make its background transparent), then grouping that icon with any other star type icons for that system.

This all takes a certain amount of time to generate - it's why loading and populating the Jump Table takes so long, upon initial startup of CL.

Unfortunately, I didn't think to block any "button clicked" signals whilst generating this icon - so it's possible to create a race condition between the user of CL clicking the PR icon rapidly, and generating the Jump Table icon with the count :)

The solution is - at the moment - to click slower ;)

I'll add in signal blocking to those icons and the fix will be in for the next point release.

Meanwhile - try restarting CL and see what the count is - and adjust the count up or down to suit the real data - more slowly ;)

Regards

Thank you! However that is not the problem I'm experiencing. I can replicate my problem by making a new database, entering some stars: One system with multiple of the same star type, then another with one or multiples of that star type, and then exiting CL. Next time it loads up the total star count takes the previously correct total and only counts 1 of the star type per system. And since I'm terrible at explaining things here's some pictures, cause everyone loves pictures :D

The first one is the database just after creating it and entering some stars, it shows the correct total for O type stars

Total Star Count Before Exit.JPG

The next one is the same database after exiting and restarting CL, here it changed the total for O type stars to 2. (And I just now noticed it also changed the estimated value :p)
Total Star Count After Exit.JPG

I apologise in advance if this is something that happened on my end (maybe I installed it wrong :/). In either case it's not really much of a problem, and I wouldn't even have noticed it if I didn't like to keep track of how many lvl 3 scans I do :D

Thanks!
 
Last edited:
Thank you! However that is not the problem I'm experiencing. I can replicate my problem by making a new database, entering some stars: One system with multiple of the same star type, then another with one or multiples of that star type, and then exiting CL. Next time it loads up the total star count takes the previously correct total and only counts 1 of the star type per system. And since I'm terrible at explaining things here's some pictures, cause everyone loves pictures :D

The first one is the database just after creating it and entering some stars, it shows the correct total for O type stars

View attachment 52202

The next one is the same database after exiting and restarting CL, here it changed the total for O type stars to 2. (And I just now noticed it also changed the estimated value :p)
View attachment 52203

I apologise in advance if this is something that happened on my end (maybe I installed it wrong :/). In either case it's not really much of a problem, and I wouldn't even have noticed it if I didn't like to keep track of how many lvl 3 scans I do :D

Thanks!

Ouch! >.<

Heheh - I'll see if I can replicate that one too :)

Thanks for your patience in explaining ;)

EDIT:

Okay. I immediately spotted the first error.

First I created a new database, and scanned and imported all netlogs to populate it. Then I added a Neutron star to the first entry (which happened to be Eravate in the inhabited bubble). It showed the 1 neutron star (I know Eravate doesn't have a NS but it's just a dummy DB after all ;) ).

Then I switched to a different DB, and back to the test one. Instead of counting 1 NS, it counted 6 of them - that's because I've been to Eravate 6 times - BUT - it should only count Eravate once. That didn't show up during my testing because I've been out exploring whilst programming CL and of course I've been only visiting new systems.

Oops! *cheesy grin*

I'll iron out that one.

I'll also look to see why there's odd behaviour after creating a new DB as well.

I'll let you know what I find.

Thanks for the feedback - it's really valuable in tracking down these annoyances!

Regards
 
Last edited:
I think this tool is great for a lot of explorers, unfortunately it's entry of scans is clunky and slow and does not meet my needs. I am glad that it exists and Kudos to Gener-Hofoen for Developing it for the community. We have so many talented people making great programs to help all of us, I am glad that so many find it so useful.

I will keep checking up on it to see how it progresses and maybe it will be a good match for me at a later date.
 
I think this tool is great for a lot of explorers, unfortunately it's entry of scans is clunky and slow and does not meet my needs. I am glad that it exists and Kudos to Gener-Hofoen for Developing it for the community. We have so many talented people making great programs to help all of us, I am glad that so many find it so useful.

I will keep checking up on it to see how it progresses and maybe it will be a good match for me at a later date.

Thanks!

And I agree - the input method is clunky and placeholder - will be improved Soon[tm] :)
 
UPDATE : New version released : 1.0.1 ("Brown Paper Bag" release)

1.0.1 "Brown Paper Bag"

Changelog


- Removed the bit of code that made the "Populating Jump Table" message visible too early in the program's state (t'was one lousy line I neglected to remove which was a legacy from an older version of CL).


- Make sure we only count a system's stars once when initially loading the Jump Table, as you can jump into the same system more than once. (Derp)


- Update star icons in the Jump Table where there are multiple instances of the same System. So if you now add and remove stars from, for example Eravate, and you've jumped into Eravate 15 times in the Jump Table, those star icons will be updated in those 15 rows in the table. Same goes for removing stars (e.g. making an adjustment or correction). This ensures the Jump Table is adjusted in a consistent manner.


- "Button clicked" signals are now blocked for all star increment/decrement buttons, until processing of the signal is completed. This ensures there are no race conditions if the user is "rapid-firing" the buttons ;)


- Miscellaneous internal program improvements and fixes.
 
Could the one person that downloaded 1.0.1 just now, please re-download that file?

There was a small issue with it that I've just fixed and re-uploaded to my server - sorry about that ;)
 
Many thanks for this app, I love how I can now see where I've been and what I've found! Plus I don't have to write everything down any more :D

One quick question (and I haven't tried since the update) - is the star count supposed to update after every system? I'm only seeing an accurate count after I restart the app, using the default DB.
 
Many thanks for this app, I love how I can now see where I've been and what I've found! Plus I don't have to write everything down any more :D

One quick question (and I haven't tried since the update) - is the star count supposed to update after every system? I'm only seeing an accurate count after I restart the app, using the default DB.

Can you tell me when you downloaded v1.0.1? You might be that one person I mentioned earlier who should re-download and install 1.0.1, as this was the "issue" I spotted right after making 1.0.1 live ;)

EDIT: Damnit! No you're right! Damn damn damn....

Expect a 1.0.2 soon :-/
 
Last edited:
UPDATE : New version released : 1.0.2 (The "One Little Mistake..." release)

1.0.2 "One Little Mistake..."


Changelog


- Absolutely ensure adding a star increments the total star count.
 
Much kudos for the quick update :cool:

Well like I say, for me it's a matter of pride; I take so long in figuring out how to put New Things into the program. It's just nice to see it all Working As Intended. And to have a silly thing like the one line of code responsible for updating the "total amount of stars" being placed at the wrong place in the code which meant that a cursory test worked but it didn't work for systems which didn't have any stars yet, that's annoying! :)

Regards
 
Back
Top Bottom