{"id":551,"date":"2014-04-21T05:00:30","date_gmt":"2014-04-21T04:00:30","guid":{"rendered":"http:\/\/phoenixgamedevelopment.com\/blog\/?p=551"},"modified":"2014-04-26T23:37:06","modified_gmt":"2014-04-26T22:37:06","slug":"p-140-electronic-logbook-update-2","status":"publish","type":"post","link":"https:\/\/phoenixgamedevelopment.com\/blog\/p-140-electronic-logbook-update-2\/","title":{"rendered":"P-140 Electronic Logbook Update 2"},"content":{"rendered":"<p>This week, I implemeted a a &#8220;search tag&#8221; system in the program, which allows the user to tag a post with a list of key words and phrases, which are then searchable using the search function. I am also putting in a custom tag system, where users will be allowed to specify a field, either in the new Journal screen, or in the post entry screen. These custom tags are searchable, and can be used to customise a journal according to project specific needs, for example, a &#8220;supervisor&#8221; tag could be added, or a &#8220;Final Release Date&#8221; tag could be used. These tags can be modified per post, or per journal.<\/p>\n<p>I also began work on a predictive text system for these tags, where the user will be able to quickly choose a tag by typing it letter by letter, and having a list of compatible tags appear to the right of the text input screen.<\/p>\n<p>I am experimenting with various different methods of searching and displaying information in this project, and predictive text is something I have never done before, so it will be interesting to see how it turns out.<\/p>\n<p>I spent the majority of my time, however, working on the encryption system for this project. After some research, I chose to use <a href=\"http:\/\/www.cryptopp.com\/\">crypto++<\/a>. This is an open source, (Under the Boost Software Licence version 1.0) well-supported and fully-featured encryption library for C++.<\/p>\n<p>However, I ran into some irritating issues implementing this in Qt. I was having a lot of linking issues, caused by the build setting being different from Visual Studio, where I compiled the crypto++ library, to Qt, where I am developing my program. There are several ways to use crypto++, static linking dynamic linking, debug, release, etc etc. I had to try a number of different linking, additional dependencies, and build setting before I could finally get it to work, but eventually, I did, and I now have a working encryption solution.<\/p>\n<p>I am not sure if I will be able to implement full data verification and integrity checking like I spoke about in a previous post (preventing the user from altering their own files), but at least I will be able to offer solid, easy to use, encryption for data security.<\/p>\n<p>Next week, in addition to fully implementing encryption and some other minor things, I will have to start working on some kind of client\/server sync system to allow the user to use multiple versions of the program on multiple machines without having to have a dedicated server set up to sync both files.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_10-Apr.-21-02.31.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-555\" alt=\"ScreenHunter_10 Apr. 21 02.31\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_10-Apr.-21-02.31-300x151.jpg\" width=\"300\" height=\"151\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_10-Apr.-21-02.31-300x151.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_10-Apr.-21-02.31.jpg 677w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_08-Apr.-21-02.31.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-554\" alt=\"ScreenHunter_08 Apr. 21 02.31\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_08-Apr.-21-02.31-300x151.jpg\" width=\"300\" height=\"151\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_08-Apr.-21-02.31-300x151.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_08-Apr.-21-02.31.jpg 677w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_12-Apr.-21-02.31.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-553\" alt=\"ScreenHunter_12 Apr. 21 02.31\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_12-Apr.-21-02.31-300x140.jpg\" width=\"300\" height=\"140\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_12-Apr.-21-02.31-300x140.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_12-Apr.-21-02.31.jpg 955w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_11-Apr.-21-02.31.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-552\" alt=\"ScreenHunter_11 Apr. 21 02.31\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_11-Apr.-21-02.31-300x243.jpg\" width=\"300\" height=\"243\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_11-Apr.-21-02.31-300x243.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/04\/ScreenHunter_11-Apr.-21-02.31.jpg 416w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week, I implemeted a a &#8220;search tag&#8221; system in the program, which allows the user to tag a post with a list of key words and phrases, which are then searchable using the search function. I am also putting in a custom tag system, where users will be allowed to specify a field, either [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-551","post","type-post","status-publish","format-standard","hentry","category-software-and-games","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"aioseo_notices":[],"builder_content":"","_links":{"self":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/551"}],"collection":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/comments?post=551"}],"version-history":[{"count":3,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/551\/revisions"}],"predecessor-version":[{"id":560,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/551\/revisions\/560"}],"wp:attachment":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/media?parent=551"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/categories?post=551"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/tags?post=551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}