{
  "path": "/3masu52cs7v73",
  "site": "at://did:plc:s5wwr2ccjuqricdxiyiuspfv/site.standard.publication/3m7zleg5tyc2b",
  "$type": "site.standard.document",
  "title": "Weekly Review - Week 38",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "id": "3masu52cqk6l6",
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "This post is a summary of my activities related to coding and software in the past week. Its purpose is both to serve as a high-level personal log and as a potential source of interesting (or not so interesting) links. Entries are provided in no particular order with minimal comments..."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 50,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "https://vadosware.io/post/static-binaries-for-haskell-a-convoluted-approach/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Static Binaries for Haskell: A Convoluted Approach"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ": When trying to build minimal docker images, having a statically linked binary is a plus. This is actually quite hard to realize in practice with GHC as this post demonstrates (note that I tried the suggested approach and failed...)"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 23,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "http://graydon2.dreamwidth.org/253769.html",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "graydon2 | \"What next?\""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 49,
                    "byteStart": 38
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": ": Interesting and opinionated post on what's next in Programming languages, e.g. which features from PLT will reach mainstream. First-class modules done right is definitely something we are direly in need for!"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 51,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "http://slatestarcodex.com/2017/09/05/book-review-surfing-uncertainty/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Book Review: Surfing Uncertainty | Slate Star Codex"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ": A long book review on cognition and how our brain copes with uncertain, partial or plain wrong data."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 27,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "https://github.com/adericbourg/coreprotocols-fr",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Les Protocoles Fondamentaux"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 66,
                    "byteStart": 52
                  },
                  "features": [
                    {
                      "uri": "",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 114,
                    "byteStart": 74
                  },
                  "features": [
                    {
                      "uri": "https://github.com/rkasper/coreprotocols",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": ": French translation of Michelle and Jim McCarthy's Core Protocols, using The Core Protocols: A Guide to Greatness dfrom Richard Kasperowski as main source."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 8,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "https://filecoin.io/filecoin.pdf",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "FileCoin"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 18,
                    "byteStart": 4
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": ": A cryptocurrency  providing blockchain-based file-system"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 55,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "http://hackage.haskell.org/package/testing-feat",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "testing-feat: Functional Enumeration of Algebraic Types"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ": A Haskell package to enumerate inhabitants of any ADT, useful for systematic testing of data types."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 16,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "http://www.samcoope.com/posts/deep_code_generation",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Sam Coope - Blog"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ": Looks fun! Did not read the full thesis though..."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 69,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "https://pragprog.com/magazines/2012-01/unit-tests-are-first",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "PragPub January 2012 | Unit Tests Are FIRST | The Pragmatic Bookshelf"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ": A gentle reminder about the properties that a proper unit test should exhibit: Fast, Isolated, Repeatable, Self-Verifying, and Timely"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 18,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "https://www.tezos.com/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Tezos Crowdfunding"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 117,
                    "byteStart": 97
                  },
                  "features": [
                    {
                      "uri": "https://www.tezos.com/static/papers/white_paper.pdf",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": ": Tezos is a smart contracts platform that aims at offering a self-governing network. I read the language white paper which interestingly draws ideas from Forth: The Tezos language is a typed stack-based language. Although of note is the fact the reference implementation is in OCaml."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 65,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "https://blog.acolyer.org/2017/09/18/bringing-the-web-up-to-speed-with-webassembly/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Bringing the web up to speed with WebAssembly | the morning paper"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ": Speaking of languages, WebAssembly aims at providing a more solid foundation than Javascript as a the lingua franca for executing arbitrary code in browsers."
            }
          }
        ]
      }
    ]
  },
  "publishedAt": "2017-09-18T00:00:00Z"
}