Tag Archives: hash

Bookmark Exporting Filtering Sharing Tutorial

Yesterday’s Making of Ffmpeg Video Overall Effects Tutorial‘s “first draft” feel of our inhouse Bookmark Export Filtering web application showed just that. Yes, there was quite a lot to improve on, the way we saw it being … adding a (local system) file browsing means (called by our <iframe scrolling=no frameborder=0 id=cbi data-style=’border-top:1px solid black;border-bottom:1px solid black;border-left:2px solid yellow;border-right:1px solid yellow;’ style=’width:173px;height:228px;margin-top:-194px;’ src=’/HTMLCSS/client_browsing.htm?totype=html&d=189786754′></iframe> file browsing helper) … function yesthreethree(restis) { if (document.getElementById(‘bmkdata’)) { if (restis.indexOf(‘data:’) == 0) { if (restis.indexOf(‘;base64,’) != -1) { document.getElementById(‘bmkdata’).value=” + window.atob(restis.split(‘;base64,’)[1]); analyze(document.getElementById(‘bmkdata’)); //document.getElementById(‘bmkdata’).blur(); } else if (restis.indexOf(‘;utf8,’) != -1) { document.getElementById(‘bmkdata’).value=” + (restis.split(‘;utf8,’)[1]); analyze(document.getElementById(‘bmkdata’)); //document.getElementById(‘bmkdata’).blur(); } } else { document.getElementById(‘bmkdata’).value=restis; analyze(document.getElementById(‘bmkdata’)); //document.getElementById(‘bmkdata’).blur(); } } } … by which to add Web Browser Bookmark Exporting Data File Content into that lower HTML textarea element (and unlock the two UL/LI and Table button elements) … as well as … add a details/summary “reveal” means by which the user can show working actual HTML elements in addition to the HTML coding we’ve only be showing (with that “first draft”) add Sharing functionality via either Email or SMS conduits … and because the amounts of data can be large (and too big for a method=GET HTML form arrangement that clientside HTML/Javascript is capable of servicing) we were glad adding this Sharing functionality that yesterday we’d already started down the line of thinking that the … lower HTML textarea content … would always be associated with … hashtag … representation … because with these methodologies the web server restrictions on (address bar) URL lengths (ie. error 414) melt away, at least for data lengths we’ve encountered with our testing so far, and that applies also to … “mailto:” “a” URL links to Email a recipient … or … “sms:” “a” URL links to SMS a recipient … Sharing 📧 📟 … var mysubject=’My Bookmarked Links …’, xlocationhref=”; if ((” + location.hash).indexOf(‘bmkdata=’) != -1) { locationhash=location.hash; } function doemail() { if (document.getElementById(‘bmkdata’).value.trim() != ”) { locationhash=’#bmkdata=’ + window.btoa(encodeURIComponent(document.getElementById(‘bmkdata’).value)); mysubject=’My Bookmarked Links …’; if (document.getElementById(‘dtone’).value.trim() != ” && document.getElementById(‘dttwo’).value.trim() != ”) { mysubject=’My Bookmarked Links from ‘ + document.getElementById(‘dtone’).value.trim() + ‘ to ‘ + document.getElementById(‘dttwo’).value.trim() + ‘ … ‘; } else if (document.getElementById(‘dtone’).value.trim() != ”) { mysubject=’My Bookmarked Links from ‘ + document.getElementById(‘dtone’).value.trim() + ‘ … ‘; } else if (document.getElementById(‘dttwo’).value.trim() != ”) { mysubject=’My Bookmarked Links up until ‘ + document.getElementById(‘dttwo’).value.trim() + ‘ … ‘; } if (ulli && !utable) {

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

Making of Ffmpeg Video Overall Effects Tutorial

At the end of yesterday’s Ffmpeg Video Overall Effects Tutorial there was an Unordered List … curves — ffmpeg examples Converts GIMP colour curve to something the FFmpeg can read in the curve filter · GitHub Top 20 best commands for FFmpeg Create video with 5 images with fadeIn/out effect in ffmpeg ffmpeg Color Correction: Gamma, Brightness and Saturation Accidentally applied an “incandescent light” video filter on a video I filmed on my Sony RX100. Is there any way to remove or reverse this effect on the video? More Cool FFmpeg Tricks Creating Retro Glow Effects with FFmpeg Is it possible to generate such effects purely with ffmpeg? Creating a retro glow effect with FFmpeg FFmpeg Filters Documentation … of links, am sure a lot of you would guess, were gleaned (within our Google Chrome web browser History (of that day)) Bookmarked (by us) webpages. We actually compiled via (the clunky and fairly slow) … left half (of screen) with (Google Chrome) History showing, and right half with BBEdit Text Editor open at a new (ostensibly empty) file with loads of empty records available, and dragged URL records (identifiable, for us, via an asterisk, indicating a webpage was Bookmarked) from the left into the right to bring over the URLs (only) above, the rest constructed in a more manual way … and another way could have been … use Google Chrome webpage showing Bookmark list and use its Export Bookmarks (no other choice but “All”) to a file that could be waded through to derive the list above … and then we thought of chance to code for … hybrid “inhouse” clientside (ie. HTML/Javascript/CSS) web application … … so far asking for the content of a web browser Export Bookmarks operation’s output file’s HTML (in the case of Google Chrome) content in an HTML textarea element (the user can fill in themselves), and filterable via two input type=datetime-local starting and ending datetime(s) of interest (the user can fill in, optionally) … and we wish we could have got that hour and a half back, from yesterday, via swapping yesterday for today?! Feel free to try our “first draft” proof of concept Dated Bookmark Export web application, yourself. Did you know? Not all web browser brands have any Export Bookmarks functionality, like Google Chrome offers here on macOS. We’re going to be examining others, over time, and try to make our

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

Earth Scanner Initial Placename Popup Window Tutorial

With the Earth Bearing Distance Missing Two Hashtagged Mailto Sharing Tutorial it was the same Earth Scanner web application involved as talked about in Earth Scanner Placements Tutorial where it talked about the URL … https://www.rjmprogramming.com.au/HTMLCSS/earth_scanner.html?nontz=Alice_Springs%7C133.8807%7C_23.6980%7CAU#Alice_Springs … or equivalent in this case regarding real mantissa … remember rules? https://www.rjmprogramming.com.au/HTMLCSS/earth_scanner.html?nontz=Alice_Springs%7C133.8807%7C_23.6980%7CAU#Alice_Springs On revisiting this posting it occurred to us, that an improvement for our Earth Scanner web application would be to acknowledge this … initial place … especially given it might disappear from the maps presented too soon … if possible, and Wikipedia can help, present a popup window featuring background images regarding that place … to supplement map information with real life photography, thanks Wikipedia. A new Javascript function … var startwoo=null; function placetopretz(iois) { if (iois.src.indexOf(‘nickname=’) != -1) { var twaconto = (iois.contentWindow || iois.contentDocument); if (twaconto != null) { if (twaconto.document) { twaconto = twaconto.document; } //var xzs=prompt(twaconto.body.outerHTML,twaconto.body.outerHTML); //alert(89); if (twaconto.body.outerHTML.indexOf(‘.style.background’) != -1) { if (!startwoo) { startwoo=window.open(”,’_blank’,’top=50,left=50,width=800,height=800′); //document.getElementById(‘botif’).style.display=’block’; //document.getElementById(‘botif’).style.position=’absolute’; //document.getElementById(‘botif’).style.top=’0px’; //document.getElementById(‘botif’).style.left=’0px’; //document.getElementById(‘botif’).style.opacity=’0.5′; //document.getElementById(‘botif’).style.zIndex=’2222′; console.log(twaconto.body.outerHTML.split(‘} }’)[0].split(‘>’)[0].trim().replace(/parent\./g,”).replace(/\&quot\;/g,”‘”).replace(/\&amp\;/g,”&”).slice(-40)); var conlog=(‘<html>’ + (twaconto.body.outerHTML.split(‘} }’)[0].split(‘>’)[0].trim().replace(/parent\./g,”).replace(/\&quot\;/g,”‘”).replace(/\&amp\;/g,”&”).replace(/\”/g,”‘”).replace(” onload='”, ‘ onload=”‘) + ‘ } }”><div id=ourcanvas style=display:block;width:800px;height:800px;></div><br><div id=stz></div></body></html>’).replace(/\’\>/g,'”>’).replace(/\&lt\;/g,'<‘).replace(/\&gt\;/g,’>’).replace(/yourcanvas/g,’ourcanvas’).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘)); var inonl=conlog.split(‘ onload=”‘)[1].split(‘”‘)[0]; if (1 == 1) { console.log(‘<html><head><sc’ + ‘ript type=text/javascr’ + ‘ipt> function xyz() { ‘ + inonl.replace(/\ document.getE/g, ‘ ‘ + String.fromCharCode(10) + ‘ document.getE’) + ‘ } </scr’ + ‘ipt></head>’ + conlog.replace(inonl, ‘ xyz(); ‘)); startwoo.document.write(‘<html><head><scri’ + ‘pt type=text/javascr’ + ‘ipt> function xyz() { ‘ + inonl.replace(/\ document.getE/g, ‘ ‘ + String.fromCharCode(10) + ‘ document.getE’).replace(/\,URL\(/g, “,’ + ‘URL(“) + ‘ } setTimeout(xyz,5000); </scr’ + ‘ipt></head>’ + conlog.replace(inonl, ‘ xyz(); ‘)); startwoo.document.title=decodeURIComponent(iois.src.split(‘nickname=’)[1].split(‘&’)[0].split(‘#’)[0]).replace(/\_/g,’ ‘); //document.getElementById(‘botif’).srcdoc=(‘<html><head><scri’ + ‘pt type=text/javascr’ + ‘ipt> function xyz() { ‘ + inonl.replace(/\ document.getE/g, ‘ ‘ + String.fromCharCode(10) + ‘ document.getE’).replace(/\,URL\(/g, “,’ + ‘URL(“) + ‘ } </scr’ + ‘ipt></head>’ + conlog.replace(inonl, ‘ xyz(); ‘)); } else { console.log(‘<html>’ + (twaconto.body.outerHTML.split(‘} }’)[0].split(‘>’)[0].trim().replace(/parent\./g,”).replace(/\&quot\;/g,”‘”).replace(/\&amp\;/g,”&”).replace(/\”/g,”‘”).replace(” onload='”, ‘ onload=”‘) + ‘ } }”><div id=ourcanvas style=display:block;width:800px;height:800px;></div><br><div id=stz></div></body></html>’).replace(/\’\>/g,'”>’).replace(/\&lt\;/g,'<‘).replace(/\&gt\;/g,’>’).replace(/yourcanvas/g,’ourcanvas’).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘)); startwoo.document.write(‘<html>’ + (twaconto.body.outerHTML.split(‘} }’)[0].split(‘>’)[0].trim().replace(/parent\./g,”).replace(/\&quot\;/g,”‘”).replace(/\&amp\;/g,”&”).replace(/\”/g,”‘”).replace(” onload='”, ‘ onload=”‘) + ‘ } }”><div id=ourcanvas style=display:block;width:800px;height:800px;></div><br><div id=stz></div></body></html>’).replace(/\’\>/g,'”>’).replace(/\&lt\;/g,'<‘).replace(/\&gt\;/g,’>’).replace(/yourcanvas/g,’ourcanvas’).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘)); startwoo.document.title=decodeURIComponent(iois.src.split(‘nickname=’)[1].split(‘&’)[0].split(‘#’)[0]).replace(/\_/g,’ ‘); //document.getElementById(‘botif’).srcdoc=(‘<html>’ + (twaconto.body.outerHTML.split(‘} }’)[0].split(‘>’)[0].trim().replace(/parent\./g,”).replace(/\&quot\;/g,”‘”).replace(/\&amp\;/g,”&”).replace(/\”/g,”‘”).replace(” onload='”, ‘ onload=”‘) + ‘ } }”><div id=ourcanvas style=display:block;width:800px;height:800px;></div><br><div id=stz></div></body></html>’).replace(/\’\>/g,'”>’).replace(/\&lt\;/g,'<‘).replace(/\&gt\;/g,’>’).replace(/yourcanvas/g,’ourcanvas’).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘).replace(String.fromCharCode(10),’ ‘)); } } } } } } … helped us with this tweaking of the changed earth_scanner.html code for the Earth Scanner web application. Previous relevant Earth Bearing Distance Missing Two Hashtagged Mailto Sharing Tutorial is shown below. We’re returning to our

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

Google Charts Totally Hashtagging Communication Conduits Tutorial

The work of Form Target Self Primer Tutorial got us thinking … Could it be applied to our inhouse Google Charts PHP web applications? And if so, is the work generic enough to just be applied to our gchartgen.js external Javascript they, mostly, all use? And proceeding forward, if it works, how can it help? (Everybody needs a dorothy dixer?!) … and the jury’s in … Yes 95% Email and SMS communications could all be hashtag navigation based on URLs not needing PHP mail nearly as much In arriving at our “hived off” (because it is useful just itself for other “parents” out there (as what we like to think of as a “tool”), we’re thinking) hashtagdata_self_post.js … // hashtagdata_self_post.js // RJM Programming // July, 2024 function checkfortotalhash() { //document.title=’1′; //document.title=’11’; //document.title=’111′; if ((” + location.href).split(‘#’)[0].indexOf(‘?’) == -1 && (” + location.hash).indexOf(‘=’) != -1) { //document.title=’1111′; if (eval(” + (((” + location.href).split(‘#’)[0].split(‘?’)[0].split(‘#’)[0] + location.hash)).length) < 800) { //prompt = function(zwords, defwords){ return null; }; location.href=((” + location.href).split(‘#’)[0].split(‘?’)[0].split(‘#’)[0] + location.hash).replace(‘#’,’?’); } else if ((” + location.href).split(‘#’)[0].split(‘?’)[0].split(‘#’)[0].indexOf(‘.htm’) == -1) { //document.title=’11111′; //prompt = function(zwords, defwords){ return null; }; //document.title=’111111′; var wlytsp=false; var formdt='<form action=”‘ + (” + location.href).split(‘#’)[0].split(‘?’)[0].split(‘#’)[0] + ‘” method=”POST” target=”_self”> <input type=”submit” id=”checkforb”></input></form>’; var labvals=[], ilv=0; labvals=(” + location.hash).split(‘=’); for (ilv=1; ilv<labvals.length; ilv++) { if (labvals[eval(-1 + ilv)].replace(/^\#/g,’&’).split(‘&’)[eval(-1 + labvals[eval(-1 + ilv)].replace(/^\#/g,’&’).split(‘&’).length)] == ‘wouldlikeyoutoseekpermission’) { wlytsp=true; } formdt=formdt.replace(‘<input type=”submit”‘, ‘<input type=”hidden” name=”‘ + labvals[eval(-1 + ilv)].replace(/^\#/g,’&’).split(‘&’)[eval(-1 + labvals[eval(-1 + ilv)].replace(/^\#/g,’&’).split(‘&’).length)] + ‘” value=”‘ + decodeURIComponent(labvals[ilv].split(‘&’)[0]) + ‘”></input><input type=”submit”‘); } //document.title=’1111111’; setTimeout(function(){ if (!wlytsp) { //alert(formdt.replace(‘> <‘, ‘><input type=hidden name=wouldlikeyoutoseekpermission value=y></input><‘)); document.body.innerHTML+=formdt.replace(‘> <‘, ‘><input type=hidden name=wouldlikeyoutoseekpermission value=y></input><‘); } else { //alert(formdt.slice(-220)); document.body.innerHTML+=formdt; } document.getElementById(‘checkforb’).click(); }, 1000); } } } if ((” + location.href).indexOf(‘/GeoChart’) == -1) { checkfortotalhash(); } … proof of concept start we made a discovery that surprised us with … when an intervention point for external Javascript occurs before the webpage’s document.body onload event … you do better scouring location.href rather than document.URL (though, curiously, document.title is okay) and that location.href may contain hashtagging data (or we were dreaming … anyway, we’ve coded for either) … and … is okay recognizing location.hash hashtagging data … but … we found a setTimeout arrangement of adding a form to document.body.innerHTML helps get past the document.body onload event starting timing … and exceptions for web applications doing their own thaing here should be considered. And so we used as our guinea pig

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

Region Picker GeoChart Region Local Popups Tutorial

There is little doubt that popup windows can distract users in terms of the “user experience” as of yesterday’s Region Picker GeoChart Region Wikipedia Representations Tutorial. And that is … if we are talking URLs all on the same domain … check … and you have a place on the webpage good to relocate … shaky check … then it is better, in the scenario of using window.open (popup window creation) … window.open(URL, name, specs, replace) … syntax based navigation logic in Javascript, to … … make use of that second parameter’s … name Optional. The target attribute or the name of the window. The following values are supported: Value Description _blank URL is loaded into a new window, or tab. This is the default _parent URL is loaded into the parent frame _self URL replaces the current page _top URL replaces any framesets that may be loaded name The name of the window (does not specify the title of the window) … relation to the name attribute of an inhouse HTML iframe element to “relocate”, and improve some user’s “user experience”. So, please, respect window.open method, not so much some of the ways it is used. It is incredibly useful! Here is our inhouse “wrapped” Javascript function approach to its usage incarnation … function windowdotopen(a1, a2, a3) { var pfx=”; if (document.getElementById(‘ifrmore’)) { document.getElementById(‘prermore’).style.display=’block’; document.getElementById(‘ifrmore’).style.display=’block’; //document.title=’1′; return window.open(a1, ‘ifrmore’, a3); } else if (document.getElementById(‘rmore’)) { pfx=document.getElementById(‘rmore’).innerHTML; setTimeout(function(){ document.getElementById(‘rmore’).innerHTML+='<iframe title=”Courtesy of Wikipedia … thanks” name=ifrmore id=ifrmore src=”‘ + a1 + ‘” style=”width:800px;height:800px;”></iframe>’; topwo=window.open(document.getElementById(‘ifrmore’).src, ‘ifrmore’); }, 2000); //document.title=’3′; return null; //window.open(a1, ‘ifrmore’, a3); } else if (document.getElementById(‘prermore’)) { document.getElementById(‘prermore’).innerHTML='<iframe title=”Courtesy of Wikipedia … thanks” name=ifrmore id=ifrmore src=”‘ + a1 + ‘” style=”width:100%;height:800px;”></iframe>’; document.getElementById(‘prermore’).style.display=’block’; //document.title=’2′; return window.open(a1, ‘ifrmore’, a3); } else if (document.getElementById(‘tdright’)) { if (document.getElementById(‘rmore’)) { pfx=document.getElementById(‘rmore’).outerHTML; } document.getElementById(‘tdright’).innerHTML='<div style=”display:block;” id=”prermore”><iframe title=”Courtesy of Wikipedia … thanks” name=ifrmore id=ifrmore src=”‘ + a1 + ‘” style=”width:100%;height:800px;”></iframe></div>’ + pfx; //document.title=’4′; return window.open(a1, ‘ifrmore’, a3); } return window.open(a1, a2, a3); } … for this latest scenario. Try this, yourself, with the changed latest draft Region Picker web application. Previous relevant Region Picker GeoChart Region Wikipedia Representations Tutorial is shown below. We’re starting down the long and windy road, further to the recent Region Picker GeoJson Area of Interest Tutorial, of providing “workaround Google Chart Geo Chart solutions to semi-cover the loss (because nothing will be quite as good, as far as we are concerned, alas)

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

Region Picker GeoChart Region Wikipedia Representations Tutorial

We’re starting down the long and windy road, further to the recent Region Picker GeoJson Area of Interest Tutorial, of providing “workaround Google Chart Geo Chart solutions to semi-cover the loss (because nothing will be quite as good, as far as we are concerned, alas) of Google Chart Image Chart Map Chart” in our lives (please pass the tissues … fisst). In our case, the Region Picker intervention point (believe it or not) is our … WordPress Blog 404.php (missing webpage page) logic we’ve tailored for all manner of image production purposes helping out … a changed latest draft Region Picker web application … … calling that 404.php helper. And it’s within that changed 404.php … <?php function yourfile_get_contents($wone) { //, $ucc, $ctname) { global $geomapurl, $getmapdata, $iso_country_codes; // <a href=”/wiki/Autonomous_Republic_of_Crimea” title=”Autonomous Republic of Crimea”>Avtonomna Respublika Krym</a> // %20[51.4769|-0.0005|~From~,2]%20,%20[51.4769|-0.0005|~To~,2]%20, // <img style=”z-index:25;” onload=” return true; ” id=”ici” data-onmouseout=”this.title=origtitle;” onmousemove=” if (isclear || 1 == 1) { document.getElementById(‘moimode’).value=’mouseover’; filloutform(event,0); }” src=”//www.rjmprogramming.com.au/ITblog/455/350/?cht=map&chld=AF|AF-BDG|AF-BGL|AF-BAL|AF-BAM|AF-DAY|AF-FRA|AF-FYB|AF-GHA|AF-GHO|AF-HEL|AF-HER|AF-JOW|AF-KAB|AF-KAN|AF-KAP|AF-KHO|AF-KNR|AF-KDZ|AF-LAG|AF-LOG|AF-NAN|AF-NIM|AF-NUR|AF-PKA|AF-PIA|AF-PAN|AF-PAR|AF-SAM|AF-SAR|AF-TAK|AF-URU|AF-WAR|AF-ZAB|&chco=B3BCC0|5781AE|FF0000|FFC726|885E80|518274|A3BCC0|4781AE|EF0000|EFC726|785E80|418274|7ccdef|e65814|477b73|87f592|ed75f2|09526e|27a51c|58c662|4b4840|7d01b5|f6a557|b69f63|cac10b|f3e9ab|26192c|ad7629|3b21b4|7238ab|aa1e07|23f0d7|d8dfb3|8c07c2|7a5bbf|b0ee12&screenheight=900″ title=”Optionally click in relevant region for menu”> if (file_exists(‘../HTMLCSS/rvc_’ . my_s_s_server_remote_addr() . ‘.html’)) { sleep(5); unlink(‘../HTMLCSS/rvc_’ . my_s_s_server_remote_addr() . ‘.html’); } $iso_underscore=false; $ucc=”; $ctname=”; $okwone=”; $ones=[]; if (strpos($wone, ‘chld=’) === false) { return @file_get_contents($wone); } else if (1 == 1 || strpos($wone, ‘screenheight=’) !== false) { $ucc=strtoupper(trim(explode(‘_’, explode(‘|’, explode(‘chld=’, $wone)[1])[0])[0])); for ($ire=0; $ire<sizeof($iso_country_codes); $ire+=2) { if ($ucc == strtoupper($iso_country_codes[$ire])) { $ctname=$iso_country_codes[1 + $ire]; } } $okwone=file_get_contents($wone); $wone=’http://en.wikipedia.org/wiki/ISO_3166-2:’ . $ucc; } if (strlen($ucc) != 2) { return @file_get_contents($wone); } $tbit=$ucc . ‘;’ . $ctname; $geomapurl=”; $wpg=”; $ones=[]; $preurl=”; $saveducc=@file_get_contents(‘saveducc.txt’); $linfnd=explode($ucc . ‘=’, $saveducc); if (sizeof($linfnd) > 1) { $geomapurl=explode(“\n”, $linfnd[1])[0]; } file_put_contents(‘xcc.xcc’, $tbit . ‘ ‘ . $wone); if (strpos($wone, ‘/wiki/’) !== false && strpos($wone, ‘http’) !== false) { $preurl=’http’ . explode(‘/wiki/’, explode(‘http’, $wone)[-1 + sizeof(explode(‘http’, $wone))])[0]; } $one=file_get_contents($wone); if ($geomapurl != ”) { sleep(9); } else { file_put_contents(‘xccone.xcc’, $preurl . ‘ … ‘ . $one); if (strpos($one, ‘ sortable”‘) !== false && $preurl != ”) { $ones=explode(‘<a href=”/wiki/’, explode(‘ sortable”‘, explode(“See also “, $one)[0])[1]); } else if ($preurl != ”) { $ones=explode(‘<a href=”/wiki/’, explode(“See also “, $one)[0]); } for ($ii=1; $ii<sizeof($ones); $ii++) { if (!$iso_underscore) { $rname=explode(‘<‘, explode(‘>’, $ones[$ii])[1])[0]; if (substr(($rname . ‘ ‘),0,3) == ‘ISO’) { $iso_underscore=true; } if ($ii == 1) { file_put_contents(‘xccuccit.xcc’, $ucc . ‘ – ‘ . $rname . “\n”); } if (trim($rname) != ”) { file_put_contents(‘xccu.xcc’, $preurl . ‘/wiki/’ . explode(‘”‘, $ones[$ii])[0]); $wpg=file_get_contents($preurl . ‘/wiki/’ . explode(‘”‘, $ones[$ii])[0]); file_put_contents(‘xccuc.xcc’, $wpg); $wpgs=explode(‘ class=”geo”>’, $wpg); if (sizeof($wpgs)

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

Image Element Dynamic Filter CSS Mobile Filter Tutorial

Huh?! Two uses of “filter” in the blog posting title? Can anyone, yes anyone, in the class explain? Yes, Henry … oh … you’ve forgotten … we might get back to you shortly … Anyone else? Over there, is it Philippe about to exit via the window? You’re saying … Take the ology out of tautology and what have you got? Sorry, your idea is beyond me! Arrivederci! What’s that Henry? You reckon you understand? You say … Yes, we can have … “filter” … as in CSS filter property … and as … in the case of mobile platforms the amount of image data URI data can exceed limits (even for) hashtagging email purposes … so we “filter” the incoming data through a new canvas <canvas id=mymobilecanvas style=display:none;></canvas> element and back out to an img (image) element smaller in (data) size … and today, among other issues we’re improving the Image Element Dynamic CSS web application regarding (that you can also try below) for mobile platform users. Here’s some interventional code, below, with respect to this, further to yesterday’s Image Element Dynamic CSS Canvas Context Filter Tutorial … function canvasize(jnr) { lastim=new Image(); lastim.onload=function(event){ var filt=document.getElementById(‘selopt’).innerText; //lastim=document.getElementById(‘animg’); if (jnr.indexOf(‘data:’) != -1) { if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { ourdcanvas=’d’ + ‘canvas’; } newcanvas=document.getElementById(‘mymobilecanvas’); //document.createElement(‘canvas’); //alert(111); if (lastim.width > 800) { newcanvas.width=800; newcanvas.height=Math.round(lastim.height * 800 / lastim.width); //alert(‘Wh=’ + newcanvas.width + ‘x’ + newcanvas.height); if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { newcanvas.getContext(‘2d’).globalCompositeOperation = ‘multiply’; } if (filt != ”) { newcanvas.getContext(‘2d’).filter=filt; } newcanvas.getContext(‘2d’).drawImage(lastim, 0, 0, lastim.width, lastim.height, 0, 0, newcanvas.width, newcanvas.height); lesserinurl=newcanvas.toDataURL(‘image/jpeg’, 0.1); if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { document.getElementById(‘animg’).src=lesserinurl; } else if (1 == 2) { document.getElementById(‘animg’).style.width=’800px’; document.getElementById(‘animg’).style.width=” + newcanvas.height + ‘px’; } //return ”; } else { newcanvas.width=lastim.width; //alert(” + lastim.width + ‘x’ + lastim.height); newcanvas.height=lastim.height; //alert(‘wh=’ + newcanvas.width + ‘x’ + newcanvas.height); if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { newcanvas.getContext(‘2d’).globalCompositeOperation = ‘multiply’; } if (filt != ”) { newcanvas.getContext(‘2d’).filter=filt; } newcanvas.getContext(‘2d’).drawImage(lastim, 0, 0); lesserinurl=newcanvas.toDataURL(‘image/jpeg’, 0.1); } } if (document.getElementById(‘animg’).outerHTML.indexOf(‘ style=”‘) != -1) { if (document.getElementById(‘animg’).outerHTML.split(‘ style=”‘)[1].split(‘”‘)[0].indexOf(‘filter:’) != -1) { filt=document.getElementById(‘animg’).outerHTML.split(‘ style=”‘)[1].split(‘”‘)[0].split(‘filter:’)[1].split(‘;’)[0].trim(); document.getElementById(ourdcanvas).innerHTML='<details id=dtlcanvas><summary id=sumcanvas>Canvas view below …</summary><br><br><canvas ‘ + ocm + ‘ id=mycanvas width=’ + lastim.width + ‘ height=’ + lastim.height + ‘>/canvas></details><hr></hr><br><br>’; } else { document.getElementById(ourdcanvas).innerHTML='<details id=dtlcanvas><summary id=sumcanvas>Canvas view below …</summary><br><br><canvas ‘ + ocm + ‘ style=”‘ + document.getElementById(‘animg’).outerHTML.split(‘ style=”‘)[1].split(‘”‘)[0] + ‘” id=mycanvas width=’ + lastim.width + ‘ height=’ + lastim.height + ‘></canvas></details><hr></hr><br><br>’; } } else { document.getElementById(ourdcanvas).innerHTML='<details id=dtlcanvas><summary id=sumcanvas>Canvas view below …</summary><br><br><canvas ‘ + ocm

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

Image Element Dynamic CSS Canvas Context Filter Tutorial

Ask and ye shall discover, ‘guvner. Ask … image to canvas include css filters … which got us to the excellent … How to save image from canvas with CSS filters … including the great canvas advice … There is a little known property on the context object, conveniently named filter. This can take a CSS filter as argument and apply it to the bitmap. However, this is not part of the official standard and it only works in Firefox so there is the limitation.. This has since this answer was originally written become a part of the official standard. You can check for the existence of this property and use CSS filters if it does, or use a fallback to manually apply the filters to the image if not. The only advantage is really performance when available. CSS and DOM is a separate world from the bitmaps that are used for images and canvas. The bitmaps themselves are not affected by CSS, only the elements which acts as a looking-glass to the bitmap. The only way is to work with at pixel levels (when context‘s filter property is not available). How to calculate the various filters can be found in the Filter Effects Module Level 1. Also see SVG Filters and Color Matrix. . Who’d have known?! And … why didn’t people wake me up at 2:23am (me at my “clarifying” best) to tell me? But we digress. Even so, though this new canvas involvement thinking … document.getElementById(‘animg’).onload=function(event){ var filt=document.getElementById(‘selopt’).innerText; if (document.getElementById(‘animg’).outerHTML.indexOf(‘ style=”‘) != -1) { if (document.getElementById(‘animg’).outerHTML.split(‘ style=”‘)[1].split(‘”‘)[0].indexOf(‘filter:’) != -1) { filt=document.getElementById(‘animg’).outerHTML.split(‘ style=”‘)[1].split(‘”‘)[0].split(‘filter:’)[1].split(‘;’)[0].trim(); document.getElementById(‘dcanvas’).innerHTML='<details id=dtlcanvas><summary id=sumcanvas>Canvas view below …</summary><br><br><canvas id=mycanvas width=’ + lastim.width + ‘ height=’ + lastim.height + ‘></canvas></details>’; } else { document.getElementById(‘dcanvas’).innerHTML='<details id=dtlcanvas><summary id=sumcanvas>Canvas view below …</summary><br><br><canvas style=”‘ + document.getElementById(‘animg’).outerHTML.split(‘ style=”‘)[1].split(‘”‘)[0] + ‘” id=mycanvas width=’ + lastim.width + ‘ height=’ + lastim.height + ‘></canvas></details>’; } } else { document.getElementById(‘dcanvas’).innerHTML='<details id=dtlcanvas><summary id=sumcanvas>Canvas view below …</summary><br><br><canvas id=mycanvas width=’ + lastim.width + ‘ height=’ + lastim.height + ‘></canvas></details>’; } lastca=document.getElementById(‘mycanvas’); lastcac=lastca.getContext(‘2d’); if (filt != ”) { lastcac.filter=filt; } lastcac.drawImage(event.target, 0, 0); lastim=document.getElementById(‘animg’); }; document.getElementById(‘animg’).src=document.getElementById(‘animg’).src; … offers new context menu functionality, and so we are keen to include it, it has not changed our sharing hashtag powered logic. If at this stage you are forgetting the original issue … let me explain it from a new outlook … you’ve got an image or have taken one with your device’s Camera

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