komodoopenlab / typeover Goto Github PK
View Code? Open in Web Editor NEWTypeOver facilitates typing on your iOS device when using external switch interfaces compatible with VoiceOver.
TypeOver facilitates typing on your iOS device when using external switch interfaces compatible with VoiceOver.
this would reduce switch presses from the user
There are potentially millions of bigrams in a data file. We should to put them directly into the database as we read them in instead of using an intermediate array.
eg bill, Bill
Measuring the interval between two events using a NSTimer is inefficient and inaccurate (timer events may not arrive reliably, especially for fast timers). An alternative for measuring time intervals can be found here:
http://stackoverflow.com/questions/741830/getting-the-time-elapsed-objective-c
We don't currently go to the words page automatically after the first letter typed. Is this by design? It seems like a good idea, but we should probably give users the option to choose how many letters of a word they want to type before automatically going to the words page. The default would be two and the range would probably run from 1 to 4 inclusive.
When displaying a list of words, the button to return to the letters page should be in the "1" key position and highlighted by VoiceOver so that it is as easy as possible to return to the letters if your word isn't in the list.
We're not 100% sold on including OpenEars in the program. Before we install TypeOver on outside testers' devices, I think we should remove OpenEars from the project, at least until we're a little more familiar with its characteristics, stability, etc. The speak button can be greyed out, or pop up a message box saying "coming soon".
The word prediction SQL database needs an index created on the main words table to speed up searches. This only needs to be done once.
with explanations of each setting
I have a question about the code that runs on startup to check whether this is the first time running the app, and if so, saves some default settings. I thought that the default for a non-existent boolean setting would be false, in which case, this if statement would evaluate to false, meaning the code would never run:
possibly amalgamate backspace and delete word
this makes a lot of sense
it would mean switching to preview development tools but if we commit often
We need to modify the visual style of the words and letters command buttons to set them apart from the letter groups and word predictions. Right now they kind of melt in (especially if your word starts with the letter "L").
We need to make it possible to change the rate at which the letters scan by after selecting a letter group. These discrete time choices should match the times used by the Shield, which are (approximate values in milliseconds): 5000, 4170, 3470, 2890, 2410, 2000, 1670, 1400, 1160, 970, 810, 670, 560, 480, 390, 320, 270.
Ideally, we would have the same green progress indicator as on the main page to show you exactly what your current setting gets you.
specifically backspace, clear, shift and words/letters
We should probably have a second SQL database for user-added words and a way for the user to add those words. One possibility for adding them is to wait for the user to hit space after typing a word that isn't in the main database. We could change the label from "space" to "add" to permit the user to take an explicit action to add the new word if desired. We'll have to have a way of then including these words in the prediction keys at an appropriate frequency -- chances are they will be words that the user wants to use often. They should be predicted relatively readily.
There are four prediction situations that we need to respond to:
-no previous word, no context -- list blank
-no previous word, some context -- unigram only
-previous word, no context -- bigram only
-previous word, some context -- mix of unigram and bigram
This last situation requires an algorithm e.g., first fill the array with matching bigram words. If there aren't enough matching bigram words, fill the remaining spaces with unigram words, but don't duplicate any of the words that are already there.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.