{"id":67279,"date":"2025-03-05T03:01:00","date_gmt":"2025-03-04T17:01:00","guid":{"rendered":"https:\/\/www.rjmprogramming.com.au\/ITblog\/?p=67279"},"modified":"2025-03-05T10:18:28","modified_gmt":"2025-03-05T00:18:28","slug":"octopus-anatomy-youtube-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/octopus-anatomy-youtube-tutorial\/","title":{"rendered":"Octopus Anatomy YouTube Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/octopus.html\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Octopus Anatomy YouTube Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/octopus_youtube.gif\" title=\"Octopus Anatomy YouTube Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Octopus Anatomy YouTube Tutorial<\/p><\/div>\n<p>Today&#8217;s work, onto that of <a title='Octopus Anatomy Primer Tutorial' href='#oapt'>Octopus Anatomy Primer Tutorial<\/a> is a story revolving around &#8230;<\/p>\n<ul>\n<li>research &#8230; related to &#8230;<\/li>\n<li>audio\/visual learning techniques &#8230;<\/li>\n<li>HTML <a style=text-decoration:underline;cursor:pointer; onclick=\"document.getElementById('ifex').style.display='block';\" onmouseover=\"document.getElementById('ifex').style.display='block';\" ontouchstart=\"document.getElementById('ifex').style.display='block';\">iframe<\/a> interfacing &#8230; to &#8230;<code id=ifex style=display:none;>&lt;iframe style=display:none;width:100%;height:1200px; id=ifkar src='\/\/www.rjmprogramming.com.au\/HTMLCSS\/karaoke_youtube_api.htm?youtubeid=++++++++++++Djibouti%2C%20Djibouti'&gt;&lt;\/iframe&gt;<\/code><\/li>\n<li><a target=\"_blank\" title='YouTube' href='https:\/\/youtube.com' rel=\"noopener\">YouTube<\/a> videos &#8230; via &#8230;<\/li>\n<li><a target=\"_blank\" title='YouTube API for Iframe embedded videos' href='https:\/\/developers.google.com\/youtube\/iframe_api_reference' rel=\"noopener\">YouTube API<\/a><\/li>\n<\/ul>\n<p> &#8230; as a methodology to &#8220;drill down&#8221; into subject matter whose scope is initially too big for a learner to know where to start, <font color=blue>perhaps<\/font> &#8230;<\/p>\n<p><code><br \/>\nfunction check(oa) {<br \/>\n  <font color=blue>var dorandd=false;<\/font><br \/>\n  \/\/alert(document.getElementById('ui').width + ' ... ' + document.getElementById('ui').style.top + ' ... ' + document.getElementById('ui').style.left);<br \/>\n  var rectarr=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];<br \/>\n  var words=oa.getAttribute(\"data-title\").replace(\",\",\"\").replace(\"(\",\"\").replace(\")\",\"\").toLowerCase().split('_');<br \/>\n  var minx=-1, miny=-1, maxx=-1, maxy=-1, jj=0;<br \/>\n  var carray=oa.coords.split(',');<br \/>\n  if (carray.length &gt; 4) {<br \/>\n   carray.push(carray[0]);<br \/>\n   carray.push(carray[1]);<br \/>\n  }<br \/>\n  var considered=' ... (' + carray.length + ') ';<br \/>\n  for (var ii=0; ii&lt;carray.length; ii++) {<br \/>\n   jj = eval(eval(ii - eval(ii % 2)) \/ 2);<br \/>\n   considered+=' =' + jj + '= ';<br \/>\n   if (carray.length == 4) {<br \/>\n    if (ii == 0) {<br \/>\n      minx=eval(carray[ii]);<br \/>\n      maxx=eval(carray[ii]);<br \/>\n    } else if (ii == 1) {<br \/>\n      miny=eval(carray[ii]);<br \/>\n      maxy=eval(carray[ii]);<br \/>\n    } else if (ii == 2) {<br \/>\n      if (eval(carray[ii]) &lt; minx) minx=eval(carray[ii]);<br \/>\n      if (eval(carray[ii]) &gt; maxx) maxx=eval(carray[ii]);<br \/>\n    } else {<br \/>\n      if (eval(carray[ii]) &lt; miny) miny=eval(carray[ii]);<br \/>\n      if (eval(carray[ii]) &gt; maxy) maxy=eval(carray[ii]);<br \/>\n    }<br \/>\n   } else if (eval(ii % 2) == 0 && (jj == 0 || jj == 1 || jj == eval(-1 + eval(carray.length \/ 2)) || jj == eval(-2 + eval(carray.length \/ 2)) || jj == eval(-3 + eval(carray.length \/ 2)))) {<br \/>\n    if (ii == 0) {<br \/>\n      considered+='' + carray[ii] + ',' + carray[eval(1 + ii)];<br \/>\n      minx=eval(carray[ii]);<br \/>\n      maxx=eval(carray[ii]);<br \/>\n      miny=eval(carray[eval(1 + ii)]);<br \/>\n      maxy=eval(carray[eval(1 + ii)]);<br \/>\n    } else {<br \/>\n      considered+=',' + carray[ii] + ',' + carray[eval(1 + ii)];<br \/>\n      if (eval(carray[ii]) &lt; minx) minx=eval(carray[ii]);<br \/>\n      if (eval(carray[ii]) &gt; maxx) maxx=eval(carray[ii]);<br \/>\n      if (eval(carray[eval(1 + ii)]) &lt; miny) miny=eval(carray[eval(1 + ii)]);<br \/>\n      if (eval(carray[eval(1 + ii)]) &gt; maxy) maxy=eval(carray[eval(1 + ii)]);<br \/>\n    }<br \/>\n   }<br \/>\n   \/\/alert('ii=' + ii + ' ' + oa.outerHTML + ' ... ' + maxx + ' - ' + minx + ' = ' + eval(maxx - minx));<br \/>\n  }<br \/>\n\/\/  if (minx &lt; 75) {<br \/>\n\/\/    maxx=75;<br \/>\n\/\/  } else if (minx &lt; 460) {<br \/>\n\/\/    minx=460;<br \/>\n\/\/  }<br \/>\n  if (maxx &gt; eval(0 + document.getElementById('ui').width)) { maxx = eval(0 + document.getElementById('ui').width); }<br \/>\n  if (maxy &gt; eval(0 + document.getElementById('ui').height)) { maxy = eval(0 + document.getElementById('ui').height); }<br \/>\n  \/\/if (carray.length &gt; 4) {<br \/>\n  \/\/     alert(carray + ' ... ' + minx + ',' + miny + ',' + ',' + maxx + ',' + maxy + considered);<br \/>\n  \/\/}<br \/>\n  \/\/if (oa.title.indexOf('rimmer') != -1) alert(oa.title + ' ... ' + \"&lt;div style=\\\"border:1px solid red;position:absolute;z-index:9;background-repeat:no-repeat;background:URL('floor_wall_roof_framing_members.jpg');background-position:-\" + minx + \"px -\" + miny + \"px;left:\" + minx + \"px;top:\" + miny + \"px;width:\" + eval(maxx - minx) + \"px;height:\" + eval(maxy - miny) + \"px;display:block;\\\"&gt;&lt;\/div&gt;\");<br \/>\n  var ans=prompt(\"What did you point at?  One blank character is the answer to give up and reveal answer<font color=blue>, while two will offer YouTube based research material regarding the answer as well<\/font>.<font color=blue>  Suffix your answer with a space to do this research, anyway, as well.<\/font>\", \"\");<br \/>\n  goes++;<br \/>\n  var prevscore=score;<br \/>\n  if (ans != null) {<br \/>\n    <font color=blue>if (ans.indexOf('  ') == 0 && ans.trim() == '') {<br \/>\n      dorandd=true;<br \/>\n      ans=' ';<br \/>\n    } else if (('!' + ans + '~').replace(\/\\ \\~$\/g,'') != ('!' + ans + '~') && ans.trim() != '') {<br \/>\n      dorandd=true;<br \/>\n      ans=ans.trim();<br \/>\n    }<\/font><br \/>\n    var bwords=ans.replace(\",\",\"\").replace(\"(\",\"\").replace(\")\",\"\").toLowerCase().split(' ');<br \/>\n    for (var kk=0; kk&lt;bwords.length; kk++) {<br \/>\n     if (bwords[kk] != \"\") {<br \/>\n      for (var mm=0; mm&lt;words.length; mm++) {<br \/>\n        if (words[mm] == bwords[kk]) score++;<br \/>\n      }<br \/>\n     }<br \/>\n    }<br \/>\n  }<br \/>\n  if (prevscore != score || ans == \" \") {<br \/>\n   document.getElementById('overlays').innerHTML+=\"&lt;div style=\\\"position:absolute;z-index:9;background-repeat:no-repeat;background:URL('oct_opus.png');background-position:-\" + minx + \"px -\" + miny + \"px;left:\" + eval(0 + minx) + \"px;top:\" + eval(6 + miny) + \"px;width:\" + eval(maxx - minx) + \"px;height:\" + eval(maxy - miny) + \"px;display:block;\\\"&gt;&lt;\/div&gt;\";<br \/>\n   document.getElementById('score').innerHTML='Score: ' + score + '\/' + goes + \" ... \" + oa.getAttribute(\"data-title\").replace(\/_\/g,' ');<br \/>\n   \/\/if (ans == \" \") { alert(oa.getAttribute(\"data-title\").replace(\/_\/g,' ')); }<br \/>\n  } else {<br \/>\n   if (window.self != window.parent) {<br \/>\n   document.getElementById('score').innerHTML='Score: ' + score + '\/' + goes + \" ... &lt;br&gt;\" + oa.getAttribute(\"data-title\").replace(\/_\/g,' ');<br \/>\n   } else {<br \/>\n   document.getElementById('score').innerHTML='Score: ' + score + '\/' + goes;<br \/>\n   }<br \/>\n   \/\/if (prevscore == score) {  alert(oa.getAttribute(\"data-title\").replace(\/_\/g,' '));    }<br \/>\n  }<br \/>\n  <br \/>\n  <font color=blue>if (dorandd) {<br \/>\n    tost=fromst.replace('Djibouti%2C%20Djibouti', encodeURIComponent('octopus ' + oa.getAttribute(\"data-title\").replace(\/_\/g,' ')));<br \/>\n    document.getElementById('ifkar').src=ifkar.replace(fromst, tost);<br \/>\n    document.getElementById('ifkar').style.display='block';<br \/>\n  }<\/font><br \/>\n}<br \/>\n<\/code><\/p>\n<p> &#8230; in <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/octopus.html--GETME\" title=\"octopus.html\" rel=\"noopener\">octopus.html<\/a>&#8216;s <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/octopus.html--GETME\" title=\"octopus.html\" rel=\"noopener\">changed code<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/octopus.html\" rel=\"noopener\">Octopus Anatomy<\/a> game &#8230;<\/p>\n<p><iframe src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/octopus.html?rand=657887\" style=\"width:100%;height:1900px;\"><\/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\/octopus-anatomy-youtube-tutorial\/' rel=\"noopener\">Octopus Anatomy YouTube Tutorial<\/a>.<\/p-->\n<hr>\n<p id='oapt'>Previous relevant <a target=\"_blank\" title='Octopus Anatomy Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/octopus-anatomy-primer-tutorial\/' rel=\"noopener\">Octopus Anatomy 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\/octopus.html\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Octopus Anatomy Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/octopus.png\" title=\"Octopus Anatomy Primer Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Octopus Anatomy Primer Tutorial<\/p><\/div>\n<p>What do Carpentry and Octopus Anatomy have in common?  Many hands make light fittings get a bevelled edge?  No, for us, finding an arrowed diagram for Octopus Anatomy that functioned like the one we used for our Carpentry web application of <a title='Floor Wall and Roof Framing Members Primer Tutorial' href='#fwrfmpt'>Floor Wall and Roof Framing Members Primer Tutorial<\/a> below.<\/p>\n<p>So much so, we kept the same Javascript logic and bits of the HTML other than the &#8230;<\/p>\n<ul>\n<li>img element image &#8230; doh! &#8230; and &#8230;<\/li>\n<li>underlying (image) map element &#8230; created in that similar (great, stupendous) <a target=\"_blank\" title='mobilefish' href='http:\/\/www.mobilefish.com\/services\/image_map\/image_map.php' rel=\"noopener\">mobilefish<\/a> (thanks) method as for the Carpentry web application<\/li>\n<\/ul>\n<p>To get from today&#8217;s <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/octopus.html-GETME\" title=\"octopus.html\" rel=\"noopener\">octopus.html<\/a>&#8216;s <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/octopus.html-GETME\" title=\"octopus.html\" rel=\"noopener\">changed code<\/a> then we &#8230;<\/p>\n<ol>\n<li>started with the Carpentry HTML and Javascript code as a basis &#8230;<\/li>\n<li>surfing the net found interesting octopus image via <a target=\"_blank\" title='Octopus image Google search' href='https:\/\/www.google.com\/search?client=firefox-b-ab&#038;biw=1280&#038;bih=677&#038;tbs=itp%3Alineart&#038;tbm=isch&#038;sa=1&#038;ei=y2R3W6-kGoWpoASQ9Yq4DA&#038;q=octopus+diagram&#038;oq=octopus+diagram&#038;gs_l=img.3..0l6j0i5i30k1l4.2438.5549.0.5869.8.8.0.0.0.0.311.1536.2-5j1.6.0....0...1c.1.64.img..2.6.1534...0i67k1.0.fYP6jU1Ovh0#imgrc=X7XiaH3WLfDs-M:' rel=\"noopener\">this Google image search<\/a> finding <a target=\"_blank\" title='Octopus image Google search' href='https:\/\/www.researchgate.net\/figure\/Schematic-representation-of-external-and-internal-body-parts-of-octopus_fig14_305329627' rel=\"noopener\">this applicable image<\/a> (from &#8220;Methodologies for studying finfish and shellfish biology&#8221; (ISBN: 978-93-82263-03-6) by Dineshbabu Ap), thanks, that we scanned and copied (and which we later change) into an image file on this MacBook Pro that was uploaded to &#8230;<\/li>\n<li>visited mobilefish to create the new image (img element) and associated map element &#8230;<\/li>\n<li>replaced the old Carpentry img and map with the new Octopus ones, pointing the img element <em>src<\/em> property at the correct image &#8230; that image now &#8230;<\/li>\n<li>opened octopus image in <a target=\"_blank\" href='http:\/\/www.gimp.org' title='Gimp, or GIMP' rel=\"noopener\">Gimp<\/a> and Gaussian Blurred out the octopus labels via &#8230;\n<ul>\n<li>Tools -&gt; Selection Tools -&gt; Rectangle Select<\/li>\n<li>Filters -&gt; Blur -&gt; Gaussian Blur&#8230; Horizontal: 14.0px Vertical: 14.0px<\/li>\n<\/ul>\n<\/li>\n<li>(unit) tested code, and realized we&#8217;d forgotten to &#8230;<\/li>\n<li>within the new octopus img and map code replace all &#8221; title=&#8221; for &#8221; data-title=&#8221; (to hide answers from the user) and &#8221; href=&#8221; for &#8221; data-href=&#8221; to stop navigation resetting the score<\/li>\n<\/ol>\n<p> &#8230; to arrive at where we are at with today&#8217;s <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/octopus.html\" title=\"Click picture\" rel=\"noopener\">live run<\/a>.  We hope you try it, and learn a bit about Octopus Anatomy should that be your thing!<\/p>\n<hr>\n<p id='fwrfmpt'>Previous relevant <a target=\"_blank\" title='Floor Wall and Roof Framing Members Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/floor-wall-and-roof-framing-members-primer-tutorial\/' rel=\"noopener\">Floor Wall and Roof Framing Members 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\/floor_wall_roof_framing_members.html\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Floor Wall and Roof Framing Members Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/floor_wall_roof_framing_members.png\" title=\"Floor Wall and Roof Framing Members Primer Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Floor Wall and Roof Framing Members Primer Tutorial<\/p><\/div>\n<p>We all learn differently, but personally, I find it easier to learn things of a certain ilk and things that are new to me, when the study material is augmented by pictures in the form of a diagram or photograph or video, perhaps.  I know very little about carpentry, and get lost in conversations talking about &#8220;joists&#8221; and &#8220;bearers&#8221;, so, today, we&#8217;ve purloined the great <a target=\"_blank\" title='mobilefish' href='http:\/\/www.mobilefish.com\/services\/image_map\/image_map.php' rel=\"noopener\">mobilefish<\/a> image map (of HTML area elements) creator website and <a target=\"_blank\" title='Very useful webpage' href='https:\/\/no.pinterest.com\/explore\/jack-stud\/' rel=\"noopener\">this very useful webpage<\/a> (the source of the great diagram &#8230; thanks) to piece together today&#8217;s &#8220;click and learn&#8221; web application.<\/p>\n<p>We use some <a target=\"_blank\" title='Overlay blog posts' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/overlay' rel=\"noopener\">overlay<\/a> techniques with today&#8217;s game where the user tries to identify diagram labels Gaussian Blurred out (via GIMP) while a non-Gaussian-Blurred-out image is used (in an overlayed way) as the background (via background-position definitions) for HTML divs &#8230;<\/p>\n<ul>\n<li>position:absolute; left:[derivedViaMinAreaXCoords]px; top:[derivedViaMinAreaYCoords]px; width:[derivedViaMaxMinDiffAreaXCoords]px; height:[derivedViaMaxMinDiffAreaYCoords]px;<\/li>\n<li>z-index:9;<\/li>\n<li>background:URL([non-Gaussian-Blurred-out_image]); background-position:-[derivedViaMinAreaXCoords]px  -[derivedViaMinAreaYCoords]px;<\/li>\n<li>data attributes (eg. data-title) hide answers from the user to avoid making it all too easy, and internalize navigation (eg. data-href)<\/li>\n<\/ul>\n<p> &#8230; <a target=\"_blank\" tutorials rel=\"noopener\">reveal<\/a>ed as above when the user gives up (via a space answer) or answers some words correctly in the Javascript prompt window used to prompt the user for &#8220;carpentry&#8221; terminology word matches, the score incrementing for each correct word match.<\/p>\n<p>Now hope you don&#8217;t go around &#8220;nogging&#8221; in public with your newfound knowledge trying out today&#8217;s <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/floor_wall_roof_framing_members.html\" title=\"Click picture\" rel=\"noopener\">live run<\/a> test of your carpentry and building knowledge.  It is based on HTML and CSS and Javascript you could call <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/floor_wall_roof_framing_members.html_GETME\" title=\"floor_wall_roof_framing_members.html\" rel=\"noopener\">floor_wall_roof_framing_members.html<\/a> and download, as you wish.<\/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='#d36243' onclick='var dv=document.getElementById(\"d36243\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/map\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d36243' 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='#d40207' onclick='var dv=document.getElementById(\"d40207\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/anatomy\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d40207' 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='#d67279' onclick='var dv=document.getElementById(\"d67279\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/map\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d67279' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Today&#8217;s work, onto that of Octopus Anatomy Primer Tutorial is a story revolving around &#8230; research &#8230; related to &#8230; audio\/visual learning techniques &#8230; HTML iframe interfacing &#8230; to &#8230;&lt;iframe style=display:none;width:100%;height:1200px; id=ifkar src=&#8217;\/\/www.rjmprogramming.com.au\/HTMLCSS\/karaoke_youtube_api.htm?youtubeid=++++++++++++Djibouti%2C%20Djibouti&#8217;&gt;&lt;\/iframe&gt; YouTube videos &#8230; via &#8230; YouTube API &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/octopus-anatomy-youtube-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,15,33],"tags":[5131,1538,576,587,592,652,688,5130,745,997,1110,1319,1369,1493,2017],"class_list":["post-67279","post","type-post","status-publish","format-standard","hentry","category-elearning","category-event-driven-programming","category-games","category-software","tag-audio-visual","tag-embed","tag-html","tag-iframe","tag-image-map","tag-javascript","tag-learning","tag-learning-technique","tag-map","tag-programming","tag-search","tag-tutorial","tag-video","tag-youtube","tag-youtube-api"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/67279"}],"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=67279"}],"version-history":[{"count":9,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/67279\/revisions"}],"predecessor-version":[{"id":67292,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/67279\/revisions\/67292"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=67279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=67279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=67279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}