diff --git a/.gitignore b/.gitignore index fbe0b73..bb392b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -auto/ \ No newline at end of file +auto/ +/_minted-thesis/ diff --git a/chap2/literature_review.tex b/chap2/literature_review.tex index ac3a9e9..24ce12b 100644 --- a/chap2/literature_review.tex +++ b/chap2/literature_review.tex @@ -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. diff --git a/chap3/implementation.tex b/chap3/implementation.tex index 135e88d..0e0c941 100644 --- a/chap3/implementation.tex +++ b/chap3/implementation.tex @@ -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} \ No newline at end of file +\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. diff --git a/chap4/methodology.tex b/chap4/methodology.tex index 6d57711..f0ba05e 100644 --- a/chap4/methodology.tex +++ b/chap4/methodology.tex @@ -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 diff --git a/glossary.tex b/glossary.tex index cad0a3b..8133e49 100644 --- a/glossary.tex +++ b/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} +} \ No newline at end of file diff --git a/images/force_master.jpg b/images/force_master.jpg new file mode 100644 index 0000000..77d5dde Binary files /dev/null and b/images/force_master.jpg differ diff --git a/images/force_master_1.jpg b/images/force_master_1.jpg new file mode 100644 index 0000000..de4168f Binary files /dev/null and b/images/force_master_1.jpg differ diff --git a/images/gott_arch.png b/images/gott_arch.png new file mode 100644 index 0000000..bd55495 Binary files /dev/null and b/images/gott_arch.png differ diff --git a/images/gott_colorblind.png b/images/gott_colorblind.png new file mode 100644 index 0000000..3481ed9 Binary files /dev/null and b/images/gott_colorblind.png differ diff --git a/images/gott_text_area.jpg b/images/gott_text_area.jpg new file mode 100644 index 0000000..5a0a062 Binary files /dev/null and b/images/gott_text_area.jpg differ diff --git a/images/gott_text_area.png b/images/gott_text_area.png new file mode 100644 index 0000000..b7e6ff7 Binary files /dev/null and b/images/gott_text_area.png differ diff --git a/images/hx711.jpg b/images/hx711.jpg new file mode 100644 index 0000000..93bc264 Binary files /dev/null and b/images/hx711.jpg differ diff --git a/ref_shelf.bib b/ref_shelf.bib index 0a2e384..b7851e1 100644 --- a/ref_shelf.bib +++ b/ref_shelf.bib @@ -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, @@ -776,4 +789,76 @@ title = {Crowdsourcing: What can be Outsourced to the Crowd, and Why ?} pages={207--214}, 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} } \ No newline at end of file diff --git a/thesis.tex b/thesis.tex index 51b6fc7..ce3d653 100644 --- a/thesis.tex +++ b/thesis.tex @@ -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}