{"id":58550,"date":"2023-03-09T03:01:48","date_gmt":"2023-03-08T17:01:48","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=58550"},"modified":"2023-03-08T11:00:14","modified_gmt":"2023-03-08T01:00:14","slug":"keyboard-typing-practice-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/keyboard-typing-practice-tutorial\/","title":{"rendered":"Keyboard Typing Practice Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/no_copy_paste.htm\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Keyboard Typing Practice Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/keyboard_typing_practice.jpg\" title=\"Keyboard Typing Practice Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Keyboard Typing Practice Tutorial<\/p><\/div>\n<p>Yes, as a lot of you will have guessed, from <a title='Paste Disabling Primer Tutorial' href='#pdpt'>Paste Disabling Primer Tutorial<\/a>, that today we use it in a new &#8220;Keyboard Typing Practice&#8221; web application, knowing that we&#8217;ll be testing typing rather than &#8220;copy\/pasting&#8221;.<\/p>\n<p>And another <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/remote_files.php------GETME\">recently changed<\/a> <a target=_blank title='remote_files.php' href='http:\/\/www.rjmprogramming.com.au\/remote_files.php------GETME'>remote_files.php<\/a> (usage of PHP fopen URL <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/remote_files.php\" title=\"Click picture\">web application<\/a>) last talked about at <a target=_blank title='PHP Remote Files Refined Containing Attribute Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/php-remote-files-refined-containing-attribute-tutorial\/'>PHP Remote Files Refined Containing Attribute Tutorial<\/a> joins us, helping us randomize a quote that the user is asked to type, and we calculate the user &#8230;<\/p>\n<ul>\n<li>typing <i>words per minute<\/i> rate<\/li>\n<li>typing <i>characters per minute<\/i> rate<\/li>\n<li>typing <i>accuracy<\/i> percentage &#8230; aim for 100%<\/li>\n<li>typing <i>retake<\/i> percentage &#8230; aim for 0%<\/li>\n<\/ul>\n<p> &#8230; as guidelines the user can note to monitor for improvement.<\/p>\n<p>So try our <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/no_copy_paste.html-GETME\" title=\"no_copy_paste.html\">&#8220;how we got there from proof of concept&#8221;<\/a> <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/no_copy_paste.html-GETME\" title=\"no_copy_paste.htm\">no_copy_paste.htm<\/a> <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/no_copy_paste.htm\" title=\"Click picture\">Keyboard Typing Practising web application<\/a> you can also try below &#8230;<\/p>\n<p><iframe src=\"http:\/\/www.rjmprogramming.com.au\/no_copy_paste.htm\" style=\"width:100%;height:800px;\"><\/iframe><\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/keyboard-typing-practice-tutorial\/'>Keyboard Typing Practice Tutorial<\/a>.<\/p-->\n<hr>\n<p id='pdpt'>Previous relevant <a target=_blank title='Paste Disabling Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/paste-disabling-primer-tutorial\/'>Paste Disabling Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/no_copy_paste.html\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Paste Disabling Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/no_copy_paste.jpg\" title=\"Paste Disabling Primer Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Paste Disabling Primer Tutorial<\/p><\/div>\n<p>We have an unusual request to make to even consider a new project, which we&#8217;ll reveal over time, and which we want to take on, today.  It&#8217;s a requirement to disable any &#8220;paste&#8221; parts (of the copy\/cut\/paste paradigm) to the use of any HTML elements the event logic is applied too.<\/p>\n<p>Luckily for us a <a target=_blank title='Google search of set textarea to not allowing copy and paste' href='https:\/\/www.google.com\/search?q=set+textarea+to+not+allowing+copy+and+paste&#038;rlz=1C5CHFA_enAU973AU973&#038;sxsrf=AJOqlzVofxNPAu2UWNRy8gZUww6LxNh_Gw%3A1678051100564&#038;ei=HAcFZIaMIpDF4-EPwtC2cA&#038;ved=0ahUKEwiGio6-28X9AhWQ4jgGHUKoDQ4Q4dUDCA8&#038;uact=5&#038;oq=set+textarea+to+not+allowing+copy+and+paste&#038;gs_lcp=Cgxnd3Mtd2l6LXNlcnAQAzIFCAAQogQyBQgAEKIEOggIABCGAxCwAzoHCCMQsAIQJzoKCCEQoAEQwwQQCkoECEEYAVDEB1jQKGDkM2gBcAB4AIAB7wKIAe8MkgEHMC40LjEuMpgBAKABAcgBA8ABAQ&#038;sclient=gws-wiz-serp'>Google search &#8220;set textarea to not allowing copy and paste&#8221;<\/a> got us to <a target=_blank title='Disable pasting text into HTML form' href='https:\/\/stackoverflow.com\/questions\/1226574\/disable-pasting-text-into-html-form'>javascript &#8211; Disable pasting text into HTML form &#8211; Stack Overflow<\/a> webpage, thanks, which helped us out here in compiling our first draft <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/no_copy_paste.html_GETME\" title=\"no_copy_paste.html\">&#8220;proof of concept&#8221; no_copy_paste.html<\/a> <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/no_copy_paste.html\" title=\"Click picture\">HTML\/Javascript web application<\/a> you can also try below &#8230;<\/p>\n<p><iframe src=\"http:\/\/www.rjmprogramming.com.au\/no_copy_paste.html\" style=\"width:100%;height:800px;\"><\/iframe><\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d58545' onclick='var dv=document.getElementById(\"d58545\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/paste\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d58545' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d58550' onclick='var dv=document.getElementById(\"d58550\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/keyboard\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d58550' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Yes, as a lot of you will have guessed, from Paste Disabling Primer Tutorial, that today we use it in a new &#8220;Keyboard Typing Practice&#8221; web application, knowing that we&#8217;ll be testing typing rather than &#8220;copy\/pasting&#8221;. And another recently changed &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/keyboard-typing-practice-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,14,37],"tags":[4271,1824,2971,576,652,673,4267,907,4269,4270,997,3184,1262,4268,1319,1671,3594,1452],"class_list":["post-58550","post","type-post","status-publish","format-standard","hentry","category-elearning","category-event-driven-programming","category-tutorials","tag-accuracy","tag-character","tag-disable","tag-html","tag-javascript","tag-keyboard","tag-onpaste","tag-paste","tag-practice","tag-practising","tag-programming","tag-quote","tag-textarea","tag-touch-typing","tag-tutorial","tag-type","tag-typing","tag-word"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/58550"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=58550"}],"version-history":[{"count":6,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/58550\/revisions"}],"predecessor-version":[{"id":58560,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/58550\/revisions\/58560"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=58550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=58550"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=58550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}