{"id":1148,"date":"2012-09-05T21:10:22","date_gmt":"2012-09-05T09:10:22","guid":{"rendered":"https:\/\/www.deltics.co.nz\/blog\/?p=1148"},"modified":"2012-09-05T21:10:22","modified_gmt":"2012-09-05T09:10:22","slug":"lazarus-1-0-first-ish-impressions","status":"publish","type":"post","link":"https:\/\/www.deltics.co.nz\/blog\/posts\/1148\/","title":{"rendered":"Lazarus 1.0 : First[-ish] Impressions"},"content":{"rendered":"<span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">[Estimated Reading Time: <\/span> <span class=\"rt-time\">6<\/span> <span class=\"rt-label rt-postfix\">minutes]<\/span><\/span><p>It has been a looong time since I last looked at Lazarus. So long in fact that I don&#8217;t remember exactly when it was. Whenever it was I don&#8217;t think I ever actually managed to even get it up and running at that point. Certainly I don&#8217;t remember much about it if I ever did. But with the timely <a href=\"http:\/\/www.lazarus.freepascal.org\/index.php\/topic,18019.html\">Lazarus 1.0 announcement<\/a> last week, I have gone back to have another look.<\/p>\n<p>And this is what I found.<br \/>\n<!--more--><\/p>\n<p>First up, installation was not only smooth and painless but also extremely swift.  I didn&#8217;t put a clock on it but it was certainly only a few moments.  Installation on OS X was slightly more involved as it required first installing FPC and FPC sources before Lazarus could actually start up, but the Win64 build seemed entirely self contained.<\/p>\n<p>Once installed I fired it up:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-19.42.20-.png?ssl=1\"><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-1149 aligncenter\" title=\"Lazarus 1.0 - &quot;Classic&quot; IDE\" src=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-19.42.20-.png?resize=300%2C268&#038;ssl=1\" alt=\"\" width=\"300\" height=\"268\" srcset=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-19.42.20-.png?resize=300%2C268&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-19.42.20-.png?resize=1024%2C916&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-19.42.20-.png?resize=150%2C134&amp;ssl=1 150w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-19.42.20-.png?w=1248&amp;ssl=1 1248w\" sizes=\"(max-width: 300px) 100vw, 300px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>First of all, it was a bit of a culture shock finding myself back in a Delphi 7 era undocked IDE especially as, although still quite familiar, the Lazarus IDE has adopted some of the more modern IDE changes, such as in the Options dialog.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-21.40.32-1.png?ssl=1\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-1185\" title=\"Display Options - Syntax Highlighting and More!\" src=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-21.40.32-1.png?resize=300%2C206&#038;ssl=1\" alt=\"\" width=\"300\" height=\"206\" srcset=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-21.40.32-1.png?resize=300%2C206&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-21.40.32-1.png?resize=150%2C103&amp;ssl=1 150w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-04-at-21.40.32-1.png?w=919&amp;ssl=1 919w\" sizes=\"(max-width: 300px) 100vw, 300px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>Now, I&#8217;ll be the first to admit that &#8211; back in the day &#8211; I was a big fan of the undocked layout, primarily as I found it far more productive in a multi-monitor configuration. These days though, I now have such a huge primary display (27&#8243; iMac) that at home I have gratefully reclaimed the desk space previously occupied by the second monitor. In the office &#8211; with a much larger desk &#8211; I still have a second monitor alongside my iMac there, but these days it is used for little else other than as a Spotify and Skype console. \ud83d\ude42<\/p>\n<p>I should mention at this point that there is <a href=\"http:\/\/www.lazarus.freepascal.org\/index.php?topic=17959.0\" target=\"_blank\">a project to create support for the &#8220;Docked IDE&#8221; configuration<\/a>, but it is not included as part of Lazarus 1.0 but is a separate download, currently still in beta. &nbsp;This installs as a &#8220;package&#8221;, but packages in Lazarus appear to be a slightly different animal that that which we&#8217;re used to in Delphi as installation requires a rebuild of the Lazarus IDE to incorporate it.<\/p>\n<p>So I tentatively went through this process, but was pleased to find it was a simple matter of click-click-done:&nbsp;I opened the Lazarus package project file and when I then tried to install it was informed that the IDE needed to be recompiled and did I want to go ahead ?<\/p>\n<p>I confirmed that I did, and a few seconds later it was finished and Lazarus automatically restarted. &nbsp;After the rebuild, I had a new <strong>KZDesktop -&gt; Start<\/strong> option in the <strong>Tools<\/strong> menu. &nbsp;Selecting this cautioned me that the package was a beta &#8211; I had been warned! &#8211; and that the docked mode was now enabled and I just had to restart Lazarus for it to take effect.<\/p>\n<p>There is a <strong>Restart<\/strong> option on the Lazarus <strong>File<\/strong> menu, so I guess restarting Lazarus is something that crops up quite often. &nbsp;But no worries, restarting takes barely a moment (literally a couple of seconds). &nbsp;And on this occasion I then found myself presented with the &#8220;Docked IDE&#8221;.<\/p>\n<p>Sort of.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-18.46.46-.png?ssl=1\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-1181\" title=\"&quot;Docked IDE&quot; - Sort Of...\" src=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-18.46.46-.png?resize=500%2C328&#038;ssl=1\" alt=\"\" width=\"500\" height=\"328\" srcset=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-18.46.46-.png?resize=1024%2C673&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-18.46.46-.png?resize=300%2C197&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-18.46.46-.png?resize=150%2C98&amp;ssl=1 150w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-18.46.46-.png?w=1447&amp;ssl=1 1447w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-18.46.46-.png?w=1280&amp;ssl=1 1280w\" sizes=\"(max-width: 500px) 100vw, 500px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>As you can see, the Form Designer for some reason failed to embed even though the scaffolding for it is clearly present. &nbsp;This may be something to do with the fact that I am using the OS X build of Lazarus (for this exercise at least &#8211; I have also looked even more briefly at the Win64 build and it is basically identical as far as I can tell&#8230; and all without a <em>SmokingChimp<\/em> in sight). &nbsp;I believe &#8211; from little I have gathered about Lazarus etc so far &#8211; that there is some issue with re-parenting windows in the LCL.<\/p>\n<p>There is also only very limited flexibility in terms of which IDE windows can be placed where (there is no drag\/drop docking that I could find, for example, only a couple of settings in an options dialog).<\/p>\n<p>Hey ho &#8211; this is flagged as a &#8220;beta&#8221; and isn&#8217;t part of the Lazarus &#8220;core&#8221;, at least not yet. &nbsp;And frankly, the &#8220;Classic IDE&#8221; won&#8217;t take much to get used to again, I&#8217;m sure. &nbsp;So, for now I simply removed the KZ Desktop package to get back to &#8220;vanilla&#8221; Lazarus.<\/p>\n<p>At this point I did have something of a problem.<\/p>\n<p>After restoring the &#8220;Classic&#8221; IDE, most of the Lazarus windows were positioned so far to the left and top of my display that I couldn&#8217;t get to the caption bars &#8211; without that there is no way (that I know of) to drag them back into view, and keyboard controls for this seemingly aren&#8217;t part of OS X. Consequently, this exercise has also taught me something about OS X and <a href=\"http:\/\/www.macupdate.com\/app\/mac\/26411\/mercurymover\" target=\"_blank\">led me to Mercury Mover<\/a>. And actually it&#8217;s such a neat bit of kit that I&#8217;m quite grateful. \ud83d\ude42<\/p>\n<p>But I digress &#8211; back to Lazarus.<\/p>\n<p>Obviously in the brief time spent with Lazarus so far I have only barely scratched the surface of it, but already I am finding things that have bugged me as not having been addressed in the Delphi IDE for a long, long time.<\/p>\n<h3>Display Options<\/h3>\n<ul>\n<li>The background colour for ALL elements can be set in one place. No need to change the background colour for each and every separate syntax element which you wish to have a common &#8211; the default &#8211; background colour<\/li>\n<li>I haven&#8217;t done an exhaustive comparison, but there seem to be far more syntax elements over which individual control can be exercised, not just text elements but almost every aspect of the code editor.<\/li>\n<li>As well as font selection, you also get some additional fine control over line and character spacing.<\/li>\n<\/ul>\n<p><em>Display Options<\/em> may appear superficial and cosmetic, but when you spend 8hrs+ of a working day in an environment, making it comfortable &#8211; and personal &#8211; can be important. It is to me.<\/p>\n<p>Your mileage may vary. \ud83d\ude42<\/p>\n<h3>Code Tools<\/h3>\n<p>Overall Lazarus appears to have an embarrassment of riches in this area compared to the Delphi IDE.<\/p>\n<p>Frankly, the scope of the controls seemingly available is a little bewildering, but there was one which immediately leaped out at me as of incredible utility (to me) in the area of <strong>Class Completion<\/strong>.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.27.00-.png?ssl=1\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-1182\" title=\"Class Completion Options...  Awesome!\" src=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.27.00-.png?resize=300%2C207&#038;ssl=1\" alt=\"\" width=\"300\" height=\"207\" srcset=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.27.00-.png?resize=300%2C207&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.27.00-.png?resize=150%2C103&amp;ssl=1 150w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.27.00-.png?w=823&amp;ssl=1 823w\" sizes=\"(max-width: 300px) 100vw, 300px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>Yes, Lazarus allows <strong>you<\/strong> to choose the prefixes for read\/write property accessor methods, for field names, for the &#8220;stored&#8221; function and even the name of the parameter in generated property write accessors! \ud83d\ude42<\/p>\n<p>Other things help you while moving around in and editing your code too, like matched <strong>begin<\/strong>\/<strong>end<\/strong> highlighting as well as parenthesis matching.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.55.24-.png?ssl=1\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-1187\" title=\"begin\/end matching\" src=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.55.24-.png?resize=601%2C303&#038;ssl=1\" alt=\"\" width=\"601\" height=\"303\" srcset=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.55.24-.png?w=601&amp;ssl=1 601w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.55.24-.png?resize=300%2C151&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.55.24-.png?resize=150%2C75&amp;ssl=1 150w\" sizes=\"(max-width: 601px) 100vw, 601px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>This sort of attention to detail also shows up in the messages When you compile your project. Warnings are visually more distinct (to my eye) than in Delphi and only a single-click is required to take you to the relevant and highlighted line of code.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.59.57-.png?ssl=1\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-1188\" title=\"Warning!  Warning!\" src=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.59.57-.png?resize=535%2C199&#038;ssl=1\" alt=\"\" width=\"535\" height=\"199\" srcset=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.59.57-.png?w=535&amp;ssl=1 535w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.59.57-.png?resize=300%2C111&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-19.59.57-.png?resize=150%2C55&amp;ssl=1 150w\" sizes=\"(max-width: 535px) 100vw, 535px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>Speaking of the message view, here&#8217;s something else that this innocuous little window revealed:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-20.06.12-.png?ssl=1\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-1189\" title=\"Project Options Changed?  No problem.\" src=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-20.06.12-.png?resize=472%2C193&#038;ssl=1\" alt=\"\" width=\"472\" height=\"193\" srcset=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-20.06.12-.png?w=472&amp;ssl=1 472w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-20.06.12-.png?resize=300%2C122&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-05-at-20.06.12-.png?resize=150%2C61&amp;ssl=1 150w\" sizes=\"(max-width: 472px) 100vw, 472px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>What needs to be mentioned here is that I didn&#8217;t have to explicitly perform a full build.  I just hit &#8220;Run&#8221; after making a change in the project options: the IDE recognised the impact this might have on my project and made sure that a full build was performed rather than the usual compilation.<\/p>\n<h3>Barely Scratching The Surface and Looking Forward<\/h3>\n<p>I quickly came to the conclusion that I couldn&#8217;t do Lazarus justice in a single article, so I have deliberately limited this to my First Impressions &#8211; the things I noticed straight away without digging too deeply.<\/p>\n<p>But I can already see that there is a lot more to Lazarus.  A very great deal more.<\/p>\n<p>Enough that I am determined now to make porting my existing Delphi Pascal libraries to FPC and Lazarus just as soon as possible.  That means knocking them into shape for availability in Delphi first.<\/p>\n<p>But just as soon as that is done, I am actively looking forward to getting to grips with Lazarus in earnest.<\/p>\n<p>Quite apart from anything else, despite 1.0 only having just been released, I already have a good idea of <a href=\"http:\/\/wiki.freepascal.org\/Lazarus_Development_Process#After_the_1.0_release\">what to expect in future deliveries<\/a>.<\/p>\n<p>There is a school of thought that says that such open and transparent communication with a user community is only possible if you have a hugely profitable operating system and applications division to bankroll the effort.<\/p>\n<p>Given that Lazarus benefits from no such financial buttressing, seemingly what I have always believed appears to be true: that all you really need is to care.<\/p>\n<p>And the team behind Lazarus seems to care.  A lot.<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">[Estimated Reading Time: <\/span> <span class=\"rt-time\">6<\/span> <span class=\"rt-label rt-postfix\">minutes]<\/span><\/span> It has been a looong time since I last looked at Lazarus. So long in fact that I don&#8217;t remember exactly when it was. Whenever it was I don&#8217;t think I ever actually managed to even get it up and running at that point. Certainly I don&#8217;t remember much about it if I ever did. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":[]},"categories":[4,179],"tags":[292,174],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1TKYv-iw","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1129,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/1129\/","url_meta":{"origin":1148,"position":0},"title":"Lazarus Goes 1.0","date":"30 Aug 2012","format":false,"excerpt":"As some people may have already noticed, Lazarus went \"1.0\" yesterday. The sensitivity - and some might say serendipity - of the timing of this can hardly have escaped many people, including myself. Since I now intend taking a far greater interest in the alternatives to Delphi for those of\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1218,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/1218\/","url_meta":{"origin":1148,"position":1},"title":"Going Dotty With Lazarus\/FPC","date":"11 Sep 2012","format":false,"excerpt":"I am in the middle of writing a much longer post about variations and recent additions to Pascal syntax in Delphi, Oxygene and Lazarus, but at the same time I also decided to start on the process of migrating some of my code to Lazarus and FPC. In the process\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2012-09-11-at-22.21.34-.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":1199,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/1199\/","url_meta":{"origin":1148,"position":2},"title":"Oxygene &#8220;Nougat&#8221; is Mac and iOS !","date":"06 Sep 2012","format":false,"excerpt":"Marc Hoffman has confirmed that \"Nougat\" is to Mac\/iOS as \"Cooper\" was to Java. \u00a0Some have speculated that this will be based on Mono, but Oxygene has had Mono covered for some time already, so I strongly doubt that this is the case. Far more likely is that just as\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1157,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/1157\/","url_meta":{"origin":1148,"position":3},"title":"What is the Chewy Goodness in Oxygene .. ?","date":"05 Sep 2012","format":false,"excerpt":"I came across a reference to \"Nougat\" in relation to Oxygene recently, and sure enough you can pre-order Oxygene in a .NET, Java and \"Nougat\" bundle. I couldn't find any other mention of \"Nougat\" on the RemObjects\/Oxygene site though, so I'm still somewhat in the dark as to what \"Nougat\"\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1122,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/1122\/","url_meta":{"origin":1148,"position":4},"title":"SA Increased Unexpectedly ?  Check your T&#8217;s and C&#8217;s","date":"30 Aug 2012","format":false,"excerpt":"Two days ago I received a renewal quote for my XE2 Professional SA. The quote included an increase that I wasn't expecting, having not been made aware of the clause in the SA T's and C's that allows for an annual increase of up to 5%, regardless of the fact\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1207,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/1207\/","url_meta":{"origin":1148,"position":5},"title":"Adventures in Syntax: Something Old, Something New etc&#8230;","date":"20 Sep 2012","format":false,"excerpt":"As the post title says, this will be a brief detour through some features of the Pascal language and a presentation of some (theoretical) alternatives that could have been introduced instead. That is, some are real but little known syntax, others are what I think might be preferable to the\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts\/1148"}],"collection":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/comments?post=1148"}],"version-history":[{"count":26,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts\/1148\/revisions"}],"predecessor-version":[{"id":1198,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts\/1148\/revisions\/1198"}],"wp:attachment":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/media?parent=1148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/categories?post=1148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/tags?post=1148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}