{"id":1386,"date":"2023-01-10T08:04:50","date_gmt":"2023-01-10T08:04:50","guid":{"rendered":"https:\/\/marketaylor.synology.me\/?p=1386"},"modified":"2023-01-10T08:04:53","modified_gmt":"2023-01-10T08:04:53","slug":"do-we-still-need-application-developers","status":"publish","type":"post","link":"https:\/\/marketaylor.synology.me\/?p=1386","title":{"rendered":"Do we still need application developers?"},"content":{"rendered":"\n<p>I read <a href=\"https:\/\/www.theguardian.com\/commentisfree\/2023\/jan\/07\/chatgpt-bot-excel-ai-chatbot-tech\" target=\"_blank\" rel=\"noreferrer noopener\">an article<\/a> at the weekend about the <a href=\"https:\/\/chat.openai.com\/chat\" target=\"_blank\" rel=\"noreferrer noopener\">ChatGPT <\/a>system, which included a link about how <a href=\"https:\/\/twitter.com\/danshipper\/status\/1609931358213935105\" target=\"_blank\" rel=\"noreferrer noopener\">it might be useful for programmers<\/a>. A lot of the recent material on this service has concentrated on its use for generating plausible text &#8211; essays and the like. But I thought it might be interesting to take a quick look for myself at the coding capability. How much can be delegated; do we still need application developers?<\/p>\n\n\n\n<p>Spoiler: Yes we do. But it can be useful to look a bit deeper at the good and bad. <\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">First experiment<\/h3>\n\n\n\n<p>My first experiment was to ask it to generate a skeleton for a technology and API that I am thinking of working with in the future. What it displayed looked to be a better sample than I had been able to find with direct Google searches. Though as that Guardian piece had quoted, you had to have some idea about what you are doing first.<\/p>\n\n\n\n<p>A friend asked me how it compared to looking up something on StackOverflow. My response was that without the discussion threads underneath, it was even harder to tell whether the generated material was accurate (and, believe it or not, SO does not always give a good answer).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Writing an MQ application<\/h3>\n\n\n\n<p>So I then asked it about writing an MQ application. I didn&#8217;t spend very long on devising complex scenarios; just the kind of thing someone might be asked to do as a beginner. <\/p>\n\n\n\n<p>Here&#8217;s the transcript, followed by some thoughts on it:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">ChatGPT Transcript<\/h4>\n\n\n\n<p><strong>Me: How should I write a program to put a message to IBM MQ<\/strong><\/p>\n\n\n\n<p>GPT: To write a program to put a message to IBM MQ, you will need to do the following:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Install the IBM MQ Client libraries on the machine where your program will run.<\/li><li>Import the necessary libraries in your program. In Python, you can use <code>import pymqi<\/code> to import the IBM MQ libraries.<\/li><li>Create a connection to the IBM MQ Queue Manager. You will need to provide the hostname, port number, and queue manager name for this.<\/li><li>Create a queue object by calling <code>pymqi.Queue()<\/code>.<\/li><li>Put the message to the queue by calling the <code>put()<\/code> method on the queue object and passing the message as an argument.<\/li><\/ol>\n\n\n\n<p>Here is an example of how this can be done in Python:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import pymqi\n\nqueue_manager = \"QM1\"\nchannel = \"CHANNEL1\"\nhost = \"localhost\"\nport = \"1414\"\nqueue_name = \"Q1\"\n\n# Connect to the queue manager\nqmgr = pymqi.connect(queue_manager, channel, host, port)\n\n# Open the queue\nqueue = pymqi.Queue(qmgr, queue_name)\n\n# Put the message to the queue\nqueue.put(\"Hello, World!\")\n\n# Close the queue\nqueue.close()\n\n# Disconnect from the queue manager\nqmgr.disconnect()\n<\/pre>\n\n\n\n<p><strong>Me: and how about in C<\/strong><\/p>\n\n\n\n<p>GPT: To put a message to IBM MQ using C, you will need to do the following:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Install the IBM MQ Client libraries on the machine where your program will run.<\/li><li>Include the necessary header files in your program.<\/li><li>Create a connection to the IBM MQ Queue Manager. You will need to provide the hostname, port number, and queue manager name for this.<\/li><li>Create a queue object by calling <code>MQOPEN()<\/code>.<\/li><li>Put the message to the queue by calling the <code>MQPUT()<\/code> function and passing the message as an argument.<\/li><\/ol>\n\n\n\n<p>Here is an example of how this can be done in C:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#include &lt;stdio.h>\n#include &lt;stdlib.h>\n#include &lt;string.h>\n#include &lt;cmqc.h>\n\nint main(int argc, char **argv)\n{\n    MQHCONN conn;\n    MQOD objdesc = {MQOD_DEFAULT};\n    MQMD msgdesc = {MQMD_DEFAULT};\n    MQPMO putmsgopts = {MQPMO_DEFAULT};\n    MQLONG compcode;\n    MQLONG reason;\n    MQHOBJ obj;\n    char buffer[1024];\n\n    \/\/ Connect to the queue manager\n    MQCONN(\"QM1\", &amp;conn, &amp;compcode, &amp;reason);\n\n    \/\/ Open the queue\n    strcpy(objdesc.ObjectName, \"Q1\");\n    MQOPEN(conn, &amp;objdesc, MQOO_OUTPUT, &amp;obj, &amp;compcode, &amp;reason);\n\n    \/\/ Put the message to the queue\n    strcpy(buffer, \"Hello, World!\");\n    MQPUT(conn, obj, &amp;msgdesc, &amp;putmsgopts, strlen(buffer), buffer, &amp;compcode, &amp;reason);\n\n    \/\/ Close the queue\n    MQCLOSE(conn, &amp;obj, MQCO_NONE, &amp;compcode, &amp;reason);\n\n    \/\/ Disconnect from the queue manager\n    MQDISC(&amp;conn, &amp;compcode, &amp;reason);\n\n    return 0;\n}\n<\/pre>\n\n\n\n<p><strong>Me: can I use Node?<\/strong><\/p>\n\n\n\n<p>GPT: Yes, it is possible to use Node.js to put a message to IBM MQ. There are several libraries available for Node.js that provide an interface to the IBM MQ Client libraries, such as &#8220;mqlight&#8221; and &#8220;ibmmq&#8221;.<\/p>\n\n\n\n<p>One library you can use is the &#8220;ibmmq&#8221; which provides a set of classes that wrap around the IBM MQ C client libraries.<\/p>\n\n\n\n<p>Here&#8217;s an example of how you can use the &#8220;ibmmq&#8221; library to put a message to IBM MQ in Node.js:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">const ibmmq = require('ibmmq');\n\nconst mqQueueManager = \"QM1\";\nconst mqChannel = \"CHANNEL1\";\nconst mqHostname = \"localhost\";\nconst mqPort = 1414;\nconst mqQueue = \"Q1\";\nconst mqMessage = \"Hello, World!\";\n\n\/\/ Create a new MQI connection handle\nconst mqConn = ibmmq.open();\n\n\/\/ Connect to the queue manager\nmqConn.connect({\n    qMgr: mqQueueManager,\n    channel: mqChannel,\n    host: mqHostname,\n    port: mqPort\n});\n\n\/\/ Open the queue\nconst mqQueueDesc = {\n    ObjectName: mqQueue,\n    ObjectQMgrName: mqQueueManager\n};\n\nmqConn.openQueue(mqQueueDesc, (error, handle) => {\n    if (error) {\n        console.log(`Error: ${error}`);\n        process.exit(1);\n    }\n\n    \/\/ Put the message to the queue\n    mqConn.put(handle, {\n        buffer: mqMessage\n    }, (error) => {\n        if (error) {\n            console.log(`Error: ${error}`);\n            process.exit(1);\n        }\n        \n        \/\/ Close the queue\n        mqConn.closeQueue(handle, (error) => {\n            if (error) {\n                console.log(`Error: ${error}`);\n                process.exit(1);\n            }\n        });\n    });\n});\n\n\/\/ Disconnect from the queue manager\nmqConn.disconnect();\n<\/pre>\n\n\n\n<p>You can also use other libraries too like &#8220;mqlight&#8221; to interact with IBM MQ, you should check the documentation and samples of that library as well and decide based on your requirements.<\/p>\n\n\n\n<p><strong>Me: how do I compile the C program<\/strong><\/p>\n\n\n\n<p>GPT: To compile a C program that uses IBM MQ libraries, you will need to have the IBM MQ client libraries and header files installed on your machine. You will also need a C compiler such as GCC (GNU Compiler Collection) or CLang.<\/p>\n\n\n\n<p>Once you have the IBM MQ client libraries and header files installed, you can use the following command to compile your program:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">gcc -o &lt;executable_name> &lt;source_file.c> -I&lt;path_to_mq_header_files> -L&lt;path_to_mq_library> -lmqm\n<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><code>-o &lt;executable_name&gt;<\/code> specifies the name of the executable file that will be created.<\/li><li><code>&lt;source_file.c&gt;<\/code> is the name of the C source file that you want to compile.<\/li><li><code>-I&lt;path_to_mq_header_files&gt;<\/code> specifies the path to the IBM MQ header files.<\/li><li><code>-L&lt;path_to_mq_library&gt;<\/code> specifies the path to the IBM MQ libraries.<\/li><li><code>-lmqm<\/code> specifies the IBM MQ library that your program will link against.<\/li><\/ul>\n\n\n\n<p>For example, if the header files are located in <code>\/opt\/mqm\/inc<\/code> and the libraries are located in <code>\/opt\/mqm\/lib<\/code>, you can use the following command to compile your program:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">gcc -o myprogram myprogram.c -I\/opt\/mqm\/inc -L\/opt\/mqm\/lib -lmqm<\/pre>\n\n\n\n<p>This will create an executable named &#8220;myprogram&#8221; that you can run to put the messages to IBM MQ. Note: the above command is for Linux and Unix based system. For windows the process is different and it may vary depending on your installed runtime and system.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Some thoughts on the transcript:<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>My first thought was the interesting choice of Python as the default language to demonstrate a program. <\/li><li>It is maintaining context that I&#8217;m asking about MQ, when also asking explicitly for a C example. The C program is not obviously derived from the MQ product samples; the variable names are different for a start.<\/li><li>Using <code>strcpy<\/code> is a surprising (and possibly dangerous) choice.<\/li><li>The Node.js question does point at the &#8220;right&#8221; library, but the example code is broken in several ways. It would not work.<\/li><li>The C context still persists when asking about the compile steps. I liked that it first gave a generic answer for compiling any program but then gave an MQ-specific version using the default paths.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusions<\/h3>\n\n\n\n<p>This is only one of a number of code generating services. <a href=\"https:\/\/docs.github.com\/en\/copilot\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Copilot<\/a> is another well-known resource. It does look to be useful as a bootstrap capability, to get something that is close to runnable. But you really do need to know what you are looking at, and to be able to correct problems. <\/p>\n\n\n\n<p>Just like copy\/paste from StackOverflow you cannot just assume correctness. Development skills in interpretting fragments are still going to be essential.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I read an article at the weekend about the ChatGPT system, which included a link about how it might be useful for programmers. A lot of the recent material on this service has concentrated on its use for generating plausible text &#8211; essays and the like. But I thought it might be interesting to take &hellip; <a href=\"https:\/\/marketaylor.synology.me\/?p=1386\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Do we still need application developers?&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[124,35,20],"class_list":["post-1386","post","type-post","status-publish","format-standard","hentry","category-mq","tag-chatgpt","tag-ibmmq","tag-mqseries"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Do we still need application developers? - Mark Taylor&#039;s Blog<\/title>\n<meta name=\"description\" content=\"A transcript from experimenting with ChatGPT to generate an IBM MQ application - do we still need application developers?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/marketaylor.synology.me\/?p=1386\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Do we still need application developers? - Mark Taylor&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"A transcript from experimenting with ChatGPT to generate an IBM MQ application - do we still need application developers?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/marketaylor.synology.me\/?p=1386\" \/>\n<meta property=\"og:site_name\" content=\"Mark Taylor&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-10T08:04:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-10T08:04:53+00:00\" \/>\n<meta name=\"author\" content=\"Mark\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@marketaylor\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mark\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/?p=1386#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/?p=1386\"},\"author\":{\"name\":\"Mark\",\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/#\\\/schema\\\/person\\\/2d6f4113ff54187023e20c20186bbb3c\"},\"headline\":\"Do we still need application developers?\",\"datePublished\":\"2023-01-10T08:04:50+00:00\",\"dateModified\":\"2023-01-10T08:04:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/?p=1386\"},\"wordCount\":1015,\"commentCount\":3,\"keywords\":[\"chatgpt\",\"ibmmq\",\"mqseries\"],\"articleSection\":[\"IBM MQ\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/marketaylor.synology.me\\\/?p=1386#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/?p=1386\",\"url\":\"https:\\\/\\\/marketaylor.synology.me\\\/?p=1386\",\"name\":\"Do we still need application developers? - Mark Taylor&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/#website\"},\"datePublished\":\"2023-01-10T08:04:50+00:00\",\"dateModified\":\"2023-01-10T08:04:53+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/#\\\/schema\\\/person\\\/2d6f4113ff54187023e20c20186bbb3c\"},\"description\":\"A transcript from experimenting with ChatGPT to generate an IBM MQ application - do we still need application developers?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/?p=1386#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/marketaylor.synology.me\\\/?p=1386\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/?p=1386#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/marketaylor.synology.me\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Do we still need application developers?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/#website\",\"url\":\"https:\\\/\\\/marketaylor.synology.me\\\/\",\"name\":\"Mark Taylor&#039;s Blog\",\"description\":\"Messaging, Music and Moving Around\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/marketaylor.synology.me\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/marketaylor.synology.me\\\/#\\\/schema\\\/person\\\/2d6f4113ff54187023e20c20186bbb3c\",\"name\":\"Mark\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9a5ae091c43730194cba7cabb5d65c1dc3f48d05caaddec6ff2319a1ce66376f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9a5ae091c43730194cba7cabb5d65c1dc3f48d05caaddec6ff2319a1ce66376f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9a5ae091c43730194cba7cabb5d65c1dc3f48d05caaddec6ff2319a1ce66376f?s=96&d=mm&r=g\",\"caption\":\"Mark\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/marketaylor\"],\"url\":\"https:\\\/\\\/marketaylor.synology.me\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Do we still need application developers? - Mark Taylor&#039;s Blog","description":"A transcript from experimenting with ChatGPT to generate an IBM MQ application - do we still need application developers?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/marketaylor.synology.me\/?p=1386","og_locale":"en_GB","og_type":"article","og_title":"Do we still need application developers? - Mark Taylor&#039;s Blog","og_description":"A transcript from experimenting with ChatGPT to generate an IBM MQ application - do we still need application developers?","og_url":"https:\/\/marketaylor.synology.me\/?p=1386","og_site_name":"Mark Taylor&#039;s Blog","article_published_time":"2023-01-10T08:04:50+00:00","article_modified_time":"2023-01-10T08:04:53+00:00","author":"Mark","twitter_card":"summary_large_image","twitter_creator":"@marketaylor","twitter_misc":{"Written by":"Mark","Estimated reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/marketaylor.synology.me\/?p=1386#article","isPartOf":{"@id":"https:\/\/marketaylor.synology.me\/?p=1386"},"author":{"name":"Mark","@id":"https:\/\/marketaylor.synology.me\/#\/schema\/person\/2d6f4113ff54187023e20c20186bbb3c"},"headline":"Do we still need application developers?","datePublished":"2023-01-10T08:04:50+00:00","dateModified":"2023-01-10T08:04:53+00:00","mainEntityOfPage":{"@id":"https:\/\/marketaylor.synology.me\/?p=1386"},"wordCount":1015,"commentCount":3,"keywords":["chatgpt","ibmmq","mqseries"],"articleSection":["IBM MQ"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/marketaylor.synology.me\/?p=1386#respond"]}]},{"@type":"WebPage","@id":"https:\/\/marketaylor.synology.me\/?p=1386","url":"https:\/\/marketaylor.synology.me\/?p=1386","name":"Do we still need application developers? - Mark Taylor&#039;s Blog","isPartOf":{"@id":"https:\/\/marketaylor.synology.me\/#website"},"datePublished":"2023-01-10T08:04:50+00:00","dateModified":"2023-01-10T08:04:53+00:00","author":{"@id":"https:\/\/marketaylor.synology.me\/#\/schema\/person\/2d6f4113ff54187023e20c20186bbb3c"},"description":"A transcript from experimenting with ChatGPT to generate an IBM MQ application - do we still need application developers?","breadcrumb":{"@id":"https:\/\/marketaylor.synology.me\/?p=1386#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/marketaylor.synology.me\/?p=1386"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/marketaylor.synology.me\/?p=1386#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/marketaylor.synology.me\/"},{"@type":"ListItem","position":2,"name":"Do we still need application developers?"}]},{"@type":"WebSite","@id":"https:\/\/marketaylor.synology.me\/#website","url":"https:\/\/marketaylor.synology.me\/","name":"Mark Taylor&#039;s Blog","description":"Messaging, Music and Moving Around","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/marketaylor.synology.me\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/marketaylor.synology.me\/#\/schema\/person\/2d6f4113ff54187023e20c20186bbb3c","name":"Mark","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/9a5ae091c43730194cba7cabb5d65c1dc3f48d05caaddec6ff2319a1ce66376f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9a5ae091c43730194cba7cabb5d65c1dc3f48d05caaddec6ff2319a1ce66376f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9a5ae091c43730194cba7cabb5d65c1dc3f48d05caaddec6ff2319a1ce66376f?s=96&d=mm&r=g","caption":"Mark"},"sameAs":["https:\/\/x.com\/marketaylor"],"url":"https:\/\/marketaylor.synology.me\/?author=1"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/marketaylor.synology.me\/index.php?rest_route=\/wp\/v2\/posts\/1386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marketaylor.synology.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marketaylor.synology.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marketaylor.synology.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/marketaylor.synology.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1386"}],"version-history":[{"count":2,"href":"https:\/\/marketaylor.synology.me\/index.php?rest_route=\/wp\/v2\/posts\/1386\/revisions"}],"predecessor-version":[{"id":1388,"href":"https:\/\/marketaylor.synology.me\/index.php?rest_route=\/wp\/v2\/posts\/1386\/revisions\/1388"}],"wp:attachment":[{"href":"https:\/\/marketaylor.synology.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marketaylor.synology.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marketaylor.synology.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}