{"id":55388,"date":"2022-04-13T03:01:08","date_gmt":"2022-04-12T17:01:08","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=55388"},"modified":"2022-04-13T10:04:36","modified_gmt":"2022-04-13T00:04:36","slug":"xcode-command-line-project-gui-executable-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/xcode-command-line-project-gui-executable-tutorial\/","title":{"rendered":"Xcode Command Line Project GUI Executable Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/find_executable_and_go.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Xcode Command Line Project GUI Executable Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/swift_calls_python_tkinter.jpg\" title=\"Xcode Command Line Project GUI Executable Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Xcode Command Line Project GUI Executable Tutorial<\/p><\/div>\n<p>If offered the chance to go from an online (public domain) website (webpage), to ending up at an underlying computer GUI (<a target=_blank title='GUI information from Wikipedia, thanks' href='https:\/\/en.wikipedia.org\/wiki\/Graphical_user_interface'>graphical user interface<\/a>) desktop application interaction, who wouldn&#8217;t say &#8230;<\/p>\n<blockquote><p>\nYes, please\n<\/p><\/blockquote>\n<p>?  Well &#8230;<\/p>\n<ul>\n<li>&#8230;<\/li>\n<li>&#8230;<\/li>\n<li>&#8230;<\/li>\n<li>&#8230;<\/li>\n<li>&#8230;<\/li>\n<li>&#8230;<\/li>\n<li>&#8230;<\/li>\n<li>&#8230;<\/li>\n<li>&#8230;<\/li>\n<li>&#8230;<\/li>\n<li>&#8230;<\/li>\n<\/ul>\n<p> &#8230; you thought we were being rhetorical?!   Okay, &#8220;maybe you had to be there&#8221;, but, as a programmer, we liked this (macOS) project, with our &#8220;spreading wide the net&#8221; way of thinking, it involved a lot of (<b>software language<\/b>) components to it, those being &#8230;<\/p>\n<ul>\n<li>&#8220;surfing the net&#8221; <b>PHP<\/b> public domain <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/find_executable_and_go.php\" title=\"Click picture\">webpage form<\/a> &#8230; navigating to &#8230;<\/li>\n<li>&#8220;surfing the net&#8221; to a macOS <a target=_blank title='MAMP' href='http:\/\/www.mamp.info'>MAMP<\/a> local Apache\/PHP\/MySql web server PHP webpage (&#8220;Intranet style&#8221;) &#8230; executing a &#8230;<\/li>\n<li><b>Swift<\/b> macOS command line executable (compiled in macOS <a target=_blank title=Xcode href='https:\/\/developer.apple.com\/xcode\/'>Xcode<\/a> IDE) &#8230; which now calls a &#8230;<\/li>\n<li><b>Python<\/b> script &#8230; using a &#8230;<\/li>\n<li><b>TkInter<\/b> GUI module (you can read the background to, with, <a target=_blank title='Python TkInter CGI Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/python-tkinter-cgi-tutorial\/'>Python TkInter CGI Tutorial<\/a>) &#8230; whose GUI is &#8220;made front and center&#8221; via &#8230;<\/li>\n<li>Swift executable and\/or macOS <a target=_blank title='MAMP' href='http:\/\/www.mamp.info'>MAMP<\/a> local Apache\/PHP\/MySql web server <i>&#8220;command line&#8221; mode of use<\/i> or <i>&#8220;surfing the net&#8221; via &#8220;open&#8221; mode of use<\/i> PHP call of <b>AppleScript<\/b> (thanks to <a target=_blank title='Useful link' href='https:\/\/stackoverflow.com\/questions\/3375227\/how-to-give-tkinter-file-dialog-focus'>this useful link<\/a>) &#8230;<br \/>\n<code><br \/>\n\/usr\/bin\/osascript -e 'tell app \"Finder\" to set frontmost of process \"Python\" to true'<br \/>\n<\/code><br \/>\n &#8230; leaving it so that &#8230;<\/li>\n<li>the GUI aspects of Python TkInter are left to present to the user a multi-selectable File Browsing dialog box whose selections can be opened via the default applications of interest (or <a target=_blank title='File associations information from Wikipedia, thanks' href='https:\/\/en.wikipedia.org\/wiki\/File_association'>&#8220;associations&#8221;<\/a>) to the file extensions selected<\/li>\n<\/ul>\n<p> &#8230; involving, onto yesterday&#8217;s <a title='Xcode Command Line Project Executable Tutorial' href='#xclpet'>Xcode Command Line Project Executable Tutorial<\/a>&#8216;s progress &#8230;<\/p>\n<ul>\n<li><font color=purple><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/main.swift--GETME\" title=\"main.swift\">minimal change<\/a><\/font> to <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/main.swift--GETME\" title=\"main.swift\">main.swift<\/a> Swift (thanks to <a target=_blank title='Useful link' href='https:\/\/stackoverflow.com\/questions\/27046728\/how-do-you-use-posix-spawn-to-replace-the-deprecated-system-to-launch-opendiff'>this useful link<\/a>) code, which you could use as the Swift code basis in an Xcode Command Line project&#8217;s &#8220;main.swift&#8221; file &#8230;<br \/>\n<code><br \/>\n\/\/<br \/>\n\/\/  main.swift<br \/>\n\/\/  Swift Command Line<br \/>\n\/\/<br \/>\n\/\/  Created by User on 10\/4\/22.<br \/>\n\/\/  Thanks to ...<br \/>\n\/\/  https:\/\/stackoverflow.com\/questions\/27046728\/how-do-you-use-posix-spawn-to-replace-the-deprecated-system-to-launch-opendiff<br \/>\n<br \/>\nimport Foundation<br \/>\n<br \/>\n<font color=purple>func system(_ command: String) {<br \/>\n    var args = command.components(separatedBy: \" \")<br \/>\n    let path = args.first<br \/>\n    args.remove(at: 0)<br \/>\n<br \/>\n    do {<br \/>\n        let task = try Process()<br \/>\n        task.launchPath = path<br \/>\n        task.arguments = args<br \/>\n        task.launch()<br \/>\n        task.waitUntilExit()<br \/>\n    }<br \/>\n    catch {<br \/>\n        \/\/ Couldn't create audio player object, log the error<br \/>\n    }<br \/>\n}<br \/>\n<br \/>\nfunc systemtwo(_ commandtwo: String) {<br \/>\n    var argstwo = commandtwo.components(separatedBy: \" \")<br \/>\n    let pathtwo = argstwo.first<br \/>\n    argstwo.remove(at: 0)<br \/>\n<br \/>\n    do {<br \/>\n        let tasktwo = try Process()<br \/>\n        tasktwo.launchPath = pathtwo<br \/>\n        tasktwo.arguments = argstwo<br \/>\n        tasktwo.launch()<br \/>\n        \/\/ tasktwo.waitUntilExit()<br \/>\n    }<br \/>\n    catch {<br \/>\n        \/\/ Couldn't create audio player object, log the error<br \/>\n    }<br \/>\n}<\/font><br \/>\n<br \/>\nvar msg = \"\"<br \/>\n<br \/>\n<font color=purple>var phpidea = \"\/usr\/bin\/php \/Applications\/MAMP\/htdocs\/find_executable_and_go.php WhYfOrArTtHoU\"<\/font><br \/>\nvar i = 2<br \/>\n<br \/>\nif CommandLine.arguments.count &lt;= 1<br \/>\n{<br \/>\n    print(\"Hello, World!\")<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\n    msg = CommandLine.arguments[1]<br \/>\n    while i &lt; CommandLine.arguments.count<br \/>\n    {<br \/>\n        msg += \" \" + CommandLine.arguments[i]<br \/>\n        i += 1<br \/>\n    }<br \/>\n    print(msg)<br \/>\n}<br \/>\n<br \/>\n<font color=purple>systemtwo(phpidea)<br \/>\nsystem(\"\/usr\/bin\/python \/Applications\/MAMP\/htdocs\/tkinter_filebrowser_test.py\")<\/font><br \/>\n<\/code><\/li>\n<li><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/find_executable_and_go.php-GETME\" title=\"find_executable_and_go.php\">a changed<\/a> <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/find_executable_and_go.php-GETME\" title=\"find_executable_and_go.php\">find_executable_and_go.php<\/a> PHP code <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/find_executable_and_go.php\">web application<\/a> (<a title='To iframe' href='#myiffe'>linked here<\/a>) which we, again, want you to download to (the Document Root of) a macOS <a target=_blank title='MAMP' href='http:\/\/www.mamp.info'>MAMP<\/a> local Apache\/PHP\/MySql web server environment, &#8220;Intranet style&#8221;, as mentioned in macOS Swift code above &#8230;<br \/>\n<code><br \/>\nsystem(\"\/usr\/bin\/python <font color=blue>\/Applications\/MAMP\/htdocs\/<\/font>tkinter_filebrowser_test.py\")<br \/>\n<\/code>\n<\/li>\n<li><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/Python\/Tkinter\/tkinter_filebrowser_test.py-GETME\" title=\"tkinter_filebrowser_test.py\">a changed<\/a> <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Python\/Tkinter\/tkinter_filebrowser_test.py-GETME\" title=\"tkinter_filebrowser_test.py\">tkinter_filebrowser_test.py<\/a> Python TkInter (GUI) code, which we&#8217;d also want you to download to (the Document Root of) a macOS <a target=_blank title='MAMP' href='http:\/\/www.mamp.info'>MAMP<\/a> local Apache\/PHP\/MySql web server environment<\/li>\n<\/ul>\n<p> &#8230; for you to try for yourself.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/xcode-command-line-project-gui-executable-tutorial\/'>Xcode Command Line Project GUI Executable Tutorial<\/a>.<\/p-->\n<hr>\n<p id='xclpet'>Previous relevant <a target=_blank title='Xcode Command Line Project Executable Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/xcode-command-line-project-executable-tutorial\/'>Xcode Command Line Project Executable 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\/find_executable_and_go.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Xcode Command Line Project Executable Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/find_executable_and_go.jpg\" title=\"Xcode Command Line Project Executable Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Xcode Command Line Project Executable Tutorial<\/p><\/div>\n<p>Yesterday&#8217;s <a title='Xcode Swift Command Line Project Primer Tutorial' href='#xsclppt'>Xcode Swift Command Line Project Primer Tutorial<\/a> combines with our recent macOS <a target=_blank title='Linux find command information from computerhope' href='http:\/\/www.computerhope.com\/unix\/ufind.htm'>find<\/a> related work, so that, today, we&#8217;ve written a small PHP &#8220;helper&#8221; web application, which &#8220;fishes out&#8221; that Xcode macOS executable, and executes it for you, that we want you to download to (the Document Root of) a macOS <a target=_blank title='MAMP' href='http:\/\/www.mamp.info'>MAMP<\/a> local Apache\/PHP\/MySql web server environment, &#8220;Intranet style&#8221;, as has also been a theme of our work recently.<\/p>\n<p>What are the modes of use of this PHP &#8220;helper&#8221; web application?  Well, any of &#8230;<\/p>\n<ul>\n<li>surfing the web &#8230; via web browser URL like  &#8230;<br \/>\n<code>HTTP:\/\/localhost:8888\/find_executable_and_go.php?inproject=Swift%20Command%20Line&amp;argvs=one+two+three<\/code><br \/>\n &#8230; or fill out a form at <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/find_executable_and_go.php_GETME\" title=\"find_executable_and_go.php\">find_executable_and_go.php<\/a>&#8216;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/find_executable_and_go.php\" title=\"Click picture\">live run<\/a> link\n<\/li>\n<li>curl &#8230; via macOS command like  &#8230;<br \/>\n<code>curl \"HTTP:\/\/localhost:8888\/find_executable_and_go.php?inproject=Swift%20Command%20Line&amp;argvs=one+two+three\"<\/code>\n<\/li>\n<li>PHP on command line &#8230; via macOS command like  &#8230;<br \/>\n<code><br \/>\nphp find_executable_and_go.php one two three<br \/>\n<\/code><br \/>\n &#8230; and fill out the Xcode project name\n<\/li>\n<\/ul>\n<p> &#8230; or, after your downloading to macOS (where you&#8217;ve installed, and are using, <a target=_blank title=Xcode href='https:\/\/developer.apple.com\/xcode\/'>Xcode<\/a>), the ideas below could work &#8230;<\/p>\n<p><iframe id=myiffe src='http:\/\/www.rjmprogramming.com.au\/PHP\/find_executable_and_go.php' style='width:100%;height:350px;'><\/iframe><\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/xcode-command-line-project-executable-tutorial\/'>Xcode Command Line Project Executable Tutorial<\/a>.<\/p-->\n<hr>\n<p id='xsclppt'>Previous relevant <a target=_blank title='Xcode Swift Command Line Project Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/xcode-swift-command-line-project-primer-tutorial\/'>Xcode Swift Command Line Project 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\/xcode_swift_command_llne_project.gif\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Xcode Swift Command Line Project Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/xcode_swift_command_llne_project.gif\" title=\"Xcode Swift Command Line Project Primer Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Xcode Swift Command Line Project Primer Tutorial<\/p><\/div>\n<p>The macOS Xcode IDE (<a target=_blank title='Integrated Development Environment information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Integrated_development_environment'>Integrated Development Language<\/a>)  is a great place to create many and various types of executable software.  The language Swift is Apple&#8217;s language of choice, within Xcode, for &#8230;<\/p>\n<ul>\n<li>iOS mobile apps &#8230; and today we build a simple &#8230;<\/li>\n<li>macOS command line app<\/li>\n<\/ul>\n<p> &#8230; which we allow to process your command line arguments.  Then &#8220;we fish out&#8221; where Xcode has stored the resultant Swift command line executable, and execute that &#8220;binary&#8221;.<\/p>\n<p>All told, we &#8230;<\/p>\n<ol>\n<li>open Xcode via clicking its macOS icon<\/li>\n<li>click &#8220;Create a new Xcode project&#8221; button<\/li>\n<li>choose Application -&gt; &#8220;Command Line Tool&#8221; then click &#8220;Next&#8221; button<\/li>\n<li>Project Name: &#8220;Swift Command Line&#8221;<\/li>\n<li>Language: &#8220;Swift&#8221; then click &#8220;Next&#8221; button<\/li>\n<li>in Project Navigator menu click &#8220;main&#8221; to see the default Swift code<\/li>\n<li>we end up making our code be like <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/main.swift_GETME\" title=\"main.swift\">main.swift<\/a> &#8230;<br \/>\n<code><br \/>\n\/\/<br \/>\n\/\/  main.swift<br \/>\n\/\/  Swift Command Line<br \/>\n\/\/<br \/>\n\/\/  Created by User on 10\/4\/22.<br \/>\n\/\/<br \/>\n<br \/>\nimport Foundation<br \/>\n<br \/>\nvar msg = \"\"<br \/>\nvar i = 2<br \/>\n<br \/>\nif CommandLine.arguments.count <= 1\n{\n    print(\"Hello, World!\")\n}\nelse\n{\n    msg = CommandLine.arguments[1]\n    while i < CommandLine.arguments.count\n    {\n        msg += \" \" + CommandLine.arguments[i]\n        i += 1\n    }\n    print(msg)\n}\n<\/code><br \/>\n ... via good help from <a target=_blank title='good help' href='https:\/\/stackoverflow.com\/posts\/24110744\/edit'>this link<\/a>, thanks\n<\/li>\n<li>to execute in Xcode's Console we choose the menu option Product -&gt; \"Run\" and see the results down the bottom to left in Xcode's Console with \"Hello, World!\" output because there are no command line arguments as the default condition<\/li>\n<li>to execute within Xcode with command line arguments ...\n<ul>\n<li>we choose the menu option Swift Command Line -&gt; \"Edit Schema...\"<\/li>\n<li>we choose the menu option Info -&gt; Build Configuration -&gt; \"Release\"<\/li>\n<li>we click \"Arguments\" tab<\/li>\n<li>we click \"Arguments Passed on Launch\" tab's \"+\" button ... and ...<\/li>\n<li>type in \"one two three four five\" as our user specific command line arguments<\/li>\n<li>click \"Close\" button<\/li>\n<\/ul>\n<\/li>\n<li>we choose the menu option Product -&gt; \"Run\" and see the results down the bottom to right in Xcode's Console with \"one two three four five\"<\/li>\n<\/ol>\n<p> ... and then (with thanks to advice of <a target=_blank title='good advice' href='https:\/\/stackoverflow.com\/questions\/28201337\/xcode-command-line-app-where-is-the-executable-code'>this link<\/a>) we ...<\/p>\n<ol>\n<li>open Terminal via clicking its macOS icon<\/li>\n<li>type in the command (where, for us, <i>\/Users\/user<\/i> can equate to <i>$HOME<\/i> if you'd prefer) ...<br \/>\n<code><br \/>\nfind \/Users\/user\/Library\/ -name \"Swift Command Line\" -exec file {} \\; 2> \/dev\/null<br \/>\n<\/code><br \/>\n ... leading us to conclude that ...\n<\/li>\n<li>typing in ...<br \/>\n<code><br \/>\n\"\/Users\/user\/Library\/\/Developer\/Xcode\/DerivedData\/Swift_Command_Line-ayzqxnplmfgugrclirdeaxwmiryj\/Build\/Products\/Release\/Swift Command Line\"<br \/>\n<\/code><br \/>\n ... would result in the output \"Hello, World!\" (as it did) ... and ...<\/li>\n<li>typing in ...<br \/>\n<code><br \/>\n\"\/Users\/user\/Library\/\/Developer\/Xcode\/DerivedData\/Swift_Command_Line-ayzqxnplmfgugrclirdeaxwmiryj\/Build\/Products\/Release\/Swift Command Line\" one three five<br \/>\n<\/code><br \/>\n ... would result in the output \"one three five\" (as it did)<\/li>\n<\/ol>\n<p>We hope this is of interest to beginners in Swift and Xcode IDE software development in macOS operating system.<\/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='#d55355' onclick='var dv=document.getElementById(\"d55355\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/swift\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d55355' 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='#d55360' onclick='var dv=document.getElementById(\"d55360\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/php\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d55360' 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='#d55388' onclick='var dv=document.getElementById(\"d55388\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/gui\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d55388' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>If offered the chance to go from an online (public domain) website (webpage), to ending up at an underlying computer GUI (graphical user interface) desktop application interaction, who wouldn&#8217;t say &#8230; Yes, please ? Well &#8230; &#8230; &#8230; &#8230; &#8230; &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/xcode-command-line-project-gui-executable-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,14,17,29,37],"tags":[85,91,94,96,3531,170,233,234,3953,319,1914,3574,1750,3929,418,420,421,435,549,3572,585,624,2178,744,885,3954,932,996,997,999,1012,1227,1286,1319,1473],"class_list":["post-55388","post","type-post","status-publish","format-standard","hentry","category-elearning","category-event-driven-programming","category-gui","category-operating-system","category-tutorials","tag-apache","tag-apple","tag-applescript","tag-application","tag-browsing","tag-build","tag-command","tag-command-line","tag-command-line-application","tag-desktop","tag-dialog","tag-dialog-box","tag-document-root","tag-executable","tag-file","tag-file-association","tag-file-browsing","tag-find","tag-gui","tag-helper","tag-ide","tag-intranet","tag-macos","tag-mamp","tag-operating-system-2","tag-osascript","tag-php","tag-program","tag-programming","tag-project","tag-python","tag-swift","tag-tkinter","tag-tutorial","tag-xcode"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/55388"}],"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=55388"}],"version-history":[{"count":30,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/55388\/revisions"}],"predecessor-version":[{"id":55418,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/55388\/revisions\/55418"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=55388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=55388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=55388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}