{"id":12683,"date":"2015-02-20T05:02:47","date_gmt":"2015-02-19T18:02:47","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=12683"},"modified":"2020-04-13T20:42:43","modified_gmt":"2020-04-13T10:42:43","slug":"xcode-swift-ios-application-end-game-primer-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/xcode-swift-ios-application-end-game-primer-tutorial\/","title":{"rendered":"Xcode Swift iOS Application End Game Primer Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/iOS8\/EndGame\/\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Xcode Swift iOS Application End Game Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/iOS8\/EndGame\/iOs_EndGame.jpg\" title=\"Xcode Swift iOS Application End Game Primer Tutorial\"    \/><\/a><p class=\"wp-caption-text\">Xcode Swift iOS Application End Game Primer Tutorial<\/p><\/div>\n<p>The iOS app &#8220;quest&#8221; continuing on from yesterday&#8217;s &#8220;middle game&#8221; <a target=_blank title='Xcode Swift Resizable UIWebview Primer Tutorial' href='#xsrupt'>Xcode Swift Resizable UIWebview Primer Tutorial<\/a> as shown below enters the &#8220;end game&#8221; today, on a MacBook Pro laptop, using the Xcode IDE (plus the ubiquitous white USB lead and that cute thing at its end, an iPad) &#8230; yay!!!!!!!<\/p>\n<p>There is a lot to the &#8220;end game&#8221; of an iOS mobile app, and there is a lot to consider after today&#8217;s &#8220;first shot&#8221; at our &#8220;Make Your Own Charts&#8221; mobile application we&#8217;ve been overviewing lately at this blog, but today we get you into the loop, in that you ask the question about whether your app can go public at the <a target=_blank title='Apple Store ' href='http:\/\/store.apple.com'>Apple Store<\/a>.<\/p>\n<p>Let&#8217;s break it down into some of its major steps, several of which are only possible if you join up with Apple officially as an iOS Developer on the <a target=_blank title='Apple iOS Developer Program' href='https:\/\/developer.apple.com\/programs\/ios\/'>Apple iOS Developer Program<\/a> (which we&#8217;d see as part of the &#8220;start game&#8221;) &#8230;<\/p>\n<ul>\n<li>be in the Xcode project<\/li>\n<li>check Swift code is as you want it to be for a Release version<\/li>\n<li>in the Project settings General tab make sure you have a &#8220;Team&#8221; that is an Apple iOS Development team (you may already have this set)<\/li>\n<li>in the Project settings General tab in the &#8220;Deployment info&#8221; section we&#8217;ve decided this mobile app is best to be only available for an iPad, so specify this now (if not already set that way) &#8230; obviously, this stringency is local to this iOS mobile app<\/li>\n<li>in Product-&gt;Scheme-&gt;Edit Scheme&#8230; select Archive<\/li>\n<li>connect your iPad real device to MacBook Pro via the white USB lead &#8230; where you see the iPad (connected) in iTunes (and this is where, later, you can eject the iPad, as well)<\/li>\n<li>in Product-&gt;Destination-&gt; &#8230; select that real iPad<\/li>\n<li>go Product-&gt;Run (to check icons work and app works, on the iPad &#8230; again)<\/li>\n<li>if all okay go Product-&gt;Stop as necessary then Product-&gt;Archive<\/li>\n<li>in Window-&gt;Organizer &#8220;Archives&#8221; tab there should now be an entry for &#8220;Make Your Own Charts&#8221;<\/li>\n<li>Validate it, Submit it (to Apple) to create an iTunes Connect record for this new proposed iOS (iPad) mobile app, to be sellable through the Apple Store<\/li>\n<li>while you are there also Export it for safe keeping somewhere on the MacBook Pro hard disk<\/li>\n<li>log in to iTunes Connect at https:\/\/itunesconnect.apple.com <a target=_blank title='iTunes Connect' href='https:\/\/itunesconnect.apple.com'>iTunes Connect<\/a> and sign in with your Developer Apple ID<\/li>\n<li>click the &#8220;My Apps&#8221; button<\/li>\n<li>click the new &#8220;Make Your Own Charts&#8221; button &#8230; woah! &#8230;<\/li>\n<li>check, in the Build section at the &#8220;+&#8221; link, that your bundled build is recognized &#8230; though it is hard to believe you&#8217;d be here, if not<\/li>\n<li>the rest is about the <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/iOS8\/EndGame\/iOs_EndGame-77of.jpg\" title='form'>filling in of the form<\/a> from here down &#8230; there are some quite difficult bits and below we discuss, in particular, the App Video Preview required (if you had more than &#8220;iPad&#8221; it would be &#8220;Previews&#8221; &#8230; for that very same reason, we only have to worry about the iPad tab in this section, and not with all those other such and such (inches) tabs for other mobile device types &#8230; again, this simplicity is local (thinking) to our particular app, today &#8230; the research for the tutorial today went down a lot of &#8220;garden paths&#8221; regarding this (thanks for writing everyone), and looked up a lot of worthy websites which were helpful in trying to help here, but the most brilliant link of all, that worked for me, was this <a target=_blank title='Brilliant link ... thanks heaps' href='https:\/\/daimtech.wordpress.com\/2014\/09\/26\/how-to-create-and-submit-a-preview-video-for-app-store-apps-using-mavericks-and-ios-8\/'>brilliant link<\/a> &#8230; whose ideas will be talked about below (and <b>tomorrow<\/b> with <a target=_blank href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=12711' title='AirServer on Mac Primer Primer'>AirServer on Mac Primer Tutorial<\/a>) &#8230;\n<ol>\n<li>install (the <a target=_blank title='You guessed it' href='http:\/\/www.youtube.com\/watch?v=E3rB_qx0wRM'>brilliantissimo<\/a>) <a target=_blank title='AirServer' href='http:\/\/www.airserver.com\/Download\/MacPC'>AirServer<\/a> &#8230; thanks<\/li>\n<li><b><a target=_blank href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=12711' title='AirServer on Mac Primer Primer'>capture video via AirServer called IGCag55.mov <img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"AirServer on Mac Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/iOS8\/EndGame\/iOs_EndGame-e.jpg\" title=\"AirServer on Mac Primer Tutorial\"  id=\"ixaompt\"   \/><\/a><\/a><\/b> &#8230; video needs to be 15 to 30 seconds long<\/li>\n<li>at Mac Terminal application with Linux Bash session (because we did a portrait iPad ((AirServer) video) run) &#8230;<br \/>\n<code>ffmpeg -i IGCag55.mov -strict -2 -vf scale=900:1200 igc5ag.mp4<\/code><\/li>\n<li>be in Safari (web browser) as you follow the advice of <a target=_blank title='brilliant link' href='https:\/\/daimtech.wordpress.com\/2014\/09\/26\/how-to-create-and-submit-a-preview-video-for-app-store-apps-using-mavericks-and-ios-8\/'>3 \u2013 How to upload on Safari?<\/a> section 3<\/li>\n<li>then drop igc5ag.mp4 into the App Video Preview drop zone (OMG! &#8230; how many hours was that?!)<\/ol>\n<\/li>\n<li>in this same area make sure there is at least one properly sized screenshot &#8230; as with video, tend to &#8220;suck and see&#8221; to get dimension ideas &#8230; or you can consult <a target=_blank title='advice' href='https:\/\/developer.apple.com\/library\/ios\/documentation\/LanguagesUtilities\/Conceptual\/iTunesConnect_Guide\/Appendices\/Properties.html#\/\/apple_ref\/doc\/uid\/TP40011225-CH26-SW2'>this Apple link<\/a> (for a more scientific approach) &#8230; thanks<\/li>\n<li>also get a 1024&#215;1024 pixel general application image together for one of the fields<\/li>\n<li>as you go, probably in a piecemeal fashion, it is wise to hit the &#8220;Save&#8221; button a lot, but when the form is all filled out to satisfaction, click &#8220;Submit for Review&#8221; button<\/li>\n<li>now you wait to see how the Apple review of your app proceeds &#8230;<\/p>\n<\/ul>\n<p>&#8230; so there you go &#8230; quite a lot to take in &#8230; and hope it gives you some good information that you are looking for, <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/iOS8\/EndGame\/\">today<\/a>.<\/p>\n<hr \/>\n<p id=\"xsrupt\">Previous relevant <a target=_blank title='Xcode Swift Resizable UIWebview Primer Tutorial' href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=12649'>Xcode Swift Resizable UIWebview 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\/Mac\/Xcode\/iOS8\/Swift\/meta_tag.jpg\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Xcode Swift Resizable UIWebview Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/iOS8\/Swift\/meta_tag.jpg\" title=\"Xcode Swift Resizable UIWebview Primer Tutorial\"    \/><\/a><p class=\"wp-caption-text\">Xcode Swift Resizable UIWebview Primer Tutorial<\/p><\/div>\n<p>Today we continue on our iOS app &#8220;quest&#8221; (from <a target=_blank title='Xcode Swift Image Assets Primer Tutorial' href='#xsiapt'>Xcode Swift Image Assets Primer Tutorial<\/a> as shown below) &#8230; and address a &#8220;middle game&#8221; topic when we consider a usability issue with the <a target=_blank href='https:\/\/developer.apple.com\/library\/ios\/documentation\/UIKit\/Reference\/UIWebView_Class\/' title='UIWebView information from Apple'>UIWebView<\/a> we use &#8230; or to be exact, the PHP\/HTML\/Javascript innards of this UIWebView (though in practice it looks like the UIWebView itself).   The usability matter at hand is the ability many users like to be able to resize their applications using the two finger zoom and pinch gestures &#8230; to not be able to resize feels kind of claustrophobic and restrictive.<\/p>\n<p>So how is the resizing of an iOS mobile app using a UIWebView achieved?  You can probably do things in the Xcode Swift application code, but we choose to make the change in the PHP\/HTML\/Javascript by the configuration of a &lt;head&gt;&lt;\/head&gt; <i>viewport<\/i> <a target=_blank title='meta tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_meta.asp'><i>meta<\/i><\/a> tag, which we first talked about here at this blog with <a target=_blank href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=2444' title='jQuery Mobile Primer Tutorial'>jQuery Mobile Primer Tutorial<\/a>, and if you zoom down to <a target=_blank title='Google Charts Emailing Primer Tutorial' href='#gcept'>Google Charts Emailing Primer Tutorial<\/a> as shown way below, the code difference links will show some of these.  We visited every bit of code to make sure that &#8230;<\/p>\n<p><code><br \/>\n&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1, minimum-scale=0.5, maximum-scale=4, user-scalable=yes\" \/&gt;<br \/>\n<\/code><\/p>\n<p>&#8230; became the go, after a bit of experimentation and personal preference coming into play.  You may want to read more about <i>meta<\/i> <i>viewport<\/i> tags regarding mobile platforms <a target=_blank title='meta viewport tag' href='https:\/\/developer.mozilla.org\/en\/docs\/Mozilla\/Mobile\/Viewport_meta_tag'>here<\/a>.<\/p>\n<p>Hopefully you can imagine that such usability is very advantageous for your mobile platform users.<\/p>\n<hr \/>\n<p id='xsiapt'>Previous relevant <a target=_blank title='Xcode Swift Image Assets Primer Tutorial' href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=12571'>Xcode Swift Image Assets 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\/Mac\/Xcode\/iOS8\/Swift\/xcassets\/\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Xcode Swift Image Assets Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/iOS8\/Swift\/xcassets\/Xcode_Swift_Images_xcassets.jpg\" title=\"Xcode Swift Image Assets Primer Tutorial\"    \/><\/a><p class=\"wp-caption-text\">Xcode Swift Image Assets Primer Tutorial<\/p><\/div>\n<p>Today we continue on our &#8220;quest&#8221; &#8230; and have to admit to you here &#8230; it really is a &#8220;quest&#8221; to get a mobile app accepted by the Apple Store &#8230; today we are in an area you might consider part of what, we, here, refer to as the mobile app development &#8220;middle game&#8221; or perhaps you put the consideration of all your launch application icons and marketing images as part of your &#8220;end game&#8221;.   Your decision probably hinges on the nature of the app and also how you like to work.  For me, it feels like part of the &#8220;end game&#8221; but &#8230; and there&#8217;s always a &#8220;but&#8221; isn&#8217;t there &#8230; as much as you&#8217;d like to get on with it, and give that &#8220;quest&#8221; another shot &#8230; you always forget how long this part takes &#8230; because, even if you have a previous Xcode project you can use to arrange all the image sizes and such, it is an eye opener to see, if you haven&#8217;t built an app for a while, the number of new device formats you&#8217;ve missed out on in the meantime, that you then have to cater for.<\/p>\n<p>My thinking on our &#8220;Make Your Own Charts&#8221; app is that, for Apple Store, we&#8217;ll only say that it is suitable for iPad usage, but can&#8217;t see that this lessens the size of this job &#8230; but please don&#8217;t get the idea that that means you can&#8217;t find a way to lessen the task.<\/p>\n<p>So, if you are a graphic artist, am sure all this is a doddle &#8230; sadly, we are lacking that graphic artist expertise &#8230; but even so, you can use tools you have and add a dose of patience &#8230; my advice, for what its worth is to, roughly &#8230;<\/p>\n<ul>\n<li>make one image about 1024&#215;768 that you find apt<\/li>\n<li>make one image about 200&#215;200 that you find apt<\/li>\n<li>in Xcode double click Images.xcassets folder and you see all the formats of images needing attention for various ihone and iPad sizes and configurations<\/li>\n<li>you can import images from another Xcode project (Objective-C or Swift) you have from the past and use the click subfolder-&gt;Import from Project&#8230; as a way to get over some images with sizes you can work with<\/li>\n<li>think drag and drop into place for the rest &#8230; and how do you get the &#8220;drag&#8221; bit &#8230; either\n<ol>\n<li>get it via image editor like Paintbrush (or Gimp) with one of those first two image ideas, respectively regarding big and small requirements &#8230; resizing there as necessary<\/li>\n<li>click an image as with a right click-&gt;Open in External Editor (which is preview here) and have a buffer ready to Paste in from some other means (like step 1.) and move it around to be in a correct position<\/li>\n<\/ol>\n<\/li>\n<li>you&#8217;ll probably reach points when you wonder &#8230; &#8220;am I there yet?&#8221; &#8230; try a Run to see and pick up on the error messages (which you&#8217;ll probably get initially) as a way to keep moving forward on your &#8220;quest&#8221;\n<\/ul>\n<p>So, today, have a look at work here for the &#8220;Make Your Own Charts&#8221; app in our &#8220;middle game&#8221; \/ &#8220;end game&#8221; discussion ahead of pure &#8220;end game&#8221; ideas when we try to get the app onto the Apple Store, for another day.  The previous &#8220;middle game&#8221; flow towards where we are here came from <a target=_blank title='Xcode Swift UIWebView Back and Forward Button Tutorial' href='#xsubafbt'>Xcode Swift UIWebView Back and Forward Button Tutorial<\/a> as shown below.    Hope this helps in some way, and good luck yourselves, if you are doing this yourself.<\/p>\n<hr \/>\n<p id='xsubafbt'>Previous relevant <a target=_blank title='Xcode Swift UIWebView Back and Forward Button Tutorial' href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=12525'>Xcode Swift UIWebView Back and Forward Button Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/XcodeSwiftBackForward.jpg\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Xcode Swift UIWebView Back and Forward Button Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/XcodeSwiftBackForward.jpg\" title=\"Xcode Swift UIWebView Back and Forward Button Tutorial\"    \/><\/a><p class=\"wp-caption-text\">Xcode Swift UIWebView Back and Forward Button Tutorial<\/p><\/div>\n<p>Meanwhile &#8230; after sporadic days of testing &#8230; back in mobile development &#8220;land&#8221; &#8230; and any maritime mobile development &#8220;sea&#8221; members (perhaps in the bath) &#8230; we&#8217;ve got to admit defeat on our Google Charts mobile app as far as minimal designing goes trying to do away with (UI)WebView &#8220;Back&#8221; and &#8220;Forward&#8221; buttons.   We do need them, and the main reason is that opening the app to the Pandora&#8217;s Box of many Google Chart functionalities in the one app is not very good without the possibility of getting <a target=_blank title='Google Charts advice from Google' href='https:\/\/developers.google.com\/chart\/'>technical advice<\/a> from Google themselves &#8230; so, today, we bite the bullet &#8230; boysenberry, today &#8230; and put them in &#8230; so this is an opportunity to show you in Swift how to dynamically add in &#8220;Back&#8221; and &#8220;Forward&#8221; <a target=_blank href='https:\/\/developer.apple.com\/library\/ios\/documentation\/UIKit\/Reference\/UIButton_Class\/' title='UIButton information from Apple'>buttons<\/a> that interact with your <a target=_blank href='https:\/\/developer.apple.com\/library\/ios\/documentation\/UIKit\/Reference\/UIWebView_Class\/' title='UIWebView information from Apple'>UIWebView<\/a> (we are doing an iOS mobile app in Xcode today).<\/p>\n<p>Now supposing you&#8217;re here and you haven&#8217;t already been in the loop from a few days ago with <a target=_blank title='Google Charts Mobile WebView Menu Tutorial' href='#gcmwnt'>Google Charts Mobile WebView Menu Tutorial<\/a> as shown below &#8230; well, welcome &#8230; <strike>dew<\/strike> do drop <strike>inn<\/strike> in &#8230; <strike>chortle, chortle<\/strike> &#8230; what&#8217;s the deal with a (UI)WebView on its lonesome &#8230; <\/p>\n<blockquote>\n<p>Well, it is to do with navigating outside the &#8220;realms&#8221; of your mobile application&#8217;s WebView innards page in both a backward and forward sense.  In other words you can not worry at all if all of the pages possible to navigate to, can eventually have navigation that would lead you back to that original webpage of the WebView, but if you go outside that, the WebView (without its &#8220;back button&#8221; and &#8220;forward button&#8221;) will lose touch with the original webpage without some complete resetting of the mobile application.  If this explanation baffles, you may prefer to think of the concept of a  mobile WebView as being like a web browser which is not capable of having multiple tabs nor new multiple windows.   So to make the system work write &#8220;small&#8221; for the matter at hand.  This shouldn&#8217;t be too hard to do if your mobile application has a small defined task, or aim.<\/p>\n<\/blockquote>\n<p>So what of the changes &#8230; what do they involve?   This change, that is, to allow these Google Chart web applications to access help from Google &#8230; and be able to find their way home to WebView &#8220;land&#8221; &#8230;<\/p>\n<ul>\n<li><a href=\"http:\/\/www.rjmprogramming.com.au\/gchartgen.js--GETME\" title=\"gchartgen.js--GETME\" target=\"_blank\">gchartgen.js<\/a> is same as below<\/li>\n<li><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/butsel.php-GETME\" title=\"butsel.php-GETME\" target=\"_blank\">butsel.php<\/a> is the changed PHP programming source code as per <a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/\/PHP\/butsel.php-GETME\" title=\"butsel.php--GETME\" target=\"_blank\">changes<\/a><\/li>\n<li><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/webviewemail.php-GETME\" title=\"webviewemail.php-GETME\" target=\"_blank\">webviewemail.php<\/a> is same as below<\/li>\n<\/ul>\n<p>At the mobile IDE (eg. Xcode) for iOS code end of integration, the two main Swift programming source code files of interest are &#8230;<\/p>\n<ul>\n<li><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/AppDelegate.swift-GETME\" title='AppDelegate.swift'>AppDelegate.swift<\/a> is same as below<\/li>\n<li><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ViewController.swift--GETME\" title='ViewController.swift'>ViewController.swift<\/a> is the changed Swift programming source code as per <a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/ViewController.swift--GETME\" title=\"ViewController.swift-GETME\" target=\"_blank\">changes<\/a><\/li>\n<\/ul>\n<p>Lesson 7896293: You have to have <strike>patients<\/strike> patience to be in mobile development &#8220;land&#8221; &#8230; <font size=1>and\/or &#8220;sea&#8221;<\/font> &#8230; or, for a <a target=_blank title='proportion' href='https:\/\/answers.yahoo.com\/question\/index?qid=20110521113747AAE4PqX'>proportional<\/a> response &#8230; <font size=7 color='blue'>&#8220;sea&#8221;<\/font> vs <font size=1 color='green'>&#8220;land&#8221;<\/font><\/p>\n<p>Lesson 7896295: (just went down to the kitchen and learnt something about red chillies) You sometimes have to compromise (indeed perhaps bite boysenberry or raspberry bullets) to be in mobile development areas of interest<\/p>\n<p>Trap for young players 789629500:  A UIButton in version iOS 8.1 is white &#8230; hopefully for you, it will be &#8220;all white on the night&#8221; &#8230; <font size=1>chortle, chortle<\/font>.<\/p>\n<hr \/>\n<p id='gcmwnt'>Previous relevant <a target=_blank title='Google Charts Mobile WebView Menu Tutorial' href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=12361'>Google Charts Mobile WebView Menu Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/GoogleChartEmail.png\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Google Charts Mobile WebView Menu Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/GoogleChartEmail.png\" title=\"Google Charts Mobile WebView Menu Tutorial\"    \/><\/a><p class=\"wp-caption-text\">Google Charts Mobile WebView Menu Tutorial<\/p><\/div>\n<p>We left you yesterday &#8220;popping off&#8221; to create a mobile app, but having an initial &#8220;pop&#8221; (after we &#8220;snarp&#8221; and &#8220;cackle&#8221; &#8230; darn those ornery consonants), we realized there was another bit of suitable functionality &#8230; that is, to make a menu of other Google Chart applications, and allow you to swap from one to another.<\/p>\n<p>So yesterday&#8217;s <a target=_blank title='Google Charts Emailing Mobile WebView Tutorial' href='#gcemwt'>Google Charts Emailing Mobile WebView Tutorial<\/a> as shown below gets built upon today, for this.<\/p>\n<p>So what of the changes &#8230; what do they involve?   This change, that is, to allow these Google Chart web application codes to be used as the innards to a mobile application using a WebView (both no &#8220;back button&#8221; nor &#8220;forward button&#8221;), only involves changes to that last tutorial&#8217;s Javascript and to add one new PHP generic piece of code and change yesterday&#8217;s PHP code as per &#8230;<\/p>\n<ul>\n<li><a href=\"http:\/\/www.rjmprogramming.com.au\/gchartgen.js--GETME\" title=\"gchartgen.js--GETME\" target=\"_blank\">gchartgen.js<\/a> is the changed Javascript programming source code as per <a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/gchartgen.js--GETME\" title=\"gchartgen.js--GETME\" target=\"_blank\">changes<\/a><\/li>\n<li><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/butsel.php_GETME\" title=\"butsel.php_GETME\" target=\"_blank\">butsel.php<\/a> is the new PHP programming source code that builds a menu of Google Chart relevant applications, as buttons for mobile devices and as a select dropdown for other platforms<\/li>\n<li><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/webviewemail.php-GETME\" title=\"webviewemail.php-GETME\" target=\"_blank\">webviewemail.php<\/a> is the changed PHP programming source code as per <a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/webviewemail.php-GETME\" title=\"webviewemail.php-GETME\" target=\"_blank\">changes<\/a><\/li>\n<\/ul>\n<p>Bits of the logic used PHP to try to detect a WebView scenario and would recommend a Google <a target=_blank title='Google search' href='https:\/\/www.google.com.au\/search?sourceid=navclient&#038;aq=&#038;oq=%22strpos%28%24_SERVER%5b%27HTTP_USER_AGENT%27%5d%2c+%27Mobile%2f%27%29+%21%3d%3d+false&#038;hl=en-GB&#038;ie=UTF-8&#038;rlz=1T4GGHP_en-GBAU426AU426&#038;q=%22strpos%28%24_SERVER%5b%27HTTP_USER_AGENT%27%5d%2c+%27Mobile%2f%27%29+%21%3d%3d+false&#038;gs_l=hp....0.0.0.9697...........0.TkgNLyN0E3c#q=%22strpos(%24_SERVER%5B%27HTTP_USER_AGENT%27%5D,+%27Mobile\/%27)+!%3D%3D+false&#038;hl=en-GB&#038;start=10'>search<\/a> here.<\/p>\n<p>At the mobile IDE (eg. Xcode) for iOS code end of integration, the two main Swift programming source code files of interest are &#8230;<\/p>\n<ul>\n<li><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/AppDelegate.swift-GETME\" title='AppDelegate.swift'>AppDelegate.swift<\/a><\/li>\n<li><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ViewController.swift-GETME\" title='ViewController.swift'>ViewController.swift<\/a> is the changed Swift programming source code as per <a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/ViewController.swift-GETME\" title=\"ViewController.swift-GETME\" target=\"_blank\">changes<\/a><\/li>\n<\/ul>\n<p>Thanks for dropping by at today&#8217;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/GoogleChartEmail.png\" title='Click picture'>tutorial<\/a>.   The menu effect can be shown with a web application live run for a <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/PieChart\/pie_chart.php?justmenu=justmenu\" title='Google Chart Pie Chart with menu'>Pie Chart<\/a> link today, if you want to peruse.   Will be popping off again now to test lots more.  Bye for now.<\/p>\n<hr \/>\n<p id='gcemwt'>Previous relevant <a target=_blank title='Google Charts Emailing Mobile WebView Tutorial' href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=12331'>Google Charts Emailing Mobile WebView Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/GoogleChartEmail.gif\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Google Charts Emailing Mobile WebView Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/GoogleChartEmail.gif\" title=\"Google Charts Emailing Mobile WebView Tutorial\"    \/><\/a><p class=\"wp-caption-text\">Google Charts Emailing Mobile WebView Tutorial<\/p><\/div>\n<p>Hope if you are a regular reader of this blog that you are getting the hang of the idea of &#8230;<\/p>\n<ol>\n<li>surfing the net with a web browser on a mobile device<\/li>\n<li>using the net on a mobile device via a mobile application that is using a WebView (Android or iOS)<\/li>\n<\/ol>\n<p>&#8230; can have quite differing considerations regarding any HTML or PHP (or ASP.Net) code you write if your mobile application does away with &#8220;back buttons&#8221; or &#8220;forward buttons&#8221;.  Of course, the IDE you may use to set up your mobile application WebView may make it so easy it is like &#8220;falling off a log&#8221; to implement the &#8220;back button&#8221; and &#8220;forward button&#8221; functionalities into your mobile application.  Or, if you think this way (and there are many who don&#8217;t), you can write HTML and PHP to accomodate for a mobile application world using WebViews, but not relying on the use of &#8220;back buttons&#8221; nor &#8220;forward buttons&#8221;.<\/p>\n<p>So what is the nature of the issue differences?<\/p>\n<p>Well, it is to do with navigating outside the &#8220;realms&#8221; of your mobile application&#8217;s WebView innards page in both a backward and forward sense.  In other words you can not worry at all if all of the pages possible to navigate to, can eventually have navigation that would lead you back to that original webpage of the WebView, but if you go outside that, the WebView (without its &#8220;back button&#8221; and &#8220;forward button&#8221;) will lose touch with the original webpage without some complete resetting of the mobile application.  If this explanation baffles, you may prefer to think of the concept of a  mobile WebView as being like a web browser which is not capable of having multiple tabs nor new multiple windows.   So to make the system work write &#8220;small&#8221; for the matter at hand.  This shouldn&#8217;t be too hard to do if your mobile application has a small defined task, or aim.<\/p>\n<p>So, do you remember when we made quite a few changes to all our Google Charts web applications to allow for some email functionality, when we showed the <a target=_blank title='Google Charts Emailing Primer Tutorial' href='#gcept'>Google Charts Emailing Primer Tutorial<\/a> as shown below?  Well, those changes work fine for desktop and laptop web surfing of the net, and work for the mobile usage case 1 as above as well.  It is just with case 2 (with no &#8220;back buttons&#8221; nor &#8220;forward buttons&#8221;, and using a WebView method to access the net) that the new (snapshot Google Chart (link)) email functionality that was designed for an HTML <i>a<\/i> tag <a target=_blank title='mailto information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tryit.asp?filename=tryhtml_link_mailto'><i>mailto:<\/i><\/a> <a target=_blank title='HTML a tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_a.asp'><i>href<\/i><\/a> value (client-side method, that relies on an email client program), would be a case of spilling outside the &#8220;realm&#8221; of the innards of any WebView that mobile application might use to do this job.<\/p>\n<p>So what of the changes &#8230; what do they involve?   This change, that is, to allow these Google Chart web application codes to be used as the innards to a mobile application using a WebView (both no &#8220;back button&#8221; nor &#8220;forward button&#8221;), only involves changes to that last tutorial&#8217;s Javascript and to add one new PHP generic piece of code as per &#8230;<\/p>\n<ul>\n<li><a href=\"http:\/\/www.rjmprogramming.com.au\/gchartgen.js-GETME\" title=\"gchartgen.js-GETME\" target=\"_blank\">gchartgen.js<\/a> is the changed Javascript programming source code as per <a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/gchartgen.js-GETME\" title=\"gchartgen.js-GETME\" target=\"_blank\">changes<\/a><\/li>\n<li><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/webviewemail.php_GETME\" title=\"webviewemail.php_GETME\" target=\"_blank\">webviewemail.php<\/a> is the new PHP programming source code that uses a PHP  <a target=_blank title='PHP mail function' href='http:\/\/php.net\/manual\/en\/function.mail.php'>mail<\/a> method of emailing when using a mobile application&#8217;s WebView<\/li>\n<\/ul>\n<p>At the mobile IDE (eg. Xcode) for iOS code end of integration, the two main Swift programming source code files of interest are &#8230;<\/p>\n<ul>\n<li><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/AppDelegate.swift_GETME\" title='AppDelegate.swift'>AppDelegate.swift<\/a><\/li>\n<li><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ViewController.swift_GETME\" title='ViewController.swift'>ViewController.swift<\/a><\/li>\n<\/ul>\n<p>Ideally it would be good in Javascript to be able to differentiate in a generic way the difference in usage of case 1 versus case 2 as shown above, but this is not straightforward, as you can see <a target=_blank title='Useful link ... thanks' href='http:\/\/stackoverflow.com\/questions\/4460205\/detect-ipad-iphone-webview-via-javascript'>here<\/a>, for instance.   So, without that neat solution, probably the next best approach is to, within your mobile application code where you define the URL for the WebView you set up a GET parameter to indicate that extra information that the accessor of the HTML and\/or PHP (or ASP.Net), is a WebView in a mobile application.  In ViewController.swift above, where this happens, the URL used has <i>&#8220;?WebView=WebView&#8221;<\/i> added to the normal URL to flag to the the (UI)WebView innards that a WebView supervises it &#8230; by the way, as we&#8217;ve seen before, the innards, in Javascript, or PHP, would be very capable of working out that they are working for a mobile (device) platform. For instance, in Javascript, use a test like &#8230;<br \/>\n<code><br \/>\nif (navigator.userAgent.match(\/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile\/i)) {<br \/>\n  \/\/ it is a mobile device<br \/>\n}<br \/>\n<\/code><\/p>\n<p> &#8230; great thanks to this <a target=_blank title='Great cross-platform advice' href='http:\/\/www.abeautifulsite.net\/detecting-mobile-devices-with-javascript\/'>link<\/a> for this advice and idea, and don&#8217;t forget that <a target=_blank title='Some PHP research and development ideas regarding mobile device detection could start here ... thanks' href='http:\/\/stackoverflow.com\/questions\/4117555\/simplest-way-to-detect-a-mobile-device'>it can be done with PHP too<\/a> (and no doubt ASP.Net).<\/p>\n<p>Guess this falls under a cross-platform issue, but that term does not encompass the idea, for me, that you can have a cross-platform issue for the same mobile device using the same underlying code &#8230; maybe we need the term cross-environment, or cross-caller. <\/p>\n<p>Pardon us while we pop off and start on being able to produce the equivalent of a &#8220;live run&#8221; link for you &#8230; ie. a mobile application &#8230; chortle, chortle.    Hope you enjoy today&#8217;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/GoogleChartEmail.gif\" title='Click picture'>tutorial<\/a>.<\/p>\n<hr \/>\n<p id='gcept'>Previous relevant <a target=_blank title='Google Charts Emailing Primer Tutorial' href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=11696'>Google Charts Emailing 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\/PHP\/GoogleChartEmail.jpg\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Google Charts Emailing Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/GoogleChartEmail.jpg\" title=\"Google Charts Emailing Primer Tutorial\"    \/><\/a><p class=\"wp-caption-text\">Google Charts Emailing Primer Tutorial<\/p><\/div>\n<p>The <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/index' title='Google Chart Tools provide a perfect way to visualize data on your website. From simple line charts to complex hierarchical tree maps, the chart galley provides a large number of well-designed chart types. Populating your data is easy using the provided client- and server-side tools.'>Google Charts<\/a> (derived) webpages here at this rjmprogramming.com.au WordPress blog have all changed to add functionality for emailing snapshots of the Google Charts &#8220;midstream&#8221;.   You can see a table of tutorials, and corresponding PHP code (with the last row being our one new bit of Javascript code) affected below &#8230;<\/p>\n<div align='center' id='oursel'>\n<table cellspacing=\"5\" cellpadding=\"5\" border=\"7\" align=\"center\" class=\"tablesorter\" id=\"myt\" title=\"RJM Programming GETME Downloadables List\" style='font-size:8px;'>\n<thead>\n<tr class=\"even\">\n<th style=\"display:none;\" class=\"header headerSortUp\">Date (GMT)<\/th>\n<th class=\"header\">File<\/th>\n<th class=\"header\">Relative Path<\/th>\n<th class=\"header\" style=\"display:none;\">Ext<\/th>\n<th class=\"header\">Blog Search Link<\/th>\n<th class=\"header\">Email Functionality Code Difference Link<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>084126<\/td>\n<td id=\"w\"><a href=\"\/PHP\/Wordtree\/wordtree_chart.php--GETME\" title=\"wordtree_chart.php--GETME\" target=\"_blank\">wordtree_chart.php&#8211;GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Wordtree\" title=\"Breadcrumb tag\" target=\"_blank\">Wordtree<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"wordtree_chart.--GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=wordtree_chart.php-GETME\" title=\"Blog search for wordtree_chart.php--GETME\" target=\"_blank\">wordtree_chart.php&#8211;GETME<\/a><\/td>\n<td id=\"(wordtree_chart.--GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/Wordtree\/wordtree_chart.php--GETME\" title=\"Code difference for wordtree_chart.php--GETME\" target=\"_blank\">wordtree_chart.php&#8211;GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>084014<\/td>\n<td id=\"t\"><a href=\"\/PHP\/TreemapChart\/treemap_chart.php-GETME\" title=\"treemap_chart.php-GETME\" target=\"_blank\">treemap_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/TreemapChart\" title=\"Breadcrumb tag\" target=\"_blank\">TreemapChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"treemap_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=treemap_chart.php_GETME\" title=\"Blog search for treemap_chart.php-GETME\" target=\"_blank\">treemap_chart.php-GETME<\/a><\/td>\n<td id=\"(treemap_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/TreemapChart\/treemap_chart.php-GETME\" title=\"Code difference for treemap_chart.php-GETME\" target=\"_blank\">treemap_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>083922<\/td>\n<td id=\"t\"><a href=\"\/PHP\/TimelineChart\/timeline_chart.php-GETME\" title=\"timeline_chart.php-GETME\" target=\"_blank\">timeline_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/TimelineChart\" title=\"Breadcrumb tag\" target=\"_blank\">TimelineChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"timeline_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=timeline_chart.php_GETME\" title=\"Blog search for timeline_chart.php-GETME\" target=\"_blank\">timeline_chart.php-GETME<\/a><\/td>\n<td id=\"(timeline_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/TimelineChart\/timeline_chart.php-GETME\" title=\"Code difference for timeline_chart.php-GETME\" target=\"_blank\">timeline_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>083813<\/td>\n<td id=\"s\"><a href=\"\/PHP\/Sparkline\/sparkline.php-GETME\" title=\"sparkline.php-GETME\" target=\"_blank\">sparkline.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Sparkline\" title=\"Breadcrumb tag\" target=\"_blank\">Sparkline<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"sparkline.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=sparkline.php_GETME\" title=\"Blog search for sparkline.php_GETME\" target=\"_blank\">sparkline.php-GETME<\/a><\/td>\n<td id=\"(sparkline.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/Sparkline\/sparkline.php-GETME\" title=\"Code difference for sparkline.php-GETME\" target=\"_blank\">sparkline.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>083632<\/td>\n<td id=\"s\"><a href=\"\/PHP\/ScatterChart\/scatter_chart_diff.php--GETME\" title=\"scatter_chart_diff.php--GETME\" target=\"_blank\">scatter_chart_diff.php&#8211;GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ScatterChart\" title=\"Breadcrumb tag\" target=\"_blank\">ScatterChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"scatter_chart_diff.--GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=scatter_chart.php-GETME\" title=\"Blog search for scatter_chart_diff.php--GETME\" target=\"_blank\">scatter_chart_diff.php&#8211;GETME<\/a><\/td>\n<td id=\"(scatter_chart_diff.--GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/ScatterChart\/scatter_chart_diff.php--GETME\" title=\"Code difference for scatter_chart_diff.php--GETME\" target=\"_blank\">scatter_chart_diff.php&#8211;GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>083632<\/td>\n<td id=\"s\"><a href=\"\/PHP\/ScatterChart\/scatter_chart.php-GETME\" title=\"scatter_chart.php-GETME\" target=\"_blank\">scatter_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ScatterChart\" title=\"Breadcrumb tag\" target=\"_blank\">ScatterChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"scatter_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=scatter_chart.php_GETME\" title=\"Blog search for scatter_chart.php-GETME\" target=\"_blank\">scatter_chart.php-GETME<\/a><\/td>\n<td id=\"(scatter_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/ScatterChart\/scatter_chart.php-GETME\" title=\"Code difference for scatter_chart.php-GETME\" target=\"_blank\">scatter_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>083526<\/td>\n<td id=\"s\"><a href=\"\/PHP\/SankeyDiagram\/sankey_diagram.php-GETME\" title=\"sankey_diagram.php-GETME\" target=\"_blank\">sankey_diagram.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/SankeyDiagram\" title=\"Breadcrumb tag\" target=\"_blank\">SankeyDiagram<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"sankey_diagram.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=sankey_diagram.php_GETME\" title=\"Blog search for sankey_diagram.php-GETME\" target=\"_blank\">sankey_diagram.php-GETME<\/a><\/td>\n<td id=\"(sankey_diagram.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/SankeyDiagram\/sankey_diagram.php-GETME\" title=\"Code difference for sankey_diagram.php-GETME\" target=\"_blank\">sankey_diagram.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150117\">20150117<a title=\"Back to top\" href=\"#oursel\">.<\/a>192253<\/td>\n<td id=\"c\"><a href=\"\/PHP\/ColumnChart\/column_chart.php-GETME\" title=\"column_chart.php-GETME\" target=\"_blank\">column_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ColumnChart\" title=\"Breadcrumb tag\" target=\"_blank\">ColumnChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"column_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=column_chart.php_GETME\" title=\"Blog search for column_chart.php-GETME\" target=\"_blank\">column_chart.php-GETME<\/a><\/td>\n<td id=\"(column_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/ColumnChart\/column_chart.php-GETME\" title=\"Code difference for column_chart.php-GETME\" target=\"_blank\">column_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>083224<\/td>\n<td id=\"p\"><a href=\"\/PHP\/PieChart\/pie_chart.php--GETME\" title=\"pie_chart.php--GETME\" target=\"_blank\">pie_chart.php&#8211;GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/PieChart\" title=\"Breadcrumb tag\" target=\"_blank\">PieChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"pie_chart.--GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=pie_chart.php-GETME\" title=\"Blog search for pie_chart.php--GETME\" target=\"_blank\">pie_chart.php&#8211;GETME<\/a><\/td>\n<td id=\"(pie_chart.--GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/PieChart\/pie_chart.php--GETME\" title=\"Code difference for pie_chart.php--GETME\" target=\"_blank\">pie_chart.php&#8211;GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>083223<\/td>\n<td id=\"p\"><a href=\"\/PHP\/PieChart\/pie_chart_diff.php-GETME\" title=\"pie_chart_diff.php-GETME\" target=\"_blank\">pie_chart_diff.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/PieChart\" title=\"Breadcrumb tag\" target=\"_blank\">PieChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"pie_chart_diff.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=pie_chart_diff.php_GETME\" title=\"Blog search for pie_chart_diff.php-GETME\" target=\"_blank\">pie_chart_diff.php-GETME<\/a><\/td>\n<td id=\"(pie_chart_diff.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/PieChart\/pie_chart_diff.php-GETME\" title=\"Code difference for pie_chart_diff.php-GETME\" target=\"_blank\">pie_chart_diff.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>083056<\/td>\n<td id=\"p\"><a href=\"\/PHP\/ParabolaLineGraph\/parabola_lgraph.php-GETME\" title=\"parabola_lgraph.php-GETME\" target=\"_blank\">parabola_lgraph.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ParabolaLineGraph\" title=\"Breadcrumb tag\" target=\"_blank\">ParabolaLineGraph<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"parabola_lgraph.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=parabola_lgraph.php_GETME\" title=\"Blog search for parabola_lgraph.php-GETME\" target=\"_blank\">parabola_lgraph.php-GETME<\/a><\/td>\n<td id=\"(parabola_lgraph.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/ParabolaLineGraph\/parabola_lgraph.php-GETME\" title=\"Code difference for parabola_lgraph.php-GETME\" target=\"_blank\">parabola_lgraph.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>082835<\/td>\n<td id=\"G\"><a href=\"\/PHP\/OrgChart\/Google_OrgChart.php-GETME\" title=\"Google_OrgChart.php-GETME\" target=\"_blank\">Google_OrgChart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/OrgChart\" title=\"Breadcrumb tag\" target=\"_blank\">OrgChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"Google_OrgChart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=Google_OrgChart.php_GETME\" title=\"Blog search for Google_OrgChart.php-GETME\" target=\"_blank\">Google_OrgChart.php-GETME<\/a><\/td>\n<td id=\"(Google_OrgChart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/OrgChart\/Google_OrgChart.php-GETME\" title=\"Code difference for Google_OrgChart.php-GETME\" target=\"_blank\">Google_OrgChart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>081008<\/td>\n<td id=\"m\"><a href=\"\/PHP\/MotionChart\/motion_chart.php-GETME\" title=\"motion_chart.php-GETME\" target=\"_blank\">motion_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/MotionChart\" title=\"Breadcrumb tag\" target=\"_blank\">MotionChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"motion_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=motion_chart.php_GETME\" title=\"Blog search for motion_chart.php-GETME\" target=\"_blank\">motion_chart.php-GETME<\/a><\/td>\n<td id=\"(motion_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/MotionChart\/motion_chart.php-GETME\" title=\"Code difference for motion_chart.php-GETME\" target=\"_blank\">motion_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>080704<\/td>\n<td id=\"l\"><a href=\"\/PHP\/LineChart\/line_chart.php-GETME\" title=\"line_chart.php-GETME\" target=\"_blank\">line_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/LineChart\" title=\"Breadcrumb tag\" target=\"_blank\">LineChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"line_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=line_chart.php_GETME\" title=\"Blog search for line_chart.php-GETME\" target=\"_blank\">line_chart.php-GETME<\/a><\/td>\n<td id=\"(line_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/LineChart\/line_chart.php-GETME\" title=\"Code difference for line_chart.php-GETME\" target=\"_blank\">line_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>080603<\/td>\n<td id=\"l\"><a href=\"\/PHP\/LinearTrendline\/linear_trendline.php-GETME\" title=\"linear_trendline.php-GETME\" target=\"_blank\">linear_trendline.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/LinearTrendline\" title=\"Breadcrumb tag\" target=\"_blank\">LinearTrendline<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"linear_trendline.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=linear_trendline.php_GETME\" title=\"Blog search for linear_trendline.php-GETME\" target=\"_blank\">linear_trendline.php-GETME<\/a><\/td>\n<td id=\"(linear_trendline.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/LinearTrendline\/linear_trendline.php-GETME\" title=\"Code difference for linear_trendline.php-GETME\" target=\"_blank\">linear_trendline.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>080453<\/td>\n<td id=\"i\"><a href=\"\/PHP\/IntervalsChart\/intervals.php-GETME\" title=\"intervals.php-GETME\" target=\"_blank\">intervals.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/IntervalsChart\" title=\"Breadcrumb tag\" target=\"_blank\">IntervalsChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"intervals.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=intervals.php_GETME\" title=\"Blog search for intervals.php-GETME\" target=\"_blank\">intervals.php-GETME<\/a><\/td>\n<td id=\"(intervals.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/IntervalsChart\/intervals.php-GETME\" title=\"Code difference for intervals.php-GETME\" target=\"_blank\">intervals.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>065621<\/td>\n<td id=\"a\"><a href=\"\/PHP\/AnnotatedTimelineChart\/annotatedtimeline_chart.php-GETME\" title=\"annotatedtimeline_chart.php-GETME\" target=\"_blank\">annotatedtimeline_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/AnnotatedTimelineChart\" title=\"Breadcrumb tag\" target=\"_blank\">AnnotatedTimelineChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"annotatedtimeline_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=annotatedtimeline_chart.php_GETME\" title=\"Blog search for annotatedtimeline_chart.php-GETME\" target=\"_blank\">annotatedtimeline_chart.php-GETME<\/a><\/td>\n<td id=\"(annotatedtimeline_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/AnnotatedTimelineChart\/annotatedtimeline_chart.php-GETME\" title=\"Code difference for annotatedtimeline_chart.php-GETME\" target=\"_blank\">annotatedtimeline_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>075812<\/td>\n<td id=\"i\"><a href=\"\/PHP\/IntensityChart\/intensity_chart.php-GETME\" title=\"intensity_chart.php-GETME\" target=\"_blank\">intensity_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/IntensityChart\" title=\"Breadcrumb tag\" target=\"_blank\">IntensityChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"intensity_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=intensity_chart.php_GETME\" title=\"Blog search for intensity_chart.php-GETME\" target=\"_blank\">intensity_chart.php-GETME<\/a><\/td>\n<td id=\"(intensity_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/IntensityChart\/intensity_chart.php-GETME\" title=\"Code difference for intensity_chart.php-GETME\" target=\"_blank\">intensity_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>071933<\/td>\n<td id=\"h\"><a href=\"\/PHP\/HistogramChart\/histogram_chart.php-GETME\" title=\"histogram_chart.php-GETME\" target=\"_blank\">histogram_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/HistogramChart\" title=\"Breadcrumb tag\" target=\"_blank\">HistogramChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"histogram_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=histogram_chart.php_GETME\" title=\"Blog search for histogram_chart.php-GETME\" target=\"_blank\">histogram_chart.php-GETME<\/a><\/td>\n<td id=\"(histogram_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/HistogramChart\/histogram_chart.php-GETME\" title=\"Code difference for histogram_chart.php-GETME\" target=\"_blank\">histogram_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>071648<\/td>\n<td id=\"g\"><a href=\"\/PHP\/GeoChart\/geo_chart.php-GETME\" title=\"geo_chart.php-GETME\" target=\"_blank\">geo_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/GeoChart\" title=\"Breadcrumb tag\" target=\"_blank\">GeoChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"geo_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=geo_chart.php-GETME\" title=\"Blog search for geo_chart.php_GETME\" target=\"_blank\">geo_chart.php-GETME<\/a><\/td>\n<td id=\"(geo_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/GeoChart\/geo_chart.php-GETME\" title=\"Code difference for geo_chart.php-GETME\" target=\"_blank\">geo_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>071454<\/td>\n<td id=\"g\"><a href=\"\/PHP\/GaugeChart\/gauge_chart.php-GETME\" title=\"gauge_chart.php-GETME\" target=\"_blank\">gauge_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/GaugeChart\" title=\"Breadcrumb tag\" target=\"_blank\">GaugeChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"gauge_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=gauge_chart.php_GETME\" title=\"Blog search for gauge_chart.php-GETME\" target=\"_blank\">gauge_chart.php-GETME<\/a><\/td>\n<td id=\"(gauge_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/GaugeChart\/gauge_chart.php-GETME\" title=\"Code difference for gauge_chart.php-GETME\" target=\"_blank\">gauge_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>070737<\/td>\n<td id=\"c\"><a href=\"\/PHP\/ColumnChart\/column_chart.php--GETME\" title=\"column_chart.php--GETME\" target=\"_blank\">column_chart.php&#8211;GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ColumnChart\" title=\"Breadcrumb tag\" target=\"_blank\">ColumnChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"column_chart.--GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=column_chart.php-GETME\" title=\"Blog search for column_chart.php--GETME\" target=\"_blank\">column_chart.php&#8211;GETME<\/a><\/td>\n<td id=\"(column_chart.--GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/ColumnChart\/column_chart.php--GETME\" title=\"Code difference for column_chart.php--GETME\" target=\"_blank\">column_chart.php&#8211;GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>070736<\/td>\n<td id=\"c\"><a href=\"\/PHP\/ColumnChart\/column_chart_diff.php-GETME\" title=\"column_chart_diff.php-GETME\" target=\"_blank\">column_chart_diff.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ColumnChart\" title=\"Breadcrumb tag\" target=\"_blank\">ColumnChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"column_chart_diff.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=column_chart_diff.php_GETME\" title=\"Blog search for column_chart_diff.php-GETME\" target=\"_blank\">column_chart_diff.php-GETME<\/a><\/td>\n<td id=\"(column_chart_diff.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/ColumnChart\/column_chart_diff.php-GETME\" title=\"Code difference for column_chart_diff.php-GETME\" target=\"_blank\">column_chart_diff.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>070456<\/td>\n<td id=\"c\"><a href=\"\/PHP\/ChartWrapper\/chart_wrapper.php-GETME\" title=\"chart_wrapper.php-GETME\" target=\"_blank\">chart_wrapper.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ChartWrapper\" title=\"Breadcrumb tag\" target=\"_blank\">ChartWrapper<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"chart_wrapper.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=chart_wrapper.php_GETME\" title=\"Blog search for chart_wrapper.php-GETME\" target=\"_blank\">chart_wrapper.php-GETME<\/a><\/td>\n<td id=\"(chart_wrapper.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/ChartWrapper\/chart_wrapper.php-GETME\" title=\"Code difference for chart_wrapper.php-GETME\" target=\"_blank\">chart_wrapper.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>070255<\/td>\n<td id=\"c\"><a href=\"\/PHP\/CandlestickChart\/candlestick_chart.php-GETME\" title=\"candlestick_chart.php-GETME\" target=\"_blank\">candlestick_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/CandlestickChart\" title=\"Breadcrumb tag\" target=\"_blank\">CandlestickChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"candlestick_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=candlestick_chart.php_GETME\" title=\"Blog search for candlestick_chart.php-GETME\" target=\"_blank\">candlestick_chart.php-GETME<\/a><\/td>\n<td id=\"(candlestick_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/CandlestickChart\/candlestick_chart.php-GETME\" title=\"Code difference for candlestick_chart.php-GETME\" target=\"_blank\">candlestick_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>070153<\/td>\n<td id=\"c\"><a href=\"\/PHP\/CalendarChart\/calendar_chart.php-GETME\" title=\"calendar_chart.php-GETME\" target=\"_blank\">calendar_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/CalendarChart\" title=\"Breadcrumb tag\" target=\"_blank\">CalendarChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"calendar_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=calendar_chart.php_GETME\" title=\"Blog search for calendar_chart.php-GETME\" target=\"_blank\">calendar_chart.php-GETME<\/a><\/td>\n<td id=\"(calendar_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/CalendarChart\/calendar_chart.php-GETME\" title=\"Code difference for calendar_chart.php-GETME\" target=\"_blank\">calendar_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>070054<\/td>\n<td id=\"b\"><a href=\"\/PHP\/BubbleChart\/bubble_chart.php-GETME\" title=\"bubble_chart.php-GETME\" target=\"_blank\">bubble_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\" title=\"Breadcrumb tag\" target=\"_blank\">BubbleChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"bubble_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=bubble_chart.php_GETME\" title=\"Blog search for bubble_chart.php-GETME\" target=\"_blank\">bubble_chart.php-GETME<\/a><\/td>\n<td id=\"(bubble_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/bubble_chart.php-GETME\" title=\"Code difference for bubble_chart.php-GETME\" target=\"_blank\">bubble_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>065939<\/td>\n<td id=\"b\"><a href=\"\/PHP\/BarChart\/bar_chart.php--GETME\" title=\"bar_chart.php--GETME\" target=\"_blank\">bar_chart.php&#8211;GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BarChart\" title=\"Breadcrumb tag\" target=\"_blank\">BarChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"bar_chart.--GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=bar_chart.php-GETME\" title=\"Blog search for bar_chart.php--GETME\" target=\"_blank\">bar_chart.php&#8211;GETME<\/a><\/td>\n<td id=\"(bar_chart.--GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/BarChart\/bar_chart.php--GETME\" title=\"Code difference for bar_chart.php--GETME\" target=\"_blank\">bar_chart.php&#8211;GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>065938<\/td>\n<td id=\"b\"><a href=\"\/PHP\/BarChart\/bar_chart_diff.php-GETME\" title=\"bar_chart_diff.php-GETME\" target=\"_blank\">bar_chart_diff.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BarChart\" title=\"Breadcrumb tag\" target=\"_blank\">BarChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"bar_chart_diff.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=bar_chart_diff.php_GETME\" title=\"Blog search for bar_chart_diff.php-GETME\" target=\"_blank\">bar_chart_diff.php-GETME<\/a><\/td>\n<td id=\"(bar_chart_diff.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/BarChart\/bar_chart_diff.php-GETME\" title=\"Code difference for bar_chart_diff.php-GETME\" target=\"_blank\">bar_chart_diff.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>065753<\/td>\n<td id=\"a\"><a href=\"\/PHP\/AreaChart\/area_chart.php-GETME\" title=\"area_chart.php-GETME\" target=\"_blank\">area_chart.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/AreaChart\" title=\"Breadcrumb tag\" target=\"_blank\">AreaChart<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"area_chart.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=area_chart.php_GETME\" title=\"Blog search for area_chart.php-GETME\" target=\"_blank\">area_chart.php-GETME<\/a><\/td>\n<td id=\"(area_chart.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/AreaChart\/area_chart.php-GETME\" title=\"Code difference for area_chart.php-GETME\" target=\"_blank\">area_chart.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td style=\"display:none;\" id=\"20150118\">20150118<a title=\"Back to top\" href=\"#oursel\">.<\/a>070054<\/td>\n<td id=\"m\"><a href=\"\/PHP\/Map\/map.php-GETME\" title=\"map.php-GETME\" target=\"_blank\">map.php-GETME<\/a><\/td>\n<td id=\"PHP\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=PHP\" title=\"Breadcrumb tag (may not be found)\" target=\"_blank\">PHP<\/a>\/<a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Map\" title=\"Breadcrumb tag\" target=\"_blank\">Map<\/a>\/<\/td>\n<td id=\"(php)\" style=\"display:none;\">php<\/td>\n<td id=\"map.-GETMEphp\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=map.php_GETME\" title=\"Blog search for map.php-GETME\" target=\"_blank\">map.php-GETME<\/a><\/td>\n<td id=\"(map.-GETMEphp)\"><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php-GETME\" title=\"Code difference for map.php-GETME\" target=\"_blank\">map.php-GETME<\/a><\/td>\n<\/tr>\n<tr class=\"even\">\n<td style=\"display:none;\" id=\"20150117\">20150117<a title=\"Back to top\" href=\"#oursel\">.<\/a>190535<\/td>\n<td id=\"g\"><a href=\"\/gchartgen.js_GETME\" title=\"gchartgen.js_GETME\" target=\"_blank\">gchartgen.js_GETME<\/a><\/td>\n<td id=\"0\"><\/td>\n<td id=\"(js)\" style=\"display:none;\">js<\/td>\n<td id=\"gchartgen._GETMEjs\"><a href=\"http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=11696\" title=\"Blog search for gchartgen.js_GETME\" target=\"_blank\">gchartgen.js_GETME<\/a><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Let&#8217;s now discuss some tactics that can work to be a bit objective about the task of making these changes in a methodical and systematic way.<\/p>\n<ul>\n<li>If possible, have the change amount to the adjustment of one line of code &#8230; so we looked at one bit of Javascript called <a href=\"\/gchartgen.js_GETME\" title=\"gchartgen.js_GETME\" target=\"_blank\">gchartgen.js<\/a> called by each Google Chart application via &#8230; <code> &lt;script type=\"text\/javascript\" src=\"http:\/\/www.rjmprogramming.com.au\/gchartgen.js\"&gt;&lt;\/script&gt;<\/code> &#8230; the one (extra) line of code ( that is placed between &lt;head&gt; and &lt;\/head&gt; )<\/li>\n<li>So where can gchartgen.js intervene to do its thing (which is to add an Email link down the bottom and allow HTML h1&#8217;s be clickable to Email, as well (quite often))? &#8230; onload functionality proved to be too crowded, and as this functionality is not mission-critical it is decided that it can be created with <i> <a target=_blank title='Javascript setTimeout() method information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/met_win_settimeout.asp'>setTimeout(gcinit, 2000);<\/a> <\/i> &#8230; ie. roughly 2 seconds after onload event<\/li>\n<li>Unit test this on one Google Chart scenario on local (<a target=_blank title='MAMP Mac Apache\/PHP\/MySql local web server' href='http:\/\/www.mamp.info\/'>MAMP<\/a>) web server<\/li>\n<li>When happy bring all Google Charts code over to local (MAMP) web server<\/li>\n<li>Make a file of *GETME files via Linux command something like  <i> find . -name &#8216;*GETME&#8217; 2&gt; \/dev\/null &gt; gclist.xxx <\/i><\/li>\n<li>Manually filter out the entries that are not &#8220;relevant latest&#8221; from this list using <i>vi<\/i> (for instance) adjusting each relevant latest to go up one (eg. _GETME goes to -GETME or -GETME goes to &#8211;GETME)<\/li>\n<li>Write a Korn shell script whose main lines of functionality look like <br \/>\n<code> #!\/bin\/ksh<br \/>\nfor f in `cat gclist.xxx`; do<br \/>\n  pf=`echo $f | sed '\/-GETME\/s\/\/\/g' | sed '\/_GETME\/s\/\/\/g'`<br \/>\n  nf=`echo $f | sed '\/-GETME\/s\/\/--GETME\/g' | sed '\/_GETME\/s\/\/-GETME\/g'`<br \/>\n  cat $f | sed '\/&lt;head&gt;\/s\/\/&lt;head&gt; &lt;script type=\"text\/javascript\" src=\"http:\/\/www.rjmprogramming.com.au\/gchartgen.js\"&gt;&lt;\/script&gt;\/g' &gt; $nf<br \/>\n  cat $pf | sed '\/&lt;head&gt;\/s\/\/&lt;head&gt; &lt;script type=\"text\/javascript\" src=\"http:\/\/www.rjmprogramming.com.au\/gchartgen.js\"&gt;&lt;\/script&gt;\/g' &gt; ${pf}_new<br \/>\n  cat ${pf}_new &gt; $pf<br \/>\n  rm ${pf}_new<br \/>\ndone<br \/>\nexit <\/code><\/li>\n<li>Run this Korn Shell on the local (MAMP) web server (Linux) environment (on Mac, is Terminal application&#8217;s Bash environment)<\/li>\n<li>Now for each Google Chart application &#8230;\n<ol>\n<li>test it works on local (MAMP) web server<\/li>\n<li>upload it to live rjmprogramming.com.au place<\/li>\n<li>retest on live rjmprogramming.com.au place<\/li>\n<\/ol>\n<\/li>\n<li>To get the table above constructed we, roughly &#8230;\n<ol>\n<li>updated this blog&#8217;s All Posts table &#8230; why? pourquoi? &#8230; the All Posts functionality has a lot in common to what we want, in a table, here &#8230; good to find linkages and commonalities with software<\/li>\n<li>went to the <a target=_blank title='All Posts' href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?page_id=366#iisel'>All Posts<\/a> &#8220;code download table&#8221; and sorted for latest changed source code up the top<\/li>\n<li>start up <a target=_blank title='Firefox' href='https:\/\/www.mozilla.org\/en-US\/firefox\/new\/'>Firefox<\/a> web browser&#8217;s <a target=_blank title='Firebug' href='http:\/\/getfirebug.com'>Firebug<\/a> add on &#8230; why?  pourquoi? &#8230; we want to get in under any Javascript client side (in this case, sorting) rearrangements (which View-&gt;Page Source is not good enough to show) .. so we can use a dynamic Javascript DOM tool like Firebug effectively (and strategically) here<\/li>\n<li>point at the table and use the Copy HTML option to paste the buffer over to a <a target=_blank title='TextWrangler download ... but any text editor will do' href='http:\/\/textwrangler.soft32.com\/free-download\/?lp=dsa&#038;tg=au&#038;kw=_inpage%3A08bce2d9a3206bf0d7143d86833197a8534fabc6&#038;mt=b&#038;ad=53302095198&#038;pl=&#038;ds=s&#038;gclid=Cj0KEQiAreilBRDzrNfb6uqX4fwBEiQAk-MRYwb4A8hk5Alg9wy_wmEM27Hi_g8oxJtoTjVhB4W73CsaAtiW8P8HAQ'>TextWrangler<\/a> (text editor) session and create a standalone piece of HTML (with only the top &#8220;today&#8221; parts of the buffer) on the local (MAMP) web server, where it is unit tested on a local web browser ( eg. http:\/\/localhost:8888\/sometest.html ) over and over again until it works, in preparation for copying this into the live rjmprogramming.com.au WordPress blog post (ie. what you are reading here)<\/li>\n<li>check that it still looks okay, or not, in the scenario of being in the blog post<\/li>\n<\/ol>\n<\/ul>\n<p style='color: black;'>Here is a link to Google Chart Tools &#8220;spiritual home&#8221; &#8230; <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/index' title='Google Chart Tools provide a perfect way to visualize data on your website. From simple line charts to complex hierarchical tree maps, the chart galley provides a large number of well-designed chart types. Populating your data is easy using the provided client- and server-side tools.'>via Google<\/a>.<\/p>\n<p>Hope you try out some of the newly tweaked Google Charts functionality.<\/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='#d11696' onclick='var dv=document.getElementById(\"d11696\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=google-charts\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d11696' 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='#d12331' onclick='var dv=document.getElementById(\"d12331\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=cross-platform\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d12331' 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='#d12361' onclick='var dv=document.getElementById(\"d12361\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=UIWebView\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d12361' 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='#d12525' onclick='var dv=document.getElementById(\"d12525\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=google\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d12525' 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='#d12571' onclick='var dv=document.getElementById(\"d12571\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=images\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d12571' 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='#d12649' onclick='var dv=document.getElementById(\"d12649\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=meta\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d12649' 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='#d12683' onclick='var dv=document.getElementById(\"d12683\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=end-game\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d12683' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The iOS app &#8220;quest&#8221; continuing on from yesterday&#8217;s &#8220;middle game&#8221; Xcode Swift Resizable UIWebview Primer Tutorial as shown below enters the &#8220;end game&#8221; today, on a MacBook Pro laptop, using the Xcode IDE (plus the ubiquitous white USB lead and &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/xcode-swift-ios-application-end-game-primer-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,20,33,37,40],"tags":[68,91,93,96,387,415,439,576,585,626,630,641,642,652,707,723,732,734,791,795,796,932,997,1059,1083,1194,1227,1252,1319,1329,1347,1349,1351,1356,1404,1473],"class_list":["post-12683","post","type-post","status-publish","format-standard","hentry","category-elearning","category-ios","category-software","category-tutorials","category-xcode","tag-airserver","tag-apple","tag-apple-store","tag-application","tag-end-game","tag-ffmpeg","tag-firefox","tag-html","tag-ide","tag-ios","tag-ipad","tag-itunes","tag-itunes-connect","tag-javascript","tag-linux","tag-mac","tag-mac-terminal","tag-macbook-pro","tag-middle-game","tag-mobile","tag-mobile-app","tag-php","tag-programming","tag-resize","tag-safari","tag-start-game","tag-swift","tag-terminal","tag-tutorial","tag-uiwebview","tag-usb","tag-user-agent","tag-user-experince","tag-ux","tag-web-browser","tag-xcode"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/12683"}],"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=12683"}],"version-history":[{"count":5,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/12683\/revisions"}],"predecessor-version":[{"id":48593,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/12683\/revisions\/48593"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=12683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=12683"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=12683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}