win32
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v182/Hydrus.Network.182.-.Win32.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v182/Hydrus.Network.182.-.Win32.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v182/Hydrus.Network.182.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v182/Hydrus.Network.182.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v182/Hydrus.Network.182.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v182.tar.gz
I had a pretty good week. I got a lot of good work done, though not what I expected. I have decided to work more on fixes and cleanup in the coming weeks.
unicode pls
Even after last week's hotfix, there were more unicode problems. Apparently there was a (possibly long time?) problem with printing certain status updates to the log for people with unusual number localisations or service names. I now send all to-be-printed strings through a single system that will detect unicode and convert to bytestreams, so these latest problems appear to be fixed.
Please let me know if you get any new unicode en/decoding errors!
gui stuff
I went over all my custom drawing code, improving when and how certain frames of animations and ratings and so on are logistically put onto the screen. The time improvement isn't vast, but the code flow is now more sensible, with less duplicate and needless redrawing, and things that need to draw fast, like big high fps animations, are just a little bit smoother. Several previously flickery things are now all correctly double-buffered, as well.
Page Up/Down now work for the main thumbnail view.
Also, the animation scanbar will now draw a little darker if the animation is paused. Let me know what you think!
better logging
The client now uses the same new logger I recently wrote for the server, which means every object to be printed gets prepended with a timestamp, and if you happen to run the client from a terminal, the log will clone to stdout on the terminal as well.
Also, hydrus services will log every request they fuflill in the form 'PORT METHOD PATH HTTP_CODE in TIME TOOK'. This mostly means the server, of course, but the client will do it for its local file and thumbnail service and booru, if you happen to use those. I hope this helps you see better what is going on and how much CPU is being used. Also, backing up the server is easier–it now just makes a copy of the important stuff to a new server_backup folder, printing its backup progress to the log.
full list
- all printing to the log should now be unicode safe
- some other, miscellaneous file-write locations should now be unicode safe
- cleaned up some now-redundant unicode-bytestring conversion error handling
- the animation scanbar will now draw a little darker while the animation is paused
- the client now uses the same new log object as the server, so all logged data will be copied to the terminal, and all logged statements will be timestamped
- the client and server's boot and exit statements are more harmonised
- server backup is more log-verbose
- server backup now makes a simple copy to 'server_backup' folder–no more _backup nonsense
- all serverside requests will now print a line in the form 'PORT METHOD PATH HTTP_CODE in TIME TOOK' to the log
- page up and down now work (again?) for the thumbnail view. adding shift also works for selecting a page at a time
- improved some animation painting logic
- improved some rating control painting logic
- improved splash screen painting logic
- improved all other, misc painting logic–many things should flicker less or render just a little quicker
- ratings hover window will no longer re-layout (causing flicker) on ratings set
- improved some media canvas painting logic to de-jaggify some zooming
- in the manage options dialog, tag-related gui options are moved from the gui panel to the new tags panel
- added 'apply all parents to all services' option to the tags panel
- the delete key now removes active search predicates and tags in the manage tags dialog
- fixed webm link parsing for rule34hentai.net
- if you attempt to petition multiple tags, you will now be presented with a dialog asking you if you want to use the same reason for all the petitions
- edit import folder dialog now has scrollbars and will resize itself based on your monitor size
- if the static ffmpeg executable is absent from the bin folder, the client will now attempt to just call 'ffmpeg' in the normal system path
- fixed some 'None media' data calculation bugs when media viewer closed during very fast slideshow
- fixed a 'None media' mouse position bug when media viewer closed during very fast slideshow
- all wx timers will explicitly stop on exceptions (which should reduce some types of error spam)
- refactored client hydrus network session manager to a better position
- wrote a better wma/wmv determining test using ffmpeg
- refactored cv2 (OpenCV) out of the server's import tree
- fixed some server boot crash error handling
- cleaned some autocomplete matches-compiling code
- deletepath and recyclepath will no longer throw an error if the path does not exist
- server_messages folder is no longer referenced in the code–if you have it, feel free to delete it
- memory cleans up a little faster after gui page deletion
next week
I got a bit frustrated this week, as I made very little ultimate progress on my github queue and also just couldn't find the raw time to churn out an IPFS prototype. I have about 75 things in my 'this existing thing needs attention' to-do list, and that number has only been growing. I have been underestimating the time it takes to add big new things, and at the same time I still want to finish my big rewrites for the subscription system and shortcuts and gui layout harmonisation. I have felt a bit rushed for a while now, which is all self induced.
So, as I said above, I think I am going change up my schedule a bit. I will concentrate on code cleanup and test improvement and bug fixes until I am overwhelmed by new things to add rather than old things to fix. I still want to work on small new things, like simple options and keyboard shortcuts, but I will leave drag selection and mass dupe detection and adding sound and IPFS integration and streaming autocomplete results and tag clouds and ugoira support and OR searching and all the rest of the ambitious and exciting stuff until I have time and brainpower to do them well.
Please do keep contributing ideas and discussing new things–writing down good suggestions is the easy bit! But I will try to temper my enthusiasm to 'that's a great idea, I have added it to the list' more often than 'that's great, I'll start work on it right away!'.
When I am in a position to work on something big and new, I think I will open a poll with like twenty options, so people can vote on what they want.
Anyway, having said all that, I do actually want to add swf thumbs next week! It shouldn't be too difficult, as I've already found/compiled a neat exe for all the platforms called swfrender that seems to work well. I've put it in the bin folder of this release if you want to have a play with it.