<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="assets/436df28f/atom-to-html.xsl"?><atom:feed xmlns="http://www.w3.org/2005/Atom" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cdo="https://curiosity-driven.org/ns#" xmlns:media="http://search.yahoo.com/mrss/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><title>Curiosity driven</title><id>urn:uuid:92f343b7-54a0-4c51-9a9a-b3c6d9421c57</id><updated>2015-07-10T16:20:01Z</updated><icon>https://curiosity-driven.org/assets/8aa8f9ae/icon-192.png</icon><link href="https://curiosity-driven.org/" rel="self"/><link rel="alternate" type="application/atom+xml" href="https://curiosity-driven.org" title="curiosity-driven.org articles"/><link rel="license" type="text/html" href="https://creativecommons.org/licenses/by/3.0/" /><link rel="license" type="text/html" href="https://www.apache.org/licenses/LICENSE-2.0" /><rights>Content of this page is licensed under the Creative Commons Attribution 3.0 License. Code samples are licensed under the Apache 2.0 License.</rights><webfeeds:cover image="https://curiosity-driven.org/assets/916192c2/wide.jpg" /><webfeeds:icon>https://curiosity-driven.org/assets/8aa8f9ae/icon-192.png</webfeeds:icon><webfeeds:accentColor>#495C40</webfeeds:accentColor><entry><title>WebCrypto zero-trust lottery</title><link href="https://curiosity-driven.org/webcrypto-zero-trust-lottery?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:69b86bfb-b2a3-422c-b0b0-409a516be2b8</id><updated>2015-09-09T16:20:01Z</updated><published>2015-09-09T16:20:01Z</published><summary>Browsers that implement the WebCrypto API can be used to conduct a truly zero-trust, secure lottery in less than 200 lines of modern JavaScript code.</summary><author><name>Curiosity driven</name></author><cdo:read-time>6</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/b8d276d7/thumbnails/webcrypto-zero-trust-lottery.png" width="350" height="350" /></entry><entry><title>Push notifications</title><link href="https://curiosity-driven.org/push-notifications?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:ea2fcda9-31df-4e2c-a891-9971e7a92323</id><updated>2015-07-10T16:20:01Z</updated><published>2015-07-10T16:20:01Z</published><summary>Push API combined with Notifications API allows displaying notifications about background events that happen even when the web page is closed.</summary><author><name>Curiosity driven</name></author><cdo:read-time>5</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/74ae0385/thumbnails/push-notifications.png" width="350" height="350" /></entry><entry><title>Reactive WebRTC conference</title><link href="https://curiosity-driven.org/reactive-webrtc-conference?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:ad3fc4c9-55d2-46bc-bc3a-895fd60e966e</id><updated>2015-05-29T16:20:01Z</updated><published>2015-05-29T16:20:01Z</published><summary>WebRTC can be used to build a plugin-free video conference with screensharing in pure JavaScript. Observables — proposed for ES7 — let application logic be expressed in a clean, functional and composable way.</summary><author><name>Curiosity driven</name></author><cdo:read-time>11</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/b0900622/thumbnails/reactive-webrtc-conference.png" width="350" height="350" /></entry><entry><title>Continuations</title><link href="https://curiosity-driven.org/continuations?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:3f393cea-f0ad-45b8-a59c-3db39ecfe5ac</id><updated>2014-10-31T01:20:01Z</updated><published>2014-10-31T01:20:01Z</published><summary>There is one abstraction that can be used to implement such apparently diverse concepts as exceptions, generators, coroutines and even the backtracking mechanism present in Prolog.</summary><author><name>Curiosity driven</name></author><cdo:read-time>19</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/ce789f14/thumbnails/continuations.png" width="350" height="350" /></entry><entry><title>Array slices and membranes using ES6 proxies</title><link href="https://curiosity-driven.org/array-slices?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:8e3cfcf3-166b-4e29-a986-63df3e2e0a97</id><updated>2014-08-30T16:20:01Z</updated><published>2014-08-30T16:20:01Z</published><summary>JavaScript’s dynamic nature, first-class functions and prototypes could always be used for elegant metaprogramming. Proxies let programmers further blur the line between the native, user defined objects and the host objects.</summary><author><name>Curiosity driven</name></author><cdo:read-time>8</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/84c2c31d/thumbnails/array-slices.png" width="350" height="350" /></entry><entry cdo:popular="true"><title>Low-level Bitcoin</title><link href="https://curiosity-driven.org/low-level-bitcoin?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><link rel="related" href="http://bitcoinweekly.com/issues/20" title="Bitcoin Weekly #20"/><id>urn:uuid:6c1a0815-c625-47c0-9d63-20aea0a338f2</id><updated>2014-08-21T19:47:01Z</updated><published>2014-07-13T16:20:01Z</published><summary>Exploring Bitcoin can yield interesting surprises. The block chain already contains various gems hidden inside transactions — tributes, illegal data, even pictures and a patch fixing bug in a Bitcoin client.</summary><author><name>Curiosity driven</name></author><category scheme="https://curiosity-driven.org/tags/" term="bitcoin" label="Bitcoin" /><cdo:read-time>17</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/583bf5df/thumbnails/low-level-bitcoin.png" width="350" height="350" /></entry><entry cdo:popular="true"><title>Bitcoin contracts</title><link href="https://curiosity-driven.org/bitcoin-contracts?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:37e1c524-8392-44f5-8534-85e6e230f926</id><updated>2014-07-12T16:20:01Z</updated><published>2014-07-12T16:20:01Z</published><summary>Bitcoin is designed to support a wide variety of transaction types. Although currently the majority of transactions are standard payments to address it is possible to build more complex protocols.</summary><author><name>Curiosity driven</name></author><category scheme="https://curiosity-driven.org/tags/" term="bitcoin" label="Bitcoin" /><cdo:read-time>11</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/18f3dd63/thumbnails/bitcoin-contracts.png" width="350" height="350" /></entry><entry><title>Minimal AMD loader</title><link href="https://curiosity-driven.org/minimal-loader?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:db3d819f-f19c-4268-ae9f-c4447f5f4874</id><updated>2014-05-09T16:20:01Z</updated><published>2014-05-09T16:20:01Z</published><summary>AMD simplifies modularizing JavaScript applications but as it is not a browser built-in mechanism a loader library is still needed to bootstrap the process. Fortunately it is possible to write a loader that supports plugins in less than 850 characters of optimized code.</summary><author><name>Curiosity driven</name></author><cdo:read-time>8</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/9c750c62/thumbnails/minimal-loader.png" width="350" height="350" /></entry><entry><title>&lt;code-block&gt; Web Component</title><link href="https://curiosity-driven.org/code-block-web-component?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:88468ef7-56c4-4b87-bfd1-4c20ebe3c019</id><updated>2014-07-12T18:28:01Z</updated><published>2014-04-04T23:20:01Z</published><summary>JavaScript widgets are traditionally built using &lt;div&gt; soup and a mixture of framework-specific scripts. Web Components aim to change the status quo by introducing standard way of building elements.</summary><author><name>Curiosity driven</name></author><cdo:read-time>3</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/dbc8fecf/thumbnails/code-block-web-component.png" width="350" height="350" /></entry><entry><title>Pi approximation using Monte Carlo method</title><link href="https://curiosity-driven.org/pi-approximation?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:87e24b8d-d2de-4270-ac49-7f0a9cbe697b</id><updated>2014-03-14T15:26:53Z</updated><published>2014-03-14T15:26:53Z</published><summary>Monte Carlo is a method to solving problems that uses random inputs to examine the domain. Pi approximation is a simple example that illustrates an idea of how the Monte Carlo method works.</summary><author><name>Curiosity driven</name></author><cdo:read-time>2</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/a6c12496/thumbnails/pi-approximation.png" width="350" height="350" /></entry><entry cdo:popular="true"><title>Solving riddles with Prolog and ES6 generators</title><link href="https://curiosity-driven.org/prolog-interpreter?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><link rel="related" href="http://javascriptweekly.com/issues/174" title="JS Weekly #174"/><id>urn:uuid:2a6a3fef-5942-4be4-af0f-303743fe7dc8</id><updated>2014-08-31T14:24:02Z</updated><published>2014-03-10T16:20:02Z</published><summary>Generators and backtracking can be used to build a simple Prolog interpreter in less than 160 lines of JavaScript. It will tell us facts about the Forrester family and even solve the Einstein’s puzzle.</summary><author><name>Curiosity driven</name></author><cdo:read-time>11</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/62b3de69/thumbnails/prolog-interpreter.png" width="350" height="350" /></entry><entry><title>Data binding with Object.observe</title><link href="https://curiosity-driven.org/object-observe-data-binding?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:7b316c64-d940-47e7-aa7c-d32ba88d058a</id><updated>2014-07-12T18:49:02Z</updated><published>2014-02-20T20:33:02Z</published><summary>Two-way data binding greatly simplifies writing views in web applications. The code in this article uses Object.observe to implement a simple two-way data binding in about 100 lines of code.</summary><author><name>Curiosity driven</name></author><cdo:read-time>4</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/08ddddf1/thumbnails/object-observe-data-binding.png" width="350" height="350" /></entry><entry cdo:popular="true"><title>Monads in JavaScript</title><link href="https://curiosity-driven.org/monads-in-javascript?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:dffdd7ca-6e0a-4dab-9b62-f99f5031534e</id><updated>2015-06-07T15:36:02Z</updated><published>2014-02-13T20:33:02Z</published><summary>Monad is a design pattern used to describe computations as a series of steps. They are extensively used in pure functional programming languages to manage side effects but can also be used in multiparadigm languages to control complexity.</summary><author><name>Curiosity driven</name></author><cdo:read-time>7</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/b745efc0/thumbnails/monads-in-javascript.png" width="350" height="350" /></entry><entry><title>Sudoku solver</title><link href="https://curiosity-driven.org/sudoku-solver?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><link rel="related" href="http://javascriptweekly.com/issues/168" title="JS Weekly #168"/><id>urn:uuid:78611db0-8f6b-11e3-baa8-0800200c9a66</id><updated>2014-02-06T16:20:02Z</updated><published>2014-02-06T16:20:02Z</published><summary>Solving sudoku using the backtracking algorithm. Uses ES6 generators to create a stream of possible solutions.</summary><author><name>Curiosity driven</name></author><cdo:read-time>3</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/96fd0b6f/thumbnails/sudoku-solver.png" width="350" height="350" /></entry><entry><title>Private properties in JavaScript</title><link href="https://curiosity-driven.org/private-properties-in-javascript?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><link rel="related" href="http://javascriptweekly.com/issues/167" title="JS Weekly #167"/><id>urn:uuid:9f867c90-8dcd-11e3-baa8-0800200c9a66</id><updated>2014-02-25T18:44:02Z</updated><published>2014-02-04T16:20:02Z</published><summary>Object properties were traditionally left unprotected in JavaScript or hidden, captured in a closure. Symbols and WeakMaps provide another alternative.</summary><author><name>Curiosity driven</name></author><cdo:read-time>5</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/31118605/thumbnails/private-properties-in-javascript.png" width="350" height="350" /></entry><entry><title>Generating primes in ES6</title><link href="https://curiosity-driven.org/sieve-with-generators?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:69700799-fdc3-4e67-84bd-7aefe0743159</id><updated>2014-02-08T11:50:02Z</updated><published>2014-01-30T16:20:02Z</published><summary>Generators can be used to represent infinite streams of values. The algorithm used below is the Sieve of Eratosthenes. for-of loops are used to iterate over values returned from the generator.</summary><author><name>Curiosity driven</name></author><cdo:read-time>1</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/7dcf3050/thumbnails/sieve-with-generators.png" width="350" height="350" /></entry><entry><title>Easy asynchrony with ES6</title><link href="https://curiosity-driven.org/promises-and-generators?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:5a372be2-3e87-4ccb-bee4-c5dfe4f14ead</id><updated>2014-08-20T18:36:02Z</updated><published>2014-01-22T16:20:02Z</published><summary>Promises and generators can be used together to describe complex asynchronous flow in a simple, synchronous way.</summary><author><name>Curiosity driven</name></author><cdo:read-time>5</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/1c3d1ea0/thumbnails/promises-and-generators.png" width="350" height="350" /></entry><entry><title>Simple AMD loader in 30 lines of code</title><link href="https://curiosity-driven.org/amd-loader-with-promises?utm_source=curiosity-driven.org&amp;utm_medium=feed"/><id>urn:uuid:64065030-8b40-11e3-baa8-0800200c9a66</id><updated>2014-01-22T16:20:01Z</updated><published>2014-01-22T16:20:01Z</published><summary>Simple AMD loader that uses native Promises to do the heavy lifting.</summary><author><name>Curiosity driven</name></author><cdo:read-time>1</cdo:read-time><media:thumbnail url="https://curiosity-driven.org/assets/0f9c57a9/thumbnails/amd-loader-with-promises.png" width="350" height="350" /></entry></atom:feed>
