I spent some time improving the PII analysis user documentation I've written recently. The documentation is a good intial description of PII analysis functions and I merged this into the dev branch.
My next task is to add cases to the client test harness for testing "httpspii" scenarios. I created a new branch for this (httpspii_test_harness) and hope to start work on this tomorrow.
I presented my paper at the conference this afternoon, and think I went ok. I had good questions from the audience and plan to meet with one of the PhD students from my faculty next week who is doing a project which could overlap with mine.
Most of today was spent working on the HTTPS PII test cases in the Android test harness. I did break my no 1 rule when developing - make small changes and build and test often ... and now I am paying for it. I was over confident and felt I know the Android test app very well, and made a heap of changes before I built the APK and tested it.
I find Android applications tricky. On a few occasions the IDE has flagged no problems and the app has built cleanly, however when I've run the application in my test setup the application has crashed. On most occassions I've tracked the issue down to code which doesn't look like it should be an issue (it could be my lack of knowledge though).
I'll keep experimenting - this could be a good chance to try and test the app in the (Android Studio) IDE app emulator. The difficulty is I need to emulate the MitM app also plus setup a OpenVPN connection to the server. A another simpler option is to add better error handling and messaging.
This evening, I started making headway on the actual Kalman filter code.
Over the last few weeks I was unable to post my updates as blogs due to problems in uploading the same.
I have made a lot of progress in my project including many new additions and modifications to the base design of the compiler. The tool now takes a definitional tree and produces the object code in Ruby. This object code is executable. Currently the entire model is designed in Ruby but there are facilities to port the object code to any other language due to abstraction of data. Further is object code is executable and the expected output of the input program is obtained by loading the object code file into a Ruby interpreter.
Sample object code for append can be found here
I'm currently working on wrapping up stuff for the first major version release of the compiler post which a frontend for this compiler(using JSON) will be designed.
I've been debugging my unit test. And it was difficult to figure out if the unit test was broken or the code was broken. I got feedback on my code review, and I need to change all my python "tabs" in spaces, which I think I can do globally. I also had to fix the logic of the test, and because a test couldn't run although I wrote it correctly, the failure of the test showed a flaw in the main function. I'll need to rewrite the main function to parse urls with a different order of operations.
I am working on diagram to diagram connections. The connections window can have two diagrams to connect visual elements in both diagrams. I am trying to reuse code from the main window especially event handlers since the main window can also have two diagrams. I am creating generic-helper functions to be used by both the main and connections windows.
The peer code review will be ongoing but I did a consultation with another mentor about making weblogo "Fail Gracefully". To make WebLogo more stable, I'll have to make changes to the build procedure to add a requirements.txt and serve the dependencies from the server. I was told it wouldn't really add that much weight to the application. Also I spent time figuring out the wsgi path error for aws. It looks like i'll have to add some directories that as specific to AWS's elasticbean services to make it work. Even then, I might still need to consult an AWS engineer b/c the WebLogo's use case is very particular.
I added a drop down list to change the diagram on the connections window; This took a long time because of an error I finally fixed. I am also trying to find a good module/api for changing the colors of diagram elements. I have three colors that the user can change (hover color, selected element color, and highlighted color).
I prepared the function I wrote for a peer code review presentation I will be doing tomorrow. I added documentation to the function elements, and tidied up the function so it looks like "clean" python code. I also wrote of a draft of a unit test for the function. I need clarification on "writing a test that fails" from the main author. I'm a little turned around on how a successful test is one that fails the function. I think I followed the pattern correctly from the Python docs, but choosing the right "assert" function was confusing. Why are coding docs so hard to read? So many words and so little communication of information.