{"id":38455,"date":"2018-05-28T03:01:42","date_gmt":"2018-05-27T17:01:42","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=38455"},"modified":"2021-08-04T10:34:03","modified_gmt":"2021-08-04T00:34:03","slug":"speech-to-text-hangman-game-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/speech-to-text-hangman-game-tutorial\/","title":{"rendered":"Speech to Text Hangman Game Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php?mode=5\"><img decoding=\"async\" style=\"border: 15px solid pink;float:left;\" alt=\"Speech to Text Hangman Game Tutorial\" src=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor_hangman.jpg\" title=\"Speech to Text Hangman Game Tutorial\" \/><\/a><p class=\"wp-caption-text\">Speech to Text Hangman Game Tutorial<\/p><\/div>\n<p><a target=_blank title='ESL information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/English_as_a_second_or_foreign_language'>ESL<\/a> students can also benefit from forms of learning that are games, and yesterday&#8217;s <a title='Speech to Text Vocabulary Phrases Tutorial' href='#stvpt'>Speech to Text Vocabulary Phrases Tutorial<\/a>&#8216;s new option to our <a target=_blank title='Google Speech to Text' href='https:\/\/www.google.com\/intl\/en\/chrome\/demos\/speech.html'>Google Speech to Text<\/a> API series of web application functionalities lends itself to an extension of that with a &#8220;spelling&#8221; component in the form of the popular &#8220;Hangman&#8221; game many families and school students are likely to know quite well.<\/p>\n<p>With &#8220;Hangman&#8221; we want to involve two players, one taking on the web application&#8217;s choice of English phrase to solve, and deciding whether to pass on a hint, or not to the other player trying to solve the English phrase letter by letter.  Scoring-wise that second player&#8217;s score improves if the player solves it before the &#8220;noose&#8221; comes into play, else the score is reduced by the length of the English phrase involved.<\/p>\n<p>So what was involved?<\/p>\n<ul>\n<li>map tag creation, thanks to the great <a target=_blank title='mobilefish' href='http:\/\/www.mobilefish.com\/services\/image_map\/image_map.php'>mobilefish<\/a><\/li>\n<li>the area tag to div overlay position:absolute ideas as also presented with <a target=_blank title='Very Versus Too Game Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/very-versus-too-game-primer-tutorial\/'>Very Versus Too Game Primer Tutorial<\/a> help with initial masking of image parts, before later making that mask have a transparent colour, as a player picks a letter that does not appear in the English phrase attempting to be solved &#8230;<br \/>\n<code><br \/>\nfunction areatodiv() {<br \/>\n  var areas=document.getElementsByTagName('area'), coordsare=[];<br \/>\n  for (var i=0; i&lt;areas.length; i++) {<br \/>\n   if (('' + areas[i].coords).indexOf(',') != -1) {<br \/>\n    coordsare=areas[i].coords.split(',');<br \/>\n    document.body.innerHTML += \"&lt;div onclick=\\\" document.getElementById(this.id.replace('div','i')).style.zIndex='11'; this.style.zIndex='-9'; this.style.display='transparent';\\\" id='div\" + eval(i + 1) + \"' style='border:0px solid red;overflow:hidden;display:block;z-index:3;position:absolute;left:\" + eval(-2 + eval(coordsare[0])) + \";top:\" + eval(-2 + eval(coordsare[1])) + \";width:\" + eval(12 + eval(coordsare[2]) - eval(coordsare[0])) + \";height:\" + eval(12 + eval(coordsare[3]) - eval(coordsare[1])) + \";background-color:white;'&gt;&lt;\/div&gt;\";<br \/>\n   }<br \/>\n  }<br \/>\n  if (document.URL.indexOf('tosolve=') != -1) {<br \/>\n    ts = location.search.split('tosolve=')[1] ? decodeURIComponent(location.search.split('tosolve=')[1].split('&')[0]) : '';<br \/>\n    cp = location.search.split('curplayer=')[1] ? decodeURIComponent(location.search.split('curplayer=')[1].split('&')[0]) : '1';<br \/>\n    var cl = location.search.split('clue=')[1] ? decodeURIComponent(location.search.split('clue=')[1].split('&')[0]) : '';<br \/>\n    if (ts == '' || !parent.document.getElementById('score') || !parent.document.getElementById('shangman')) {<br \/>\n      doclick();<br \/>\n    } else {<br \/>\n      hscores[0]=eval(parent.document.getElementById('score').innerHTML.replace('Score:','').replace('\/',',').replace(' ','').split(',')[0]);<br \/>\n      hscores[1]=eval(parent.document.getElementById('score').innerHTML.replace('Score:','').replace('\/',',').replace(' ','').split(',')[1]);<br \/>\n      if (cl != '') {<br \/>\n        document.getElementById('clues').innerHTML='Hint: ' + cl;<br \/>\n      } else {<br \/>\n        document.getElementById('clues').innerHTML=cl;<br \/>\n      }<br \/>\n      document.getElementById('divs').setAttribute('data-title', ts);<br \/>\n      for (var ii=0; ii&lt;ts.length; ii++) {<br \/>\n        thisc=ts.substring(ii,eval(1 + ii));<br \/>\n        if (thisc.toLowerCase() &gt;= 'a' && thisc.toLowerCase() &lt;= 'z') {<br \/>\n          thisc='_';<br \/>\n        }<br \/>\n        document.getElementById('divs').innerHTML+=thisc;<br \/>\n      }<br \/>\n      document.getElementById('divs').style.display='block';<br \/>\n      document.getElementById('clues').style.display='block';<br \/>\n      document.getElementById('sels').style.display='block';<br \/>\n      ihsels=document.getElementById('sels').innerHTML;<br \/>\n    }<br \/>\n  } else {<br \/>\n    doclick();<br \/>\n  }<br \/>\n}<br \/>\n<\/code><br \/>\n &#8230; as called at the document.body onload event\n<\/li>\n<li>the player letter selection is via an HTML select element size=27 (on non-mobile, so that the player sees all the choices at once)<\/li>\n<li>duplicate choices, as we so often do, are quietly rejected via a comparison of the player choice against a global var<font size=1>iable<\/font> we often call &#8220;sofar&#8221; which is appended by new letter selections<\/li>\n<li>additional &#8220;final slide&#8221; (far too gory to go into) presented when things go wrong<\/li>\n<\/ul>\n<p>Today&#8217;s &#8220;Hangman&#8221; game hosting <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php------GETME\" title=\"speech_supervisor.php\">changed PHP code<\/a> of <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php------GETME\" title=\"speech_supervisor.php\">speech_supervisor.php<\/a> can be tried out at this <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php?mode=5\" title=\"Click picture\">Hangman Game mode live run<\/a> link (or you can use the default <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\" title=\"Default live run link\">live run<\/a> link), which we hope you or someone you know will try out.  The new child HTML iframe code is <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/hangman_bg.html_GETME\" title=\"hangman_bg.html\">hangman_bg.html<\/a> for your perusal.<\/p>\n<hr>\n<p id='stvpt'>Previous relevant <a target=_blank title='Speech to Text Vocabulary Phrases Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/speech-to-text-vocabulary-phrases-tutorial\/'>Speech to Text Vocabulary Phrases Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php?mode=4\"><img decoding=\"async\" style=\"border: 15px solid pink;float:left;\" alt=\"Speech to Text Vocabulary Phrases Tutorial\" src=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor_vocabulary.jpg\" title=\"Speech to Text Vocabulary Phrases Tutorial\" \/><\/a><p class=\"wp-caption-text\">Speech to Text Vocabulary Phrases Tutorial<\/p><\/div>\n<p><a target=_blank title='ESL information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/English_as_a_second_or_foreign_language'>ESL<\/a> students can struggle with English Phrases and Idioms, and with that in mind we channel the ideas of the previous <a target=_blank href='https:\/\/www.rjmprogramming.com.au\/ITblog\/english-phrase-guessing-game-primer-tutorial\/' title='English Phrase Guessing Game Primer Tutorial'>English Phrase Guessing Game Primer Tutorial<\/a> on top of the previous build up from <a title='Speech to Text to Speech Tutorial' href='#stst'>Speech to Text to Speech Tutorial<\/a> to add a new option called &#8220;Vocabulary Phrases&#8221; to our Dropdown List of functionality making use of the great <a target=_blank title='Google Speech to Text' href='https:\/\/www.google.com\/intl\/en\/chrome\/demos\/speech.html'>Google Speech to Text<\/a> API.<\/p>\n<p>But it&#8217;s not just pronunciation of the &#8220;Vocabulary Phrases&#8221; that is of interest here, which the Google Chrome web browser microphone based <a target=_blank title='Google Speech to Text' href='https:\/\/www.google.com\/intl\/en\/chrome\/demos\/speech.html'>Google Speech to Text<\/a> API can be helpful for.  Learners of English can be baffled by the completely different meaning of a phrase that can sometimes only have a tenuous connection with the meanings of the individual words making it up.  In order to help here we add &#8230;<\/p>\n<ul>\n<li>&#8220;pick another phrase&#8221; button &#8230; can mean &#8220;give up&#8221; and\/or &#8220;life is too short&#8221;<\/li>\n<li>&#8220;look for more information about the phrase&#8221; link to &#8230; you guessed it &#8230; the <a target=_blank title='Google' href='http:\/\/google.com'>Google<\/a> search engine result set &#8230; thanks<\/li>\n<li>ways for the user to control &#8230;\n<ol>\n<li>Minimum phrase length<\/li>\n<li>Maximum phrase length<\/li>\n<li>Maximum length of any one word of the phrase<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>Today&#8217;s &#8220;Vocabulary Phrases&#8221; <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php-----GETME\" title=\"speech_supervisor.php\">changed PHP code<\/a> of <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php-----GETME\" title=\"speech_supervisor.php\">speech_supervisor.php<\/a> can be tried out at this <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php?mode=4\" title=\"Click picture\">Vocabulary Phrases mode live run<\/a> link (or you can use the default <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\" title=\"Default live run link\">live run<\/a> link), which we hope you or someone you know will find useful.<\/p>\n<hr>\n<p id='stst'>Previous relevant <a target=_blank title='Speech to Text to Speech Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/speech-to-text-to-speech-tutorial\/'>Speech to Text to Speech Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\"><img decoding=\"async\" style=\"border: 15px solid pink;float:left;\" alt=\"Speech to Text to Speech Tutorial\" src=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor_google_translate.jpg\" title=\"Speech to Text Hierarchy Tutorial\" \/><\/a><p class=\"wp-caption-text\">Speech to Text to Speech Tutorial<\/p><\/div>\n<p>It&#8217;s <a target=_blank title='ESL information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/English_as_a_second_or_foreign_language'>ESL<\/a> thoughts back at the top of our thinking today building on yesterday&#8217;s <a title='Speech to Text Hierarchy Tutorial' href='#stht'>Speech to Text Hierarchy Tutorial<\/a>.  We&#8217;re going the full circle today, improving on what we have already as far as an <a target=_blank title='ESL information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/English_as_a_second_or_foreign_language'>ESL<\/a> learner might be concerned (or perhaps other users too) allowing the user the ability to &#8230;<\/p>\n<p><code><br \/>\nhear it back<br \/>\n<\/code><\/p>\n<p> &#8230; via the brilliant <a target=_blank title='Google Translate' href='https:\/\/translate.google.com'>Google Translate<\/a> and its &#8220;Text to Speech&#8221; capabilities.   Hence, &#8220;Speech to Text to Speech&#8221; in today&#8217;s blog posting title.<\/p>\n<p>We see a twofold advantage here, in that &#8230;<\/p>\n<ul>\n<li>if a user doesn&#8217;t have the foggiest what is going on, they can select a language, and have the middle table cell question (or answer) be translated from English, for themselves &#8230; and &#8230;<\/li>\n<li>in the Google Chrome web browser incarnation, they may answer something and see the transcription happen, and then &#8220;hear that (transcription) back&#8221;<\/li>\n<\/ul>\n<p> &#8230; that latter functionality could highlight pronunciation weaknesses, perhaps.  Not that we are saying this replaces talking to an active speaker of the language you want to learn, but sometimes there&#8217;s just no one about that speaks that language.  I&#8217;ve tried talking to Nala, but she&#8217;s far too dogmatic <font size=1>&#8230; boom, boom &#8230; though think she might be practising Dalmation out the back of an evening<\/font>.<\/p>\n<p>What&#8217;s the new mechanism to make this happen?  A new HTML select element dropdown of languages is show in the middle table cell, augmenting the <a target=_blank title='Google Speech to Text' href='https:\/\/www.google.com\/intl\/en\/chrome\/demos\/speech.html'>Google Speech to Text<\/a> API language dropdowns, that if populated with a &#8220;language of interest&#8221; value then looks to either\/both &#8230;<\/p>\n<ul>\n<li>middle table cell question (or answer) &#8230; and\/or &#8230;<\/li>\n<li>contents of left (or perhaps right) table cells\n<\/ul>\n<p> &#8230; as the wording to be submitted to Google Translate for translation, in a new window.  As you may have seen before if you&#8217;ve used Google Translate, once there doing a translation, oftentimes you will be offered a loudspeaker icon on either side of the translation to hear a voice say the words in that language, with the accent of a native speaker (though computerlike).<\/p>\n<p>Today&#8217;s &#8220;hearing it back&#8221; <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php----GETME\" title=\"speech_supervisor.php\">changed PHP code<\/a> of <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php----GETME\" title=\"speech_supervisor.php\">speech_supervisor.php<\/a> can be tried out at this <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\" title=\"Click picture\">live run<\/a> link, which we hope you find useful.<\/p>\n<hr>\n<p id='stht'>Previous relevant <a target=_blank title='Speech to Text Hierarchy Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/speech-to-text-hierarchy-tutorial\/'>Speech to Text Hierarchy Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\"><img decoding=\"async\" style=\"border: 15px solid pink;float:left;\" alt=\"Speech to Text Hierarchy Tutorial\" src=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor_animal_categorization.jpg\" title=\"Speech to Text Hierarchy Tutorial\" \/><\/a><p class=\"wp-caption-text\">Speech to Text Hierarchy Tutorial<\/p><\/div>\n<p>Are you amazed like me at how computer software can eventually be boiled down to the difference between &#8230;<\/p>\n<ul>\n<li>1<\/li>\n<li>0<\/li>\n<\/ul>\n<p> &#8230; call it what you will &#8230; <i>yes<\/i> versus <i>no<\/i> &#8230; <i>true<\/i> versus <i>false<\/i> (<a target=_blank title='Boolean information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Boolean'>boolean<\/a> values) &#8230; <i>on<\/i> versus <i>off<\/i> &#8230; <a target=_blank title='Binary code information thanks to Wikipedia' href='https:\/\/en.wikipedia.org\/wiki\/Binary_code'>the &#8220;binary&#8221; design<\/a>?<\/p>\n<p>If you have the patience, you can break really complex decision making (that you might model with a flow chart) via &#8220;yes&#8221; versus &#8220;no&#8221; binary decisions, based on the right questions to ask.   And that is what we are doing today, recalling that earlier presented <a target=_blank title='HTML\/Javascript Animal Categorization Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/htmljavascript-animal-categorization-tutorial\/'>HTML\/Javascript Animal Categorization Tutorial<\/a> to Categorize Animals based on questions.<\/p>\n<p>As you answer these questions, all effectively &#8220;yes&#8221; versus &#8220;no&#8221; ones, you are breaking into the animal kingdom categorization hierarchy to identify an animal of interest you are interested in categorizing.  As computers do, no imagination here, but they break the problems they are presented with into &#8220;binary&#8221; decisions, to get down to the fundamentals of it all.<\/p>\n<p>And the &#8220;yes&#8221; and &#8220;no&#8221; of various languages are just about the most important words for artificial intelligence systems to recognize, so with this in mind, we thought it a good fit to use the right hand cell to open that previous Animal Categorization web application in its own HTML &#8220;child&#8221; iframe to supply the &#8220;parent&#8221; with the questions that flow through it and on up to the &#8220;parent&#8221; where, if using Google Chrome web browser, a &#8220;yes&#8221; versus &#8220;no&#8221; spoken answer may return to the &#8220;child&#8221; for further &#8220;hierarchical tunnelling&#8221;.<\/p>\n<p>The changes needed for the &#8220;child&#8221; iframe web application HTML and Javascript logic revolved around its usage of the &#8220;perfect fit&#8221; &#8230;<\/p>\n<p><code><br \/>\n<a target=_blank title='Confirm window information from w3schools' href='https:\/\/www.w3schools.com\/jsref\/met_win_confirm.asp'>confirm<\/a>(questionPrompt);  \/\/ returns true for OK button press and false for Cancel button press<br \/>\n<\/code><\/p>\n<p> &#8230; &#8220;true&#8221; and &#8220;false&#8221; function.  But today, because Javascript does not have a sleep function, we needed to add a third return value that we decide to be blank (ie. string &#8220;&#8221;).  Trouble with this is that &#8220;&#8221; equates to false by Javascript, so in our modified &#8230;<\/p>\n<p><code><br \/>\nfunction ourconfirm(prom) {<br \/>\n   var wo=null;<br \/>\n   if (parent.document) {<br \/>\n     if (parent.document.getElementById('divac')) {<br \/>\n       if (parent.document.getElementById('divac').innerHTML == '') {<br \/>\n         parent.document.getElementById('divac').innerHTML=prom.replace('(OK is yes, Cancel is no)','');<br \/>\n         if (parent.document.getElementById('sq')) {<br \/>\n           parent.document.getElementById('sq').innerHTML='&lt;b&gt;' + parent.document.getElementById('divac').innerHTML + '&lt;\/b&gt;&lt;br&gt;&lt;br&gt;';<br \/>\n         }<br \/>\n         return \"\";<br \/>\n       } else if (parent.document.getElementById('divac').innerHTML.toLowerCase() == 'yes') {<br \/>\n         parent.document.getElementById('divac').innerHTML = '';<br \/>\n         return 'true';<br \/>\n       } else if (parent.document.getElementById('divac').innerHTML.toLowerCase() == 'no') {<br \/>\n         parent.document.getElementById('divac').innerHTML = '';<br \/>\n         return 'false';<br \/>\n       } else {<br \/>\n         return \"\";<br \/>\n       }<br \/>\n     } else {<br \/>\n       var cr = confirm(prom);<br \/>\n       if (cr == true) return 'true';<br \/>\n       return 'false';<br \/>\n     }<br \/>\n   } else {<br \/>\n     var crr = confirm(prom);<br \/>\n     if (crr == true) return 'true';<br \/>\n     return 'false';<br \/>\n   }<br \/>\n}<br \/>\n<\/code><\/p>\n<p> &#8230; the true and false boolean values become string returns &#8230; called, as per our example code snippet, in <b>this changed way<\/b> &#8230;<\/p>\n<p><code><br \/>\n<b>if (flat_bodied == \"\")<\/b> <strike>var <\/strike>flat_bodied = <b>our<\/b>confirm(stuff_outside_caret(document.getElementById('flat_bodied').innerHTML));<br \/>\n<b>if (flat_bodied == \"\") { setTimeout(animal_categorize,5000); return; } else<\/b> if (flat_bodied == 'true') {<br \/>\n  type_animal = stuff_outside_caret(document.getElementById(\"flatworm\").innerHTML);<br \/>\n} else {<br \/>\n type_animal = stuff_outside_caret(document.getElementById(\"worm_leech\").innerHTML);<br \/>\n}<br \/>\n<\/code><\/p>\n<p> &#8230; converting many local variables into global variables, as per this declaration above now (declared) up near the top of the Javascript &#8230;<\/p>\n<p><code><br \/>\nvar flat_bodied = \"\"; \/\/ ourconfirm(stuff_outside_caret(document.getElementById('flat_bodied').innerHTML));<br \/>\n<\/code><\/p>\n<p> &#8230; in today&#8217;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/ConfirmWindow\/animal_categorization.html--GETME\" title=\"animal_categorization.html\">changed HTML and Javascript code<\/a> of <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/ConfirmWindow\/animal_categorization.html--GETME\" title=\"animal_categorization.html\">animal_categorization.html<\/a>.<\/p>\n<p>Adding a new &#8220;Animal Categorization&#8221; HTML select element (dropdown) option onto yesterday&#8217;s <a title='Speech to Text Survey Tutorial' href='#stst'>Speech to Text Survey Tutorial<\/a> for today&#8217;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php---GETME\" title=\"speech_supervisor.php\">changed PHP code<\/a> of <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php---GETME\" title=\"speech_supervisor.php\">speech_supervisor.php<\/a>, you can be trying this out at this <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\" title=\"Click picture\">live run<\/a> link.<\/p>\n<hr>\n<p id='stst'>Previous relevant <a target=_blank title='Speech to Text Survey Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/speech-to-text-survey-tutorial\/'>Speech to Text Survey Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\"><img decoding=\"async\" style=\"border: 15px solid pink;float:left;\" alt=\"Speech to Text Survey Tutorial\" src=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor_survey.jpg\" title=\"Speech to Text Survey Tutorial\" \/><\/a><p class=\"wp-caption-text\">Speech to Text Survey Tutorial<\/p><\/div>\n<p>On top of yesterday&#8217;s <a title='Speech to Text ESL Tutorial' href='#steslt'>Speech to Text ESL Tutorial<\/a> we add, for the first time, a &#8220;Survey&#8221; functionality not needing a two player setup.  This leaves the right hand table cell to be able to contain an HTML form element, used to &#8220;survey&#8221; the user on the survey questions you set up when selecting a new &#8220;Survey&#8221; HTML select element (dropdown) option.<\/p>\n<p>And so this is where our language of design, PHP, comes to the fore, as a useful language to process the potential for huge amounts of data related to the survey you design.<\/p>\n<p>We design the web application &#8220;Survey&#8221; component, so as to be able to email off either\/both &#8230;<\/p>\n<ul>\n<li>survey form as an HTML email attachment via the PHP mail method<\/li>\n<li>survey form results as an HTML email link via an <i>a<\/i> <i>mailto:<\/i> link to the default email client application of the user<\/li>\n<\/ul>\n<p>PHP has it over HTML &#8230;<\/p>\n<ul>\n<li>creating email as per the first option above &#8230; and &#8230;<\/li>\n<li>being able to post process method=POST data from an HTML form element, where much more data can be handled<\/li>\n<\/ul>\n<p>This new functionality can be accessed via an option of the dropdown of this <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\" title=\"Click picture\">live run<\/a> link, or a <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php?fconcept=\" title=\"Click picture\">&#8220;cut to the chase&#8221; survey<\/a> link for today&#8217;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php--GETME\" title=\"speech_supervisor.php\">changed PHP code<\/a> of <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php--GETME\" title=\"speech_supervisor.php\">speech_supervisor.php<\/a>.<\/p>\n<hr>\n<p id='steslt'>Previous relevant <a target=_blank title='Speech to Text ESL Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/speech-to-text-esl-tutorial\/'>Speech to Text ESL Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\"><img decoding=\"async\" style=\"border: 15px solid pink;float:left;\" alt=\"Speech to Text ESL Tutorial\" src=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor_more.jpg\" title=\"Speech to Text ESL Tutorial\" \/><\/a><p class=\"wp-caption-text\">Speech to Text ESL Tutorial<\/p><\/div>\n<p>When you involve audio input into a web application it is likely that that web application can become useful with learning a language, such as with ESL (English as a second or foreign language) usage, especially as such learning has &#8230;<\/p>\n<ul>\n<li>spoken<\/li>\n<li>reading<\/li>\n<li>writing<\/li>\n<\/ul>\n<p> &#8230; components to it.  As you would appreciate, once the learner is speaking and then that (spoken content) is written out (as a transcript), and the learner is then reading that content, the web application can be a &#8220;double whammy&#8221; effective learning tool.<\/p>\n<p>We extend the web application&#8217;s functionality from yesterday&#8217;s <a title='Speech to Text Primer Tutorial' href='#stpt'>Speech to Text Primer Tutorial<\/a> using a technique we often use, that being changing the original (guinea pig usage) word &#8220;Quiz&#8221; into it plus other options presented in a &#8230;<\/p>\n<ul>\n<li>HTML select (dropdown) element &#8230; <b>as per<\/b> HTML &#8220;onload&#8221; event &#8230;<br \/>\n<code><br \/>\n&lt;body onload=\"<b>document.getElementById('preq').innerHTML=dds('Quiz');<\/b> document.getElementById('kb').focus(); pickq();\"&gt;<br \/>\n<\/code><br \/>\n &#8230; call of the Javascript &#8230;<br \/>\n<code><br \/>\n        function dds(qwhat) {<br \/>\n          var selbit=\"&lt;select id=selbit <i>onchange=' location.href=document.URL.split(\\\"#\\\")[0].split(\\\"?\\\")[0] + \\\"?mode=\\\" + this.value; '<\/i>&gt;&lt;option value=0&gt;\" + modes[0] + \"&lt;\/option&gt;&lt;\/select&gt;\";<br \/>\n          for (var iselbit=1; iselbit&lt;modes.length; iselbit++) {<br \/>\n           if (mode == iselbit) {<br \/>\n            selbit=selbit.replace(\"&lt;\/select&gt;\", \"&lt;option value=\" + iselbit + \" selected&gt;\" + modes[iselbit] + \"&lt;\/option&gt;&lt;\/select&gt;\");<br \/>\n           } else {<br \/>\n            selbit=selbit.replace(\"&lt;\/select&gt;\", \"&lt;option value=\" + iselbit + \"&gt;\" + modes[iselbit] + \"&lt;\/option&gt;&lt;\/select&gt;\");<br \/>\n           }<br \/>\n          }<br \/>\n          return qwhat.replace('Quiz',selbit);<br \/>\n        }<\/p>\n<p><\/code><br \/>\n &#8230; that sets off <i>onchange<\/i> event logic to &#8230;<\/li>\n<li>reload the webpage with a URL ?mode= argument flagging this that is &#8230;<\/li>\n<li>detected <b>via<\/b> &#8230;<br \/>\n<code><br \/>\n        <b>var mode=location.search.split('mode=')[1] ? eval(decodeURIComponent(location.search.split('mode=')[1].split('&')[0])) : 0;<\/b><br \/>\n        var modes=[\"Quiz\",\"Tongue Twisters\",\"Haiku\"];<br \/>\n        var arraynames=[\"questions\",\"tongue_twisters\",\"haiku\"];<br \/>\n        var delims=[\"?\",\"~\",\"`\"];<br \/>\n        var bcols=[\"yellow\",\"lightgreen\",\"lightblue\"];<br \/>\n<\/code><br \/>\n &#8230; enabling, as necessary the &#8230;<\/li>\n<li>&#8220;mapping&#8221; of other usage arrays (we are responsible for garnering) onto the original (guinea pig) array &#8220;questions&#8221; (within &#8220;dds&#8221; function above) <b>via<\/b> &#8230;<br \/>\n <code><br \/>\n          <b>if (mode != 0) {<br \/>\n            <a target=_blank title='Javascript eval information from w3schools' href='https:\/\/www.w3schools.com\/jsref\/jsref_eval.asp'>eval<\/a>(arraynames[0] + \"=\" + arraynames[mode]);<\/b><br \/>\n            document.getElementById('tdm').style.backgroundColor=bcols[mode];<br \/>\n          <b>}<\/b><br \/>\n<\/code>\n<\/li>\n<\/ul>\n<p>That leaves, apart from the extra content duties, a new scoring mechanism, one new one of which analyzes question words against answer words and scores positive word length score components for answer words found in question words and negative word length score components for question words not found in answer words.<\/p>\n<p>Again, feel free to have a look at today&#8217;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php-GETME\" title=\"speech_supervisor.php\">changed PHP code<\/a> of <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php-GETME\" title=\"speech_supervisor.php\">speech_supervisor.php<\/a>&#8216;s <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\" title=\"\">&#8220;Speaking Quiz plus ESL Others&#8221;<\/a>.<\/p>\n<hr>\n<p id='stpt'>Previous relevant <a target=_blank title='Speech to Text Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/speech-to-text-primer-tutorial\/'>Speech to Text Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Speech to Text Primer Tutorial\" src=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.jpg\" title=\"Speech to Text Primer Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Speech to Text Primer Tutorial<\/p><\/div>\n<p>There was some <a target=_blank title='Great advice' href='https:\/\/github.com\/debugger22\/Jarvis\/issues\/17'>great advice<\/a> that had us dipping our toes into &#8220;Speech to Text&#8221; web application thoughts.  You probably know yourself about the brilliant <a target=_blank title='Google Translate' href='https:\/\/translate.google.com'>Google Translate<\/a> and its &#8220;Text to Speech&#8217; capabilities <font size=1>(<a target=_blank title='Text to Speech' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/?s=Text+to+Speech'>or read some of our postings here<\/a> such as <a title='Italian French Spanish Verb Conjugation Text to Speech Tutorial' href='#ifsvctst'>Italian French Spanish Verb Conjugation Text to Speech Tutorial<\/a>)<\/font>?   Well, it&#8217;s <a target=_blank title='Google' href='http:\/\/google.com'>Google<\/a> again supplying the brilliance for the obverse ideas used today in our &#8220;Speaking Quiz&#8221; web application idea.<\/p>\n<p>&#8220;Speaking&#8221;, that is, if you are using a recent enough version of the <a target=_blank title='Google Chrome' href='https:\/\/www.google.com\/chrome\/'>Google Chrome<\/a> web browser, some HTML aspects of which are eloquently explained by this <a target=_blank title='useful link, thanks' href='http:\/\/blogs.sitepointstatic.com\/examples\/tech\/speech-input\/index.html'>very useful link<\/a> utilizing the wonderful <a target=_blank title='Google Speech to Text' href='https:\/\/www.google.com\/intl\/en\/chrome\/demos\/speech.html'>Google Speech to Text<\/a> API.<\/p>\n<p>If you are interested in &#8220;Speech to Text&#8221; you should also check out the very interesting <a target=_blank title='Speech to Text ... Diagflow' href='https:\/\/dialogflow.com\/docs\/getting-started\/basics'>Diagflow &#8230; Speech to Text<\/a>.<\/p>\n<p>Thanks everyone, for these artificial intelligence &#8220;dipping our toes&#8221; encouragement.  Feel free to have a look at today&#8217;s PHP code of <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php_GETME\" title=\"speech_supervisor.php\">speech_supervisor.php<\/a>&#8216;s <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/speech_supervisor.php\" title=\"\">&#8220;Speaking Quiz&#8221;<\/a>.<\/p>\n<hr>\n<p id='ifsvctst'>Previous relevant <a target=_blank title='Speech to Text Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/italian-french-spanish-verb-conjugation-text-to-speech-tutorial\/'>Italian French Spanish Verb Conjugation Text to Speech Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Italian French Spanish Verb Conjugation Text to Speech Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation_and_tense_text_to_speech.jpg\" title=\"Italian French Spanish Verb Conjugation Text to Speech Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Italian French Spanish Verb Conjugation Text to Speech Tutorial<\/p><\/div>\n<p>In following up on <a href=\"#iafasvget\" title=\"Italian and French and Spanish Verb Conjugation Event Tutorial\"  \/>Italian and French and Spanish Verb Conjugation Event Tutorial<\/a> as shown below we&#8217;ve increased functionality of English translations by adding <a target=_blank title='Google Translate' href='http:\/\/translate.google.com'>Google Translate<\/a> Text to Speech capabilities to &#8230;<\/p>\n<ul>\n<li>Italian<\/li>\n<li>French<\/li>\n<li>Spanish<\/li>\n<\/ul>\n<p> &#8230; via a new &#8220;loudspeaker&#8221; icon.<\/p>\n<p>Some of the talking points with today&#8217;s changes involve &#8230;<\/p>\n<ul>\n<li>a <a target=_blank title='Reveal tutorials at this blog' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/reveal'>&#8220;reveal&#8221;<\/a> idea whereby the showing of an HTML element is controlled by its Javascript DOM [element]<a target=_blank title='CSS style.width property information from w3schools' href='http:\/\/www.w3schools.com\/cssref\/pr_dim_width.asp'><i>.style.width<\/i><\/a> CSS property, whereby the element is effectively invisible at <i>width:1px<\/i> and in our case today becomes visible, at <i>width:20px<\/i>, and, thus, clickable, for <a target=_blank title='Google Translate' href='http:\/\/translate.google.com'>Google Translate<\/a> <a target=_blank title='HTML window.open information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/met_win_open.asp'>popup window<\/a> translation and text to speech capabilities via the control of &#8230;<\/li>\n<li>binary decision making GUI ease of using HTML <a target=_blank title='HTML input tag type=checkbox information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/dom_obj_checkbox.asp'>input tag type=checkbox<\/a> and the associated Javascript DOM <i><a target=_blank title='Javascript DOM getElementsByTagName() method information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/met_doc_getelementbytagid.asp'>document.getElementById<\/a>([element]).<a target=_blank title='HTML input type=checkbox checked property information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/prop_checkbox_checked.asp'>checked<\/a><\/i> &#8230; because &#8230;<\/li>\n<li><a target=_blank title='User experience or UX information from Wikipedia ... thanks' href='http:\/\/en.wikipedia.org\/wiki\/User_experience'>UX<\/a>-wise it is good to forewarn users with an option when it comes to functionality involving sound<\/li>\n<li>use of Javascript DOM <a target=_blank title='Javascript DOM getElementsByTagName() method information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/met_doc_getelementsbytagname.asp'><i>document.getElementsByTagName(&#8216;img&#8217;)<\/i><\/a> as a means by which to manipulate HTML elements that are not necessarily provided with an <a target=_blank title='HTML element global ID property information from w3schools' href='http:\/\/www.w3schools.com\/tags\/att_global_id.asp'><i>ID<\/i><\/a> global property<\/li>\n<\/ul>\n<p>As per the other tutorials in this thread, even with new Google Translate Text to Speech and Translation capabilities, nothing changes today about the techniques used today doing away with any need for a server side language by channelling the Ajax jQuery thoughts we presented with <a target=_blank title='Ajax jQuery Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/ajax-jquery-primer-tutorial\/'>Ajax jQuery Primer Tutorial<\/a> to make the most of the great resource that WordReference.com is.  This happens in our HTML and Javascript programming source code you could call <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html-----GETME'>italian_conjugation.html<\/a>, which changed to add in French and Spanish tense contextual verb conjugations in <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html-----GETME'>this way<\/a>, with this <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html'>live run<\/a> link.<\/p>\n<hr>\n<p id='iafasvget'>Previous relevant <a target=_blank title='Italian and French and Spanish Verb Conjugation Event Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/italian-and-french-and-spanish-verb-conjugation-event-tutorial\/'>Italian and French and Spanish Verb Conjugation Event Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Italian and French and Spanish Verb Conjugation Event Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation_and_tense_event.jpg\" title=\"Italian and French and Spanish Verb Conjugation Event Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Italian and French and Spanish Verb Conjugation Event Tutorial<\/p><\/div>\n<p>In following up on <a title='Italian and French and Spanish Verb Conjugation Tense Tutorial' href='#iafasvctt'>Italian and French and Spanish Verb Conjugation Tense Tutorial<\/a> as shown below we&#8217;ve increased functionality of English translations to &#8230;<\/p>\n<ul>\n<li>Italian<\/li>\n<li>French<\/li>\n<li>Spanish<\/li>\n<\/ul>\n<p> &#8230; and the conjugations from <a target=_blank title='WordReference.com' href='http:\/\/www.wordreference.com'>WordReference.com<\/a> by offering <i>onmouseover<\/i> (ie. hover) or <i>onclick<\/i> (or mobile touch) event logic for conjugations offered by using the wonderful <a target=_blank title='MyMemory' href='http:\/\/api.mymemory.translated.net'>MyMemory<\/a> resource to translate these verb conjugations back into English, and present them in an additional column with a different background colour.<\/p>\n<p>You may recall us using <a target=_blank title='MyMemory' href='http:\/\/api.mymemory.translated.net'>MyMemory<\/a> once before when we presented <a target=_blank title='HTML\/Javascript Hearing and Listening Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/htmljavascript-hearing-and-listening-primer-tutorial\/'>HTML\/Javascript Hearing and Listening Primer Tutorial<\/a> earlier on.<\/p>\n<p>As per the other tutorials in this thread, but even more so with gleaning information from the MyMemory API via a get method, nothing changes about the techniques used today doing away with any need for a server side language by channelling the Ajax jQuery thoughts we presented with <a target=_blank title='Ajax jQuery Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/ajax-jquery-primer-tutorial\/'>Ajax jQuery Primer Tutorial<\/a> to make the most of the great resource that WordReference.com is.  This happens in our HTML and Javascript programming source code you could call <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html----GETME'>italian_conjugation.html<\/a>, which changed to add in French and Spanish tense contextual verb conjugations in <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html----GETME'>this way<\/a>, with this <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html'>live run<\/a> link.<\/p>\n<p>Hope you try out this new functionality.<\/p>\n<hr>\n<p id='iafasvctt'>Previous relevant <a target=_blank title='Italian and French and Spanish Verb Conjugation Tense Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/italian-and-french-and-spanish-verb-conjugation-and-tense-tutorial\/'>Italian and French and Spanish Verb Conjugation Tense Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Italian and French and Spanish Verb Conjugation Tense Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/spanish_conjugation_and_tense.jpg\" title=\"Italian and French and Spanish Verb Conjugation Tense Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Italian and French and Spanish Verb Conjugation Tense Tutorial<\/p><\/div>\n<p>We&#8217;ve followed up on <a title='Italian Verb Conjugation and Tense Tutorial' href='#ivcatt'>Italian Verb Conjugation and Tense Tutorial<\/a> as shown below with &#8220;tense&#8221; context to <i>some of the<\/i> conjugations of &#8230;<\/p>\n<ul>\n<li>Italian<\/li>\n<li>French<\/li>\n<li>Spanish<\/li>\n<\/ul>\n<p>Say &#8220;<i>some of the<\/i>&#8221; because &#8230;<\/p>\n<ul>\n<li>the phrase <a target=_blank title='Does not translate' href='https:\/\/www.google.com.au\/#q=does+not+translate'>&#8220;does not translate&#8221;<\/a> is often relevant with translations between spoken languages<\/li>\n<li>we may not have seen enough of the patterns giving us leads from the excellent <a target=_blank title='WordReference.com' href='http:\/\/www.wordreference.com'>WordReference.com<\/a> conjugation webpages how to conjugate for some of the English prefix\/suffix scenarios we&#8217;ve coded for &#8230; if you try this <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html\" title='Click picture'>application<\/a> out and see this is the case we&#8217;d love to hear from you, and you can email us at <a target=_blank title='Email RJM Programming' href='mailto:rmetcalfe@rjmprogramming.com.au?subject=Italian%20and%20French%20and%20Spanish%20Verb%20Conjugation%20Tense%20Tutorial'>rmetcalfe@rjmprogramming.com.au<\/a> or use the <a target=_blank title='Feedback web application' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/feedback.html'>Feedback<\/a> web application mentioned in <a target=_blank title='Feedback Email Attachment Iframe Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/feedback-email-attachment-iframe-tutorial\/'>Feedback Email Attachment Iframe Tutorial<\/a>.<\/li>\n<li>we&#8217;re only conjugating verbs<\/li>\n<\/ul>\n<p>Even amongst the conjugating language &#8220;triplets&#8221; above, noticed that when it comes to the &#8220;tense&#8221; involved, there can be variations, but don&#8217;t need to tell a lot of you this <i>old<\/i> news.  Did set me to thinking a bit about the <a target=_blank title='Tower of Babel information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Tower_of_Babel'>The Tower of Babel<\/a> story from the Bible, though.  What would the world be like if we all spoke the one language?  <a target=_blank title='Esperanto information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Esperanto'>Esperanto<\/a>, everyone?<\/p>\n<p>There&#8217;s a link between &#8220;language&#8221; and &#8220;life&#8221;.  That&#8217;s why a language without &#8220;verbs&#8221; is not a language.  And the Earth back in those dark days before any life, had no conduits for &#8220;language&#8221;.  And it&#8217;s hard to see how &#8220;life&#8221; sort of started up?  But I guess chemistry experts might be able to tell us how this might have come about.<\/p>\n<p>&#8220;Language&#8221; is all about patterns, and mirrors human progress with its &#8220;pattern&#8221; and &#8220;organization&#8221; and &#8220;flexibility&#8221; as a huge part of why we as &#8220;humans&#8221; got to be such agents of change on Earth.  Just wish there had really been a more successful <a target=_blank title='Doctor Dolittle' href='https:\/\/en.wikipedia.org\/wiki\/Doctor_Dolittle'>Doctor Dolittle<\/a> in human history that could have got the &#8220;inside goss&#8221; (so to speak) on what we could have done better to protect the world&#8217;s environments.<\/p>\n<p>As per the other tutorials in this thread, nothing changes about the techniques used today doing away with any need for a server side language by channelling the Ajax jQuery thoughts we presented with <a target=_blank title='Ajax jQuery Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/ajax-jquery-primer-tutorial\/'>Ajax jQuery Primer Tutorial<\/a> to make the most of the great resource that WordReference.com is.  This happens in our HTML and Javascript programming source code you could call <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html---GETME'>italian_conjugation.html<\/a>, which changed to add in French and Spanish tense contextual verb conjugations in <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html---GETME'>this way<\/a>, with this <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html'>live run<\/a> link.<\/p>\n<p>Hope you try it out, and even contemplate sending us some feedback.<\/p>\n<hr>\n<p id='ivcatt'>Previous relevant <a target=_blank title='Italian Verb Conjugation and Tense Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/italian-verb-conjugation-and-tense-tutorial\/'>Italian Verb Conjugation and Tense Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Italian Verb Conjugation and Tense Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation_and_tense.jpg\" title=\"Italian Verb Conjugation and Tense Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Italian Verb Conjugation and Tense Tutorial<\/p><\/div>\n<p>Again, we saw that we could extend the functionality of the recent <a title='Italian and French and Spanish Verb Conjugation Tutorial' href='#ifsvct'>Italian and French and Spanish Verb Conjugation Tutorial<\/a> as shown below, by, for Italian, to start with, trying to help the native English speaker out for where to look on the &#8220;conjugation&#8221; table presented for the English verb of interest, regarding conjugation information that might match their (verb) tense of interest.<\/p>\n<p>As you probably well know, every language on Earth has its peculiarities regarding how we express ourselves with regard to time, and a lot of that is associated with the verbs, or action words we use, and in the case of &#8230;<\/p>\n<ul>\n<li>Italian<\/li>\n<li>French<\/li>\n<li>Spanish<\/li>\n<\/ul>\n<p> &#8230; that expression of the context of time in the grammatical usage, especially for people speaking the language, is reflected by conjugations made to the verb.  Conversely, as I, a native English speaker, got to think about as this web application proceeded, English has words like &#8220;am&#8221; and &#8220;have&#8221; and &#8220;having&#8221; and &#8220;been&#8221; and &#8220;will&#8221; and &#8220;shall&#8221; and &#8220;is&#8221; and &#8220;are&#8221; and &#8220;was&#8221; and &#8220;were&#8221; and &#8220;would&#8221; and &#8220;should&#8221; and &#8220;has&#8221; and &#8220;had&#8221; and &#8220;to&#8221; and &#8216;&#8221;be&#8221; and &#8220;being&#8221; preceeding verbs, which can have, basically, two suffixes &#8220;-ing&#8221; and &#8220;-ed&#8221; (expressing present participles and past participles respectively) to try to do what conjugation does for Italian (we program for today) and French and Spanish languages.<\/p>\n<p>But there&#8217;s more to &#8220;tense&#8221; than Past, Present and Future as you well can imagine should you learn a language other than your native tongue, which you tend to &#8220;go along with the flow&#8221; perhaps unaware that &#8220;tense&#8221; exists, for some learners.  There are concepts as layers on top about the context of the time the person is speaking <i>relative<\/i> to the time they are or were talking about &#8230; it gets complex &#8230; so you get concepts like &#8220;Present Perfect Progressive&#8221; (which we did a tutorial about at <a target=_blank title='HTML\/Javascript Present Perfect Progressive Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/htmljavascript-present-perfect-progressive-primer-tutorial\/'>HTML\/Javascript Present Perfect Progressive Primer Tutorial<\/a>) if you get right into the ins and outs of all this grammar &#8230; which you might need to do to master that second language.<\/p>\n<p>Yet again, nothing changes about the techniques used today doing away with any need for a server side language by channelling the Ajax jQuery thoughts we presented with <a target=_blank title='Ajax jQuery Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/ajax-jquery-primer-tutorial\/'>Ajax jQuery Primer Tutorial<\/a> to make the most of the great resource that WordReference.com is.  This happens in our HTML and Javascript programming source code you could call <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html--GETME'>italian_conjugation.html<\/a>, which changed to add in Italian &#8220;tense&#8221; thoughts in <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html--GETME'>this way<\/a>, with this <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html'>live run<\/a> link.<\/p>\n<p>Again, we hope you try some Italian, with specified &#8220;tense&#8221; prefix words and suffix endings, to see how the new functionality helps you out with Italian verb conjugations.<\/p>\n<hr>\n<p id='ifsvct'>Previous relevant <a target=_blank title='Italian and French and Spanish Verb Conjugation Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/italian-and-french-and-spanish-verb-conjugation-tutorial\/'>Italian and French and Spanish Verb Conjugation Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Italian and French and Spanish Verb Conjugation Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/french_conjugation.jpg\" title=\"Italian and French and Spanish Verb Conjugation Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Italian and French and Spanish Verb Conjugation Tutorial<\/p><\/div>\n<p>We saw that we could extend the functionality of yesterday&#8217;s <a title='Italian Verb Conjugation Primer Tutorial' href='#ivcpt'>Italian Verb Conjugation Primer Tutorial<\/a> as shown below, by accessing other resources from the great <a target=_blank title='WordReference.com' href='http:\/\/www.wordreference.com'>WordReference.com<\/a>, adding French and Spanish verb conjugation to yesterday&#8217;s Italian verb conjugation.<\/p>\n<p>As a rule we tend to find that replacing text with HTML select &#8220;dropdown&#8221; menus can help out this adaption pretty effectively.  The other feature of today&#8217;s Javascript coding is the use of <i>eval<\/i> to team with the language code to direct user traffic to the correct parts of the WordReference.com website.<\/p>\n<p>Along the way we added some background &#8220;flag&#8221; imagery we found at <a target=_blank title='Flag resource' href='http:\/\/www.sciencekids.co.nz\/pictures\/flags.html'>Science Kids<\/a> &#8230; thanks, heaps.<\/p>\n<p>Down the little brick road we also added a couple of <i>hashtag navigators<\/i>, HTML <i>a<\/i> links that just navigate within the page, allowing the user to move from the conjugation yellow zone to the translation zone (if you translated from English), as much as anything because the conjugation may need to be prompted by picking the &#8220;verb&#8221; amongst the list of &#8220;translated&#8221; possibilities, which you can then feed into the rightmost HTML input type=text textbox to, more than likely, get the (verb) conjugation you may have missed with the first pass.<\/p>\n<p>Nothing changes about the techniques used today doing away with any need for a server side language by channelling the Ajax jQuery thoughts we presented with <a target=_blank title='Ajax jQuery Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/ajax-jquery-primer-tutorial\/'>Ajax jQuery Primer Tutorial<\/a> to make the most of the great resource that WordReference.com is.  This happens in our HTML and Javascript programming source code you could call <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html-GETME'>italian_conjugation.html<\/a>, which changed to add in French and Spanish in <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html-GETME'>this way<\/a>, with this <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html'>live run<\/a> link.<\/p>\n<p>Hope you try it out.<\/p>\n<hr>\n<p id='ivcpt'>Previous relevant <a target=_blank title='Italian Verb Conjugation Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/italian-verb-conjugation-primer-tutorial\/'>Italian Verb Conjugation 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\/HTMLCSS\/italian_conjugation.html\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Italian Verb Conjugation Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.jpg\" title=\"Italian Verb Conjugation Primer Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Italian Verb Conjugation Primer Tutorial<\/p><\/div>\n<p>Learning Italian as a native English speaker is best done when you are young, and beginning recently on this quest, I learnt a bit of this.<\/p>\n<p>To me, what stuck out, was how easy we get it in English with regard to (the lack of) <a target=_blank title='Conjugation information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Grammatical_conjugation'>conjugating<\/a> verbs, or articles, or adjectives, in our grammar.<\/p>\n<p>Is it that, in English, we can say something in a hurry and, sort of, wait to fix it up later, because we don&#8217;t conjugate verbs in our mind, or is this not how it works in other languages?  Actually, am pretty sure no, because conjugation is done so fast in the minds of Italian speakers that it is no issue &#8230; hard to imagine, though, from where I&#8217;m standing &#8230; well, actually, sitting.  Am not here to say, but know it is this, that teachers of Italian to English native speakers, concentrate on in early lessons.<\/p>\n<p>With this in mind, we don&#8217;t for one second pretend we are not using the wonderful resources at <a target=_blank title='WordReference.com' href='http:\/\/www.wordreference.com'>WordReference.com<\/a> with today&#8217;s web application, but we thank them for their brilliance, and just rearrange things that you could glean perfectly well from  <a target=_blank title='WordReference.com' href='http:\/\/www.wordreference.com'>here<\/a> but need to take a few more steps to reach the conjugation (today it&#8217;s just verbs) web page bits, whereas we throw the conjugation bits straight at you.  And yes, we do try to cater for the irregular verbs, and where they are regular you should see the word &#8220;regular&#8221; mentioned in the yellow zone conjugation areas &#8230; because we all know &#8230; <font color=red>well, you know what we <a target=_blank title='The red zone' href='https:\/\/www.youtube.com\/watch?v=FyOX4G7TmE0'>mean<\/a>?!<\/font><\/p>\n<p>The techniques used today do away with any need for a server side language by channelling the Ajax jQuery thoughts we presented with <a target=_blank title='Ajax jQuery Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/ajax-jquery-primer-tutorial\/'>Ajax jQuery Primer Tutorial<\/a> to make the most of the great resource that WordReference.com is.  This happens in our HTML and Javascript programming source code you could call <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html_GETME'>italian_conjugation.html<\/a> with this <a target=_blank title='italian_conjugation.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/italian_conjugation.html'>live run<\/a> link.<\/p>\n<p>So we hope you enjoy this break from our usual (other way around) <a target=_blank title='ESL information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/English_as_a_second_or_foreign_language'>ESL<\/a> game (if it&#8217;s a game) to some &#8220;Conjugate, Italian Style&#8221; play.<\/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='#21587' onclick='var dv=document.getElementById(\"d21587\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/jquery\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d21587' 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='#21606' onclick='var dv=document.getElementById(\"d21606\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/ajax\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d21606' 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='#21654' onclick='var dv=document.getElementById(\"d21654\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/grammar\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d21654' 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='#21693' onclick='var dv=document.getElementById(\"d21693\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/tense\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d21693' 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='#21707' onclick='var dv=document.getElementById(\"d21707\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/event\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d21707' 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='#21943' onclick='var dv=document.getElementById(\"d21943\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/text-to-speech\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d21943' 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='#38314' onclick='var dv=document.getElementById(\"d38314\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/microphone\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d38314' 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='#38337' onclick='var dv=document.getElementById(\"d38337\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/esl\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d38337' 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='#38360' onclick='var dv=document.getElementById(\"d38360\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/post\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d38360' 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='#38375' onclick='var dv=document.getElementById(\"d38375\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/categorization\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d38375' 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='#38406' onclick='var dv=document.getElementById(\"d38406\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/google-translate\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d38406' 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='#38445' onclick='var dv=document.getElementById(\"d38445\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/phrase\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d38445' 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='#38455' onclick='var dv=document.getElementById(\"d38455\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/game\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d38455' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>ESL students can also benefit from forms of learning that are games, and yesterday&#8217;s Speech to Text Vocabulary Phrases Tutorial&#8216;s new option to our Google Speech to Text API series of web application functionalities lends itself to an extension of &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/speech-to-text-hangman-game-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":[88,103,1818,2554,2304,396,399,452,476,477,513,532,2558,2555,564,576,652,781,894,932,939,1623,970,997,2557,2553,1182,2095,1258,1300,1319,1388],"class_list":["post-38455","post","type-post","status-publish","format-standard","hentry","category-elearning","category-event-driven-programming","category-tutorials","tag-api","tag-array","tag-artificial-intelligence","tag-boolean","tag-categorization","tag-esl","tag-eval","tag-form","tag-game","tag-games-2","tag-google","tag-google-translate","tag-hangman","tag-hear","tag-hierarchy","tag-html","tag-javascript","tag-microphone","tag-overlay","tag-php","tag-phrase","tag-phrases","tag-post","tag-programming","tag-pronounciation","tag-speech-to-text","tag-spelling","tag-survey","tag-text-to-speech","tag-translate","tag-tutorial","tag-vocabulary"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/38455"}],"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=38455"}],"version-history":[{"count":9,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/38455\/revisions"}],"predecessor-version":[{"id":52915,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/38455\/revisions\/52915"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=38455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=38455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=38455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}