Update - Methodolody
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
auto/
|
||||
/_minted-thesis/
|
||||
|
@ -1,15 +1,44 @@
|
||||
% MORE INFO
|
||||
% WRUED: https://www.ccohs.ca/oshanswers/diseases/rmirsi.html
|
||||
|
||||
\section{Literature Review}
|
||||
% To better understand which metrics and methods are meaningful in the domain of keyboards and especially when
|
||||
|
||||
% To investigate whether or not solely the actuation force of individual keys can make a difference in terms of efficiency or satisfaction an ....
|
||||
\subsection{Work Related Upper Extremity Disorders}
|
||||
\label{sec:wrued}
|
||||
\Gls{WRUED} is a term to describe a group of medical conditions related to
|
||||
muscles, tendons and nerves in shoulder, arm, elbow, forearm or hand, such as
|
||||
e.g., \gls{CTS}, \gls{RSI}, tendonitis, tension neck syndrome, etc. Symptoms of
|
||||
\gls{WRUED} are aching, tiredness and fatigue of affected regions that either
|
||||
occur while working or even extend to phases of relaxation. A common way to
|
||||
treat \gls{WRUED} is to avoid the potentially harmful activities that cause
|
||||
discomfort in affected areas \cite{ccfohas_wrued}. Pascarelli and Hsu reported,
|
||||
that out of 485 patients with \gls{WRUED} 17\% were computer users
|
||||
\cite{pascarelli_wrued}. Since computers have become an essential part of many
|
||||
jobs in almost any sector of employment, restrictions of computer related
|
||||
activities would result in either reduced productivity or the complete inability
|
||||
to fulfill required tasks, which in the worst case could require a change of
|
||||
profession \cite{ccfohas_wrued}. Potential problems with current keyboard
|
||||
designs and possible solutions are discussed in the following sections.
|
||||
|
||||
\subsubsection{Relevance for this Thesis}
|
||||
\gls{WRUED} are a serious problem of modern society and since there is evidence
|
||||
pointing towards computer related work to be a possible factor for these
|
||||
diseases, it is likely that especially keyboards, as the main input device, are
|
||||
responsible for a portion of people affected by \gls{WRUED}.
|
||||
|
||||
\subsection{Keyboards and Keyswitches}
|
||||
\label{sec:kb_ks}
|
||||
\subsubsection{Keyboard Models and Layouts}
|
||||
\label{sec:kb_layout}
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{images/keyboard_models.jpg}
|
||||
\caption{Different keyboard models}
|
||||
\caption{Different keyboards, including alternative split models, smaller form
|
||||
factors and traditional layouts such as ISO/IEC 9995 \cite{iso9995-2} and
|
||||
ANSI-INCITS 154-1988 \cite{ansi-incits-154-1988}}
|
||||
\label{fig:keyboard_models}
|
||||
\end{figure}
|
||||
|
||||
@ -47,10 +76,10 @@ layout of the keyboard but rather a personal preference. As seen in Figure
|
||||
\ref{fig:keyboard_models}, there are also non standard physical layouts
|
||||
available which are often designed to improve the posture of the upper extremity
|
||||
while typing to reduce the risk of injury or even assist in recovering from
|
||||
previous \gls{WRUED} \cite{ripat_ergo}. Those designs often split the keyboard
|
||||
in two halves to reduce ulnar deviation and some designs also allow tenting of
|
||||
the halves or provide a fixed tent which also reduces forearm pronation
|
||||
\cite{baker_ergo, rempel_ergo}.
|
||||
previous \gls{WRUED} \cite{ripat_ergo, tittiranonda_ergo}. Those designs often
|
||||
split the keyboard in two halves to reduce ulnar deviation and some designs also
|
||||
allow tenting of the halves or provide a fixed tent which also reduces forearm
|
||||
pronation \cite{baker_ergo, rempel_ergo}.
|
||||
|
||||
\subsubsection{Membrane Keyswitch}
|
||||
\label{sec:mem_switch}
|
||||
@ -58,13 +87,13 @@ the halves or provide a fixed tent which also reduces forearm pronation
|
||||
Besides the exterior design of the keyboard, there is another part of
|
||||
interest—the keyswitch. This component of a keyboard actually sends the signal
|
||||
that a key is pressed. There are different types of keyswitches available to
|
||||
date. The more commonly available ones are scissor switches and rubber dome
|
||||
switches which are both subsets of the membrane switches. Scissor switches are
|
||||
often found in keyboards that are integrated into notebooks while rubber dome
|
||||
switches are mostly used in workplace keyboards. Both variants use a rubber
|
||||
membrane with small domes underneath each key. When a key is pressed, the
|
||||
corresponding dome collapses and because the dome's inner wall is coated with a
|
||||
conductive material, closes an electrical circuit \cite{ergopedia_keyswitch,
|
||||
date. The most commonly used ones are scissor switches and rubber dome switches
|
||||
which are both subsets of the membrane switch family. Scissor switches are often
|
||||
found in keyboards that are integrated into notebooks while rubber dome switches
|
||||
are mostly used in workplace keyboards. Both variants use a rubber membrane with
|
||||
small domes underneath each key. When a key is pressed, the corresponding dome
|
||||
collapses and because the dome's inner wall is coated with a conductive
|
||||
material, closes an electrical circuit \cite{ergopedia_keyswitch,
|
||||
peery_3d_keyswitch}.
|
||||
|
||||
\subsubsection{Mechanical Keyswitch}
|
||||
@ -205,7 +234,7 @@ software used and the experimental setup, users have to input different kinds of
|
||||
text, either for a predefined time or the time is measured till the whole text
|
||||
is transcribed \cite{chen_typing_test, hoffmann_typeright,
|
||||
fagarasanu_force_training, akagi_keyswitch, kim_typingforces,
|
||||
pereira_typing_test}.
|
||||
pereira_typing_test, baker_ergo}.
|
||||
|
||||
\subsubsection{Readability of Text}
|
||||
\label{sec:meas_fre}
|
||||
@ -372,6 +401,7 @@ thereby reveal differences that cannot be easily acquired by a device or formula
|
||||
|
||||
|
||||
\subsection{Observer Bias and a Possible Solution}
|
||||
\label{sec:bias}
|
||||
As already discussed in Section \ref{sec:metrics}, it is common practice in
|
||||
research related to typing to present a text that has to be transcribed by the
|
||||
participant. Usually, the text was chosen by the researcher or already available
|
||||
@ -410,8 +440,54 @@ mitigate the risk of unwanted bias. In addition, the aspect of time in the
|
||||
preparation phase of a study could be another factor to consider crowdsourcing
|
||||
to acquire larger amounts of text with equal difficulty.
|
||||
|
||||
\subsection{Influence of Actuation Force on Keyboard use}
|
||||
\label{sec:finger_force}
|
||||
Section \ref{sec:kb_ks} discussed the differences of various keyswitch
|
||||
models. One difference was the applied force, a keyswitch required to
|
||||
activate. A study by Akagi tested the differences in performance and preference
|
||||
across four visually identical keyboards with different keyswitches. The
|
||||
keyswitches differed in actuation force and type. Two keyboards used tactile
|
||||
keyswitches with 70.9 g (\gls{KB} A) and 32.5 g (\gls{KB} C) the other two
|
||||
linear switches with 70.9 g (\gls{KB} D) and 42.5 g (\gls{KB} B). The (n=24)
|
||||
subjects were required to type on each keyboard for 7 to 8 minutes where speed
|
||||
and errors were recorded. The results showed, that \gls{KB} D (linear, 70.9 g)
|
||||
produced the lowest error rate followed by \gls{KB} A (tactile, 70.9 g),
|
||||
\gls{KB} C (linear, 42.5 g) and \gls{KB} B (tactile, 35.5 g). Further, the
|
||||
difference in typing speed between the slowest (tactile, 70.9 g) and fastest
|
||||
(linear, 42.5 g) keyboard was only 2.61\% and according to Akagi too small to be
|
||||
significant in practical use. The study also revealed, that the preference for
|
||||
neither of the four keyboards was significantly different
|
||||
\cite{akagi_keyswitch}. A follow up survey by Akagi concerning the model of
|
||||
keyboard typists would prefer to use in the future revealed, that 69\% of the 81
|
||||
participating decided for a newly proposed keyboard with 56.7 g resistance and
|
||||
light tactile feedback \cite{akagi_keyswitch}. Further, a study by Loricchio,
|
||||
were (n=16) participants typed on two identical keyboard models that only
|
||||
differed in actuation force (58 g and 74g), also yielded moderate differences in
|
||||
typing speed. The keyboard with lower actuation force was 8.25\% faster and
|
||||
preferred by 15 out of the 16 subjects compared to the keyboard featuring
|
||||
keyswitches with higher actuation force \cite{loricchio_force_speed}. A study by
|
||||
Hoffmann et al. even designed a keyboard that utilized small
|
||||
electromagnets―instead of the typically used spring―to dynamically alter the
|
||||
resistance of keys to prevent erroneous input by increasing the force required
|
||||
to press keys that do not make sense in the current context of a word. This
|
||||
design reduced the number of required corrections by 46\% and overall lowered
|
||||
typos by 87\% compared to when the force feedback was turned off (n=12)
|
||||
\cite{hoffmann_typeright}.
|
||||
|
||||
\subsubsection{Relevance for this Thesis}
|
||||
So far, studies concerning keyboards with uniform actuation force yielded
|
||||
different results pertaining speed, but agreed that actuation force influences
|
||||
the error rate during typing related tasks. To our best knowledge, there are no
|
||||
studies that evaluated the effect of non-uniformly distributed actuation forces
|
||||
across one keyboard on speed, accuracy, error rate or preference. This is why we
|
||||
want to reevaluate the influence of actuation force on speed and determine, if
|
||||
keyboards with non-uniform actuation forces have a positive impact on all
|
||||
metrics mentioned so far. The next section gives insights, into why such
|
||||
keyboards could make sense.
|
||||
|
||||
|
||||
\subsection{Strength of Individual Fingers}
|
||||
As already mentioned in Section \ref{sec:metrics}, the force applied to a
|
||||
As already mentioned in Section \ref{sec:mech_switch}, the force applied to a
|
||||
keyswitch is the concern of multiple studies that evaluate the relation between
|
||||
keyboarding and \gls{WRUED}. Further, multiple studies came to the conclusion,
|
||||
that there is a significant discrepancy in strength between individual fingers
|
||||
@ -438,18 +514,39 @@ all fingers have to apply equal force to generate a keypress because of the
|
||||
uniform actuation force used in commercially available keyboards.
|
||||
|
||||
\subsection{Summary}
|
||||
Since keyboards are still the most commonly used input method for data entry to
|
||||
date and so far all efforts to convince the mainstream to move from the
|
||||
standard, less ergonomic, physical layouts to split keyboards failed, further
|
||||
alternatives that could be easily implemented into manufacturing processes have
|
||||
to be explored, to counteract the rising risks for \gls{WRUED}. One factor
|
||||
related to \gls{WRUED} is the actuation force of the keyswitches
|
||||
\cite{bufton_typingforces, rempel_ergo, rempel_force,
|
||||
\label{sec:lr_sum}
|
||||
Keyboards are still the most commonly used input method for data entry to date
|
||||
and so far the majority of keyboard users still operates non-alternative
|
||||
keyboard designs. Thus, modifications that ideally could be implemented into
|
||||
manufacturing processes of existing designs have to be explored, to ensure
|
||||
availability and therefore adaption, which could help to reduce the risks of
|
||||
\gls{WRUED}. One factor related to \gls{WRUED} is the actuation force of the
|
||||
keyswitches \cite{bufton_typingforces, rempel_ergo, rempel_force,
|
||||
gerard_keyswitch}. Especially higher actuation forces have shown to be the
|
||||
reason for discomfort in the upper extremity. On the other hand, higher
|
||||
actuation forces also led to lower error rates while typing and therefore
|
||||
enhance user satisfaction and performance \cite{gerard_keyswitch}. With the help
|
||||
of several methods to measure typing relate metrics such as muscle activity
|
||||
(\gls{EMG}), error rates (\gls{CER} and \gls{UER}), typing speed (\gls{WPM}) and
|
||||
user satisfaction {\gls{UEQ} and \gls{KCQ}} it is feasible to evaluate possible
|
||||
alternative input methods to the more traditional keyboard.
|
||||
enhance user satisfaction and performance \cite{gerard_keyswitch}. Therefore, a
|
||||
desirable input method should offer enough resistance to prevent accidental key
|
||||
presses but also reduce the stress induced on weaker fingers. With the help of
|
||||
several methods to measure typing relate metrics such as muscle activity
|
||||
(\gls{EMG}), error rates (\gls{CER} and \gls{UER}), typing speed (\gls{WPM}),
|
||||
text readability (\gls{FRE}) and user satisfaction (\gls{UEQ} and \gls{KCQ}) it
|
||||
is feasible to evaluate possible alternative input methods to the more
|
||||
traditional keyboard. The availability of affordable surface level \gls{EMG}
|
||||
measurement devices makes it possible for researchers that are not medically
|
||||
trained to conduct non-invasive muscle activity measurements \cite{takala_emg}
|
||||
and load cells in combination with micro controllers are a reliable, low-cost
|
||||
solution to visualize the strength of different fingers and monitor applied
|
||||
forces while typing \cite{gerard_keyswitch, rempel_ergo,
|
||||
bufton_typingforces}. Although, the strength of individual fingers has already
|
||||
been measured in different studies \cite{bretz_finger, martin_force,
|
||||
baker_kinematics, dickson_finger}, to our best knowledge, there are no
|
||||
measurements concerning the maximum force each individual finger can apply in
|
||||
different positions related to a key on the keyboard. Further, during our
|
||||
research we only found one manufacturer of keyboards (Realforce), that already
|
||||
offers models with variable actuation force. These keyboards feature two types
|
||||
of keys and require less force towards the edges and more force towards the
|
||||
middle \cite{realforce_topre}. We therefore try to provide a sensible
|
||||
distribution of actuation forces across a non-uniformly equipped keyboard and
|
||||
evaluate the possible advantages and disadvantages of such a design to encourage
|
||||
other manufacturers to produce similar alternative keyboard designs.
|
||||
|
@ -1,6 +1,320 @@
|
||||
\section{Implementation}
|
||||
For the purpose of this thesis, we programmed our own typing test platform to
|
||||
have better control over the performance related measurements and the text that
|
||||
has to be transcribed. Further, the participants had to fill out up to two
|
||||
questionnaires after each typing test which had to be linked to this specific
|
||||
typing test or keyboard. With a total number of 24 subjects, five keyboards and
|
||||
therefore 10 individual typing tests per subject or 240 typing tests in total,
|
||||
we decided to incorporate a questionnaire feature into our platform to mitigate
|
||||
the possibility of false mappings between typing tests, surveys and
|
||||
participants. Additionally, because we wanted to control the understandability
|
||||
of text without introducing observer bias for the text selection process and
|
||||
also to save time, we implemented a crowdsourcing feature where individuals
|
||||
could provide text snippets that were automatically checked for adequate
|
||||
\gls{FRE}. Finally, we wanted to open source this platform so other researchers
|
||||
in the field of text entry performance could use it without additional cost.
|
||||
|
||||
Another challenge was to measure the maximum force each individual finger is
|
||||
able to apply to any of the keyswitches on a keyboard. We therefore decided to
|
||||
prototype a device that is able to simulate the position of different keyswitches
|
||||
and measure the applied force by the finger usually responsible to actuate a
|
||||
specific key.
|
||||
|
||||
Both implementations are explained in more detail in the following two sections.
|
||||
\label{sec:label}
|
||||
\subsection{Typing Test Platform}
|
||||
\label{sec:label}
|
||||
The platform we created is called \gls{GoTT} because the backend, which is the
|
||||
server side code, is programmend in Go, a programming language developed by a
|
||||
team at Google \cite{golang}. The decision for Go was made, because Go's
|
||||
standard library offers convenient packages to quickly setup a web server with
|
||||
simple routing and templating functionalities \cite{golang_std}. The backend and
|
||||
frontend communicate through a \gls{REST} \gls{API} and exchange data in
|
||||
\gls{JSON} format. \gls{GoTT} utilizes a document based database to persistently
|
||||
store login credentials, results of typing tests and all finished
|
||||
questionnaires. We decided to use \gls{MongoDB} because of the capability to
|
||||
directly store \gls{JSON}-like, nested, data without prior transformation
|
||||
\cite{mongodb}. The general functionality of \gls{GoTT} can be seen in Figure
|
||||
\ref{fig:gott_arch}.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{images/gott_arch.png}
|
||||
\caption{Overview of the general functionality of \gls{GoTT}}
|
||||
\label{fig:gott_arch}
|
||||
\end{figure}
|
||||
|
||||
The platform offers three major functionalities that are important for this thesis:
|
||||
|
||||
\begin{enumerate}
|
||||
\item \textbf{The typing test} itself was designed after evaluating various
|
||||
free typing test tools online. One major issue almost all had in common was
|
||||
the lack of functionality to provide own texts for transcription. Further,
|
||||
only a few provided insights on how performance metrics were calculated or
|
||||
provided the ability to export results automatically. Since time in between
|
||||
typing tests was limited by the design of the experiment as described in
|
||||
Section \ref{sec:methodology}, recording the results by hand for multiple metrics
|
||||
would have been error prone and therefore not a valid option.
|
||||
|
||||
The typing test provided by \gls{GoTT} features a non-intrusive interface. The
|
||||
font size can be adjusted via the zoom functionality of the browser and colors
|
||||
used to indicate correctly or incorrectly entered characters have been
|
||||
adjusted to enhance accessibility for people with vision related
|
||||
disabilities. The perception of the colors used in \gls{GoTT} for people with
|
||||
different color vision impairments can be observed in Figure
|
||||
\ref{fig:gott_colorblind} and was simulated with the help of a tool called
|
||||
\textit{Color Oracle} \footnote{\url{https://colororacle.org/index.html}} \cite{colororacle}.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{images/gott_colorblind.png}
|
||||
\caption{\gls{GoTT}'s text area perceived with different kinds of
|
||||
colorblindness. The examples are ordered from top, impairments most
|
||||
commonly found in the population, to bottom (least common) and are
|
||||
simulated with the tool \textit{Color Oracle} \cite{colororacle}}
|
||||
\label{fig:gott_colorblind}
|
||||
\end{figure}
|
||||
|
||||
The typing test features an area to display the text that has to be
|
||||
transcribed. As soon as the typist transcribed half of the displayed text, the
|
||||
content of this area starts scrolling up one line after each finished line of
|
||||
text. Further, two drop down menus are used to select the text and keyboard
|
||||
currently required for the next typing test. Lastly, two buttons control when
|
||||
the text is revealed (Start) and if the participant or researcher wants to
|
||||
interrupt the active typing test in case of malfunctioning hardware e.g.,
|
||||
keyboard, \gls{EMG} device, computer, etc., or if the subject experiences
|
||||
discomfort and wants to stop. The timer for the typing test starts when the
|
||||
participant inputs the first character after the start button was pressed. The
|
||||
\gls{UI} for the typing test is shown in Figure \ref{fig:gott_text_area}.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{images/gott_text_area.jpg}
|
||||
\caption{\gls{GoTT}'s typing test. The \textit{START} button reveals the
|
||||
text selected with the dropdown menu labeled \textit{Text to
|
||||
transcribe}. The \textit{RESET} button interrupts the currently active
|
||||
typing test. The content will scroll up one line after half of the text
|
||||
was transcribed (Marked by \textit{Scrolling begins here}) so the relevant
|
||||
line always stays centered.}
|
||||
\label{fig:gott_text_area}
|
||||
\end{figure}
|
||||
|
||||
\gls{GoTT} captures the metrics presented in Listing \ref{lst:meas_perf}
|
||||
according to the formulas given in Section \ref{sec:meas_perf}:
|
||||
\begin{listing}[H]
|
||||
\caption{Implementation of performance related metrics in \gls{GoTT}.
|
||||
The function \textit{roundToPrecision} takes the number of decimal places
|
||||
to round to as the second argument.}
|
||||
\label{lst:meas_perf}
|
||||
\begin{minted}[linenos]{js}
|
||||
// TEST_TIME is retrieved from backend and
|
||||
// set in the config file in seconds
|
||||
mins = TEST_TIME / 60;
|
||||
// T is the transcribed text
|
||||
TL = T.length;
|
||||
// Input Stream Length = TL + Fixes (Backspace)
|
||||
// + Incorrect Fixed (Fixed Errors)
|
||||
ISL = TL + F + IF;
|
||||
// Correct input = TL - Incorrect Not Fixed (Left errors)
|
||||
C = TL - INF;
|
||||
|
||||
// Error metrics
|
||||
CER = roundToPrecision(IF / (TL + IF), 5);
|
||||
UER = roundToPrecision(INF / (TL + IF), 5);
|
||||
TER = roundToPrecision((INF + IF)/(TL + IF), 5);
|
||||
KSPC = roundToPrecision(ISL / TL, 5);
|
||||
// Correct / Any input char
|
||||
accuracy = roundToPrecision(C / (TL + IF) * 100, 2);
|
||||
|
||||
// Speed metrics
|
||||
// TL - 1 because the first char is entered at 0 seconds
|
||||
WPM = roundToPrecision((TL - 1) / (5 * mins), 2);
|
||||
AdjWPM = roundToPrecision(WPM * Math.pow((1 - UER), a), 2);
|
||||
KSPS = roundToPrecision((ISL - 1) / TEST_TIME, 5);
|
||||
\end{minted}
|
||||
\end{listing}
|
||||
|
||||
For further implementation details on how input was captured or sent to the
|
||||
backend refer to the code in the online repository \footnote{TODO: GITHUB}.
|
||||
|
||||
To test the usability of the typing test, we asked five individuals to complete
|
||||
multiple typing tests with their own computer. Based on the feedback we
|
||||
received, we were able to switch to another font to further improve readability
|
||||
and also fix a bug related to the scrolling. All five testers reported that the
|
||||
typing test was very intuitive and fun to use.
|
||||
|
||||
\item \textbf{The questionnaires} had to be linked to a specific participant,
|
||||
typing test and keyboard. In total, three different types of questionnaires had
|
||||
to be filled out by each participant at different times (more information in
|
||||
Section \ref{sec:methodology}). The demographics questionnaire was completed
|
||||
once at the start of the experiment, which could have been done via already
|
||||
existing survey tools and then linked to the participant by hand. The \gls{PTTQ}
|
||||
and the \gls{PKQ} on the other hand, were required after each individual typing
|
||||
test or after every keyboard respectively. To manually match all finished
|
||||
questionnaires to the corresponding typing tests and keyboards, could introduce
|
||||
an unwanted source of errors. Therefore, we implemented a survey tool into
|
||||
\gls{GoTT} which automatically matched completed questionnaires to typing tests
|
||||
and keyboards. All questionnaires can be observed in Appendix \ref{app:gott}.
|
||||
|
||||
\item \textbf{The text crowdsourcing platform} was required because of the
|
||||
potential introduction of observer bias as described in Section
|
||||
\ref{sec:bias}. Further, this part of \gls{GoTT} helped us gather 44639 instead
|
||||
of the estimated 40000 required characters to provide enough text for ten
|
||||
non-overlapping texts. The goal was reached after only 2 days, which proved
|
||||
crowdsourcing to be a good method to efficiently gather greater amounts of
|
||||
text for our experiment. The estimation of 40000 characters was made according
|
||||
to Eq. \ref{eq:chars}.
|
||||
|
||||
\begin{equation}
|
||||
\label{eq:chars}
|
||||
n_{kb} * m_{ttkb} * \frac{s}{60} * |w| * wpm_{max} = 5 * 2 * \frac{300}{60} * 5 * 160 = 40000
|
||||
\end{equation}
|
||||
|
||||
with $n_{kb}$ the number of tested keyboards, $m_{ttkb}$ the number of typing
|
||||
test conducted with each keyboard, $\frac{s}{60}$ the time for each typing test
|
||||
(5min), $|w|$ number of characters defining a word (Section \ref{sec:meas_perf})
|
||||
and $wpm_{max}$ which represents the average wpm of the top 100 typists
|
||||
retrieved from a database released by the website Typeracer
|
||||
\footnote{\url{https://docs.google.com/spreadsheets/d/18ZokmvjdzDypIr-Ayl1VWsRPOBa91qvgX3FgcsZtSAU/edit#gid=636312661}}
|
||||
which included the top 25000 competitors in terms of average \gls{WPM}
|
||||
\cite{typeracer}.
|
||||
|
||||
The text snippets provided by volunteers trough our platform had to fulfill three
|
||||
requirements:
|
||||
\begin{enumerate}
|
||||
\item German language
|
||||
\item Fairly easy to understand (\gls{FRE} $>$ 70
|
||||
\cite{flesch_fre})
|
||||
\item Number of characters must be between 200 and 300
|
||||
\end{enumerate}
|
||||
|
||||
In order to communicate what kind of text is appropriate, the platform provided
|
||||
an example where the difference between fairly easy and difficult text was
|
||||
shown. Further, the backend implemented a set of functions that calculated the
|
||||
\gls{FRE} of submitted text and also counted the number of characters and either
|
||||
accepted or rejected the text depending on if the requirements were met or
|
||||
not. The implementation of the algorithm that calculates the \gls{FRE} can be
|
||||
seen in Listing \ref{lst:gott_fre}. The function \textit{countSyllables}
|
||||
utilizes regex \footnote{\url{https://github.com/google/re2/wiki/Syntax}}
|
||||
matching to identify the number of syllables in a given string in German
|
||||
language. The rules for hyphenation defined by Duden online
|
||||
\footnote{\url{https://www.duden.de/sprachwissen/rechtschreibregeln/worttrennung}}
|
||||
were used to derive the regex patterns to identify syllables
|
||||
\cite{duden_hyphen}. The \gls{FRE} scores yielded by our function were verified
|
||||
with the help of multiple unit tests and also compared to scores obtained by
|
||||
another website \footnote{\url{https://fleschindex.de/berechnen/}} offering the
|
||||
calculation for German texts. The \gls{UI} for the crowdsourcing page is shown
|
||||
in Appendix \ref{app:gott}.
|
||||
|
||||
\begin{listing}[H]
|
||||
\caption{Algorithm that calculates the \gls{FRE} score for a given string in German
|
||||
language, utilizing regex pattern matching to count syllable, words and sentences.}
|
||||
\label{lst:gott_fre}
|
||||
\begin{minted}[linenos]{go}
|
||||
func countSyllables(txt string) int {
|
||||
rx := regexp.MustCompile(`(?i)[^aeiouäöüßy\W][aeiouäöüßy]|
|
||||
\b[aeiouäöüßy][^aeiouäöüßy\W]|\b[aeiouäöüy]{2,}|
|
||||
u[aeuo]|(on|er)\b|\B(a|o|u|e)\B`)
|
||||
extraConsonants := []string{"ck", "x", "ch", "x", "sch", "x",
|
||||
"st", "x", "gn", "x"}
|
||||
extraVowels := []string{"äu", "i", "ie", "i"}
|
||||
r := strings.NewReplacer(extraConsonants...)
|
||||
txt = r.Replace(txt)
|
||||
r = strings.NewReplacer(extraVowels...)
|
||||
txt = r.Replace(txt)
|
||||
syllableCount := len(rx.FindAllStringIndex(txt, -1))
|
||||
return syllableCount
|
||||
}
|
||||
|
||||
func countWords(txt string) int {
|
||||
rx := regexp.MustCompile(`[\wäöüß]{2,}`)
|
||||
return len(rx.FindAllStringIndex(txt, -1))
|
||||
}
|
||||
|
||||
func countSentences(txt string) int {
|
||||
rx := regexp.MustCompile(`[\wäöüß]{2,}[\?\.!;]`)
|
||||
return len(rx.FindAllStringIndex(txt, -1))
|
||||
}
|
||||
|
||||
// Flesch-Reading-Ease (German)
|
||||
// FRE = 180 - ASL - (58.5 * ASW)
|
||||
// ASL = Average Sentence Length = Words / Sentence
|
||||
// ASW = Average Number of Syllables per Word = Syllables / Words
|
||||
func calculateFRE(txt string) float64 {
|
||||
syc := countSyllables(txt)
|
||||
wc := countWords(txt)
|
||||
sec := countSentences(txt)
|
||||
|
||||
asl := float64(wc) / float64(sec)
|
||||
asw := float64(syc) / float64(wc)
|
||||
|
||||
fre := math.Round((180.-asl-(58.5*asw))*100) / 100
|
||||
|
||||
// <0 and >100 is allowed, though not relevant in this case
|
||||
if fre > 100. { fre = 100. }
|
||||
if fre < 0. { fre = 0. }
|
||||
return fre
|
||||
}
|
||||
\end{minted}
|
||||
\end{listing}
|
||||
\end{enumerate}
|
||||
|
||||
\subsection{Finger strength measurement device}
|
||||
\label{sec:label}
|
||||
\label{sec:force_meas_dev}
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=0.8\textwidth]{images/force_master_1}
|
||||
\caption{Prototype of a measuring device that simulates the distance and finger position required to press different keys on a keyboard. The display shows the currently applied force in gram and the peak force applied throughout the current measurement in gram and \gls{N}}
|
||||
\label{fig:force_master}
|
||||
\end{figure}
|
||||
|
||||
Because we required very specific data about the force each digit is able to
|
||||
apply to keyswitches in different locations, we decided to prototype our own
|
||||
device to measure the required data. Because of previous research in the field
|
||||
of finger strength and force applied to keyboards, we wanted to use the same
|
||||
type of sensor―a load cell―that was commonly utilized in those studies
|
||||
\cite{gerard_keyswitch, rempel_ergo, bufton_typingforces}. A load cell, capable
|
||||
of measuring up to 5 kg $\approx$ 49.0 \gls{N}, in combination with the HX711
|
||||
load cell amplifier shown in Figure \ref{fig:hx711} and the library
|
||||
HX711\_ADC\footnote{\url{https://github.com/olkal/HX711_ADC}} was used to build
|
||||
the prototype which can be seen in Figure \ref{fig:force_master}. Initial
|
||||
testing revealed, that the response for measurements with the standard 10 Hz
|
||||
sample rate of the HX711 was not sufficient to pick up the peak force in some
|
||||
measurements. Therefore we resoldered the 0 $\Omega$ surface mount resistor to
|
||||
raise sample rate to 80 Hz, which yielded better results for fast keystrokes but
|
||||
did not deteriorate overall precision compared to the measurements conducted
|
||||
with 10 Hz. The apparatus used an \gls{OLED} display to present currently
|
||||
applied force in gram and peak force in gram and \gls{N}. The devices was mainly
|
||||
controlled via two terminal commands. One command initiated re-calibration that
|
||||
was used after each participant or in between measurements and the other command
|
||||
reset all peak values displayed via the display. The base of the device featured
|
||||
a scale, which was traversed with the help of a wrist wrest that got aligned
|
||||
with the markings corresponding to the currently measured key. Each mark
|
||||
represents the distance and position of a finger to the associated key indicated
|
||||
by the label underneath the marking. The measurement process is explained in
|
||||
more detail in Section \ref{sec:meth_force}
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{images/hx711}
|
||||
\caption{HX711 amplifier module. The 0 $\Omega$ resistor had to be resoldered
|
||||
to accomplish 80 Hz polling rate. This module is used in combination with
|
||||
the HX711\_ADC library to read the changes in resistance by the load cell
|
||||
and convert those into gram.}
|
||||
\label{fig:hx711}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Summary}
|
||||
By implementing our own typing test platform (\gls{GoTT}) we maximized the
|
||||
control over one of the main measurement tools required by our experiment. We
|
||||
were able to exactly define all functions responsible to collect the metrics,
|
||||
according to our research done in Section \ref{sec:meas_perf}. The crowdsourcing
|
||||
tool allowed us to gather a great amount of unbiased text in very little time
|
||||
and the addition of questionnaires into \gls{GoTT} eliminated the possibility of
|
||||
unnecessary errors. Both potentially improved the reliability of the results
|
||||
acquired by our experiment. Further, the device we built to measure the peak
|
||||
force each finger can produce while pressing certain keys on a keyboard, allowed
|
||||
us to base the design of our keyboard with non-uniform actuation forces on more
|
||||
then anecdotal evidence. The exact procedure of our preliminary experiment on
|
||||
peak force will be addressed in the following section.
|
||||
|
@ -1,6 +1,109 @@
|
||||
\section{Methodology}
|
||||
\label{sec:methodology}
|
||||
\subsection{Research Approach}
|
||||
\subsection{Market analysis of available mechanical keyswitches}
|
||||
Because of the controversial findings about the impact of key actuation forces
|
||||
on speed \cite{akagi_keyswitch, loricchio_force_speed} and the fact, that
|
||||
keyboard related work can increase the risk for \gls{WRUED} \cite{ccfohas_wrued,
|
||||
pascarelli_wrued}, we decided to further investigate possible effects of
|
||||
different actuation forces and even a keyboard equipped with non-uniform
|
||||
actuation forces on speed, error rate and satisfaction. To our best knowledge,
|
||||
to this date, there is no published work about the influence of a keyboard with
|
||||
non-uniform actuation forces on these metrics. Therefore, we first asked
|
||||
seventeen people about their preferences, experiences and habits related to
|
||||
keyboards to get a better understanding on what people might prefer as a
|
||||
baseline for the design of the adjusted keyboard (keyboard with non-uniform
|
||||
actuation forces) and to complement the findings obtained through our literature
|
||||
review. Further, we collected information about available mechanical keyswitches
|
||||
on the market. Additionally, we conducted a small preliminary experiment with 6
|
||||
subjects, where we measured the peak forces each individual finger of the right
|
||||
hand was able to apply to distinct keys in different locations. We then created
|
||||
the design for the adjusted keyboard based on those measurements. Lastly, an
|
||||
experiment with twenty-four participants was conducted, where we compared the
|
||||
performance and user satisfaction while using four different keyboards,
|
||||
including our adjusted keyboard, to values obtained with the participant's own
|
||||
keyboards.
|
||||
|
||||
\subsection{Preliminary telephone interview}
|
||||
Some of the studies we found that researched implications of actuation force on
|
||||
speed, preference or other metrics were published between 1984 and 2010. That is
|
||||
why we wanted to ascertain if and how, with the advance of technology in recent
|
||||
years and especially the capabilities modern smartphones offer, keyboard usage
|
||||
has changed. Further, we wanted to gather information about the preference of
|
||||
key resistance, keyswitch type and experiences with \gls{WRUED}. Therefore, we
|
||||
conducted a structured interview with seventeen volunteers (59\% females) via
|
||||
telephone. The age of the subjects ranged between 22 and 52 with a mean age of
|
||||
29 years. The professions of subjects were distributed among medical workers,
|
||||
students, office employees, computer engineers and community workers. The first
|
||||
question we asked was \textit{``Which keyboard in terms of actuation force would
|
||||
be the most satisfying for you to use in the long run?''}. Thirteen (76\%) out
|
||||
of the seventeen subjects mentioned, that they would prefer a keyboard with
|
||||
light actuation force over a keyboard with higher resistance. The next question
|
||||
\textit{``Have you ever had pain when using a keyboard and if so, where did you
|
||||
have pain?''} yielded, that 41\% of those polled experienced pain at least
|
||||
once while using a keyboard. The areas affected described by the seven who
|
||||
already experienced pain were the wrist \underline{and} forearm (3 out of 7),
|
||||
wrist only (2 out of 7), fingers (1 out of 7) and forearm only (1 out of 7). The
|
||||
results for the third question \textit{``Which keyboard are you currently using
|
||||
and for how many hours a day on average?''} were in line with the statements
|
||||
we found during our literature review \cite{ergopedia_keyswitch,
|
||||
peery_3d_keyswitch}. Nine answered that they use a notebook (scissor-switches,
|
||||
membrane), six stated that they use an external keyboard with rubber dome
|
||||
switches and only two responded that they use a keyboard featuring mechanical
|
||||
keyswitches. The average, self-reported, usage ranged between half an hour and
|
||||
10 hours with a mean of 4.71 hours. It is important to note, that a study by
|
||||
Mikkelsen et al. found, that self-reported durations related to computer work
|
||||
can be inaccurate \cite{mikkelsen_duration}. The last question \textit{``Which
|
||||
tasks do you still prefer to perform with a keyboard rather than your mobile
|
||||
phone?''} revealed, that all of the subjects preferred to use a keyboard when
|
||||
entering greater amounts of data (emails, applications, presentations,
|
||||
calculations, research), but also surprisingly 41\% preferred to use a keyboard
|
||||
to write instant messages (chatting via Whatsapp
|
||||
Web\footnote{\url{https://web.whatsapp.com/}}, Signal
|
||||
Desktop\footnote{\url{https://signal.org/download/}}, Telegram
|
||||
Desktop\footnote{\url{https://desktop.telegram.org/}}).
|
||||
|
||||
\subsection{Market analysis of available mechanical keyswitches}
|
||||
To gather information about available actuation forces, we collected the product
|
||||
lines of keyswitches for all well known manufacturers, namely
|
||||
Cherry\footnote{\url{https://www.cherrymx.de/en/mx-original/mx-red.html}},
|
||||
Kailh\footnote{\url{https://www.kailhswitch.com/mechanical-keyboard-switches/}},
|
||||
Gateron\footnote{\url{http://www.gateron.com/col/58459?lang=en}},
|
||||
Matias\footnote{\url{http://matias.ca/switches/}},
|
||||
Razer\footnote{\url{https://www.razer.com/razer-mechanical-switches}} and
|
||||
Logitech\footnote{\url{https://www.logitechg.com/en-us/innovation/mechanical-switches.html}}. Since
|
||||
some of the key actuation forces listed on the manufacturers or resellers
|
||||
websites were given in cN and most of them in g or gf, the values were adjusted
|
||||
to gram to reflect a trend that is within a margin of ± 2 g of accuracy. The
|
||||
results shown in Figure \ref{fig:keyswitches_brands} are used to determine the
|
||||
minimum, maximum and most common actuation force for broadly available
|
||||
keyswitches. According to our findings, the lowest commercially available
|
||||
actuation force is 35 g ($\approx$ 0.34 \gls{N}) the most common one is 50 g
|
||||
($\approx$ 0.49 \gls{N}) and the highest resistance available is 80 g ($\approx$
|
||||
0.78 \gls{N}).
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{images/keyswitches_brands}
|
||||
\caption{Available actuation forces for keyswitches of major keyswitch manufacturers}
|
||||
\label{fig:keyswitches_brands}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Preliminary study of finger strength}
|
||||
% armstrong measurments of finger strength
|
||||
To evaluate the impact of an adjusted keyboard (keyboard with non-uniform
|
||||
actuation forces) on performance and satisfaction we first needed to get an
|
||||
understanding on how to distribute keyswitches with different actuation forces
|
||||
across a keyboard. Our first idea was to use a similar approach to the keyboard
|
||||
we described in Section \ref{sec:lr_sum}, were the force required to activate
|
||||
the keys decreased towards the left and right ends of the keyboard. This rather
|
||||
simple approach only accounts for the differences in finger strength when all
|
||||
fingers are in the same position, but omits possible differences in applicable
|
||||
force depending on the position a finger has to enter to press a certain key.
|
||||
To detect possible differences in peak force depending on the position of the
|
||||
fingers, we conducted an experiment with six volunteers (50\%
|
||||
females). Subject's ages ranged from 20 to 26 with a mean age of 24 years. The
|
||||
subjects were all personal contacts. Subjects professions were distributed as
|
||||
follows: computer science students (3/6), physiotherapist (1/6), user experience
|
||||
consultant (1/6) and retail (1/6). All Participants were given instructions to
|
||||
exert maximum force for approximately one second onto the key mounted to the
|
||||
measuring device described in Section \ref{sec:force_meas_dev}. The order of
|
||||
positions in which the participants had to press the key was complete counterbalanced
|
||||
|
16
glossary.tex
@ -24,8 +24,15 @@
|
||||
\newacronym{KSPC}{KSPC}{Keystrokes per Character}
|
||||
\newacronym{UEQ-S}{UEQ-S}{short version of the user experience questionnaire}
|
||||
\newacronym{UEQ}{UEQ}{user experience questionnaire}
|
||||
|
||||
|
||||
\newacronym{KCQ}{KCQ}{keyboard comfort questionnaire}
|
||||
\newacronym{GoTT}{GoTT}{Go Typing Test}
|
||||
\newacronym{API}{API}{application programming interface}
|
||||
\newacronym{REST}{REST}{representational state transfer}
|
||||
\newacronym{JSON}{JSON}{javascript object notation}
|
||||
\newacronym{UI}{UI}{user interface}
|
||||
\newacronym{PTTQ}{PTTQ}{post typing test questionnaire}
|
||||
\newacronym{PKQ}{PKQ}{post keyboard questionnaire}
|
||||
\newacronym{OLED}{OLED}{organic light-emitting diode}
|
||||
|
||||
\newglossaryentry{N}{
|
||||
name={N},
|
||||
@ -62,3 +69,8 @@ description={Describes the scenario when the typist does not release the key bef
|
||||
name={Topre},
|
||||
description={Topre switches are keyswitches produced by the Japanese company Topre Corporation}
|
||||
}
|
||||
|
||||
\newglossaryentry{MongoDB}{
|
||||
name={MongoDB},
|
||||
description={General purpose, document-based database which name originates from the word humongous}
|
||||
}
|
BIN
images/force_master.jpg
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
images/force_master_1.jpg
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
images/gott_arch.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
images/gott_colorblind.png
Normal file
After Width: | Height: | Size: 185 KiB |
BIN
images/gott_text_area.jpg
Normal file
After Width: | Height: | Size: 146 KiB |
BIN
images/gott_text_area.png
Normal file
After Width: | Height: | Size: 164 KiB |
BIN
images/hx711.jpg
Normal file
After Width: | Height: | Size: 77 KiB |
@ -332,6 +332,17 @@ urldate = {2021-06-28}
|
||||
publisher = {American Occupational Therapy Association}
|
||||
}
|
||||
|
||||
@article{tittiranonda_ergo,
|
||||
title={Effect of four computer keyboards in computer users with upper extremity musculoskeletal disorders},
|
||||
author={Tittiranonda, Pat and Rempel, David and Armstrong, Thomas and Burastero, Stephen},
|
||||
journal={American journal of industrial medicine},
|
||||
volume={35},
|
||||
number={6},
|
||||
pages={647--661},
|
||||
year={1999},
|
||||
publisher={Wiley Online Library}
|
||||
}
|
||||
|
||||
@article{rempel_ergo,
|
||||
title = {The effect of six keyboard designs on wrist and forearm
|
||||
postures},
|
||||
@ -711,12 +722,14 @@ urldate = {2021-07-01}
|
||||
year={2017}
|
||||
}
|
||||
|
||||
@article{schenk_crowdsource,
|
||||
author = {Schenk, Eric and Guittard, Claude},
|
||||
year = {2009},
|
||||
month = {01},
|
||||
pages = {},
|
||||
title = {Crowdsourcing: What can be Outsourced to the Crowd, and Why ?}
|
||||
@inproceedings{schenk_crowdsource,
|
||||
title={Crowdsourcing: What can be Outsourced to the Crowd, and Why},
|
||||
author={Schenk, Eric and Guittard, Claude and others},
|
||||
booktitle={Workshop on open source innovation, Strasbourg, France},
|
||||
volume={72},
|
||||
pages={3},
|
||||
year={2009},
|
||||
organization={Citeseer}
|
||||
}
|
||||
|
||||
@article{howe_crowdsource,
|
||||
@ -777,3 +790,75 @@ title = {Crowdsourcing: What can be Outsourced to the Crowd, and Why ?}
|
||||
year={1972},
|
||||
publisher={Elsevier}
|
||||
}
|
||||
|
||||
@online{ccfohas_wrued,
|
||||
author = {Canadian Centre for Occupational Health and Safety},
|
||||
title = {Work-related Musculoskeletal Disorders (WMSDs)},
|
||||
url = {https://www.ccohs.ca/oshanswers/diseases/rmirsi.html},
|
||||
urldate = {2021-07-05}
|
||||
}
|
||||
|
||||
@article{pascarelli_wrued,
|
||||
title={Understanding work-related upper extremity disorders: clinical findings in 485 computer users, musicians, and others},
|
||||
author={Pascarelli, Emil F and Hsu, Yu-Pin},
|
||||
journal={Journal of Occupational Rehabilitation},
|
||||
volume={11},
|
||||
number={1},
|
||||
pages={1--21},
|
||||
year={2001},
|
||||
publisher={Springer}
|
||||
}
|
||||
|
||||
@online{golang,
|
||||
author = {Google},
|
||||
title = {The Go Project},
|
||||
url = {https://golang.org/project},
|
||||
urldate = {2021-07-05}
|
||||
}
|
||||
|
||||
@online{golang_std,
|
||||
author = {Google},
|
||||
title = {Go standard library},
|
||||
url = {https://golang.org/pkg/},
|
||||
urldate = {2021-07-05}
|
||||
}
|
||||
|
||||
@online{mongodb,
|
||||
author = {MongoDB Inc.},
|
||||
title = {The document model},
|
||||
url = {https://www.mongodb.com/},
|
||||
urldate = {2021-07-05}
|
||||
}
|
||||
|
||||
@online{colororacle,
|
||||
author = {Bernie Jenny},
|
||||
title = {Color Oracle - Usage & Forms of Color Vision Impairment},
|
||||
url = {https://colororacle.org/usage.html},
|
||||
urldate = {2021-07-06}
|
||||
}
|
||||
|
||||
@online{typeracer,
|
||||
author = {The TypeRacer Blog},
|
||||
title = {2018 Competition Results – Are You In The Top-25,000?},
|
||||
url = {https://typeracer.wordpress.com/2019/01/27/2018-competition-results-are-you-in-the-top-25000/},
|
||||
urldate = {2021-07-06}
|
||||
}
|
||||
|
||||
|
||||
@online{duden_hyphen,
|
||||
author = {Dudenredaktion (o. J.)},
|
||||
title = {Worttrennung},
|
||||
url = {https://www.duden.de/sprachwissen/rechtschreibregeln/worttrennung},
|
||||
urldate = {2021-07-06}
|
||||
}
|
||||
|
||||
@article{mikkelsen_duration,
|
||||
title={Validity of questionnaire self-reports on computer, mouse and keyboard usage during a four-week period},
|
||||
author={Mikkelsen, Sigurd and Vilstrup, Imogen and Lassen, Christina Funch and Kryger, Ann Isabel and Thomsen, Jane Fr{\o}lund and Andersen, Johan Hviid},
|
||||
journal={Occupational and Environmental Medicine},
|
||||
volume={64},
|
||||
number={8},
|
||||
pages={541--547},
|
||||
year={2007},
|
||||
publisher={BMJ Publishing Group Ltd}
|
||||
}
|
@ -19,6 +19,10 @@
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{kpfonts}
|
||||
\usepackage[outputdir=auto]{minted}
|
||||
\usepackage{mdframed}
|
||||
\BeforeBeginEnvironment{minted}{\begin{mdframed}}
|
||||
\AfterEndEnvironment{minted}{\end{mdframed}}
|
||||
% \usepackage{mathpazo}
|
||||
|
||||
% verbesserter Randausgleich
|
||||
@ -135,8 +139,8 @@
|
||||
\cleardoublepage
|
||||
|
||||
%Kurfassung/Abstract German (only for thesis written in German)
|
||||
% \include{abstractDE}
|
||||
% \cleardoublepage
|
||||
\include{abstractDE}
|
||||
\cleardoublepage
|
||||
|
||||
%Kurzfassung/Abstract Englisch (for every thesis)
|
||||
\include{abstractEN}
|
||||
|