{"id":2704,"date":"2018-02-12T09:53:25","date_gmt":"2018-02-12T15:53:25","guid":{"rendered":"http:\/\/www.logikalsolutions.com\/wordpress\/?p=2704"},"modified":"2018-02-12T09:53:25","modified_gmt":"2018-02-12T15:53:25","slug":"and-still-we-learn-nothing","status":"publish","type":"post","link":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/","title":{"rendered":"And Still We Learn Nothing"},"content":{"rendered":"<p>People get upset with me when I say the bulk of OpenSource code is written by 12 year old boys, even if they happen to be north of 40 they simply never progressed past the age of 12 where it counts. This morning I&#8217;m digging into some rsyslog code and found this in datetime.c<\/p>\n<pre>\/* the following table saves us from computing an additional date to get\r\n * the ordinal day of the year - at least from 1967-2099\r\n * Note: non-2038+ compliant systems (Solaris) will generate compiler\r\n * warnings on the post 2038-rollover years.\r\n *\/\r\nstatic const int yearInSec_startYear = 1967;\r\n\/* for x in $(seq 1967 2099) ; do\r\n * printf %s', ' $(date --date=\"Dec 31 ${x} UTC 23:59:59\" +%s)\r\n * done |fold -w 70 -s *\/\r\nstatic const time_t yearInSecs[] = {\r\n -63158401, -31536001, -1, 31535999, 63071999, 94694399, 126230399,\r\n 157766399, 189302399, 220924799, 252460799, 283996799, 315532799,\r\n 347155199, 378691199, 410227199, 441763199, 473385599, 504921599,\r\n 536457599, 567993599, 599615999, 631151999, 662687999, 694223999,\r\n 725846399, 757382399, 788918399, 820454399, 852076799, 883612799,\r\n 915148799, 946684799, 978307199, 1009843199, 1041379199, 1072915199,\r\n 1104537599, 1136073599, 1167609599, 1199145599, 1230767999,\r\n 1262303999, 1293839999, 1325375999, 1356998399, 1388534399,\r\n 1420070399, 1451606399, 1483228799, 1514764799, 1546300799,\r\n 1577836799, 1609459199, 1640995199, 1672531199, 1704067199,\r\n 1735689599, 1767225599, 1798761599, 1830297599, 1861919999,\r\n 1893455999, 1924991999, 1956527999, 1988150399, 2019686399,\r\n 2051222399, 2082758399, 2114380799, 2145916799, 2177452799,\r\n 2208988799, 2240611199, 2272147199, 2303683199, 2335219199,\r\n 2366841599, 2398377599, 2429913599, 2461449599, 2493071999,\r\n 2524607999, 2556143999, 2587679999, 2619302399, 2650838399,\r\n 2682374399, 2713910399, 2745532799, 2777068799, 2808604799,\r\n 2840140799, 2871763199, 2903299199, 2934835199, 2966371199,\r\n 2997993599, 3029529599, 3061065599, 3092601599, 3124223999,\r\n 3155759999, 3187295999, 3218831999, 3250454399, 3281990399,\r\n 3313526399, 3345062399, 3376684799, 3408220799, 3439756799,\r\n 3471292799, 3502915199, 3534451199, 3565987199, 3597523199,\r\n 3629145599, 3660681599, 3692217599, 3723753599, 3755375999,\r\n 3786911999, 3818447999, 3849983999, 3881606399, 3913142399,\r\n 3944678399, 3976214399, 4007836799, 4039372799, 4070908799,\r\n 4102444799};<\/pre>\n<p>&nbsp;<\/p>\n<p>Now, you don&#8217;t have to be a C programmer to understand that comment block at the top. The phrase<\/p>\n<blockquote><p>at least from 1967-2099<\/p><\/blockquote>\n<p>Switched my mind from casual reading to Holy Shit!<\/p>\n<p>Even in a post y2k world we have people coding in an &#8220;I&#8217;ll be dead by then, who cares&#8221; way. Hopefully they weren&#8217;t planning on using this for birth dates. Won&#8217;t work for all of us born before 1967. Of course, a 12 year old boy wouldn&#8217;t think there is anyone that old left alive.<\/p>\n<p>Found a really cool, if however aged, discussion on Y2038 <a href=\"https:\/\/stackoverflow.com\/questions\/471248\/what-is-ultimately-a-time-t-typedef-to\">here<\/a>. Actually the cool part was a comment.<\/p>\n<blockquote><p><span class=\"comment-copy\">If the event to happen in 30 years is &#8220;expire this backup,&#8221; then you might be in trouble NOW, not in 2038. Add 30 years to today&#8217;s 32-bit time_t, and you get a date in the past. Your program looks for events to process, finds one that&#8217;s overdue (by 100 years!), and executes it. Oops, no more backup.<\/span><\/p><\/blockquote>\n<p>On my KDE Neon 64-bit desktop I found something interesting in \/usr\/include\/x86_64-linux-gnu\/bits\/typesizes.h<\/p>\n<pre>\/* X32 kernel interface is 64-bit. *\/\r\n#if defined __x86_64__ &amp;&amp; defined __ILP32__\r\n# define __SYSCALL_SLONG_TYPE __SQUAD_TYPE\r\n# define __SYSCALL_ULONG_TYPE __UQUAD_TYPE\r\n#else\r\n# define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE\r\n# define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE\r\n#endif\r\n\r\n#define __TIME_T_TYPE __SYSCALL_SLONG_TYPE\r\n\r\n<\/pre>\n<p>Of course this wasn&#8217;t all nicely grouped together in the same spot like I show it here. So, we know that rsyslog, or at least this yerInSecs stuff cannot correctly compile on a 32-bit platform due to <a href=\"http:\/\/www3.sympatico.ca\/n.rieck\/docs\/calendar_time_y2k_etc.html#Y2038\">Y2038<\/a>. This is probably the point of the Solaris comment, but, it really should have said a bit more than &#8220;compiler warnings.&#8221; Something like &#8220;don&#8217;t *&amp;^(*&amp;^(*&amp;ing work.&#8221;<\/p>\n<p>But, that&#8217;s my opinion and it&#8217;s allowed because it&#8217;s my blog.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>People get upset with me when I say the bulk of OpenSource code is written by 12 year old boys, even if they happen to be north of 40 they simply never progressed past the age of 12 where it counts. This morning I&#8217;m digging into some rsyslog code and found this in datetime.c \/* the following table saves us from computing an additional date to get * the ordinal day of the year &#8211; &hellip; <a title=\"And Still We Learn Nothing\" class=\"bnm-read-more\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/\"><span class=\"screen-reader-text\">And Still We Learn Nothing<\/span>Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4],"tags":[1578,1579,1580,661],"class_list":["post-2704","post","type-post","status-publish","format-standard","hentry","category-information-technology","category-thank-you-sir-may-i-have-another","tag-date-issues","tag-date-time","tag-rsyslog","tag-y2k","bnm-entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>And Still We Learn Nothing &#8211; Logikal Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"And Still We Learn Nothing &#8211; Logikal Blog\" \/>\n<meta property=\"og:description\" content=\"People get upset with me when I say the bulk of OpenSource code is written by 12 year old boys, even if they happen to be north of 40 they simply never progressed past the age of 12 where it counts. This morning I&#8217;m digging into some rsyslog code and found this in datetime.c \/* the following table saves us from computing an additional date to get * the ordinal day of the year - &hellip; And Still We Learn NothingRead more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/\" \/>\n<meta property=\"og:site_name\" content=\"Logikal Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-12T15:53:25+00:00\" \/>\n<meta name=\"author\" content=\"seasoned_geek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"seasoned_geek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/and-still-we-learn-nothing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/and-still-we-learn-nothing\\\/\"},\"author\":{\"name\":\"seasoned_geek\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"headline\":\"And Still We Learn Nothing\",\"datePublished\":\"2018-02-12T15:53:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/and-still-we-learn-nothing\\\/\"},\"wordCount\":327,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"keywords\":[\"date issues\",\"date-time\",\"rsyslog\",\"Y2K\"],\"articleSection\":[\"Information Technology\",\"Thank You Sir May I Have Another\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/and-still-we-learn-nothing\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/and-still-we-learn-nothing\\\/\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/and-still-we-learn-nothing\\\/\",\"name\":\"And Still We Learn Nothing &#8211; Logikal Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\"},\"datePublished\":\"2018-02-12T15:53:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/and-still-we-learn-nothing\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/and-still-we-learn-nothing\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/and-still-we-learn-nothing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"And Still We Learn Nothing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\",\"name\":\"Logikal Blog\",\"description\":\"For people with attention spans longer than a Tweet\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\",\"name\":\"seasoned_geek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"caption\":\"seasoned_geek\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\"},\"description\":\"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\\\/Qt touchscreen\\\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \\\"Zinc It!\\\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \\\"The Minimum You Need to Know to Be an OpenVMS Application Developer\\\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \\\"The Minimum You Need to Know\\\" book series was born. Three years later he wrote his first novel \\\"Infinite Exposure\\\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \\\"The Earth That Was\\\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.\",\"sameAs\":[\"https:\\\/\\\/theminimumyouneedtoknow.com\"],\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/author\\\/seasoned_geek\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"And Still We Learn Nothing &#8211; Logikal Blog","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:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/","og_locale":"en_US","og_type":"article","og_title":"And Still We Learn Nothing &#8211; Logikal Blog","og_description":"People get upset with me when I say the bulk of OpenSource code is written by 12 year old boys, even if they happen to be north of 40 they simply never progressed past the age of 12 where it counts. This morning I&#8217;m digging into some rsyslog code and found this in datetime.c \/* the following table saves us from computing an additional date to get * the ordinal day of the year - &hellip; And Still We Learn NothingRead more","og_url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/","og_site_name":"Logikal Blog","article_published_time":"2018-02-12T15:53:25+00:00","author":"seasoned_geek","twitter_card":"summary_large_image","twitter_misc":{"Written by":"seasoned_geek","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/#article","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/"},"author":{"name":"seasoned_geek","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"headline":"And Still We Learn Nothing","datePublished":"2018-02-12T15:53:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/"},"wordCount":327,"commentCount":1,"publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"keywords":["date issues","date-time","rsyslog","Y2K"],"articleSection":["Information Technology","Thank You Sir May I Have Another"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/","url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/","name":"And Still We Learn Nothing &#8211; Logikal Blog","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website"},"datePublished":"2018-02-12T15:53:25+00:00","breadcrumb":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/and-still-we-learn-nothing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.logikalsolutions.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"And Still We Learn Nothing"}]},{"@type":"WebSite","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website","url":"https:\/\/www.logikalsolutions.com\/wordpress\/","name":"Logikal Blog","description":"For people with attention spans longer than a Tweet","publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.logikalsolutions.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842","name":"seasoned_geek","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","url":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","caption":"seasoned_geek"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r"},"description":"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\/Qt touchscreen\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \"Zinc It!\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \"The Minimum You Need to Know to Be an OpenVMS Application Developer\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \"The Minimum You Need to Know\" book series was born. Three years later he wrote his first novel \"Infinite Exposure\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \"The Earth That Was\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.","sameAs":["https:\/\/theminimumyouneedtoknow.com"],"url":"https:\/\/www.logikalsolutions.com\/wordpress\/author\/seasoned_geek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/2704","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2704"}],"version-history":[{"count":0,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/2704\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2704"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2704"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2704"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}