<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>morethanabitoff</title>
    <description>I'm a computer geek with too little patience, not enough time, and too few guns. Andrew (Andy) Newton. the Internet, Programming, and Open Source.
</description>
    <link>http://blog.hxr.us/</link>
    <atom:link href="http://blog.hxr.us/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Wed, 24 Apr 2024 19:34:28 -0400</pubDate>
    <lastBuildDate>Wed, 24 Apr 2024 19:34:28 -0400</lastBuildDate>
    <generator>Jekyll v3.9.5</generator>
    
      <item>
        <title>Java will be the New COBOL</title>
        <description>&lt;p&gt;&lt;img src=&quot;/img/posts/coffee-shop-1045065_1920.jpg&quot; class=&quot;img-inline-left&quot; alt=&quot;Pair programming anybody?&quot; /&gt;
We can continue to debate this, but Java will be the new COBOL.&lt;/p&gt;

&lt;p&gt;The “Java is the new COBOL” debate has been going on for about 10 years now.
And it’s not just theoretical. There are companies catering to what they sense
is a shifting mindset in the enterprise programming world – a mindset that starts with a premise
many of us would probably find unfamiliar: its time to switch from COBOL to Java.&lt;/p&gt;

&lt;p&gt;If you want to know what I’m talking about, do a Google search for &lt;a href=&quot;http://lmgtfy.com/?q=Java+for+COBOL+programmers&quot;&gt;“Java for COBOL programmers”&lt;/a&gt;.
You’ll find lot’s of resources for the COBOL programmer to learn Java. That highlights
two things: 1) there are still quite a few COBOL programmers out there (stunning, right?),
and 2) there is interest in moving them to Java, a language many of the cool kids
now find passé.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;the-scope-of-cobol-today&quot;&gt;The Scope of COBOL Today&lt;/h2&gt;

&lt;p&gt;COBOL is an old, old programming language, surfacing sometime around the cooling of the Earth’s crust, as the legend has been passed down from generation to generation around the evening campfire. So to say that there are still COBOL programmers can be surprizing.&lt;/p&gt;

&lt;p&gt;So how many are there? &lt;a href=&quot;https://www.quora.com/How-many-COBOL-programmers-are-left-in-the-US&quot;&gt;Umm&lt;/a&gt;…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;An estimated 2 million people in the world are currently working in COBOL; rough estimates put the US figure at around 20,000 people&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Of course, there’s no source for that, but the other stats seem to indicate there’s a lot, &lt;em&gt;A LOT&lt;/em&gt;, of &lt;a href=&quot;http://www.javaworld.com/article/2077835/guess-who-s-learning-cobol-.html&quot;&gt;COBOL still running around out there&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Some 75% of the world’s businesses data is still processed in Cobol, and about 90% of all financial transactions are in Cobol, according to Arunn Ramadoss, head of the academic connections program at Micro Focus International PLC, which provides software to help modernize Cobol applications.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Surprizing? Given that there is so much COBOL out there and this
aging language’s aging practitioners aren’t getting any younger, some might say &lt;strong&gt;ALARMING&lt;/strong&gt;. &lt;a href=&quot;http://blog.hackerrank.com/the-inevitable-return-of-cobol/&quot;&gt;Ritika Trikha&lt;/a&gt; is predicting an impending COBOL gap:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;But what’s not emphasized often enough is there’s a slowly increasing gap between the number of massive institutions relying on COBOL and its relevancy among programmers today.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And that maybe true if the law of supply and demand can be applied to COBOL programs needing COBOL programmers, as ITWorld has proclaimed: &lt;a href=&quot;http://www.itworld.com/article/2694378/college-students-learning-cobol-make-more-money.html&quot;&gt;“College students who learn COBOL make more money”&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;out-cobol-in-java&quot;&gt;Out: COBOL. In: Java&lt;/h2&gt;

&lt;p&gt;One might conclude, given everything I noted above, that COBOL is the new COBOL… or maybe that Java cannot be the new COBOL because COBOL is still king. But looking at the trends, Java may not be the new COBOL now, but it will be one day.&lt;/p&gt;

&lt;p&gt;Here’s one way to think about it. COBOL is what it is today because of the millions of man-hours that went into creating what we now call legacy business applications. Just think what hundreds-of-millions of man-hours of Java coding on today’s business applications will yield 30 years from now?&lt;/p&gt;

&lt;p&gt;I say hundreds-of-millions because for the last decade or so Java has been (and continues to be) the most popular language in the world:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Java’s dominance on the &lt;a href=&quot;http://www.tiobe.com/tiobe_index&quot;&gt;TIOBE Index&lt;/a&gt; goes back to 2006.&lt;/li&gt;
  &lt;li&gt;It currently ranks #1 on the &lt;a href=&quot;http://pypl.github.io/PYPL.html&quot;&gt;PYPL&lt;/a&gt; Index.&lt;/li&gt;
  &lt;li&gt;On both of the Javascript-biased* rankings, &lt;a href=&quot;http://redmonk.com/sogrady/2016/02/19/language-rankings-1-16/&quot;&gt;RedMonk&lt;/a&gt; and &lt;a href=&quot;http://githut.info/&quot;&gt;GitHut&lt;/a&gt;, it ranks #2.&lt;/li&gt;
  &lt;li&gt;It ranks #1 on &lt;a href=&quot;http://spectrum.ieee.org/static/interactive-the-top-programming-languages&quot;&gt;IEEE Spectrum&lt;/a&gt;’s rankings.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are probably an order of magnitude more Java programmers now than there were COBOL programmers back in the day. And therefore the man-hours being put into code are far greater.&lt;/p&gt;

&lt;p&gt;But numbers don’t tell the whole story. COBOL’s dominance didn’t come from being the best programming language of the day but from targeting the average programmer. Rockstar programmers never fell for COBOL, but the vast majority of coders are not rockstars; they’re more like Karaoke singers.&lt;/p&gt;

&lt;p&gt;The same is true of Java today. It isn’t elegant like Ruby, and it doesn’t have the same level of functional ease like Elixir. But your average programmer tends to make a mess out of dynamic languages and is certainly not prepared to handle functional paradigms.&lt;/p&gt;

&lt;p&gt;So where COBOL was geared toward report generation of fixed record manipulation and report generation, the big tasks of the mainframe era, Java (and importantly, its many frameworks) is geared toward the middle-tier problem of manipulating relational databases on behalf of a GUI (be it web, mobile or a REST endpoint).&lt;/p&gt;

&lt;p&gt;As &lt;a href=&quot;http://c2.com/cgi/wiki?JavaIsTheNewCobol&quot;&gt;C2.COM&lt;/a&gt; puts it:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Is Java the new Cobol? A good argument can be made that yes, it is. Considering the billions of lines of Cobol code that have been (or still are) in production; that observation should in no way be considered a slur. Java has succeeded in the marketplace (partially) because it is a language of its time; not one behind the times - or ahead of them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;notes-and-asides&quot;&gt;*Notes and Asides&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Javascript-biased Indexes)&lt;/strong&gt; I say that RedMonk and GitHut language rankings are biased towards Javascript because they are based on GitHub code repository measurements, making them biased for two reasons.&lt;/p&gt;

&lt;p&gt;First, as RedMonk points out, Javascript is used in the HTML of many of other projects where another language is really the dominant focus. So this inflates Javascript project and lines-of-code counts.&lt;/p&gt;

&lt;p&gt;Second, the popularity of GitHub Pages likely inflates the Javascript numbers. Since all GitHub Pages are all GitHub repositories, any GitHub Pages site that might be about some other subject (take this blog for instance) would include Javascript files and thus inflate the counts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Mind Boggles with the Confluence of Javascript and COBOL)&lt;/strong&gt; While we are on the topics of Javascript and COBOL, &lt;a href=&quot;http://arstechnica.com/information-technology/2016/05/who-put-this-javascript-in-my-cobol-node-cobol-thats-who/&quot;&gt;this article at Ars Technica&lt;/a&gt; on COBOL for Node.JS and vice-versa is interesting.&lt;/p&gt;
</description>
        <pubDate>Wed, 25 May 2016 05:20:06 -0400</pubDate>
        <link>http://blog.hxr.us/java/2016/05/25/is-java-the-new-cobol.html</link>
        <guid isPermaLink="true">http://blog.hxr.us/java/2016/05/25/is-java-the-new-cobol.html</guid>
        
        
        <category>Java</category>
        
      </item>
    
      <item>
        <title>A cooling IPv4 Transfer Market</title>
        <description>&lt;p&gt;RIPE Labs on &lt;a href=&quot;https://labs.ripe.net/Members/wilhelm/developments-in-ipv4-transfers&quot;&gt;their view&lt;/a&gt; of the IPv4 transfer market:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In the second half of 2015 and the first half of 2016, both the number of transfers and the size of the transfers conducted under RIPE Policy started to show a downward trend. This is more likely a sign of fewer available addresses rather than decreasing demand for IPv4 addresses. Also, we have to stress that statistics for IPv4 transfers within the RIPE NCC service region only concern address space with the status Allocated PA or Assigned PI. Because legacy space is not subject to the RIPE transfer policies, the RIPE NCC cannot track or publish transfers in this area. Inter-RIR transfers are still too small in number to see any trend. In terms of the number of transferred IPv4 addresses, statistics are dominated by a single transaction, eight /14s transferred from ARIN to the RIPE NCC in December 2015.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Tue, 24 May 2016 08:20:06 -0400</pubDate>
        <link>http://blog.hxr.us/ipv4/2016/05/24/ipv4-transfer-market-cooling.html</link>
        <guid isPermaLink="true">http://blog.hxr.us/ipv4/2016/05/24/ipv4-transfer-market-cooling.html</guid>
        
        
        <category>IPv4</category>
        
      </item>
    
      <item>
        <title>Linus Torvalds at TED</title>
        <description>&lt;p&gt;If you have not seen the interview of Linus Torvalds at TED from February, I
highly recommend it. He’s changed the face of modern computing twice. His
code runs in billions of devices (you might be reading this on one right now),
and millions of software developers around the world manage their code thanks
to his creation of Git. And yet, he’s a humble, gracious and down-to-earth man.&lt;/p&gt;

&lt;iframe src=&quot;https://embed-ssl.ted.com/talks/linus_torvalds_the_mind_behind_linux.html&quot; width=&quot;640&quot; height=&quot;360&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; webkitallowfullscreen=&quot;&quot; mozallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</description>
        <pubDate>Sat, 21 May 2016 08:20:06 -0400</pubDate>
        <link>http://blog.hxr.us/linux/2016/05/21/linus-torvalds-ted.html</link>
        <guid isPermaLink="true">http://blog.hxr.us/linux/2016/05/21/linus-torvalds-ted.html</guid>
        
        
        <category>Linux</category>
        
      </item>
    
      <item>
        <title>Poll: What's the First Thing You Look for in an Editor?</title>
        <description>&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;What&amp;#39;s the first thing you look for in an editor? There is an obvious right answer.&lt;/p&gt;&amp;mdash; Andy Newton (@MoreThanABitOff) &lt;a href=&quot;https://twitter.com/MoreThanABitOff/status/731907372587843584&quot;&gt;May 15, 2016&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

</description>
        <pubDate>Sun, 15 May 2016 13:22:06 -0400</pubDate>
        <link>http://blog.hxr.us/programming/2016/05/15/first-thing-you-look-for-editor.html</link>
        <guid isPermaLink="true">http://blog.hxr.us/programming/2016/05/15/first-thing-you-look-for-editor.html</guid>
        
        
        <category>Programming</category>
        
      </item>
    
      <item>
        <title>Not Just an Annoying Voice but also a Bad Taste in Men</title>
        <description>&lt;blockquote&gt;
  &lt;p&gt;This fracas resurfaced in 2014 when Ayyadurai married Fran Drescher.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;from an &lt;a href=&quot;http://arstechnica.com/tech-policy/2016/05/man-who-claims-to-have-invented-e-mail-sues-gawker-for-35m-in-libel-suit/&quot;&gt;article&lt;/a&gt; at Ars Technica about Shiva Ayyadurai suing Gawker Media for libel.&lt;/p&gt;

&lt;p&gt;Gawker’s Gizmodo published several articles &lt;a href=&quot;http://gizmodo.com/5888702/corruption-lies-and-death-threats-the-crazy-story-of-the-man-who-pretended-to-invent-e-mail&quot;&gt;(1)&lt;/a&gt; &lt;a href=&quot;http://gizmodo.com/5887480/the-inventor-of-e-mail-did-not-invent-e-mail&quot;&gt;(2)&lt;/a&gt; on Shiva Ayyadurai and the result:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Months after these articles appeared, Boston Magazine reported that as a result, Ayyadurai’s “speaking engagements have been canceled, the funding for his e-mail lab has evaporated, and his contract to lecture in MIT’s bioengineering department has been revoked.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And here’s the chortle factor:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Harder further argues that Tomlinson’s work (his RFC #561 describes “network mail” in 1971) is too ancient to be considered proper e-mail.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Reality is HARD!&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 15 May 2016 10:22:06 -0400</pubDate>
        <link>http://blog.hxr.us/email/2016/05/15/ayyadurai-sues-and-marries.html</link>
        <guid isPermaLink="true">http://blog.hxr.us/email/2016/05/15/ayyadurai-sues-and-marries.html</guid>
        
        
        <category>Email</category>
        
      </item>
    
      <item>
        <title>My Guest Post on APNICs Blog</title>
        <description>&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;What does Port 43 WHOIS protocol have to do with an 8 track tape? Answers here&lt;a href=&quot;https://t.co/h0bgJIEwpM&quot;&gt;https://t.co/h0bgJIEwpM&lt;/a&gt; &lt;a href=&quot;https://t.co/Yrh716I2bt&quot;&gt;pic.twitter.com/Yrh716I2bt&lt;/a&gt;&lt;/p&gt;&amp;mdash; APNIC (@apnic) &lt;a href=&quot;https://twitter.com/apnic/status/730646560283856896&quot;&gt;May 12, 2016&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

</description>
        <pubDate>Sun, 15 May 2016 09:22:06 -0400</pubDate>
        <link>http://blog.hxr.us/rdap/2016/05/15/apnic-guest-post-on-rdap.html</link>
        <guid isPermaLink="true">http://blog.hxr.us/rdap/2016/05/15/apnic-guest-post-on-rdap.html</guid>
        
        
        <category>RDAP</category>
        
      </item>
    
      <item>
        <title>.CZ Is First RDAP TLD (UPDATE)</title>
        <description>&lt;p&gt;I just noticed that IANA has updated their &lt;a href=&quot;http://data.iana.org/rdap/dns.json&quot;&gt;bootstrap&lt;/a&gt; files,
and NIC.CZ, the Czech TLD, is in there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE :&lt;/strong&gt;
Because the RDAP IANA files have been updated soooooooo infrequently, it has gone unnoticed that &lt;a href=&quot;https://github.com/arineng/nicinfo&quot;&gt;NicInfo&lt;/a&gt;
was not bootstrapping properly. That has now been fixed in
&lt;a href=&quot;https://github.com/arineng/nicinfo/releases/tag/1.1.1&quot;&gt;1.1.1&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 13 May 2016 13:22:06 -0400</pubDate>
        <link>http://blog.hxr.us/rdap/2016/05/13/cz-first-rdap-tld.html</link>
        <guid isPermaLink="true">http://blog.hxr.us/rdap/2016/05/13/cz-first-rdap-tld.html</guid>
        
        
        <category>RDAP</category>
        
      </item>
    
      <item>
        <title>Big Changes for JCR in the Works</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://anewton.smugmug.com/Auckland-2016/i-svxZXc7/A&quot;&gt;&lt;img src=&quot;https://photos.smugmug.com/Auckland-2016/i-svxZXc7/0/Ti/DSC08679-Ti.jpg&quot; class=&quot;img-inline-left&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We published &lt;a href=&quot;https://tools.ietf.org/html/draft-newton-json-content-rules-06&quot;&gt;JCR -06&lt;/a&gt; back in
March and since we’ve received a lot of feedback. And that feedback has resulted
in some fairly significant, and unfortunately backwards incompatible, syntax changes – all for the better.&lt;/p&gt;

&lt;p&gt;The big thing to take away from these changes is that valid JSON is now valid
JCR. To some extent this was true with -06, but things like this were not:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;b&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;!--more--&gt;
&lt;p&gt;Well, now it is (or at least will be in -07). But in doing this, we’ve had to
move the repetition syntax to the end of the definitions.  Whereas we use to do this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:integer&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;b&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;repetitions are now preceded with some syntactic sugar, the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@&lt;/code&gt;, and moved to the end:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;b&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;For a refresher on the concept of &lt;a href=&quot;https://en.wikipedia.org/wiki/Syntactic_sugar&quot;&gt;syntactic sugar&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In computer science, syntactic sugar is syntax within a programming language t
hat is designed to make things easier to read or to express.
It makes the language “sweeter” for human use: things can be expressed more
clearly, more concisely, or in an alternative style that some may prefer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or in other words, &lt;em&gt;the computer doesn’t need it&lt;/em&gt;. A JCR parser doesn’t need the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@&lt;/code&gt;,
but we’ve added it there so repetitions don’t get lost and appear to have a meaning
more obvious than, “look, they forgot a comma”.&lt;/p&gt;

&lt;p&gt;Syntactic sugar is one of those eye-of-the-beholder things, as I’ve learned through
this process. And so… we’ve added more.&lt;/p&gt;

&lt;p&gt;As you may recall, in JCR rules can be broken out and referenced by name. An example:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;ints&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;b&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;ints&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;To the casual reader, that might seem confusing. Is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ints&lt;/code&gt; a JCR thing? To make it clearer, we’ve decided that rule names must be immediately preceded by the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$&lt;/code&gt; character and the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;=&lt;/code&gt; character is to be used when naming rules. Thus:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;$ints&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;b&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;$ints&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Now those aren’t all the changes we are working on, but those are the big ones. More to come…&lt;/p&gt;
</description>
        <pubDate>Thu, 12 May 2016 16:22:06 -0400</pubDate>
        <link>http://blog.hxr.us/json/jcr/2016/05/12/big-changes-for-jcr.html</link>
        <guid isPermaLink="true">http://blog.hxr.us/json/jcr/2016/05/12/big-changes-for-jcr.html</guid>
        
        
        <category>JSON</category>
        
        <category>JCR</category>
        
      </item>
    
      <item>
        <title>XML is Hard!</title>
        <description>&lt;p&gt;This &lt;a href=&quot;https://nlnetlabs.nl/pipermail/regops/2016-May/000270.html&quot;&gt;thread&lt;/a&gt;
on the REGOPS mailing list just makes me sad.&lt;/p&gt;
</description>
        <pubDate>Thu, 12 May 2016 11:22:06 -0400</pubDate>
        <link>http://blog.hxr.us/xml/2016/05/12/xml-is-hard.html</link>
        <guid isPermaLink="true">http://blog.hxr.us/xml/2016/05/12/xml-is-hard.html</guid>
        
        
        <category>XML</category>
        
      </item>
    
  </channel>
</rss>
