tag:blogger.com,1999:blog-3944976411672994427.comments2023-09-03T17:53:38.313+07:00James Clark's Random ThoughtsJames Clarkhttp://www.blogger.com/profile/04798042939786677843noreply@blogger.comBlogger380125tag:blogger.com,1999:blog-3944976411672994427.post-42536189164461614782022-05-04T23:29:55.866+07:002022-05-04T23:29:55.866+07:00Under "Network Abstractions,"
> The ...Under "Network Abstractions,"<br /><br />> The language-provided network abstractions ... . This is also the<br /><br />has a dangling sentence at the end of the brief paragraph.orcmidhttps://www.blogger.com/profile/15720194709820430236noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-28423039705255982942019-09-18T14:12:42.098+07:002019-09-18T14:12:42.098+07:00Thank you very much, both of you! If I am not mist...Thank you very much, both of you! If I am not mistaken, our uses of the term REST are quite different. Yours is the widespread one, denoting a style of web service design, including an HTTP-based elaboration. Mine is the original one as defined by Fielding in his dissertation: REST as an architectural style = set of constraints applied to the elements within the architecture. This set of constraints has been defined for the sake of their joint impact on <b>key properties of network-based applications</b> (performance, scalability, simplicity, modifiability, visibility, portability, reliability). So I wonder if it made sense to define an own architectural style, reflected by the specification and the implementation of Ballerina. Such a definition might be very valuable as giving guidance for future development (and identifying issues in the current state). That is exactly the role REST played in the development of the internet standards.Hans-Jürgen Rennaunoreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-26370936534282056692019-09-18T01:10:58.487+07:002019-09-18T01:10:58.487+07:00While I agree with James' answer, in the case ...While I agree with James' answer, in the case of HTTP, the resource identifier is / by default. Doing a GET on the the resource ID invokes the resource function which offers a representation of the resource based on content negotiation.<br /><br />In other words, its possible to write fully restful (including HATEOS) services in Ballerina very cleanly using the service/resource abstraction.Sanjiva Weerawaranahttps://www.blogger.com/profile/14566379277611699606noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-91162096039333213482019-09-16T08:23:21.058+07:002019-09-16T08:23:21.058+07:00Ballerina's network abstractions are at a diff...Ballerina's network abstractions are at a different level of abstraction/generality to REST. They are intended to work with a wide variety of protocols, such as WebSockets or AMQP, not just as HTTP. Most of them are on top of IP but that's not inherent: you could use them to talk to a VT100 terminal over RS232 if you wanted to. You can implement distributed applications in the REST architectural style on top of Ballerina, but there's nothing specific to REST in Ballerina. A resource is just the entry point from the network to user code. A service ties together resources that are related, e.g. because they correspond to different messages that are part a single protocol.James Clarkhttps://www.blogger.com/profile/08445951113700394609noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-12602427289132862542019-09-15T23:14:52.462+07:002019-09-15T23:14:52.462+07:00Thank you very much for this clarification and the...Thank you very much for this clarification and the valuable links, food for thought and study! <br /><br />There is another aspect I feel deeply curious about: the concepts of <b>resource</b> and <b>resource identifier</b>. Roy Fielding defined: a resource is a mapping of a resource identifier (URI) to a set of representations, an abstraction at the heart of the REST architectural style and the engine of generic link traversal. But the Ballerina point of view seems to be different: a resource is an endpoint attached to a set of methods, so resource is a synonym for a deployed service. Is this right? Or is the Ballerina perspective perhaps dual, layering the service perspective – helpful for orchestrating tightly coupled services – on top of Fielding’s perspective, enabling link traversal, REST services and boundless connectivity?Hans-Jürgen Rennaunoreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-67547264920591589802019-09-15T08:49:22.637+07:002019-09-15T08:49:22.637+07:00That's a great question. I should have said so...That's a great question. I should have said something about that in my blog post. The answer is emphatically yes. The whole design of the language is what you might call data-centric (as opposed to object-oriented).<br /><br />There is a lot of functionality related to this in the works:<br /><br />- stabilizing the table datatype<br />- adding language-integrated query, which works with both tables and other datatypes<br />- stabilizing the XML datatype<br />- adding XML navigation (similar to XPath)<br /><br />There are <a href="https://github.com/ballerina-platform/ballerina-spec/blob/master/lang/proposals/README.md" rel="nofollow">proposals</a> for the above.<br /><br />We also want support for "data-in-motion". There is an experimental <a href="https://v0-991.ballerina.io/learn/ballerina-streaming-reference/" rel="nofollow">streams</a> feature that does this.<br /><br />Probably further off, we want to have a more declarative way of doing transformations, which would support a graphical interface, based on dataflow, similar to ESBs (this is issue <a href="https://github.com/ballerina-platform/ballerina-spec/issues/39" rel="nofollow">39</a>).James Clarkhttps://www.blogger.com/profile/08445951113700394609noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-7624523495123830162019-09-14T16:13:50.402+07:002019-09-14T16:13:50.402+07:00Ballerina is about "enterprise integration&qu...Ballerina is about "enterprise integration", thus also data integration. In this context, navigation (within and across structured values) and transformation (of structured values) are key operations - at least on the conceptual level. (Their mappings to programming language constructs are a different matter, unfortunately.) I wonder if the language design of Ballerina reflects a desire to simplify navigation and transformation?Hans-Jürgen Rennaunoreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-71656115052409847702019-09-14T14:50:01.962+07:002019-09-14T14:50:01.962+07:00Agreed with Liam. Ballerina-by-Example is really i...Agreed with Liam. Ballerina-by-Example is really impressive, but the spec itself should include examples and notes. Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-27086760997435770252019-09-14T03:29:03.840+07:002019-09-14T03:29:03.840+07:00Thanks, Sanjiva.Thanks, Sanjiva.Liam Quinhttps://www.blogger.com/profile/07191558941418599733noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-30733914713419485982019-09-13T08:14:24.971+07:002019-09-13T08:14:24.971+07:00RPM will come soon as will a zip distro so anyone ...RPM will come soon as will a zip distro so anyone can download and run it.<br /><br />There are lots of examples here: https://v1-0.ballerina.io/learn/by-example/. We also have a series of long tutorials and will be pushing them out soon.Sanjiva Weerawaranahttps://www.blogger.com/profile/14566379277611699606noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-17553943913077702662019-09-13T06:46:01.354+07:002019-09-13T06:46:01.354+07:00Suggest adding an RPM package for RHEL and Centos,...Suggest adding an RPM package for RHEL and Centos, as these are very common in server contexts.<br /><br />The description of the type system reminds me a bit of EQLOG from the 1980s, a logic programming language where type safety was computed by the compiler based on type axioms.<br /><br />I think also the value of examples and tutorials in increasing review & deployment should not be underestimated.Liam Quinhttps://www.blogger.com/profile/07191558941418599733noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-16888872900999311872019-09-12T09:29:16.752+07:002019-09-12T09:29:16.752+07:00The standard library is part of the Ballerina plat...The standard library is part of the Ballerina platform and is documented <a href="https://v1-0.ballerina.io/learn/api-docs/ballerina/" rel="nofollow">here</a>.James Clarkhttps://www.blogger.com/profile/08445951113700394609noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-46262196796521573672019-09-12T09:08:13.980+07:002019-09-12T09:08:13.980+07:00ugh, Standard library (batteries) not included. I...ugh, Standard library (batteries) not included. I'll pass.Thad Guidryhttps://www.blogger.com/profile/03716056710166337109noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-89647956822625867622019-09-12T03:45:32.507+07:002019-09-12T03:45:32.507+07:00Welcome back, interesting to hear what you're ...Welcome back, interesting to hear what you're working on these days. We are embarking on a major SoA business transformation project soon so this is timely!Unknownhttps://www.blogger.com/profile/12922497127703379181noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-73214936867789209052019-06-24T08:21:39.709+07:002019-06-24T08:21:39.709+07:00Also, there was a historical distinction in German...Also, there was a historical distinction in German names between "von" (a prefix of the surname marking a member of the nobility) and "Von" (part of the surname, historically meaning that a family was "from" the named place.John Cowanhttps://www.blogger.com/profile/11452247999156925669noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-85959770348175434592017-08-20T08:29:02.581+07:002017-08-20T08:29:02.581+07:00A couple of other articles/blog posts that are pro...A couple of other articles/blog posts that are probably applicable here are <a href="http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/" rel="nofollow">http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/</a> and, as linked to from that, <a href="http://blog.jgc.org/2010/06/your-last-name-contains-invalid.html" rel="nofollow">http://blog.jgc.org/2010/06/your-last-name-contains-invalid.html</a>. Bryce Gloverhttps://www.blogger.com/profile/16167803215994920015noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-59884328512889723462017-04-13T13:37:17.610+07:002017-04-13T13:37:17.610+07:00@jcowan sorry, can you make the document public?@jcowan sorry, can you make the document public?Anonymoushttps://www.blogger.com/profile/13439403153265863225noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-82147916099047622142017-04-13T05:17:45.675+07:002017-04-13T05:17:45.675+07:00Here's my rant from some years back: "Ag...Here's my rant from some years back: <a href="goo.gl/wIjnan" rel="nofollow">"Against Structured Names and Telephone Numbers"</a>.John Cowanhttps://www.blogger.com/profile/11452247999156925669noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-41871967154329021302015-03-24T04:32:55.756+07:002015-03-24T04:32:55.756+07:00Names are fun. Sometimes even your own government ...Names are fun. Sometimes even your own government doesn't understand them.<br /><br />Germans usually have more than one given name, the first of which is the one you're called by. However, sometimes it's the second, which is underlined by convenience. Apparently the next iteration of our passports will drop that distinction, so I'll have to either get my first name officially swapped around, or get used to officially being named (and naming myself!) "Peter" instead of "Matthias", or fight them tooth and nail. We'll see …smurfixhttps://www.blogger.com/profile/02846176827268520748noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-56023509474557825312015-02-01T02:29:07.462+07:002015-02-01T02:29:07.462+07:00Isn't this just a case of change for changes s...Isn't this just a case of change for changes sake? I concur with other comments that JSON does the job and is user friendlyDaveHhttp://www.deehoseo.comnoreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-10930678128180455052014-09-09T16:13:13.105+07:002014-09-09T16:13:13.105+07:00@mnot: "the big issue facing proposals like t...@mnot: "the big issue facing proposals like this is stripping the signature; i.e., presumably, you're wanting to give UAs a way to detect that a response has been modified by an intermediary, but the only thing that has to be done to circumvent the signature is to strip the header."<br /><br />Why not take the same route as https - a scheme, e.g. httpv (HTTP Verified), that tells the browser only to render the content if the signature header(s) are present and check out, and to put dire warnings up (or not load the assert if it's a child request) if not.Robert Elliothttps://www.blogger.com/profile/08627561573144215569noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-81753254539899109942013-06-30T23:02:07.976+07:002013-06-30T23:02:07.976+07:00Traditionally Thai nameing ceremony of formal give...Traditionally Thai nameing ceremony of formal given name of baby is auspicious or religious event with first letter of the name to be chosen based on the day of birth and time of birth by monk in temple or such religious person. Thai parents can choose the name of baby either traditionally with 'guidance' from monk or by themselves.<br /><br />Usually Thai names are mostly inspiring or beautiful adjectives describing personality traits or looks or such.<br /><br />Some Thai names are derived from Pali or Sanskrit such as name of King Bhumibol Adulyatej of Thailand. In Sanskrit Bhumi means Earth, bol means Power, Adulya or Atulya means Immense and Tej means Brightness. So Bhumibol Adulyatej means Earth Power with immense brightness.<br /><br />Thai nicknames are mostly given by parents or close family members with recent trend of western sounding nicknames such as Fone (Phone), Bell (Bell), Amp (Amplifier), Angie, Vicki so easy to pronounce and sounding more modern.<br /><br />Traditional common Thai nicknames are Lek (Small), Noi (Little), Piak (Tiny), Nok (Bird), Aoi (Sugarcane), Faa (Sky), Nu (Mouse) such.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-77529782652044548942012-08-29T15:48:23.306+07:002012-08-29T15:48:23.306+07:00Chris has remarked that Welsh patronyms are out of...Chris has remarked that Welsh patronyms are out of use, but although I am not Welsh, I have seen this is not so. A few years back there was an article on the national news about a teenage boy who had died in an accident whilst kyaking or camping or rock-climbing or some such. The boy's name was of the form A ap B, and the TV crew interviewed his father, who's name was given as B ap C. It stuck in my mind because I too had wondered if the system was still in use.nickshankshttps://www.blogger.com/profile/03154631687028995445noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-31161071566589022682012-06-25T20:26:47.343+07:002012-06-25T20:26:47.343+07:00Hi James,
"In the short-term, I think the ch...Hi James,<br /><br />"In the short-term, I think the challenge is how to make HTML5 play more nicely with XML."<br /><br />By reference, clearly. On the Web, that means links, link annotations, etc.: <a href="http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven" rel="nofollow">http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven</a>.Peter Rushforthhttps://www.blogger.com/profile/09472639836847800891noreply@blogger.comtag:blogger.com,1999:blog-3944976411672994427.post-17771385709734087852012-06-23T16:38:32.367+07:002012-06-23T16:38:32.367+07:00Hi James,
Sorry I haven't followed MicroXML t...Hi James,<br /><br />Sorry I haven't followed MicroXML too much till now.<br /><br />I've recently been made aware that XML is not a hypermedia format - that is, has no hypermedia affordances. <br /><br />If MicroXML had those, and they were backward compatible with XML, maybe it would solve some issues on the web.<br /><br />Thanks for thinking about this.<br /><br />PeterPeter Rushforthhttps://www.blogger.com/profile/09472639836847800891noreply@blogger.com