Tag Archives: collaboration

Image Flipping or Flopping at Speed Sharing Tutorial

To value add with a web application, further to yesterday’s Image Flipping or Flopping at Speed Browsing Tutorial, we see it as important to get to a point where you can broach that big philosophical question … Do you see what I see? … and the most approachable way we know to attempt this is to allow an … email … or … SMS … recipient be able to click a link within an email or SMS, and recreate a lot of what the originator is trying to convey, information wise. To do this, we use … “a” href=”mailto:[EmailAddress]?subject=Image%20Flip%20or%20Flop&body=encodeURIComponent(originatorURLsimulatingCurrentLook)” “a” href=”sms:[SMSnumber]&body=encodeURIComponent(originatorURLsimulatingCurrentLook)” … or … … elements constructed on the fly via the user press of two new buttons presented (within the Javascript script element’s document.write clause) … <script type=text/javascript> document.write(‘ blah blah blah <br><br>Show Axis <input id=axchk type=checkbox onchange=changeax(this); ‘ + (showax == true ? ‘checked’ : ”) + ‘></input>  <button onclick=” doemail(); ” id=”butemail”>Email &#128231;</button>  <button onclick=” dosms(); ” id=”butsms”>SMS &#128223;</button><br><br> blah blah blah ‘); </script> … via … function constructahref() { var phrefis=document.URL.split(‘?’)[0].split(‘#’)[0]; phrefis+=’?radius=’ + encodeURIComponent(” + brad) + ‘&rpm=’ + encodeURIComponent(” + rpm) + ‘&transform=’ + encodeURIComponent(document.getElementById(‘sforf’).value) + ‘&axis=’ + (showax == true ? ‘y’ : ‘n’) + ‘&#url=’ + (theimgurl == ‘http://www.rjmprogramming.com.au/Android/NalaLuna.jpg’ ? ” : encodeURIComponent(document.getElementById(‘myimg’).src)); return phrefis; } function doemail() { var anchor=null; var emis=prompt(‘Please enter email address to send to.’, ”); if (emis == null) { emis=”; } if (emis.indexOf(‘@’) != -1) { anchor = document.createElement(‘a’); anchor.href = ‘mailto:’ + emis.trim() + ‘?subject=My%20Flip%20or%20Flop&body=’ + encodeURIComponent(constructahref()); anchor.style.display=’none’; document.body.appendChild(anchor); anchor.innerHTML=’Email’; anchor.target=’_top’; anchor.click(); } else if (emis.trim() != ” && emis.trim().replace(/0/g,”).replace(/1/g,”).replace(/2/g,”).replace(/3/g,”).replace(/4/g,”).replace(/5/g,”).replace(/6/g,”).replace(/7/g,”).replace(/8/g,”).replace(/9/g,”) == ”) { anchor = document.createElement(‘a’); anchor.href = ‘sms:’ + emis.trim() + ‘&body=’ + encodeURIComponent(constructahref()); anchor.style.display=’none’; anchor.innerHTML=’SMS’; anchor.target=’_top’; anchor.click(); } } function dosms(){ var anchor=null; var emis=prompt(‘Please enter SMS number to send to.’, ”); if (emis == null) { emis=”; } if (emis.indexOf(‘@’) != -1) { anchor = document.createElement(‘a’); anchor.href = ‘mailto:’ + emis.trim() + ‘?subject=My%20Flip%20or%20Flop&body=’ + encodeURIComponent(constructahref()); anchor.style.display=’none’; document.body.appendChild(anchor); anchor.innerHTML=’Email’; anchor.target=’_top’; anchor.click(); } else if (emis.trim() != ” && emis.trim().replace(/0/g,”).replace(/1/g,”).replace(/2/g,”).replace(/3/g,”).replace(/4/g,”).replace(/5/g,”).replace(/6/g,”).replace(/7/g,”).replace(/8/g,”).replace(/9/g,”) == ”) { anchor = document.createElement(‘a’); anchor.href = ‘sms:’ + emis.trim() + ‘&body=’ + encodeURIComponent(constructahref()); anchor.style.display=’none’; anchor.innerHTML=’SMS’; anchor.target=’_top’; anchor.click(); } } So what is the point of the new checkbox? Well, that involves some aesthetic display work involving a new horizontal rule ( ie. hr <hr id=myhr style=display:none;z-index:-1;transform:rotate(90deg);overflow:visible;></hr> ) element we use to approximate the axis around which the Flip or Flop (of the image) is taking place … var iw=0, ih=0; var showax=(location.search + (” + location.hash).replace(/^null/g,”).replace(/^undefined/g,”).replace(/^\#/g,’&’)).split(‘axis=’)[1] ? ((decodeURIComponent((location.search + (” + location.hash).replace(/^null/g,”).replace(/^undefined/g,”).replace(/^\#/g,’&’)).split(‘axis=’)[1].split(‘&’)[0])).toLowerCase().indexOf(‘y’) == 0 ? true : false) : true; function changef(tbo) { if (tbo.value.toLowerCase() == ‘flip’) { imgo.style.transform=’scaleY(1)’; sxis=1.0, syis=0.0; document.getElementById(‘myhr’).style.left=’0px’; document.getElementById(‘myhr’).style.width=” + eval(10 + eval(” + Math.max(ih,iw))) + ‘px’; //document.getElementById(‘myhr’).style.height=’20px’; document.getElementById(‘myhr’).style.top=” + eval(eval(” + iw) / 2) + ‘px’; document.getElementById(‘myhr’).style.transformOrigin=” + eval(eval(” + eval(10 + eval(” + Math.max(ih,iw)))) / 2) + ‘px 0px’; //document.getElementById(‘myhr’).style.backgroundColor=’black’; document.getElementById(‘myhr’).style.transform=’rotate(90deg)’; } else if (tbo.value.toLowerCase() == ‘flop’) { imgo.style.transform=’scaleX(1)’; … Continue reading →

Posted in Animation, eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , | Leave a comment

WordPress Blog Web Share API Sharing Tutorial

It was pretty exciting discovering a bit about the Web Share API we first talked about with MAMP Timekeeping Web Application Web Share API Tutorial some time ago now. It has two modus operandi talents … sharing links in many communication choices, such as, on this macOS MacBook Air (out of the box) … Mail Messages AirDrop Notes Reminders sharing documents as attachments in many communication choices, such as, on this macOS MacBook Air (out of the box) … Mail Messages AirDrop Notes Reminders Alas, this Web Share API, across the browsers and platforms, is only reliable about the first modus operandi above, for which we add to this WordPress Blog’s functionality via, in the TwentyTen Theme’s header.php … Calling the Web Share API <?php echo “<script type=text/javascript src=/web_share_api_test.js?populate=as_necessary9876&rand=” . rand(0,786756) . ” defer>/script>”; ?> New emoji button 👥 (&#128101;) up the top for URL link sharing via the Web Share API <?php echo ” function mlater() { if (onlok) { if (1 == 1 || navigator.userAgent.match(/Android|BlackBerry|iPhone|iPod|Opera Mini|IEMobile/i)) { if (dbihis == ”) { dbihis=document.body.innerHTML; } var xstih=document.getElementById(‘site-title’).innerHTML; if (xstih.indexOf(“up” + “top”) == -1) { document.getElementById(‘site-title’).innerHTML+='<?php echo doisr(); ?>’ + ‘<a id=”avs” style=”text-decoration:none;font-size:<?php global $fns; echo $fns; ?>px;” href=# onmouseover=”getVisualSynopsis(event);” onmouseout=”yehbut();” ontouchstart=”getVisualSynopsis(event);” ontouchend=”yehbut();” onclick=” uptop(); ” title=”… you can wait for the long hover functionality about Visual Synopsis (Slideshows)”>&#127910;</a> <button onclick=”atclick();” id=”share” type=”button” title=”Share your media or documents or link!” style=”display:inline-block;”>&#128101;</button> <a style=”cursor:pointer;text-decoration:none;font-size:<?php global $fns; echo $fns; ?>px;” onclick=”diffphpfix(this);” title=”Code Difference Functional Links”>&#128214;</a> <a style=”cursor:pointer;text-decoration:none;font-size: 22px;” onclick=”popselid();” title=”Filter Content via Div ID”>&#10135;</a> <a style=”cursor:pointer;text-decoration:none;visibility:hidden;font-size:<?php global $fns; echo $fns; ?>px;” title=”Blog post contents reduced to summary” id=”eds” onclick=”pre_details_summary();”>&#10134;</a>’ + printscreen(0); if (document.URL.indexOf(“visualsynopsis=”) != -1) document.getElementById(‘avs’).click(); } } } } “; ?> But a great feature Safari web browsers allow for is a Right Click option Share… Allowing an attachment of the media right clicked on be modelled to the user after their communication choice is selected. That last option is so good, but don’t expect email subject fields be filled out for you. Apparently that is a security issue. Otherwise, the contextual aspects to sharing on this WordPress Blog have been improved considerably via the changed web_share_api.js external Javascript usage. Previous relevant MAMP Timekeeping Web Application Web Share API Tutorial is shown below. Adding onto yesterday’s MAMP Timekeeping Web Application Audio Commentary Tutorial … Timekeeping Web Application newish Text to Audio (via macOS say via MAMP “Intranet feel”) … today, we have … Timekeeping Web Application new Web Share API (public domain Document Root external Javascript Web Share API) Javascript logic This got us decoupling what can become … an external Javascript web_share_api_test.js that becomes dual purpose … from … reducing … the changed HTML and Javascript web_share_api_test.html Web Share API supervisor down to size … <script type=’text/javascript’ src=’/web_share_api_test.js’ defer></script> … and helps out … the changed HTML and Javascript quarter_hour_timer.html (we still ask you to download to MAMP‘s $_SERVER[‘DOCUMENT_ROOT’] “HTMLCSS” subfolder) Web Application supervisor … Continue reading →

Posted in eLearning, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Pandoc on AlmaLinux Conversion Emoji SVG CSS Tutorial

Thinking on yesterday’s Pandoc on AlmaLinux Conversion Multiple Tutorial progress with our public facing Pandoc interfacing inhouse PHP Document Conversion web application we thought it might be good to have a day where we think about what my Under 7’s coach used to call … Oompha … and we went forward on this combining several of our favourite web work concepts, they being … emojis SVG background images text rotation colour opacity text shadow … and, let’s be honest, it’s usually not one of our favourite, but useful today adding to the CSS ideas above … background-repeat: repeat; Then we applied CSS … <?php echo ” <style> .docx { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:lightgreen;’><text y=’20%’>\\01f4c4</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’red’ fill-opacity=’0.6′>docx</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .doc { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:lightgreen;’><text y=’20%’>\\01f4c4</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’red’ fill-opacity=’0.6′>doc</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .html { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:lightgreen;’><text y=’20%’>\\01f4c4</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’red’ fill-opacity=’0.6′>html</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .odt { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:lightgreen;’><text y=’20%’>\\01f4c4</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’red’ fill-opacity=’0.6′>odt</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .pdf { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:lightgreen;’><text y=’20%’>\\01f4c4</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’red’ fill-opacity=’0.6′>pdf</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .rtfd { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:lightgreen;’><text y=’20%’>\\01f4c4</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’red’ fill-opacity=’0.6′>rtfd</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .rtf { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:lightgreen;’><text y=’20%’>\\01f4c4</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’red’ fill-opacity=’0.6′>rtf</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .txt { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:lightgreen;’><text y=’20%’>\\01f4c4</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’red’ fill-opacity=’0.6′>txt</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .ydocx { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:yellow;’><text y=’20%’>\\01f4dd</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’blue’ fill-opacity=’0.6′>docx</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .ydoc { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:yellow;’><text y=’20%’>\\01f4dd</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’blue’ fill-opacity=’0.6′>doc</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .yhtml { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:yellow;’><text y=’20%’>\\01f4dd</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’blue’ fill-opacity=’0.6′>html</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .yodt { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:yellow;’><text y=’20%’>\\01f4dd</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’blue’ fill-opacity=’0.6′>odt</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .ypdf { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:yellow;’><text y=’20%’>\\01f4dd</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’blue’ fill-opacity=’0.6′>pdf</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .yrtfd { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:yellow;’><text y=’20%’>\\01f4dd</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’blue’ fill-opacity=’0.6′>rtfd</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .yrtf { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:yellow;’><text y=’20%’>\\01f4dd</text><text y=’50%’ transform=’translate(5,0) rotate(30)’ fill=’blue’ fill-opacity=’0.6′>rtf</text></svg>\”) !important; background-repeat:repeat; background-position: center right; } .ytxt { background-image: url(\”data:image/svg+xml;utf8,<svg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ viewport=’0 0 100 100′ style=’font-family:Verdana;font-size:10px;background-color:yellow;’><text y=’20%’>\\01f4dd</text><text … Continue reading →

Posted in eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Pandoc on AlmaLinux Conversion Multiple Tutorial

The “theme word” of today’s blog posting adding to yesterday’s Pandoc on AlmaLinux Conversion Sharing Tutorial is … multiple … in the sense of … allowing for multiple sharing conduits whether they be email and/or SMS recipients allowing for multiple browsed for input file selections which involved a tweaked client_browsing.htm local file browsing helperer outerer … in terms of our public facing Pandoc interfacing inhouse PHP Document Conversion web application. But, did we mention, downloading to a local Apache/PHP/MySql web server such as MAMP is a good alternative environment approach, that is? Also, we’ve added to the PDF (output, that is) format smarts by filling in fields of that accompanying PDF Conversion web application we introduced yesterday, if the user selects to output to PDF, and follows through on this, in our changed for multiple input file selections macos_textutil_convert.php PHP web application you can also try below. Did you know? You may have noticed a few uses for hashtagging in this project … used extensively for email (where it appears to us to be of more practical use in so far as saved email links can be clicked much later to reconstruct output files … that is) and SMS link URLs used to help populate input data items when multiple browsed for files are selected and new popup windows need that help navigating from non-PDF parts of the webpage to PDF parts … more your traditional use of hashtags … #that is Just note, though, it could be that the web browser cache is not your friend here, and you may want a PHP $_GET (ie. ? delimited) argument with some randomosity to accompany any “lonely hashtags” out there! And just before we go … var mylocationhash=”; if ((” + location.hash).replace(/^undefined/g,”).replace(/^null/g,”).replace(/^\#/g,”).trim() == ”) { // sometimes it’s because … if ((” + document.URL).indexOf(‘#’) != -1) { if ((” + document.URL).split(‘#’)[1].trim() != ”) { mylocationhash=decodeURIComponent((” + document.URL).split(‘#’)[1]); // your hashtagging is contained in document.URL … } } } else { mylocationhash=decodeURIComponent((” + location.hash).replace(/^undefined/g,”).replace(/^null/g,”).replace(/^\#/g,”)); // versus it existing in location.hash } Don’t give up … don’t give up … that is Previous relevant Pandoc on AlmaLinux Conversion Guises Tutorial is shown below. It pans out yesterday’s Pandoc on AlmaLinux Conversions Primer Tutorial revisit start to our … Pandoc document conversion … interfacing PHP web application involves more than a two day job. Today, before any PDF input or any new format thinking, we took an interest in the way a user may want to use the output formats … html txt … which Pandoc knows as plain … as we found “talents” for each, those being … html … is better when there are UTF-8 characters involved in the converted data txt … which Pandoc knows as plain … is useful in a pair of guises … with line feeds without line feeds … depending on what use the user sees with … Continue reading →

Posted in eLearning, Event-Driven Programming, Operating System, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Pandoc on AlmaLinux Conversion Sharing Tutorial

Improving on the sharing functionality regarding the public web server hosting aspects to our inhouse Pandoc Document Conversion interfacing web application last talked about at the recent Pandoc on AlmaLinux Conversion Guises Tutorial had us … rearranging any PHP $_GET[] based navigation to $_POST[] based navigation (except for links off emails and/or SMSs, which have to be $_GET[] based … but read on) … and … a link href mailto: and sms: calls now occur before that navigation rather than after … so that … logic can coalesce to $_POST[] based Pandoc calls … which result in … RJM Programming web server /tmp/ positioned output documents created … in readiness for … email or SMS links used by a sharing recipient first try seeing if that RJM Programming web server /tmp/ positioned output document still exists, and if so, the processing is much less involved … and will … try recreating those RJM Programming web server /tmp/ positioned output document otherwise Involving PDF as an input file type we decided to, in our changed macos_textutil_convert.php PHP web application you can also try below … interface via a new input checkbox … that if checked … opens a new iframe with a totally different iframe hosted inhouse web application presenting actions you can make happen when the input is a PDF file All this above can be confusing to users new to Open Source products and ideas, and so to embellish span elements around the place, offering onclick logic so the user can start on their own research regarding these fabulous Open Source products with which PHP works so well. Previous relevant Pandoc on AlmaLinux Conversion Guises Tutorial is shown below. It pans out yesterday’s Pandoc on AlmaLinux Conversions Primer Tutorial revisit start to our … Pandoc document conversion … interfacing PHP web application involves more than a two day job. Today, before any PDF input or any new format thinking, we took an interest in the way a user may want to use the output formats … html txt … which Pandoc knows as plain … as we found “talents” for each, those being … html … is better when there are UTF-8 characters involved in the converted data txt … which Pandoc knows as plain … is useful in a pair of guises … with line feeds without line feeds … depending on what use the user sees with this data, and because we want to restrict the user to internal use only data displays, we wanted to have a means by which these three “guises” were available to the user in an HTML div element (which is more flexible than a textarea element) to serve these purposes, as well as popup window HTML presentations where those UTF-8 characters can be more easily controlled. The day gets quickly used up with issues like this, we find, regarding the changed … Continue reading →

Posted in eLearning, Event-Driven Programming, Operating System, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Mister Ed Mathematics Collaboration Tutorial

Onto the previous Mister Ed Mathematics Primer Tutorial, if we are talking collaboration today, you might expect an emoji button or two to send an email or SMS, but we’ve intertwined … ideas of collaboration and sharing … with … window.localStorage (ie. like HTTP Cookie) web browser intersessional and intrasessional approaches to recalling … a user’s own defined YouTube … identifier,duration,start,end … inhouse argument definitions … which can … be slotted (for yourself, as a user, or derivable by an email or SMS recipient) into the mix of (perhaps, now, not) Mister Ed video snippets that get played as a user answers correctly, in the Mister Ed Mathematics quiz … and we access that just with “behind the scenes” links a savvy user can click to access (but explained in “blurb land”) … function ask() { var advice=”, kpstr=”; var xem=prompt(‘Enter arguments such as … ‘ + String.fromCharCode(10) + String.fromCharCode(10) + “?mr_ed_ideas=REC2gi-Hu2M,REC2gi-Hu2M&mr_ed_ideasdur=299.0,299.0&mr_ed_ideasizero=60,168&mr_ed_ideasjzero=70,237&keep=y” + String.fromCharCode(10) + String.fromCharCode(10) + ” … where your entry must start with ? and the keep=y is there to remember for next session and email= or sms= can be used.”, “keep=y&mr_ed_ideas=REC2gi-Hu2M,REC2gi-Hu2M&mr_ed_ideasdur=299.0,299.0&mr_ed_ideasizero=60,168&mr_ed_ideasjzero=70,237″); if (xem == null) { xem=”; } else if ((” + xem + ‘!’).substring(0,1) != ‘?’) { xem=”; } var wasxem=xem; if (xem.indexOf(‘mr_ed_ideas=’) != -1 && xem.indexOf(‘mr_ed_ideasdur=’) != -1 && xem.indexOf(‘mr_ed_ideasizero=’) != -1 && xem.indexOf(‘mr_ed_ideasjzero=’) != -1) { if (xem.indexOf(‘?’) == 0 && xem.indexOf(‘=’) != -1) { var recip=”; if (xem.indexOf(’email=’) != -1) { if (inbideas != ” && inbideasdur != ” && inbideasizero != ” && inbideasjzero != ” && xem.indexOf(‘mr_ed_ideas’) == -1) { wasxem+=’&mr_ed_ideas=’ + encodeURIComponent(inbideas); wasxem+=’&mr_ed_ideasdur=’ + encodeURIComponent(inbideasdur); wasxem+=’&mr_ed_ideasizero=’ + encodeURIComponent(inbideasizero); wasxem+=’&mr_ed_ideasjzero=’ + encodeURIComponent(inbideasjzero); } if (xem.indexOf(‘keep=’) != -1) { wasxem=wasxem.replace(/keep\=/g,’keNOep=’); kpstr=’?keNOep=y’; advice=encodeURIComponent(‘ … if you like Mister Ed (YouTube video) ideas, to remember for the next time, reissue URL below with keNOep changed to keep …’); } recip=(xem + ‘&’).split(’email=’)[1].split(‘&’)[0]; if (recip.trim().indexOf(‘@’) != -1) { document.getElementById(’ems’).href=’mailto:’ + recip + ‘?subject=Mister%20Ed%20Mathematics’ + advice + ‘&body=’ + encodeURIComponent(document.URL.split(‘?’)[0].split(‘#’)[0] + kpstr + ‘#’ + wasxem.replace(/^\?/g,”).replace(’email=’,’emJail=’).replace(‘sms=’,’sJms=’)); setTimeout(function(){ document.getElementById(’ems’).click(); }, 2000); } } else if (xem.indexOf(‘sms=’) != -1) { if (inbideas != ” && inbideasdur != ” && inbideasizero != ” && inbideasjzero != ” && xem.indexOf(‘mr_ed_ideas’) == -1) { wasxem+=’&mr_ed_ideas=’ + encodeURIComponent(inbideas); wasxem+=’&mr_ed_ideasdur=’ + encodeURIComponent(inbideasdur); wasxem+=’&mr_ed_ideasizero=’ + encodeURIComponent(inbideasizero); wasxem+=’&mr_ed_ideasjzero=’ + encodeURIComponent(inbideasjzero); } if (xem.indexOf(‘keep=’) != -1) { wasxem=wasxem.replace(/keep\=/g,’keNOep=’); kpstr=’?keNOep=y’; advice=encodeURIComponent(‘ … if you like Mister Ed (YouTube video) ideas, to remember for the next time, reissue URL below with keNOep changed to keep …’); } recip=(xem + ‘&’).split(‘sms=’)[1].split(‘&’)[0]; if (recip.trim() != ” && recip.trim().replace(/0/g,”).replace(/1/g,”).replace(/2/g,”).replace(/3/g,”).replace(/4/g,”).replace(/5/g,”).replace(/6/g,”).replace(/7/g,”).replace(/8/g,”).replace(/9/g,”) == ”) { document.getElementById(’ems’).href=’sms:’ + recip + ‘&body=’ + encodeURIComponent(document.URL.split(‘?’)[0].split(‘#’)[0] + kpstr + ‘#’ + wasxem.replace(/^\?/g,”).replace(‘sms=’,’sJms=’).replace(’email=’,’emJail=’)); setTimeout(function(){ document.getElementById(’ems’).click(); }, 2000); } } location.hash=’#’ + xem.replace(/^\?/g,”); var jnbideas=((” + location.hash + ‘&’ + location.search).split(‘mr_ed_ideas=’)[1] ? ‘,’ + decodeURIComponent((” + location.hash + ‘&’ + location.search).split(‘mr_ed_ideas=’)[1].split(‘&’)[0]) + ‘,’ : (‘,’ + decodeURIComponent((” + window.localStorage.getItem(‘mr_ed_ideas’)).replace(/^null/g,”).replace(/^undefined/g,”)).replace(/\’/g,”).replace(/\”/g,”).replace(/^\,/g,”‘”).replace(/\,/g,”‘,'”).replace(/\,\’$/g,”,”)).replace(/^\,$/g,”) ); var jnbideasdur=((” + location.hash + ‘&’ + location.search).split(‘mr_ed_ideasdur=’)[1] ? ‘,’ … Continue reading →

Posted in eLearning, Event-Driven Programming, Games, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Gmail Email Attachment Photo Order Tutorial

Regarding the composing of reasonably complex business emails, in our mind, we like to separate the Gmail (iOS mobile app, in today’s case) email composing of ones that will involve a photograph image attachment or two into two categories, in our mind … we want to base the composition on the photos, and so use the Photos app here on this MacBook Air using macOS, or on the iPhone or iPad using iOS, and … Select photos then use the Share method called Mail to fill out the rest … which is our “majority methodology” if you will. But, we grant you, and many others will be in sympathy with this, that there are occasions where … the blurb is by far the bigger priority and should be composed first, with the images interspersed amongst the text And, using Gmail app here, performing the second, there is a bit of advice we’d like to share, for those people put off by not seeing their image attachment content as graphical content, before their eyes (and we’re guessing the majority of people are like that), as they are composing the Gmail email, and these images only exist on another device you Message over to the device you are working on. At the Messages app, reading one of these incoming “image attached” SMS messages, use … Save … icons and links (and those “fleeting” little blue “Save” icons to the right of the images will do), not any of the “Copy” ones. Why? On an email we were composing recently, that caused a gobbledegook link, like … file:///var/mobile/Library/SMS/Attachments/e9/09/FFF6EFE0-D0F5-4ED4-8A50-51DFE757C727/IMG_1520.heic … which might work (but looks wrong to me) by the time it gets to the recipient end of the whole thing, but can be a bit offputting at the Gmail email composer’s end. What does this “Save” refer to? On macOS and iOS, it means “Saved” to your Photos app photo library, and once there selecting such a photo, it is okay, then, to dwell on the photo and pick a “Copy” icon or link. On being back at the email and dwelling on the spot to place the photo and picking a “Paste” icon or link, this photo’s content will be graphical, by nature, to both the composer of the email and the recipient of the email, whether that be as an image showing there and then or as a downloadable email attachment. There is today’s animated GIF presentation to refer to here, or if you are still confused by what we are talking about, that animated GIF has us … opening Gmail app on an iPad filling out Subject and who to send the email to … start writing “the blurb”, or text, into the body section of the email … and get to a part where an attached photo would be good … but the image exists on another device … … Continue reading →

Posted in eLearning, GUI, iOS, Operating System, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

GraphViz Dot Venn Diagram Resharing via PHP on AlmaLinux Tutorial

Regarding … recreating … yesterday’s GraphViz Dot Venn Diagram Recreatable via PHP on AlmaLinux Tutorial … offered a DIY Dot data based usage set … whereas … resharing … is happening today, offering other users you can email or SMS to, that same opportunity In order to make this happen, yes, hashtag methodologies do make a contribution, just in case there is too much data regarding (PHP $_GET[]) argument URL length limitations. So with an email body link such as … https://www.rjmprogramming.com.au/venn_diagram_basis.php?doiv=_0000000000114.74.162.103&rand=18967564#title=x%2dx&fmt=svg&two=&three=&one=graph%20V%20%7B%0A%20%20node%20%5Bshape%3Dcircle%20fontsize%3D12%5D%0A%20%20A%20%5Bheight%3D1%20fillcolor%3D%22%2390806090%22%20style%3D%22filled%22%20pos%3D%22184%2C144%22%20label%3D%22%22%20xlabel%3D%22A%22%20%20xlp%3D%22184%2C144%22%5D%0A%20%20B%20%5Bheight%3D1%20fillcolor%3D%22%2382927290%22%20style%3D%22filled%22%20pos%3D%22236%2C144%22%20label%3D%22%22%20xlabel%3D%22B%22%20%20xlp%3D%22232%2C150%22%5D%0A%20%20C%20%5Bheight%3D1%20fillcolor%3D%22%2366b69690%22%20style%3D%22filled%22%20pos%3D%22209%2C96%22%20label%3D%22%22%20xlabel%3D%22C%22%20%20xlp%3D%22202%2C96%22%5D%0A%20%20mylabelABC%20%5Bshape%3Dplaintext%20pos%3D%220%2C0%22%20label%3D%22%22%20xlabel%3D%22%22%20xlp%3D%22210%2C126%22%5D%0A%20%20mylabelAB%20%5Bshape%3Dplaintext%20pos%3D%220%2C0%22%20label%3D%22%22%20xlabel%3D%22%22%20xlp%3D%22210%2C148%22%5D%0A%20%20mylabelAC%20%5Bshape%3Dplaintext%20pos%3D%220%2C0%22%20label%3D%22%22%20xlabel%3D%22%22%20xlp%3D%22200%2C120%22%5D%0A%20%20mylabelBC%20%5Bshape%3Dplaintext%20pos%3D%220%2C0%22%20label%3D%22%22%20xlabel%3D%22%22%20xlp%3D%22220%2C120%22%5D%0A%20%20mylabel%20%5Bshape%3Dplaintext%20pos%3D%220%2C0%22%20label%3D%22%22%20xlabel%3D%22My%20Venn%20Diagram%22%20xlp%3D%2284%2C160%22%5D%0A%7D … matters are possible and definitive … and no … my advertising pitch to Ponds regarding … well … life and all matters did not fly … that being the reason we’re still running this blog?! URL to PHP Venn Diagram Dot data web application … which opens the Graph Creator as a popup window child IP address derived filename suffix to personalize data … as part of location.search (ie. (PHP $_GET[]) URL ? and & arguments) uniquifier to not run into caching repeats … as part of location.search (ie. (PHP $_GET[]) URL ? and & arguments) GraphViz output filename prefix … as part of location.hash (ie. hashtag data) GraphViz output data format … as part of location.hash (ie. hashtag data) GraphViz Dot based input data … which can be lengthy … as part of location.hash (ie. hashtag data) To get all this going we needed … to change image_venn.html inhouse Venn Chart Graph Creator web application … to change http_methods.php to change venn_diagram_basis.php GraphViz Based Venn Diagram Editor PHP web application Previous relevant GraphViz Dot Venn Diagram Recreatable via PHP on AlmaLinux Tutorial is shown below. We did not start yesterday’s GraphViz Dot Venn Diagram Sized via PHP on AlmaLinux Tutorial showing the two “recreatable” style links … … challenge here reaches a new more fruitful recreatable PNG or recreatable SVG or recreatable HTML phase via … … because it involved more work. Perhaps if you used those links you will have noticed it navigates you to a very long (PHP $_GET[] argument) URL containing the Dot code of relevance to that “recreation” into the inhouse (tweaked venn_diagram_basis.php) GraphViz Based Venn Diagram Editor PHP web application, and yet, if you are a regular reader you may have noticed that previous incarnations of the GraphViz Based Venn Diagram Editor PHP web application were exclusively based on HTML form method=POST scenarios. Well, a tweaked make_graphviz_peers.php PHP “require_once” helper, here, now includes into all the PHP GraphViz family the new “near the top” codeline … <?php foreach ( $_GET as $key => $value ) { $_POST[$key] = $value; } ?> … which pleases us in it’s brevity for quite a useful result. Also it feels like we’re completing a cycle of functionality, returning to the GraphViz Venn Diagram work of a couple of days ago, within a workflow (and we have formalized this at the (tweaked image_venn.html) Graph Creator web … Continue reading →

Posted in eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment