Congratulations!

[Valid Atom 1.0] This is a valid Atom 1.0 feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://news.perlfoundation.org/atom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <feed xmlns="http://www.w3.org/2005/Atom">
  3.    <title>The Perl Foundation</title>
  4.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/" />
  5.    <link rel="self" type="application/atom+xml" href="http://news.perlfoundation.org/atom.xml" />
  6.    <id>tag:news.perlfoundation.org,2010-03-22://18</id>
  7.    <updated>2017-09-20T01:20:14Z</updated>
  8.    
  9.    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 6.2.2</generator>
  10.  
  11. <entry>
  12.    <title>Grant Proposal: Act Voyager</title>
  13.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/09/grant-proposal-act-voyager.html" />
  14.    <id>tag:news.perlfoundation.org,2017://18.3912</id>
  15.  
  16.    <published>2017-09-20T01:10:38Z</published>
  17.    <updated>2017-09-20T01:20:14Z</updated>
  18.  
  19.    <summary>The Grants Committee has received the following grant proposal for the September/October round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal. Review the proposal below and please comment here by September 26th, 2017. The Committee members will start the voting process following that and the conclusion will be announced the first week of October. Act Voyager Name: Theo van Hoesel Amount Requested: USD 7,500 Synopsis A Modern rebuild of the...</summary>
  20.    <author>
  21.        <name>Coke</name>
  22.        
  23.    </author>
  24.    
  25.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  26.    
  27.    
  28.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  29.        <![CDATA[<p>The Grants Committee has received the following grant proposal for the September/October round.
  30. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.</p>
  31.  
  32. <p>Review the proposal below and please comment here by September 26th, 2017.
  33. The Committee members will start the voting process following that and the conclusion
  34. will be announced the first week of October.</p>
  35.  
  36. <h1>Act Voyager</h1>
  37.  
  38. <ul>
  39. <li><p>Name:</p>
  40.  
  41. <p>Theo van Hoesel</p></li>
  42. <li><p>Amount Requested:</p>
  43.  
  44. <p>USD 7,500</p></li>
  45. </ul>
  46.  
  47. <h2>Synopsis</h2>
  48.  
  49. <p>A Modern rebuild of the Conference Tool Kit.</p>
  50. ]]>
  51.        <![CDATA[<p>Act, as we know it, has been build more than a decade ago for Apache 1 and
  52. mod-perl 1.3 architecture. And it has served the Perl Community very well over
  53. all those years and hundreds of events.</p>
  54.  
  55. <p>But over the last year we have suffered from major outages. And since the
  56. operating sytem it self being used to run on, has passed it LTS, more recent
  57. compilers being packed, it has become extremely difficult (if not impossible) to
  58. rebuild Act from scratch.</p>
  59.  
  60. <p>Also, Act as it is now, is no longer maintained in a pro-active manner, due to
  61. it's archaic design - and people having other priorities.</p>
  62.  
  63. <p>Lastly, due to the flexibility off how it has been designed it comes with such a
  64. complexity, that it is hard and difficult for current organisers to deliver new
  65. websites for each and every conference or workshop they want to promote. Of
  66. course, this also relates to the fact that most of the Perl developers are not
  67. the best frontend designers.</p>
  68.  
  69. <p>Reasons enough to stop using Act, as a toolkit, it has become rusty and unfit
  70. for the job. It has come to the point that Act should be to REST.</p>
  71.  
  72. <h2>Benefits to the Perl Community</h2>
  73.  
  74. <p>The future is quite clear. Act requires a giant leap forward to keep up with the
  75. demands of today users.</p>
  76.  
  77. <p>Visitors that come to the website should experience that Perl, although a
  78. language with a longstanding history, is still keeping up and pushing the bar to
  79. a higher level for competing alternatives. The user experience should be up to
  80. modern expectations. Therefor Act Voyager will include a revamped frontend. And
  81. hopefully will make it more likely to attract new people to the Community,
  82. rather then putting people off on their first impression (as we know from Perl
  83. Monks).</p>
  84.  
  85. <p>Organisers should be enabled to quickly and easaly set up a new event. That
  86. should be as easy as setting a date, selecting a frontend theme and additional
  87. styling. The admin part of Act would be decoupled from the public website. This
  88. makes it much easier to implement, without messing with the public website
  89. interface. This admin part would also need new tools that connect with Social
  90. Media and allow simple things as sending emails. Previous organisers will
  91. recognise all the hassle to get it up and running and most would wish it was
  92. more easy to communicate with attendees and prospective Community members.</p>
  93.  
  94. <h2>Deliverables</h2>
  95.  
  96. <h3>Act-out-of-the-Box</h3>
  97.  
  98. <p>A 'must have' for working on anything related to Act, more specific, anything
  99. related to the Legacy code base.</p>
  100.  
  101. <h3>Open API spec (aka Swagger)</h3>
  102.  
  103. <p>This YAML specification of an API will describe the interface.</p>
  104.  
  105. <p>Rather than just writing code and deliver something that would look okay, it's
  106. important to have a good definition of what the API looks like - much like Test
  107. Driven Development.</p>
  108.  
  109. <h3>API server</h3>
  110.  
  111. <p>Based on the above Specification, there will an API server that talks to the
  112. Legacy Act databases.</p>
  113.  
  114. <h3>Act CLI</h3>
  115.  
  116. <p>As a side product, mostly for testing purposes, there will be a simple command
  117. line interface. Extremely useful for admins and people that dislike modern web.</p>
  118.  
  119. <h3>Theme based web-server</h3>
  120.  
  121. <p>A Dancer2 application that will provide the HTML, JavaScript, and CSS needed to
  122. access a Perl Event web page.</p>
  123.  
  124. <h3>Improve Modules</h3>
  125.  
  126. <ul>
  127. <li>Dancer2::Plugin::HTTP::Auth::Extensible</li>
  128. <li>Dancer2::Plugin::HTTP::Caching</li>
  129. <li>Dancer2::Plugin::HTTP::ConditionalRequest</li>
  130. <li>Dancer2::Plugin::HTTP::ContentNegotiation</li>
  131. <li>LPW::UserAgent::Caching</li>
  132. <li>HTTP::Caching</li>
  133. </ul>
  134.  
  135. <h2>Project Details</h2>
  136.  
  137. <h3>Act-out-of-the-Box</h3>
  138.  
  139. <p>Since it's a nightmare to build Act from scratch - DO NOT TRY THIS AT HOME - it
  140. comes with Apache 1.3.x and mod-perl 1.31. It also includes a recent checkout
  141. of the Git repository and it's dependancies.</p>
  142.  
  143. <p>This will benefit organisers to work on their website and test locally before
  144. committing and merging with the 'Act-Conferences' repository.</p>
  145.  
  146. <p>It will also help developers that desire to fix bugs in the legacy codebase of
  147. Act... or add new features.</p>
  148.  
  149. <p>This part has almost finished. I have gone through dozens and dozens off
  150. iterations to get it working. Luckily I had a back up from a previous attempt
  151. from some years ago. It only needs some nice script to make it easy for an
  152. organiser to add a conference, linked to GitHub.</p>
  153.  
  154. <h3>Open API specification</h3>
  155.  
  156. <p>There are many tools available around the Oen API specification that will help
  157. backend developers to test their implementations. There are also tools available
  158. to run a API simulation. And many more...</p>
  159.  
  160. <p>The Specification will be a living document and contributions are welcome. But
  161. whatever the specification will be, that will be what client and server will
  162. to agree on. This will open up the way developers can work on separate products.
  163. With a proper Specification, it is possible to built different clients (like iOS
  164. applications) and servers.</p>
  165.  
  166. <p>The specification can be just one big file and will soon become messy. This year
  167. I started out writing the specification, split over several files. This will
  168. make it much more easy to maintain. The current setup passes the OAS validation.</p>
  169.  
  170. <p>More endpoints and objects will need to be added. But I also hope that people
  171. interested in the project will comment on the repo and make pull-requests.</p>
  172.  
  173. <h3>API server</h3>
  174.  
  175. <p>Most likely, this will be build on top of Dancer2, using a few plugins that deal
  176. with the correct handling of HTTP request headers in requests and responses.</p>
  177.  
  178. <h3>Web Server</h3>
  179.  
  180. <p>This will be a minimal viable product.</p>
  181.  
  182. <p>Themes used for this server should obtain their data through the REST api. And
  183. since it has a strict separation between data and presentation, actually anyone
  184. could build their own server that talks to the API ... when following the
  185. Specification.</p>
  186.  
  187. <p>The server will also include a 'page' that enable a user to manage their own
  188. settings and make payments.</p>
  189.  
  190. <h3>Improve Modules</h3>
  191.  
  192. <p>There are some modules I already published on CPAN, but need a little more after
  193. care. Some lack proper tests, some actually fail after changes in Dancer2.</p>
  194.  
  195. <p>I've written those modules, because I felt they were needed to make this entire
  196. project succeed. But the Perl Dancer developers have a good level of minimum
  197. requirements before being acknowledged and accepted as real Dancer2 plugins.</p>
  198.  
  199. <p>LWP::UserAgent::Caching, and it's dependancy HTTP::Caching, require a bit more
  200. development. So far, it's the only RFC compliant library.</p>
  201.  
  202. <p>The module will be needed in the CLI client. The REST api will only serve
  203. 'simple' (JSON) objects. And because off that, they are cacheable. But there was
  204. no UserAgent that was capable of handling HTTP requests or responses as it was
  205. defined by the RFC's.</p>
  206.  
  207. <h2>Inch-stones</h2>
  208.  
  209. <h3>Act-out-of-the-Box</h3>
  210.  
  211. <ul>
  212. <li>create script to add a conference and checkout wit GitHub</li>
  213. <li>save as a Vagrant Box</li>
  214. <li>write documentation for organisers and developers</li>
  215. </ul>
  216.  
  217. <h3>Open API Specification</h3>
  218.  
  219. <ul>
  220. <li>add specification for <code>user</code></li>
  221. <li>add specification for <code>talk</code></li>
  222. <li>add specification for <code>confernce</code></li>
  223. <li>add specification for <code>attendee</code></li>
  224. <li>add specification for <code>...</code></li>
  225. </ul>
  226.  
  227. <h3>Improving Modules</h3>
  228.  
  229. <ul>
  230. <li><p>Dancer2::Plugin::HTTP::AuthExtensible</p>
  231.  
  232. <p>probably quite some rewrite, but there is quite some willingness to support that
  233. work from the Dancer Core developers</p></li>
  234. <li><p>Dancer2::Plugin::HTTP::Caching</p>
  235.  
  236. <ul>
  237. <li>add tests and anything else that would enhance the kwalitee</li>
  238. </ul></li>
  239. <li>Dancer2::Plugin::HTTP::ConditionalRequest
  240. <ul>
  241. <li>add tests and anything else that would enhance the kwalitee</li>
  242. </ul></li>
  243. <li>Dancer2::Plugin::HTTP::ContentNegotiation
  244. <ul>
  245. <li>add tests and anything else that would enhance the kwalitee</li>
  246. </ul></li>
  247. <li>HTTP::Caching
  248. <ul>
  249. <li>Responses should have <code>Age</code> header</li>
  250. <li>successful <code>Delete</code> request should delete the cached data</li>
  251. </ul></li>
  252. </ul>
  253.  
  254. <h3>Moo Classes for business and transport objects and data access objects.</h3>
  255.  
  256. <p>This requires a little chat with some respectable Perl developers. But basically
  257. I want a true separation of the business object and how it has been retrieved or
  258. stored or updated.</p>
  259.  
  260. <p>This makes it possible to use the same object on the CLI and on the server, with
  261. the only difference that the former talks to the REST api and the latter to the
  262. database.</p>
  263.  
  264. <h3>API Server</h3>
  265.  
  266. <ul>
  267. <li>create simple route</li>
  268. <li>add authentication and authorization</li>
  269. <li>add more routes as described in the Open API specification</li>
  270. </ul>
  271.  
  272. <h3>CLI</h3>
  273.  
  274. <ul>
  275. <li><p>figure out how to easy build a CLI from a Swagger file</p>
  276.  
  277. <p>Tina Muller has done some tremendous work on that</p></li>
  278. <li><p>get it working for a <code>user</code> object</p></li>
  279. <li><p>add more command options</p>
  280.  
  281. <p>as the Specification is becoming more complete, and the API get more endpoints,
  282. the CLI will grow with it.</p></li>
  283. </ul>
  284.  
  285. <h3>Theme Based WEB Server</h3>
  286.  
  287. <p>This requires some more investigation, but I have very strong connection with
  288. some very reputable front end developer that knows how to build a front end.</p>
  289.  
  290. <p>But it basically comes down - when using Angular2 with Bootstrap 4 to just go
  291. along with the growth of the API.</p>
  292.  
  293. <h2>Project Schedule</h2>
  294.  
  295. <p>The project is quite big, but within the first few weeks, it will at least have
  296. made good progress on the first two deliverables.</p>
  297.  
  298. <p>The hard part will be to get an initial 'prototype' of the REST api working. I
  299. expect that to have finished within two months after having the Vagrant Box up
  300. and running.</p>
  301.  
  302. <p>The CLI will follow probably another month later.</p>
  303.  
  304. <p>From there on, it's a matter of adding more endpoints and command options as the
  305. Swagger files gets updated.</p>
  306.  
  307. <p>A first release of the web-server will probably follow four to six months after
  308. the CLI.</p>
  309.  
  310. <p>Since the size of the project, it would be about a year before the MVP will be
  311. ready.</p>
  312.  
  313. <h2>Completeness Criteria</h2>
  314.  
  315. <p>Well, a minimal viable product, a working theme-based website. It should at
  316. least cover 80% of the common user stories for a general conference attendee.
  317. This includes a personal web-page to edit and manage settings.</p>
  318.  
  319. <p>For the other admin tasks, I would stick to a proper CLI for now.</p>
  320.  
  321. <h2>Bio</h2>
  322.  
  323. <p>I have initially started work on this project some years ago and am very eager
  324. to continue work on this.</p>
  325.  
  326. <p>I've done a lot of research on REST api's and given some presentations on that.</p>
  327.  
  328. <p>In the last three years I've also organised three Perl Workshops in the
  329. Netherlands - and was the main organiser of The Perl Conference in Amsterdam.</p>
  330.  
  331. <p>This has given me a lot of insight in how Act has been designed and what the
  332. difficulties are with the current legacy version.</p>
  333.  
  334. <p>A year ago I did give a presentation during the Perl Dancer conference. This
  335. was a summary of my work done so far and how all the puzzle pieces would fit
  336. together to build Act-Voyager.</p>
  337.  
  338. <p>Compared to three years ago, I've grown much more in experience as a Perl
  339. Developer. This new application is much better than the previous and based on
  340. personal experience working on on the project intermittently.</p>
  341.  
  342. <p>While organising TPCiA, I was facing quite some difficulties that caused delay
  343. in further development of Act Voyager. Now that has finished, time has come
  344. available.</p>
  345. ]]>
  346.    </content>
  347. </entry>
  348.  
  349. <entry>
  350.    <title>Grant Proposal: Rakudo Perl 6 performance analysis tooling</title>
  351.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/09/grant-proposal-rakudo-perl-6-p.html" />
  352.    <id>tag:news.perlfoundation.org,2017://18.3911</id>
  353.  
  354.    <published>2017-09-19T12:11:33Z</published>
  355.    <updated>2017-09-20T01:10:25Z</updated>
  356.  
  357.    <summary>The Grants Committee has received the following grant proposal for the September/October round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal. Review the proposal below and please comment here by September 26th, 2017. The Committee members will start the voting process following that and the conclusion will be announced the first week of October. Rakudo Perl 6 performance analysis tooling Name Timo Paulssen Amount Requested: 7,500 USD Synopsis Rakudo on...</summary>
  358.    <author>
  359.        <name>Coke</name>
  360.        
  361.    </author>
  362.    
  363.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  364.    
  365.    
  366.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  367.        <![CDATA[<p>The Grants Committee has received the following grant proposal for the September/October round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.</p>
  368. <p>Review the proposal below and please comment here by September 26th, 2017. The Committee members will start the voting process following that and the conclusion will be announced the first week of October.</p>
  369. <h2>Rakudo Perl 6 performance analysis tooling</h2>
  370. <h2>Name</h2>
  371. <p class="Standard">Timo Paulssen</p>
  372. <h2>Amount Requested:</h2>
  373. <p class="Standard">7,500 USD</p>
  374. <h2>Synopsis</h2>
  375. <p class="Standard">Rakudo on MoarVM already comes with two kinds of profilers and multiple kinds of internal logs. There's also a way to get coverage analysis from any given program or set of programs.</p>
  376. <p class="Standard">The focus on internals that these tools have in common can make it quite daunting for someone not involved in core development to use these tools and to make sense of the data gathered.</p>
  377. <p class="Standard">I will create a new GUI (browser-based) for the instrumented profiler (which takes timings of functions and counts allocations) and the heap snapshot profiler (which records what objects are alive and how they are interconnected) and make invoking the profiling modes simpler.</p>]]>
  378.        <![CDATA[<style type="text/css"><!--
  379. p.p1 {margin: 18.0px 0.0px 6.0px 0.0px; font: 16.0px Arial}
  380. p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; text-indent: 36.0px; font: 11.0px Arial}
  381. p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Arial}
  382. p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica; min-height: 13.0px}
  383. li.li3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Arial}
  384. span.s1 {font: 11.0px 'Courier New'}
  385. span.Apple-tab-span {white-space:pre}
  386. ul.ul1 {list-style-type: disc}
  387. --></style>
  388. <p class="p1"></p>
  389. <p class="p3">Even though there already is a browser-based UI for the instrumented profiler, it quickly becomes unusable as program sizes increase.</p>
  390. <p class="p4"></p>
  391. <p class="p3">Another shortcoming of the instrumented profiler is that it doesn't work when multiple threads are involved in the user's program.</p>
  392. <p class="p1">Benefits to the Perl Community</p>
  393. <p class="p3">Rewriting the Profiler UI for the instrumented profiler to understand multiple threads and our multithreaded primitives like <span class="s1">react</span>/<span class="s1">whenever</span> will allow both our users and our core developers to figure out the performance of multithreaded programs more easily and precisely than possible so far. On top of that, basing the UI on the SQL output from our profiler rather than the JSON output we had before will improve the responsiveness and memory use of the profiler drastically, even making it possible to get a profile of compiling the Rakudo Perl 6 Core Setting, a single Perl 6 source file of almost 60k lines.</p>
  394. <p class="p4"></p>
  395. <p class="p3">The Heap Snapshot Analyzer allows users to figure out what objects take up the most memory, how the distribution of object counts and sizes changes over the runtime of a program, and why any given object is being kept from being garbage collected. Giving our users a UI for the Heap Snapshot Analyzer will allow them to more easily navigate between objects, get graphs of queries, and to have the information more organized than the current shell-like interactive UI.</p>
  396. <p class="p4"></p>
  397. <p class="p3">Another task I want to complete as part of this grant is to have much more end-user oriented documentation for how to use the profilers effectively, including a few example programs.</p>
  398. <p class="p1">Deliverables and Inchstones</p>
  399. <ul class="ul1">
  400. <li class="li3">A blog with progress reports.</li>
  401. </ul>
  402. <ul class="ul1">
  403. <li class="li3">A web frontend for the heap snapshot analyzer</li>
  404. <ul class="ul1">
  405. <li class="li3">Refactor how the analyzer gives data to the shell</li>
  406. <li class="li3">Draft a concept for how the user will interact with the analyzer</li>
  407. <li class="li3">UI for Per-Snapshot Summary: total heap size, total object count, …</li>
  408. <li class="li3">UI for Top Lists for objects sorted by count or memory usage</li>
  409. <li class="li3">UI for Details of individual objects: size, pointers to other objects</li>
  410. <li class="li3">UI for the shortest path that keeps an object alive</li>
  411. <li class="li3">UI for Across-Snapshot comparisons: object counts over time, …</li>
  412. <li class="li3">UI for Heap Exploration: Find all objects of a specific type, …</li>
  413. <li class="li3">Functionality for finding paths from one object to all roots that reach it.</li>
  414. <li class="li3">UI for whole parts of the network, like multiple paths to a single object.</li>
  415. <li class="li3">If an instrumented profile is also loaded
  416. <ul>
  417. <li class="li3">Links from types to routines allocating the type</li>
  418. <li class="li3"><span>Links from frames (closures for example) to the call graph</span></li>
  419. <li class="li3"><span>A new web frontend for the instrumented profiler</span></li>
  420. </ul>
  421. </li>
  422. <li class="li3">Communication between the web frontend and a backend for data queries</li>
  423. <li class="li3">Overview page with at-a-glance metrics for quick feedback for code changes</li>
  424. <li class="li3">Call Graph explorer</li>
  425. <ul class="ul1">
  426. <li class="li3">Robust forwards/backwards navigation</li>
  427. <li class="li3">Icicle Graph with acceptable performance</li>
  428. <li class="li3">Search function for Call Graph Explorer</li>
  429. </ul>
  430. <li class="li3">Routines List</li>
  431. <ul class="ul1">
  432. <li class="li3">Sortable by every sensible column</li>
  433. <li class="li3">Groupable by filename</li>
  434. <li class="li3">Expand a routine to see its callers or callees</li>
  435. <li class="li3">… with links directly to the call graph explorer</li>
  436. </ul>
  437. <li class="li3">Allocation explorer</li>
  438. <ul class="ul1">
  439. <li class="li3">Show what routines allocate a given class</li>
  440. <li class="li3">Expand a routine to see which of its callers is responsible for what amount of allocations</li>
  441. <li class="li3">Link to the heap snapshot explorer for any given type</li>
  442. </ul>
  443. <li class="li3">OSR and Deopt explorer</li>
  444. <ul class="ul1">
  445. <li class="li3">Show routines that have been OSR'd (On-Stack-Replaced by the optimizer)</li>
  446. <li class="li3">Again, allowing to expand routines to see their callers</li>
  447. <li class="li3">Expose a lot more information about deopts - which types are involved, for example</li>
  448. <li class="li3">Explain in clear terms what OSR and Deopt mean</li>
  449. </ul>
  450. <li class="li3">○<span class="Apple-tab-span"> </span>GC explorer</li>
  451. <ul class="ul1">
  452. <li class="li3">Figure out a good way to present information from multi-threaded programs here</li>
  453. <li class="li3">Expose time-of-collection info to profiler</li>
  454. <li class="li3">Show the time and duration of collections, how much data was kept, promoted to the old generation, or deleted, and whether the collection was a minor or major one</li>
  455. <li class="li3">Filterable to show major collections only</li>
  456. <li class="li3">Compactly graph collection times and kept/promoted/deleted amounts</li>
  457. <li class="li3">User-facing documentation on using the profiling facilities and interpreting the data</li>
  458. <li class="li3">Build a bunch of examples that show different performance issues and describe how to figure them out</li>
  459. </ul>
  460. <li class="li3">Using an unoptimized built-in</li>
  461. <li class="li3">Accidentally keeping objects alive</li>
  462. <li class="li3">Code using native ints but inadvertently causing lots of boxing</li>
  463. <li class="li3">Using mixin on a hot path causing lots of deopt</li>
  464. </ul>
  465. </ul>
  466. <p class="p1">Project details and a proposed Schedule</p>
  467. <p class="p3">I can start working on this grant immediately. Over the last weeks I've implemented a new data format for the Heap Snapshot Profiler itself, and started improving the Heap Analyzer's Shell and Model in preparation for a new Frontend.</p>
  468. <p class="p3"></p>
  469. <p class="p3">This grant is likely to take at least 160 hours, which at 40 euros per hour is about 7,500 dollars. Therefore, I'd like to request 7,500 USD for this work. Any left-over hours at the end of the grant can easily be spent improving the whole result, though typically a project will take more time than estimated, not less.</p>
  470. <p class="p3"></p>
  471. <p class="p3">I'm planning to spend at least 15 hours per week on this, with a few weeks of break near the end of January in order to move apartments.</p>
  472. <p class="p1">Completeness Criteria</p>
  473. <p class="p3">There will be changes to MoarVM to expose more information to profiler output. In the case of the Instrumenting Profiler, there will be minor changes to NQP to transfer the extra information into the output formats.</p>
  474. <p class="p3">Most of the work will live in a new repository, with a sizable chunk living in the existing Heap Analyzer in jnthn's github repository.</p>
  475. <p class="p3">At the end of the project there will be a Perl 6 program that you can use to run your code with profilers enabled and then introspect all the information. It will be interacted with using a web browser.</p>
  476. <p class="p1">Bio</p>
  477. <p class="p3">I came to the Perl 6 project in March 2012 after having made a few minor contributions to PyPy. Initially I worked on error messages, then Rakudo's Optimizer, Rakudo's Grammar, and later also contributed bits and pieces to Parrot. When the Rakudo JVM Port began, I contributed little pieces to that, and finally when MoarVM became public I concentrated my efforts on that. I also participate in discussion and support on the IRC and on the perl6-users mailing list.</p>
  478. <p class="p3"></p>
  479. <p class="p3">In total, I've added 779 commits to Moarvm, 318 to NQP, and 359 to Rakudo, excluding commits in branches that have not been merged. Those commits range from single-line patches to bigger chunks of work.</p>
  480. <p class="p3"></p>
  481. <p class="p3">I've also contributed pieces to the heap snapshot analyzer, helped fellow contributor MasterDuke17 implement an SQL output mode for the profiler, and in general spent a sizable portion of my time and energy on optimization-related work.</p>
  482. <p class="p3"></p>
  483. <p class="p3">I also just merged a new output format and API for the heap snapshot profiler.</p>]]>
  484.    </content>
  485. </entry>
  486.  
  487. <entry>
  488.    <title>Test2 Documentation Grant Progress Report</title>
  489.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/09/test2-documentation-grant-prog-2.html" />
  490.    <id>tag:news.perlfoundation.org,2017://18.3910</id>
  491.  
  492.    <published>2017-09-13T09:19:08Z</published>
  493.    <updated>2017-09-13T09:22:08Z</updated>
  494.  
  495.    <summary>In the last two months Chad has been working mostly on the Test2 code than in the documentation itself. This way he can document the final version of the API and do not need to, later, rewrite the docs. This work included the new event system. Chad released the stable version of Test2 two days ago, and therefore he is now resuming his work on the documentation....</summary>
  496.    <author>
  497.        <name>Alberto Simões</name>
  498.        <uri>http://blogs.perl.org/users/alberto_simoes/</uri>
  499.    </author>
  500.    
  501.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  502.    
  503.    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
  504.    
  505.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  506.        <![CDATA[<p>In the last two months Chad has been working mostly on the Test2 code than in the documentation itself. This way he can document the final version of the API
  507. and do not need to, later, rewrite the docs. This work included the new event system. Chad released the stable version of Test2 two days ago, and therefore
  508. he is now resuming his work on the documentation.</p>
  509. ]]>
  510.        
  511.    </content>
  512. </entry>
  513.  
  514. <entry>
  515.    <title>Maintaining the Perl 5 Core (Dave Mitchell): Grant Report for August 2017</title>
  516.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/09/maintaining-the-perl-5-core-da-1.html" />
  517.    <id>tag:news.perlfoundation.org,2017://18.3909</id>
  518.  
  519.    <published>2017-09-12T03:01:00Z</published>
  520.    <updated>2017-09-12T03:10:45Z</updated>
  521.  
  522.    <summary>This is a monthly report by Dave Mitchell on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible. I didn&apos;t do much TPF work last month; I was mainly instead doing work funded by Booking.com. What time I did spend was mainly fixing a few &apos;blead breaks perl&apos; tickets. SUMMARY: 1:34 RT #131938 BBC Imager-1.005.tar.gz 2:00 RT #131942 BBC Glib-EV-2.02.tar.gz 1:00 RT #131953 BBC Panda-Lib-1.3.2.tar.gz 2:45 process p5p mailbox ------ 7:19...</summary>
  523.    <author>
  524.        <name>Makoto Nozaki</name>
  525.        <uri>http://blogs.perl.org/users/makoto_nozaki/</uri>
  526.    </author>
  527.    
  528.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  529.    
  530.        <category term="Perl 5 Development" scheme="http://www.sixapart.com/ns/types#category" />
  531.    
  532.    
  533.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  534.        <![CDATA[<p>This is a monthly report by Dave Mitchell on his grant under <a href="http://www.perlfoundation.org/perl_5_core_maintenance_fund">Perl 5 Core Maintenance Fund</a>. We thank the TPF sponsors to make this grant possible.</p>
  535.  
  536. <pre>I didn't do much TPF work last month; I was mainly instead doing work
  537. funded by Booking.com.
  538.  
  539. What time I did spend was mainly fixing a few 'blead breaks perl' tickets.
  540.  
  541. SUMMARY:
  542.      1:34 RT #131938 BBC Imager-1.005.tar.gz
  543.      2:00 RT #131942 BBC Glib-EV-2.02.tar.gz
  544.      1:00 RT #131953 BBC Panda-Lib-1.3.2.tar.gz
  545.      2:45 process p5p mailbox
  546.    ------
  547.      7:19 TOTAL (HH::MM)</pre>
  548. ]]>
  549.        
  550.    </content>
  551. </entry>
  552.  
  553. <entry>
  554.    <title>Maintaining Perl 5 (Tony Cook): Grant Report for August 2017</title>
  555.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/09/maintaining-perl-5-tony-cook-g-2.html" />
  556.    <id>tag:news.perlfoundation.org,2017://18.3908</id>
  557.  
  558.    <published>2017-09-12T02:00:00Z</published>
  559.    <updated>2017-09-12T03:01:17Z</updated>
  560.  
  561.    <summary>This is a monthly report by Tony Cook on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible....</summary>
  562.    <author>
  563.        <name>Makoto Nozaki</name>
  564.        <uri>http://blogs.perl.org/users/makoto_nozaki/</uri>
  565.    </author>
  566.    
  567.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  568.    
  569.        <category term="Perl 5 Development" scheme="http://www.sixapart.com/ns/types#category" />
  570.    
  571.    
  572.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  573.        <![CDATA[<p>This is a monthly report by Tony Cook on his grant under <a href="http://www.perlfoundation.org/perl_5_core_maintenance_fund">Perl 5 Core Maintenance Fund</a>. We thank the TPF sponsors to make this grant possible.</p>
  574. ]]>
  575.        <![CDATA[<pre>Approximately 42 tickets were reviewed, and 9 patches were
  576. applied
  577.  
  578. [Hours]         [Activity]
  579.  0.53          #124368 retesting, apply to blead
  580.  4.13          #127663 testing, fix issues on Win32, more testing
  581.                #127663 more testing, push smoke branch
  582.  0.57          #128263 retest, apply to blead
  583.  1.08          #129990 testing, comment
  584.  0.60          #130701 (sec) review discussion, debugging, comment (also
  585.                incorrectly comment on #130651)
  586.  0.95          #130909 (sec) testing, research, comment
  587. 12.76          #131065 (sec) work on a patch, locale API discussion with
  588.                khw
  589.                #131065 (sec) work on a patch, some testing
  590.                #131065 (sec) testing, comment
  591.                #131065 (sec) research, more work on patch
  592.                #131065 (sec) more tests, fixes
  593.                #131065 (sec) more tests, inegrate fix for more testing
  594.                #131065 (sec) more testing, comment with WIP patch
  595.  0.43          #131260 (sec) review discussion, comment
  596.  0.87          #131537 review, make public, comment
  597.  0.92          #131562 debugging, make public, work up a fix, testing,
  598.                comment with patch
  599.  0.40          #131568 make public, research, comment
  600.  0.23          #131598 (sec) comment
  601.                #131598 (sec) brief comment
  602.  0.23          #131606 review discussion, make public, brief comment
  603.  0.87          #131618 (sec) testing, comment with patch
  604.  0.60          #131646 testing, apply to blead, add to 5.26 maint votes
  605.  2.52          #131665 (sec) research, comment
  606.                #131665 (sec) work on co-ordinated release
  607.                #131665 (sec) request CVE ID
  608.                #131665, #131582 (sec) note CVE IDs
  609.                #131665 (sec) research, comment
  610.  3.91          #131683 review patch and comment
  611.                #131683 testing
  612.                #131683 debugging, comment
  613.  2.77          #131725 debugging, work on a patch
  614.                #131725 debugging, work on a patch, comment with patch
  615.                #131725 retesting, apply to blead
  616.  2.17          #131746 try a couple of different approaches, comment with
  617.                patch
  618.  3.35          #131786 research + irc locale api discussion with khw
  619.                #131786 work on patch, testing, workaround -flto issues
  620.                #131786 comment with patch
  621.                #131786 testing, apply to blead
  622.  0.63          #131809 review, testing, apply to blead
  623.  2.31          #131836 debug, work up a fix, make public and comment with
  624.                patch
  625.                #131836 re-test and apply to blead
  626.  5.63          #131844 (sec) work on reproducing, reproduce, debugging
  627.                #131844 (sec) work up a fix, work on tests, fixes for
  628.                other issues found in the process, testing
  629.                #131844 (sec) track down a test failure to a fragile test
  630.                (from #131646), comment with patch
  631.  0.05          #131861 (sec) briefly comment
  632.  1.40          #131866 (sec) testing, minify, comment
  633.                #131866 make public, link to meta ticket
  634.  4.42          #131878 (sec) comment
  635.                #131878 (sec) research, work on a patch
  636.                #131878 (sec) debugging, research
  637.  2.12          #131893 debugging, testing, comment with patch
  638.  2.07          #131894 debugging, comment with patch
  639.  3.16          #131895 work on a patch
  640.                #131895 more work on patch, testing
  641.                #131895 fixes, comment with patch
  642.  0.57          #131904/131793 review, testing, apply fix to blead
  643.  0.38          #131931 (sec) minimise and comment
  644.  1.52          #131938 test builds with the #131975 patch, report CPAN
  645.                bugs
  646.  2.35          #131949 (sec) comment with patch
  647.                #131949 retest, apply to blead
  648.  1.28          #131954 (sec) reproduce, minimize, debugging, comment with
  649.                patch
  650.                #131954 (sec) review discussion
  651.  2.23          #131955 (sec) briefly comment
  652.                #131955 debugging, make public, comment
  653.  2.16          testing, polish, post as perlbug #131975
  654.                #131975 research, comment
  655.                #131975 retest, apply to blead
  656.  1.42          #131984 review, comment
  657.                #131984 try to break it
  658.  0.30          #131987 testing, comment
  659.  2.55          more maint votes, apply some patches
  660.  1.33          review maint votes, win32/cygwin encoding discussion with
  661.                khw
  662.  0.25          review smartmatch discussion
  663.  0.33          work on reporting xsub names on stack not extended panics
  664. ======
  665. 78.35 hours total</pre>
  666. ]]>
  667.    </content>
  668. </entry>
  669.  
  670. <entry>
  671.    <title>Call for Grant Proposals (September 2017 Round)</title>
  672.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/09/call-for-grant-proposals-septe-1.html" />
  673.    <id>tag:news.perlfoundation.org,2017://18.3907</id>
  674.  
  675.    <published>2017-09-09T16:17:01Z</published>
  676.    <updated>2017-09-20T12:17:15Z</updated>
  677.  
  678.    <summary>The Grants Committee is accepting grant proposals all the time. We evaluate them every two months and another evaluation period is upon us....</summary>
  679.    <author>
  680.        <name>Coke</name>
  681.        
  682.    </author>
  683.    
  684.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  685.    
  686.    
  687.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  688.        <![CDATA[<p>The Grants Committee is accepting grant proposals all the time.
  689. We evaluate them every two months and another evaluation period is upon us.</p>
  690. ]]>
  691.        <![CDATA[<p>If you have an idea for doing some Perl work that will benefit the Perl
  692. community, consider submitting a grant application. <strong>The application deadline
  693. for this round is 23:59 September 16th UTC.</strong>
  694. We will publish the received applications, get community
  695. feedback through September 23rd, and conclude acceptance by September 30th.</p>
  696.  
  697. <p>To apply, please read <a href="http://www.perlfoundation.org/how_to_write_a_proposal">How
  698. to Write a Proposal</a>. <a href="http://www.perlfoundation.org/rules_of_operation">Rules of
  699. Operation</a> and <a href="http://www.perlfoundation.org/running_grants">Running Grants List</a>
  700. will also help you understand how the grant process works.
  701. We also got some <a href="http://www.perlfoundation.org/grant_ideas">grant ideas</a> from
  702. the community.</p>
  703.  
  704. <p>We will confirm the receipt of application by September 17th.</p>
  705.  
  706. <p>If you have further questions, please contact me at tpf-grants-secretary at
  707. perl-foundation.org.</p>
  708. ]]>
  709.    </content>
  710. </entry>
  711.  
  712. <entry>
  713.    <title>Maintaining the Perl 5 Core (Dave Mitchell): Grant Report for June 2017</title>
  714.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/09/maintaining-the-perl-5-core-da.html" />
  715.    <id>tag:news.perlfoundation.org,2017://18.3906</id>
  716.  
  717.    <published>2017-09-06T00:00:00Z</published>
  718.    <updated>2017-09-06T03:14:42Z</updated>
  719.  
  720.    <summary>This is a monthly report by Dave Mitchell on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible. I spent June mainly: * finishing off the heavy reworking of perl&apos;s internal sprintf implementation. This has now been merged into blead. It contains about 100 commits which fixes bugs, audits the code for possible integer overflows, makes the code simpler - and simpler to understand - and improves performance by around 15%....</summary>
  721.    <author>
  722.        <name>Makoto Nozaki</name>
  723.        <uri>http://blogs.perl.org/users/makoto_nozaki/</uri>
  724.    </author>
  725.    
  726.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  727.    
  728.        <category term="Perl 5 Development" scheme="http://www.sixapart.com/ns/types#category" />
  729.    
  730.    
  731.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  732.        <![CDATA[<p>This is a monthly report by Dave Mitchell on his grant under <a href="http://www.perlfoundation.org/perl_5_core_maintenance_fund">Perl 5 Core Maintenance Fund</a>. We thank the TPF sponsors to make this grant possible.</p>
  733.  
  734. <pre>I spent June mainly:
  735.  
  736. * finishing off the heavy reworking of perl's internal sprintf implementation.
  737.  This has now been merged into blead. It  contains about 100 commits which
  738.  fixes bugs, audits the code for possible integer overflows, makes the
  739.  code simpler - and simpler to understand - and improves performance by
  740.  around 15%.
  741.  
  742. * adding a proper test suite for Porting/bench.pl, and fixing the utility
  743.  up based on the test results. For example at some point the
  744.  --bisect option broke, but this was never noticed due to no testing.
  745.  
  746. * adding a DEBUGGING-build mechanism to detect some classes of
  747.  bug where pp functions fail to extend the stack before pushing return
  748.  values. Basically the runops loop sets a high water mark variable before
  749.  calling the pp function; EXTEND() and similar update that mark, and on
  750.  return from the pp function, we check whether PL_stack_sp is > the mark
  751.  and panic if so. This has allowed me to detect and fix several such bugs
  752.  in core.
  753.  
  754. Other than that I worked on a few miscellaneous RT tickets.
  755. </pre>
  756. ]]>
  757.        <![CDATA[<pre>SUMMARY:
  758.     15:41 RT #131260 sprintf implementation
  759.      0:37 RT #131555 heap-buffer-overflow
  760.      1:57 RT #131575 s// on utf8 string occasionally crashes
  761.      0:51 RT #131577 heap-use-after-free (READ of size 1) in S_reghop4()
  762.     21:25 add better tests for Porting/bench.pl
  763.      4:21 apply accumulated post-5.26 fixes
  764.      4:29 fix 32-bit builds
  765.     14:17 fix stack extend overruns
  766.      4:23 process p5p mailbox
  767.      2:00 sort out 5.27.1 version numbers
  768.      1:04 update perldelta
  769.    ------
  770.     71:05 TOTAL (HH::MM)
  771.  
  772. 199.1 weeks
  773. 2800.0 total hours
  774.  14.1 average hours per week
  775. </pre>
  776. ]]>
  777.    </content>
  778. </entry>
  779.  
  780. <entry>
  781.    <title>Maintaining Perl 5 (Tony Cook): Grant Report for July 2017</title>
  782.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/09/maintaining-perl-5-tony-cook-g-1.html" />
  783.    <id>tag:news.perlfoundation.org,2017://18.3905</id>
  784.  
  785.    <published>2017-09-06T00:00:00Z</published>
  786.    <updated>2017-09-06T03:07:18Z</updated>
  787.  
  788.    <summary>This is a monthly report by Tony Cook on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible....</summary>
  789.    <author>
  790.        <name>Makoto Nozaki</name>
  791.        <uri>http://blogs.perl.org/users/makoto_nozaki/</uri>
  792.    </author>
  793.    
  794.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  795.    
  796.        <category term="Perl 5 Development" scheme="http://www.sixapart.com/ns/types#category" />
  797.    
  798.    
  799.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  800.        <![CDATA[<p>This is a monthly report by Tony Cook on his grant under <a href="http://www.perlfoundation.org/perl_5_core_maintenance_fund">Perl 5 Core Maintenance Fund</a>. We thank the TPF sponsors to make this grant possible.</p>
  801. ]]>
  802.        <![CDATA[<pre>Approximately 38 tickets were reviewed, and 3 patches were
  803. applied
  804.  
  805. [Hours]         [Activity]
  806.  0.12          #p5p POSIX 2008 locale api discussion with khw
  807.  4.00          #124368 work up a decent test, find a difference between
  808.                threaded/non-threaded, work up a patch, testing
  809.                #124368 more testing, re-work patch
  810.                #124368 cleanup, testing, comment with patch
  811.  8.81          #127663 work on non-*at() function alternative checks
  812.                #127663 more non-*at() function
  813.                #127663 more non-*at() function code, need to write path
  814.                manip code
  815.                #127663 no at-function chdir handling, testing
  816.                #127663 debugging
  817.                #127663 debugging
  818.                #127663 handling change of dir
  819.  0.17          #130651 (sec) review
  820.  0.63          #130841 (sec) review discussion and comment
  821.  0.97          #130917 (sec) review discussion, testing, comment
  822.  4.68          #131065 (sec) review discussion, research, comment
  823.                #131065 (sec) research
  824.                #131065 (sec) work on a patch
  825.  0.77          #131546 testing, updates, apply to blead
  826.  0.32          #131559 review cpan ticket discussion
  827.  3.78          #131570 work on a simpler repro case
  828.                #131570 try some more, testing, apply to blead
  829.  1.43          #131588 make public, repackage OP’s patch with a test
  830.  1.15          #131597 testing, apply to blead
  831.  0.13          #131598 (sec) review discussion
  832.  4.03          #131618 (sec) work on a patch
  833.                #131618 (sec) work on a patch
  834.                #131618 (sec) testing, debugging
  835.  1.30          #131648 (sec) debugging
  836.  6.17          #131665 (sec) write a test, testing, research, more
  837.                testing
  838.                #131665 (sec) comment with patch
  839.                #131665 (sec) add a text version, research, review
  840.                supplied patch, comment
  841.                #131665 (sec) review patch, research, testing
  842.                #131665 (sec) comment with alt patch
  843.  0.83          #131685 read discussion and comment
  844.  2.68          #131690 produce a patch and comment
  845.                #131690 research, reject ticket
  846.  0.18          #131697 comment
  847.  2.72          #131746 try to reproduce
  848.                #131746 fail to reproduce, research and comment
  849.  4.97          #131777 debugging, work on patch
  850.                #131777 more work on patch, debugging error recovery
  851.                #131777 more work on error recovery, update tests,
  852.                perldiag, comment with patch
  853.                #131777 fix a typo
  854.  0.12          #131787, #131788 reject some security tickets (not perl5
  855.                core)
  856.  1.98          #131793 (sec) debugging
  857.                #131793 make public, work on a fix, comment with patch
  858.  1.47          cygwin64 test failures: debugging
  859.  0.08          cygwin64 test failures: try a partial fix
  860.  0.45          cygwin64: write up a full commit, testing
  861.  0.20          locale api research after discussion with khw
  862.  1.87          more review perlunicode, perlunifaq, comment
  863.  1.30          more utf8 stuff, debugging cygwin64 issues too
  864.  2.15          more utf8 stuff, editing for patch, comment with patch
  865.  0.15          review list discussion (hash ties)
  866.  0.70          review security queue
  867.  1.33          utf8 docs: more fixups, apply to blead, comment
  868.  0.30          utf8.pm function naming: read discussion, review
  869.                perlunicode
  870.  0.90          utf8.pm: more research, briefly comment
  871.  0.40          utf8: some fixes
  872.  2.18          utf8::* discussion: work on a better patch, review
  873.                perluniintro
  874.  1.20          utf8::is_utf8() discussion – research, comment
  875. ======
  876. 66.62 hours total
  877. </pre>
  878. ]]>
  879.    </content>
  880. </entry>
  881.  
  882. <entry>
  883.    <title>Grant Report : Robust Perl 6 Unicode Support - September 2017</title>
  884.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/09/grant-report-robust-perl-6-uni-3.html" />
  885.    <id>tag:news.perlfoundation.org,2017://18.3904</id>
  886.  
  887.    <published>2017-09-02T14:03:02Z</published>
  888.    <updated>2017-09-02T14:13:46Z</updated>
  889.  
  890.    <summary>In her excellent overview of Unicode presented at YAPC-EU, Samantha gives us her take on Perl6 Unicode: “Torture the implementers for the sake of the users.” Perl6 Unicode users will certainly have some wonderfully easy access to deep Unicode magic thanks to her work. But reading her blog, I get a distinct impression of delight, rather than torture... In her complete blog post, she describes, among other details: Implementation of the Knuth-Morris-Pratt algorithm for native Unicode string searches, along with...</summary>
  891.    <author>
  892.        <name>Mark A Jensen</name>
  893.        
  894.    </author>
  895.    
  896.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  897.    
  898.        <category term="Perl 6 Development" scheme="http://www.sixapart.com/ns/types#category" />
  899.    
  900.    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
  901.    <category term="perl6" label="perl6" scheme="http://www.sixapart.com/ns/types#tag" />
  902.    <category term="unicode" label="unicode" scheme="http://www.sixapart.com/ns/types#tag" />
  903.    
  904.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  905.        <![CDATA[<p>In her excellent
  906. <a href="https://cry.nu/YAPC-EU-2017/High-End-Unicode/#/">overview of Unicode</a>
  907. presented at <a href="http://act.perlconference.org/tpc-2017-amsterdam/talk/7087">YAPC-EU</a>, Samantha gives us her take on Perl6 Unicode:</p>
  908.  
  909. <p>“<em>Torture the implementers for the sake of the users.</em>”</p>
  910.  
  911. <p>Perl6 Unicode users will certainly have some wonderfully easy access
  912. to deep Unicode magic thanks to her work. But reading her blog, I get
  913. a distinct impression of delight, rather than torture...</p>
  914.  
  915. <p>In <a href="https://cry.nu/perl6/grant-status-update-4/">her complete blog post</a>,
  916. she describes, among other details:</p>
  917.  
  918. <ul>
  919. <li><p>Implementation of the <a href="https://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm">Knuth-Morris-Pratt algorithm</a> for native Unicode string searches, along with grapheme caching, to improve search times over the current flat string implementation.</p></li>
  920. <li><p>Further documentation work and helpful scripts.</p></li>
  921. </ul>
  922.  
  923. <p>She is down to final documentation activities and merges.</p>
  924.  
  925. <p>Samantha also notes: "If other Perl 6 devs or users of the community
  926. want to make any requests for Unicode or string related documentation,
  927. you can send me an email or send me a message on freenode IRC (nick
  928. <em>samcv</em>)."</p>
  929.  
  930. <p>MAJ</p>
  931. ]]>
  932.        
  933.    </content>
  934. </entry>
  935.  
  936. <entry>
  937.    <title>July 2017 Grant Votes</title>
  938.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/08/july-2017-grant-votes.html" />
  939.    <id>tag:news.perlfoundation.org,2017://18.3903</id>
  940.  
  941.    <published>2017-08-29T20:21:45Z</published>
  942.    <updated>2017-09-09T16:08:43Z</updated>
  943.  
  944.    <summary>The Grants Committee has concluded the voting of the July 2017 round. There was one proposal in this round....</summary>
  945.    <author>
  946.        <name>Coke</name>
  947.        
  948.    </author>
  949.    
  950.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  951.    
  952.    
  953.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  954.        <![CDATA[<p>The Grants Committee has concluded the voting of the July 2017 round.</p>
  955.  
  956. <p>There was one proposal in this round.</p>
  957. ]]>
  958.        <![CDATA[<h1>Complete YAML::PP</h1>
  959.  
  960. <p><a href="http://news.perlfoundation.org/2017/08/grant-proposal-complete-yamlpp.html">Complete YAML::PP (2,500 USD)</a></p>
  961.  
  962. <p>Voting results: 8 Yes votes, and 1 abstention with a score of 40 (8*5+0)</p>
  963.  
  964. <p>This grant is approved, and will be funded.</p>
  965.  
  966. <p>Tina's previous work in this area and enthusiasm were mentioned.</p>
  967.  
  968. <h1>Next Round </h1>
  969.  
  970. <p>Our next round will be in September; we've been running a little late in previous rounds this year, but this
  971. should see us back on track. If you have a proposal to submit, look for the announcement in the first week of September.</p>
  972.  
  973. <p>You can <a href="http://www.perlfoundation.org/how_to_write_a_proposal" title="submit proposals">submit proposals</a> now.
  974. If you want to help funding, please visit <a href="https://donate.perlfoundation.org/" title="our donations page">our donations page</a>
  975. We appreciate all the donors which made the grant
  976. program possible. Also see the <a href="http://www.perlfoundation.org/press_releases" title="press releases">press releases</a> for
  977. the recent major donations.</p>
  978. ]]>
  979.    </content>
  980. </entry>
  981.  
  982. <entry>
  983.    <title>Unicode membership</title>
  984.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/08/unicode-membership.html" />
  985.    <id>tag:news.perlfoundation.org,2017://18.3902</id>
  986.  
  987.    <published>2017-08-22T22:34:57Z</published>
  988.    <updated>2017-08-22T22:54:29Z</updated>
  989.  
  990.    <summary>I&apos;m pleased to report that The Perl Foundation has renewed its associate level membership in the Unicode Consortium. This membership allows Perl core developers to be on the &quot;inside track&quot; when it comes to the future of Unicode standards. It also gives them access to documents and people that have made the development of Unicode support in Perl easier. The Perl Foundation is pleased to be able to make this resource available through the generosity of all of our sponsors....</summary>
  991.    <author>
  992.        <name>Dan Wright</name>
  993.        <uri>http://www.dwright.org</uri>
  994.    </author>
  995.    
  996.        <category term="Perl 5 Development" scheme="http://www.sixapart.com/ns/types#category" />
  997.    
  998.        <category term="Perl 6 Development" scheme="http://www.sixapart.com/ns/types#category" />
  999.    
  1000.        <category term="Perl Foundation" scheme="http://www.sixapart.com/ns/types#category" />
  1001.    
  1002.    <category term="unicode" label="unicode" scheme="http://www.sixapart.com/ns/types#tag" />
  1003.    
  1004.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  1005.        <![CDATA[<p>I'm pleased to report that The Perl Foundation has renewed its associate level membership in the <a href="http://unicode.org/consortium/consort.html">Unicode Consortium</a>.   </p>
  1006.  
  1007. <p>This membership allows Perl core developers to be on the "inside track" when it comes to the future of Unicode standards.   It also gives them access to documents and people that have made the development of Unicode support in Perl easier.</p>
  1008.  
  1009. <p>The Perl Foundation is pleased to be able to make this resource available through the generosity of all of our sponsors.</p>
  1010.  
  1011. <p><a href="http://news.perlfoundation.org/8e9b45fb3740051c9c502577a19f659bef18402a.png"><img alt="perl 2018.png" src="http://news.perlfoundation.org/assets_c/2017/08/8e9b45fb3740051c9c502577a19f659bef18402a-thumb-500xauto-375.png" width="500" height="206" class="mt-image-none" style="" /></a></p>
  1012. ]]>
  1013.        
  1014.    </content>
  1015. </entry>
  1016.  
  1017. <entry>
  1018.    <title>Hotel rooms and The Perl Conference</title>
  1019.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/08/hotel-rooms-and-the-perl-confe.html" />
  1020.    <id>tag:news.perlfoundation.org,2017://18.3898</id>
  1021.  
  1022.    <published>2017-08-10T00:00:01Z</published>
  1023.    <updated>2017-08-14T11:33:10Z</updated>
  1024.  
  1025.    <summary>In an effort to improve transparency, we have recently released a finance report for The Perl Conference in Alexandria. One of the major expenses in this report was for hotel attrition. In this news article, I will explain what hotel attrition is and what TPF is doing to respond to it. In the early days of &quot;YAPC&quot;\x9d the conference was held on college campuses in North America. Typically a number of dorm rooms would be reserved and made available to...</summary>
  1026.    <author>
  1027.        <name>Dan Wright</name>
  1028.        <uri>http://www.dwright.org</uri>
  1029.    </author>
  1030.    
  1031.    
  1032.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  1033.        <![CDATA[<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">In an effort to improve transparency, we have recently released a </span><a href="http://news.perlfoundation.org/2017/08/tpcna-2017-finance-report.html" style="text-decoration: none;"><span style="font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline;">finance report for The Perl Conference in Alexandria</span></a><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">. One of the major expenses in this report was for hotel attrition. In this news article, I will explain what hotel attrition is and what TPF is doing to respond to it.</span></p>
  1034. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1035. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">In the early days of "YAPC"\x9d the conference was held on college campuses in North America. Typically a number of dorm rooms would be reserved and made available to attendees at a very low cost. As we all got older, dorm rooms became less attractive and attendees began asking for nicer accommodations. At first, dorm rooms were supplemented with a hotel option. Over time, the hotel room became the only option offered.</span></p>
  1036. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>]]>
  1037.        <![CDATA[<h2 dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><strong><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">How The Perl Foundation secures a group hotel for TPC/YAPC:</span></strong></h2>
  1038. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1039. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">First, TPF contacts a hotel and requests a specific number of room-nights for the duration of the event. For example, "We need 700 room-nights across this particular week blocked for our event." If the hotel agrees, then the rooms are held exclusively for registrants of our event until about 30 days prior to check-in. During this time the hotel does not allow any other guests or groups to book those rooms.</span></p>
  1040. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1041. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">The primary benefits of this arrangement are:</span></p>
  1042. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1043. <ul style="margin-top: 0pt; margin-bottom: 0pt;">
  1044. <li dir="ltr" style="list-style-type: disc; font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">
  1045. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Attendees are staying in the same hotel, which makes it easier to connect with each other</span></p>
  1046. </li>
  1047. <li dir="ltr" style="list-style-type: disc; font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">
  1048. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">TPF is able to negotiate a discounted rate for conference attendees</span></p>
  1049. </li>
  1050. <li dir="ltr" style="list-style-type: disc; font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">
  1051. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">There's a reasonable guarantee to attendees that hotel rooms will be available for them to reserve, provided they book their room(s) before the cut-off date. This is useful in case the conference city ends up hosting another large event the same week. In those instances, attendees don't have to worry about not being able to attend because they couldn't secure a place to stay</span></p>
  1052. </li>
  1053. <li dir="ltr" style="list-style-type: disc; font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">
  1054. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Additional perks also tend to be included, and vary from year to year. In the past they have included better wi-fi connections for our guests, free parking, a certain number of complimentary rooms, and reduced costs for the conference facilities</span></p>
  1055. </li>
  1056. </ul>
  1057. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1058. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Hotels know that empty rooms mean lost profits. As a result, the hotel's agreement to block hundreds of rooms for an event comes with the stipulation that a certain percentage of the room-nights must be booked by event guests (this is referred to as "attrition") If TPF does not meet its guaranteed attrition rate, TPF then is obligated to pay the hotel for those empty rooms, as if somebody was staying there. </span></p>
  1059. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1060. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">In most cities, the venue (conference rooms, dining, etc.) and the hotel rooms are all at the same hotel. This significantly affects the process of negotiating the details of room reservations since the hotel is benefiting from the conference room rental and food in addition to just rooms. So in these cases, we are often able to negotiate a better deal all around.<br /></span></span></p>
  1061. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1062. <h2 dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><strong><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">How reservation trends have changed:</span></strong></h2>
  1063. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1064. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Since we have been reserving hotel rooms for several years, we use the room numbers from previous years to determine how many rooms to reserve for the current year. Before TPC::NA 2017, meeting the agreed upon attrition rate had never been an issue. The number of nights TPF reserved in Alexandria was very similar to years past. In Orlando in 2016 and in Salt Lake City in 2015, we ran out of rooms and so we never imagined we would fall short this year. </span></p>
  1065. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1066. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">This year marks the very first year that TPF was unable to meet the attrition rate for the conference hotel. TPF had a required room attrition rate of 72% on its block of 695 room-nights, meaning that we needed to book at least 500 room-nights. However, we fell just short of this requirement and, as a result, TPF ended up owing the hotel an additional amount of $10,657.</span></p>
  1067. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1068. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Our previous under-supply of rooms has unexpectedly become an over-supply, which makes guessing how many room-nights to reserve in the future quite a difficult task. We don't know exactly why fewer attendees are choosing the conference hotel, but we do have a few theories:</span></p>
  1069. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1070. <ul style="margin-top: 0pt; margin-bottom: 0pt;">
  1071. <li dir="ltr" style="list-style-type: disc; font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">
  1072. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Some venues provide more opportunity than others for selecting an alternate hotel. For example, there were a number of alternate hotels within walking distance of the Alexandria venue, while such options didn't exist for Orlando</span></p>
  1073. </li>
  1074. <li dir="ltr" style="list-style-type: disc; font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">
  1075. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">More employers are starting to require their employees to stay at a specific hotel brand when funding their travel</span></p>
  1076. </li>
  1077. <li dir="ltr" style="list-style-type: disc; font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">
  1078. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Services such as Airbnb, and even our sponsor Booking.com, make it easier for people to find discounted rooms on their own. Sometimes those discounted rooms are even at the same hotel where the rest of the event guests are staying</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"></span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"></span></p>
  1079. </li>
  1080. </ul>
  1081. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1082. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">This has also been an extraordinary year in the United States for many reasons, some of which have impacted international travel. TPC::NA has been lucky to attract many attendees from Europe and around the world on a regular basis, but changes in US policies have made international travel more challenging. Organizers heard from several people who have regularly attended TPC::NA in the past that they did not come to Alexandria because of these changes. While anecdotal, it's reasonable to assume attendance and some of the room reservations were impacted by these factors.</span></p>
  1083. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1084. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">A common question is "Why are the conference hotel rooms so expensive? I can get a room in the same hotel cheaper on Booking.com."\x9d There are really three answers to that. Firstly, TPF doesn't set the price of the room-nights. The hotel offers us discounted room-night rates and TPF can either accept or decline the offer. Secondly, there are often different qualities of rooms within the same hotel. TPF arranges for a single tier of rooms, excluding those of inferior quality. Additionally, the "cheaper" rooms do not receive the same perks as those arranged for attendees staying in the TPC block of rooms. Finally, while it is possible to get one or two, or even ten, rooms at a deeply discounted rate from Booking.com or similar, getting 150 or more rooms every night for nearly a week at that price is not a practice in which any hotel would be willing to engage. Hotels may be willing to let a few rooms go deeply discounted in order to reach 100% occupancy, but it isn't financially viable for them to offer those room rates to everybody. Acquiring rooms for a large group is much more complicated than getting a single room, and more expensive. Your ability to find a single room cheaper does not mean the organizers did a bad job negotiating the hotel rate.</span></p>
  1085. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1086. <h2 dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><strong><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">How TPF is responding:</span></strong></h2>
  1087. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1088. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">This year TPF paid out more than $10,000 to the hotel for empty rooms and we wanted to be transparent about this and let the community know. That is $10,000 that could have been used to fund a round of grants, to promote Perl, or to buy every Perl developer a nice dinner. While it is unfortunate that it happened, it wasn't possible to foresee the drastic difference given the data organizers had to work from. Now that it has happened, TPF and the TPC::NA organizers will learn from the experience and do what they can to ensure it doesn't happen again next year, starting with reducing our numbers for room blocks</span></p>
  1089. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1090. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">This does mean that TPF will lose some leverage in negotiating event costs. This could begin a spiral which leads to TPF eventually being forced to discontinue providing conference rate rooms altogether.</span></p>
  1091. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"></p>
  1092. <p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">The good news is that even with the attrition expenses, the total cost for the conference came in narrowly within budget. TPF and the conference teams will continue to work to make sure The Perl Conference remains an economical option for the Perl community to get together every year and talk about the language we love. Increasing attendance numbers not only helps keep TPC healthy, but also allows TPF to focus more resources on improving Perl. All community members can help by blogging about their experience this year. If you're feeling even more motivated to help, we can always find space for people on the conferences committee as well.</span></p>]]>
  1093.    </content>
  1094. </entry>
  1095.  
  1096. <entry>
  1097.    <title>Grant Report : Robust Perl 6 Unicode Support - August 2017</title>
  1098.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/08/grant-report-robust-perl-6-uni-2.html" />
  1099.    <id>tag:news.perlfoundation.org,2017://18.3900</id>
  1100.  
  1101.    <published>2017-08-09T01:18:05Z</published>
  1102.    <updated>2017-08-09T01:32:34Z</updated>
  1103.  
  1104.    <summary>The inchstones are falling like 1F030—1F09F as Samantha makes further progress on her grant to improve the robustness of Unicode support in Rakudo. In her complete blog post, she describes: Implementation of a fully working Unicode Collation Algorithm with only 82 of 190,377 tests failing 100% of Emoji 4.0 emoji are treated as a single grapheme, enabling MoarVM to advertise full Unicode 9.0/Emoji 4.0 text segmentation support. A number of other improvements and fixes, including significant concatenation improvements and technical...</summary>
  1105.    <author>
  1106.        <name>Mark A Jensen</name>
  1107.        
  1108.    </author>
  1109.    
  1110.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  1111.    
  1112.    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
  1113.    <category term="perl6" label="perl6" scheme="http://www.sixapart.com/ns/types#tag" />
  1114.    <category term="unicode" label="unicode" scheme="http://www.sixapart.com/ns/types#tag" />
  1115.    
  1116.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  1117.        <![CDATA[<p>The inchstones are falling like
  1118. <a href="https://unicode-table.com/en/blocks/domino-tiles/">1F030—1F09F</a>
  1119. as Samantha makes further progress on her
  1120. <a href="http://news.perlfoundation.org/2017/04/grant-proposal.html">grant</a> to
  1121. improve the robustness of Unicode support in Rakudo.</p>
  1122.  
  1123. <p>In
  1124. <a href="https://cry.nu/perl6/grant-status-update-3/">her complete blog post</a>,
  1125. she describes:</p>
  1126.  
  1127. <ul>
  1128. <li><p>Implementation of a fully working Unicode Collation Algorithm with
  1129. only 82 of 190,377 tests failing</p></li>
  1130. <li><p>100% of Emoji 4.0 emoji are treated as a single grapheme, enabling
  1131. MoarVM to advertise full Unicode 9.0/Emoji 4.0 text segmentation
  1132. support.</p></li>
  1133. <li><p>A number of other improvements and fixes, including significant
  1134. concatenation improvements and technical performance improvements.</p></li>
  1135. </ul>
  1136.  
  1137. <p>MAJ</p>
  1138. ]]>
  1139.        
  1140.    </content>
  1141. </entry>
  1142.  
  1143. <entry>
  1144.    <title>May 2017 Grant Votes; Part 2</title>
  1145.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/08/may-2017-grant-votes-part-2.html" />
  1146.    <id>tag:news.perlfoundation.org,2017://18.3901</id>
  1147.  
  1148.    <published>2017-08-09T01:05:01Z</published>
  1149.    <updated>2017-08-29T20:15:41Z</updated>
  1150.  
  1151.    <summary> Let me start out by apologizing for the delay in this posting, it&apos;s highly overdue; the question of whether or not funding was available turned out to be slightly more complicated than anyone anticipated.......</summary>
  1152.    <author>
  1153.        <name>Coke</name>
  1154.        
  1155.    </author>
  1156.    
  1157.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  1158.    
  1159.    
  1160.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  1161.        <![CDATA[<p><p>
  1162. Let me start out by apologizing for the delay in this posting,
  1163. it's highly overdue; the question of whether or not funding was
  1164. available turned out to be slightly more complicated than
  1165. anyone anticipated....</p>
  1166. ]]>
  1167.        <![CDATA[<p><p>
  1168. As previously posted, one grant was posted in this period:</p>
  1169.  
  1170. <p><a href="http://news.perlfoundation.org/2017/06/grant-proposal-revitalize-blog-1.html">Revitalize blogs.perl.org</a></p>
  1171.  
  1172. <p><p>Voting results were: 5, 5, 5, 5, 4, 0, Abstain, No.
  1173. <p>This resulted in a an approval status, and I'm happy to announce the grant is now funded!</p>
  1174.  
  1175. <p><p>Thanks to André for his proposal, his upcoming efforts, and his patience!</p>
  1176. ]]>
  1177.    </content>
  1178. </entry>
  1179.  
  1180. <entry>
  1181.    <title>Grant Proposal: Complete YAML::PP</title>
  1182.    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2017/08/grant-proposal-complete-yamlpp.html" />
  1183.    <id>tag:news.perlfoundation.org,2017://18.3899</id>
  1184.  
  1185.    <published>2017-08-07T21:12:22Z</published>
  1186.    <updated>2017-08-29T20:15:36Z</updated>
  1187.  
  1188.    <summary> The Grants Committee has received the following grant proposal for the July/August round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal. Review the proposal below and please comment here by August 14th, 2017. The Committee members will start the voting process following that and the conclusion will be announced approximately one week after public comments. Complete YAML::PP Name: Tina Müller...</summary>
  1189.    <author>
  1190.        <name>Coke</name>
  1191.        
  1192.    </author>
  1193.    
  1194.        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
  1195.    
  1196.    
  1197.    <content type="html" xml:lang="en-us" xml:base="http://news.perlfoundation.org/">
  1198.        <![CDATA[<p><p>
  1199. The Grants Committee has received the following grant proposal for the July/August round.
  1200. Before the Committee members vote, we would like to solicit
  1201. feedback from the Perl community on the proposal.
  1202. <p>
  1203. Review the proposal below and please comment here by
  1204. August 14th, 2017. The Committee members will start the voting process following that and the conclusion will be
  1205. announced approximately one week after public comments.</p>
  1206.  
  1207. <p><p></p>
  1208.  
  1209. <h2> Complete YAML::PP</h2>
  1210.  
  1211. <dl>
  1212.  
  1213. <dt id="Name">Name:</dt>
  1214. <dd>
  1215.  
  1216. <p>Tina Müller</p>
  1217. </dl>
  1218. ]]>
  1219.        <![CDATA[<dl>
  1220. </dd>
  1221. <dt id="Amount-Requested">Amount Requested:</dt>
  1222. <dd>
  1223.  
  1224. <p>USD 2,500</p>
  1225.  
  1226. </dd>
  1227. </dl>
  1228.  
  1229. <h2 id="Synopsis">Synopsis</h2>
  1230.  
  1231. <p>I have been working on a new YAML Pure Perl Parser, already on CPAN as <a href="https://metacpan.org/pod/YAML::PP">YAML::PP</a>. It aims to parse <a href="http://yaml.org/spec/1.2/spec.html">YAML 1.2</a>.</p>
  1232.  
  1233. <p>The existing YAML frameworks in Perl all lack important features and don&#39;t support YAML 1.2. I will continue development of YAML::PP so that it&#39;s able to parse all valid syntaxes (with some minor exceptions). I will complete the Loader to support tags. I will add a Dumper and Emitter.</p>
  1234.  
  1235. <p>I will add test cases to the cross framework <a href="https://github.com/yaml/yaml-test-suite">YAML Test Suite</a> and continue developing the <a href="http://matrix.yaml.io/">YAML Test Matrix</a> to compare all frameworks.</p>
  1236.  
  1237. <h2 id="Benefits-to-the-Perl-Community">Benefits to the Perl Community</h2>
  1238.  
  1239. <p>While JSON has become popular as a simple format to exchange data, there are still a lot of use cases for YAML. Imagine how verbose an Ansible Playbook would look in JSON. Comments are an important feature, and Aliases come in very handy sometimes.</p>
  1240.  
  1241. <p>While <a href="http://pyyaml.org/">PyYAML</a> still only supports YAML 1.1, it has at least support for safe loading (See below). <a href="https://pypi.python.org/pypi/ruamel.yaml">Python Ruamel</a> aims to support 1.2.</p>
  1242.  
  1243. <p>I find it very unfortunate for Perl, that there is no support for YAML 1.2, for safe loading and for booleans.</p>
  1244.  
  1245. <p>It would be a nice opportunity for Perl to have a framework that supports all that.</p>
  1246.  
  1247. <p>Since the YAML Test Suite is supposed to become the number one source to write tests in any language, it can promote the new Perl framework.</p>
  1248.  
  1249. <p>Since I&#39;m aiming for a portable implementation, this framework might also be easily ported to Perl 6, which currently has no full support for YAML, although there is some development going on.</p>
  1250.  
  1251. <h2 id="Project-Details">Project Details</h2>
  1252.  
  1253. <p>The current state of YAML in Perl is as follows:</p>
  1254.  
  1255. <dl>
  1256.  
  1257. <dt id="YAML.pm">YAML.pm</dt>
  1258. <dd>
  1259.  
  1260. <p>Based on YAML 1.0. It can&#39;t do trailing comments and has problems with a lot of valid 1.1 and 1.2 syntaxes.</p>
  1261.  
  1262. </dd>
  1263. <dt id="YAML::XS">YAML::XS</dt>
  1264. <dd>
  1265.  
  1266. <p>Based on libyaml and the most recommended module. It supports YAML 1.1. It diverges from the spec for several edge cases.</p>
  1267.  
  1268. </dd>
  1269. <dt id="YAML::Syck">YAML::Syck</dt>
  1270. <dd>
  1271.  
  1272. <p>Supports YAML 1.0. It has problems with a lot of valid YAML 1.1 and 1.2 syntaxes.</p>
  1273.  
  1274. </dd>
  1275. <dt id="Safe-Loading">Safe Loading</dt>
  1276. <dd>
  1277.  
  1278. <p>YAML.pm and YAML::XS have no possibility to disable loading into objects. That means if you load an untrusted YAML file, it can be a security hole. YAML::Syck supports disabling that via &quot;LoadBlessed&quot;.</p>
  1279.  
  1280. </dd>
  1281. <dt id="Booleans">Booleans</dt>
  1282. <dd>
  1283.  
  1284. <p>The three mentioned modules don&#39;t support booleans. If you need to dump your data into JSON or let it be validated, booleans get lost (turned into 1 or 0). Only YAML::XS provides a limited way of keeping booleans when roundtripping.</p>
  1285.  
  1286. </dd>
  1287. <dt id="Separate-Parser-and-Constructor">Separate Parser and Constructor</dt>
  1288. <dd>
  1289.  
  1290. <p>The mentioned modules can only be used as complete Loaders. There is no possibility to put your own Loader on top of a parser.</p>
  1291.  
  1292. <p>You can check which test cases these modules are passing or failing: <a href="http://matrix.yaml.io/">YAML Test Matrix</a></p>
  1293.  
  1294. </dd>
  1295. </dl>
  1296.  
  1297. <p>I have been going over a number of RT tickets for YAML.pm at the end of 2016, creating and merging Pull Requests from patches and writing Pull Requests myself.</p>
  1298.  
  1299. <p>I&#39;m working a lot with Ingy döt Net, one of the creators of YAML, and Felix Krause, developer of NimYAML, on the YAML Test Suite and on RFCs for creating YAML 1.3.</p>
  1300.  
  1301. <p>I created the YAML Test Matrix to show the results of the tests for a growing number of YAML frameworks, based on Ingy&#39;s Docker image for <a href="https://github.com/yaml/yaml-editor">YAML Editor</a>.</p>
  1302.  
  1303. <p>I started to implement my own parser YAML::PP in 2017, and it currently passes most of the tests with the exception of Flow Style. The loader can already load YAML documents that the parser can parse. It supports booleans and aliases, but no tags yet.</p>
  1304.  
  1305. <p>I&#39;m currently transforming it into a tokenizer which allows correct syntax highlighting, making it also easier to spot errors.</p>
  1306.  
  1307. <p>I want it to be able to do roundtrips including comments at some point.</p>
  1308.  
  1309. <p>At the Perl Toolchain Summit 2017 in Lyon I have been working together with Ingy to create a concept of a new API for YAML loading. The goal is to integrate YAML::PP into that API.</p>
  1310.  
  1311. <p>Ingy and I started to implement the API in <a href="https://metacpan.org/pod/YAML::Perl">YAML::Perl</a>, using YAML::PP as a backend.</p>
  1312.  
  1313. <p>I also started to implement the new Loader API in <a href="https://github.com/yaml/yaml-perl6">Perl 6</a>, currently using the <a href="https://github.com/yaml/yaml-libyaml-perl6">libyaml binding</a> originally written by Curt Tilmes as a backend.</p>
  1314.  
  1315. <h2 id="Deliverables-and-Inch-Stones">Deliverables and Inch-Stones</h2>
  1316.  
  1317. <dl>
  1318.  
  1319. <dt id="Complete-YAML::PP::Parser">Complete YAML::PP::Parser</dt>
  1320. <dd>
  1321.  
  1322. <p>A couple of features are still missing from the parser</p>
  1323.  
  1324. <dl>
  1325.  
  1326. <dt id="Flow-Style">Flow Style</dt>
  1327. <dd>
  1328.  
  1329. <p>This is the biggest part. Flow Style is not indent based, and some rules are different than in block style. (I estimate 40h.)</p>
  1330.  
  1331. </dd>
  1332. <dt id="Flow-Nodes-as-mapping-keys">Flow Nodes as mapping keys</dt>
  1333. <dd>
  1334.  
  1335. <p>This is also a major part, because stacking of parser events is necessary until the parser knows if it&#39;s a mapping key or a node. (30h)</p>
  1336.  
  1337. </dd>
  1338. <dt id="Line-and-Column-Numbers-for-error-messages">Line and Column Numbers for error messages</dt>
  1339. <dd>
  1340.  
  1341. <p>Currently no information about line and column is saved. (20h)</p>
  1342.  
  1343. </dd>
  1344. </dl>
  1345.  
  1346. <p></dd>
  1347. <dt id="YAML::PP::Loader-Constructor">YAML::PP::Loader/Constructor</dt>
  1348. <dd></p>
  1349.  
  1350. <dl>
  1351.  
  1352. <dt id="Implement-loading-of-Tags-and-blessing-into-objects">Implement loading of Tags and blessing into objects</dt>
  1353. <dd>
  1354.  
  1355. <p>(20h)</p>
  1356.  
  1357. </dd>
  1358. <dt id="Provide-a-possibility-for-safe-loading">Provide a possibility for safe loading</dt>
  1359. <dd>
  1360.  
  1361. <p>(10h)</p>
  1362.  
  1363. </dd>
  1364. <dt id="Ideally-provide-a-way-to-only-load-certain-tags">Ideally provide a way to only load certain tags</dt>
  1365. <dd>
  1366.  
  1367. </dd>
  1368. </dl>
  1369.  
  1370. <p></dd>
  1371. <dt id="Write-YAML::PP::Emitter">Write YAML::PP::Emitter</dt>
  1372. <dd></p>
  1373.  
  1374. <p>(20h)</p>
  1375.  
  1376. <p></dd>
  1377. <dt id="Write-YAML::PP::Dumper-Deconstructor">Write YAML::PP::Dumper/Deconstructor</dt>
  1378. <dd></p>
  1379.  
  1380. <p>(20h)</p>
  1381.  
  1382. <p></dd>
  1383. <dt id="Add-more-test-cases-to-YAML-Test-Suite">Add more test cases to YAML Test Suite</dt>
  1384. <dd></p>
  1385.  
  1386. <p></dd>
  1387. <dt id="Show-also-results-of-invalid-examples-in-YAML-Test-Matrix">Show also results of invalid examples in YAML Test Matrix</dt>
  1388. <dd></p>
  1389.  
  1390. <p>(10h)</p>
  1391.  
  1392. <p></dd>
  1393. <dt id="Make-the-code-integrateable-into-the-new-YAML-Loader-API">Make the code integrateable into the new YAML Loader API</dt>
  1394. <dd></p>
  1395.  
  1396. <p></dd>
  1397. <dt id="Keep-in-touch-with-the-development-of-YAML-1.3-specification">Keep in touch with the development of YAML 1.3 specification</dt>
  1398. <dd></p>
  1399.  
  1400. <p>Implement the current parser in a way that makes it easy to add support for YAML 1.3</p>
  1401.  
  1402. <p></dd>
  1403. <dt id="Talk-about-this-project-at-TPC-in-Amsterdam">Talk about this project at TPC in Amsterdam</dt>
  1404. <dd></p>
  1405.  
  1406. <p>My talk and my published slides will explain why YAML currently is difficult to implement. I also gave this talk at the German Perl Workshop in Hamburg.</p>
  1407.  
  1408. <p></dd>
  1409. </dl></p>
  1410.  
  1411. <h2 id="Project-Schedule">Project Schedule</h2>
  1412.  
  1413. <p>I can start to work on this immediately and almost full time over the next two months.</p>
  1414.  
  1415. <h2 id="Completeness-Criteria">Completeness Criteria</h2>
  1416.  
  1417. <p>I release YAML::PP with the features implemented I mentioned above. The parser shall pass most of the tests in YAML Test Suite, with the exception of edge cases. Since the spec is often not very clear, there are some cases where it is unclear what should be the correct behavior, or what behavior actually makes sense. These edge cases are usually not relevant for real use cases and are easy to avoid. I will look at other frameworks and find out the most common behavior.</p>
  1418.  
  1419. <p>The Emitter should be able to transform every test input into valid YAML. The style (quotes/block scalar, spaces/newlines etc.) might still differ from the test suite.</p>
  1420.  
  1421. <p>The Loader/Dumper API, and especially the Parser and Emitter API, might not be completely fixed at the end of this grant. Ingy can me help me out here, supposed he&#39;s got time, and I need potential user feedback.</p>
  1422.  
  1423. <p>Ingy also offered to review the work.</p>
  1424.  
  1425. <p>I appreciate new test cases, bug reports, patches and co-maintainers, and I want to keep maintaining this module in the future.</p>
  1426.  
  1427. <h2 id="Bio">Bio</h2>
  1428.  
  1429. <p>I wrote my first Perl code in 1998 and have been in touch with the Perl Community since about 2001.</p>
  1430.  
  1431. <p>I already have two parsing modules on CPAN.</p>
  1432.  
  1433. <p>One is HTML::Template::Compiled, one of the fastest (and still feature rich) pure perl templating modules that gains its speed from compiling to perl code.</p>
  1434.  
  1435. <p>The other is Parse::BBCode, which is unique among the Perl BBCode modules, in that it provides a parse tree, it allows addition of own tags, it tries to correct invalid BBCode instead of simply dying, and it&#39;s fast.</p>
  1436.  
  1437. <p>YAML is a bit more complicated to parse, because it&#39;s indentation based, but I like solving programming puzzles.</p>
  1438.  
  1439. <p>I do a lot of pair programming with Ingy and I&#39;m also in contact with Felix Krause, so I have two people available who know the Spec.</p>
  1440.  
  1441. <h2 id="YAML-Details">YAML Details</h2>
  1442.  
  1443. <p>If you are wondering about terminology, here is a short explanation:</p>
  1444.  
  1445. <p>Loading YAML can be divided into two steps.</p>
  1446.  
  1447. <p>The Parser parses a Stream and returns a list of parsing events. The Constructor then takes these events, decides about numbers, tags, booleans and aliases/anchors and constructs a data structure.</p>
  1448.  
  1449. <p>Vice versa, Dumping YAML can be divided into deconstructing and emitting. The Deconstructor creates a list of emitter events from a data structure. The Emitter creates a YAML Stream from these events.</p>
  1450.  
  1451. <p>If you keep these things separate, it allows you to use the language independent Test Suite to test your parser. It also makes debugging and maintaining easier. Also you can use a different parser backend, for example a libyaml based one.</p>
  1452.  
  1453. <p></body></p>
  1454.  
  1455. <p></html></p>
  1456. ]]>
  1457.    </content>
  1458. </entry>
  1459.  
  1460. </feed>
  1461.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid Atom 1.0" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//news.perlfoundation.org/atom.xml

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda