Yesterday I realized that I write more about refactoring than implementation. To stay consistent today’s post is about…refactoring. Well, maybe not only about it, but mainly. In the previous week I finished following tasks:
- [F-4] Handling request result (response code, message)
- [F-8] Encapsulate logic from aksesi-gesture.js into a class
- [F-9] Secure initialization
- [P-1] Forwarding requests to an authentication endpoint
The 8th version of Java introduced a few really cool features. My favorites are streams and, connected with them, lambda expressions. In this article, I’ll show you some examples of refactoring existing code into the more modern version. All of the examples, except the 1st one, were inspired by the Aksesi Proxy source code.
Today’s post is a brief summary what has changed in recent days. Especially, at the weekend. As I explained in the previous post, I changed my workflow. Now I’m working in the task-oriented flow, with branching system on the GIT. Not only can you follow it with the Github repository but also with the Trello board.
Recently I spent some time thinking about the Aksesi project. I have made some decisions that I’m going to cover in the next post. The very first thing on my list was to remove all of the TODOs from the code and refactor awful parts. In this post, I’m going to show you what I’ve changed in last few days.
In the “At the red-green-refactor carousel – implementing conversion unit” post I described how I have developed basic functionalities for conversion unit. I also mentioned that there is no Spring Framework integration and why I decided to implement CU in that way. In the following post, I’m going to show you this mystic integration process.
It’s been a week since the last post. In the following one, I’m going to summarize you what I’ve changed it the Aksesi since then. I decided to refactor some parts of the frontend application. Moreover, I managed to simplify installation and configuration process. The major part of integration is done “in the background” and a user does not have to care about it.
When I came up with an idea of Aksesi project, I started to think about its security. First thought was that it will be as safe as HTTP(s) protocol is. Realizing it, I stopped any considerations. Three weeks later I realized that this solution will be very safe or, at least, safer than ordinary password usage.
In this post, I’m going to cover a few reasons why Aksesi will be safer than classic authentication which bases only on passwords consisting of characters.
After having gestures handled and stored, we are ready to create simple logic for the Conversion Unit. In the following post, I’m going to describe created architecture. All of the code was written with TDD, because one of my goals for “Get noticed 2017” competition is to become more fluent in using TDD as a daily basis. Up till now, it’s going well.
I think that it is the best time to connect oldschool-boring password typing with new-fresh-visionary gesture recognition. I hope that connection like this is going to provide appropriate usability for boys and girls, old and young.
In the following post I’m going to describe how to adjust code created in the Handling user gestures post to use both characters and gestures. I will also describe how I resolved usability issues and how the application handles the backspace key usage.
During the short planning session I decided that at first I should implement gestures handling in the front-end application. This feature will be developed with jQuery library.
There are a few strategies how to detect sequence of gestures. First one assumes that the application recognizes mouse movement and, basing on the time between each of the moves, is able to establish if a gesture drawing is completed. This solution has some limitations. The main one is a problem with splitting moves into separate ones. If a user moves a pointer to the top and backward, as preparation to the next gesture (due to e.g. screen resolution), then application won’t be able to recognize that the top-bottom move shouldn’t be treated as part of the password.