With the rise in the usage of the internet, the need for digital communication is increasing day by day, this has only been accelerated by the current COVID-19 pandemic in 2020. More and more people are using chat applications to communicate with each other whether it is their loved ones or for discussing work with colleagues.
Since the last update, I have been able to implement cursor support for real-time text, support for multiple devices, and started with MUC implementation.
Since the last update, I have been able to make stale RTT disappear from UI and make Real-Time Text more realistic by matching the typing speed/pattern by accounting for the
wait action element. Receiving wait and pausing RTT, in particular, took a lot of debugging and some refactoring of code.
Till last week the option to change real-time text settings was available in the local settings dialogue. Since then I have been able to shift that option from local settings to beside the text input field as a radio button menu. This makes the settings option easily accessible.
As you may already know from my last week’s blog post, Real-Time Texting is working great for single user chats. Even though working great, some users may not want to enable RTT and stick with traditional texting or they may just want to receive but not send; so this week I worked on the option to give them this choice. We concluded that there should be a three-state option for RTT, namely:
It’s been two weeks since my last blog post update, so there’s a lot of ground to cover here regarding my progress.
Since the last blog, I have been able to integrate receiving real-time text in Dino. For that, I have implemented a receiving queue that first stores all action elements received from incoming rtt message stanzas in order. A queue is better than directly processing received action elements as the latter approach is prone to syncing issues. I’ve also implemented a basic method to counter out of sync issues by ignoring further rtt messages from a sender if the sequence is disturbed and will be resumed only when the event received is new. (More work needs to be be done to manage out of sync issues in further weeks).
In last week’s blog, I introduced you to message comparison and an optimized algorithm to compare between two strings already being present in Python, which is an implementation of gestalt pattern matching, an algorithm published in 1988 by Ratcliff and Obershelp.
It’s been a week and a half since I started working On Real-Time Text. Firstly I have established a framework to generate RTT message stanza and send them over the network. This includes generating relevant action elements as per requirement.