Welcome to my blog

Weekly

  • Weekly links for 2017-03-23

    Emacs loaded packages exploration tools
    Exploring your loaded emacs libraries (spacemacs)
    Quantomatic :: Home
    Quantomatic is a diagrammatic proof assistant, meaning it provides machine-support for reasoning with diagrammatic languages
    Madoko Reference
    Madoko is a fast javascript Markdown processor written in Koka It started out as a demo program for the new, strongly typed, Koka language and the name comes from “Markdown in Koka”.
    brick: A declarative terminal user interface library
    Write terminal applications painlessly with brick! You write an event handler and a drawing function and the library does the rest.
    Kwang's Haskell Blog - Build your Haskell project continuously
    Build your Haskell project continuously
  • Weekly links for 2017-01-16

    9.1. Language options — Glasgow Haskell Compiler <release> Users Guide
    For example, we can have pair :: forall a. a -> forall b. b -> (a, b) and then say pair @Bool True @Char which would have type Char -> (Bool, Char).
    cies/htoml: TOML file format parser in Haskell
    A TOML parser library in Haskell.

    TOML is the obvious, minimal configuration language by Tom Preston-Werner. It is an alternative to the XML, YAML and INI formats mainly for the purpose of configuration files. Many will find that XML and YAML are too heavy for the purpose of configuration files prupose while INI is underspecified. TOML is to configuration files, like what Markdown is for rich-text.
    kcsongor/register-machine-type: Universal Register Machine implemented at the type-level of Haskell
    Initialises R1 to 5, then raises 2 to the power of the value of R1, leaving the result (32) in R0. Uses R2 as a scratch register, thus the machine is initialised with 3 registers.

    pow2 :: ('Halted a (r ': rs) ~
    Run
    '[
    -- Instr | label index
    -- set R1 to 5
    Inc (R 1) (L 1) -- 0
    , Inc (R 1) (L 2) -- 1
    , Inc (R 1) (L 3) -- 2
    , Inc (R 1) (L 4) -- 3
    , Inc (R 1) (L 5) -- 4
    -- set R0 to 1
    , Inc (R 0) (L 6) -- 5
    -- R0 = 2^R1
    , Dec (R 1) (L 7) (L 12) -- 6
    -- R2 = R0
    , Dec (R 0) (L 8) (L 9) -- 7
    , Inc (R 2) (L 7) -- 8
    -- R0 = 2*R2
    , Dec (R 2) (L 10) (L 6) -- 9
    , Inc (R 0) (L 11) -- 10
    , Inc (R 0) (L 9) -- 11

    , Halt -- 12
    ]) => Proxy r
    pow2 = Proxy
    subhask/example0001-polynomials.lhs at master ·よ mikeizbicki/subhask
    > let f :: Ring x => x -> x
    > f x = x*x*x + x + 3
    >
    > let a = 3 :: Integer
    >
    > putStrLn $ "f a = " + show (f a)

    Now, we'll create a polynomial from our ordinary function.

    > let g :: Polynomial Integer
    > g = provePolynomial f
    >
    > putStrLn ""
    > putStrLn $ "g $ a = " + show ( g $ a )

    Polynomials support operations that other functions in Hask do not support.
    For example, we can show the value of a polynomial:
    > putStrLn ""
    > putStrLn $ "g = " + show g
    > putStrLn $ "g*g+g = " + show (g*g + g)
  • Weekly links for 2017-01-02

    subhask/example0001-polynomials.lhs at master · mikeizbicki/subhask
    > let f :: Ring x => x -> x
    > f x = x*x*x + x + 3
    >
    > let a = 3 :: Integer
    >
    > putStrLn $ "f a = " + show (f a)

    Now, we'll create a polynomial from our ordinary function.

    > let g :: Polynomial Integer
    > g = provePolynomial f
    >
    > putStrLn ""
    > putStrLn $ "g $ a = " + show ( g $ a )

    Polynomials support operations that other functions in Hask do not support.
    For example, we can show the value of a polynomial:
    > putStrLn ""
    > putStrLn $ "g = " + show g
    > putStrLn $ "g*g+g = " + show (g*g + g)
    A Haskell Study Syllabus :: FP Complete
    A Haskell Study Syllabus
    Learn professional-grade Haskell coding practices quickly and efficiently
    Verified programming in F*
    A hyper-heap provides organizes the heap into many disjoint fragments, or regions. Each region is collectively addressed by a region identifier, and these identifiers are organized in a tree-shaped hierarchy. Each region is itself a map from typed references to values, just like our heaps from before. The picture below depicts the structure.
    Bracket pattern - HaskellWiki
    When acquiring, using, and releasing various resources, it can be quite convenient to write a function to manage the acquisition and releasing, taking a function of the acquired value that specifies an action to be performed in between.ほ
    restart server whenever a new file is created in the .stack-work bin folder
    If you're on Linux, you can install inotify-tools, run stack build --file-watch in one terminal and

    (
    declare -i p
    trap 'kill "$p"' EXIT
    while true; do
    stack exec server arg1 arg2 & ...
  • Weekly links for 2015-07-08

    the-art-of-command-line/README.md at master · jlevy/the-art-of-command-line
    Fluency on the command line is a skill often neglected or considered arcane, but it improves your flexibility and productivity as an engineer in both obvious and subtle ways. This is a selection of notes and tips on using the command-line that I've found useful when working on Linux.
    FizzBuzz - EnterpriseEdition
    Enterprise software marks a special high-grade class of software that makes careful use of relevant software architecture design principles to build particularly customizable and extensible solutions to real problems. This project is an example of how the popular FizzBuzz game might be built were it subject to the high quality standards of enterprise software.
    Laverna/laverna · GitHub
    Laverna is a JavaScript note taking application with Markdown editor and encryption support. Consider it like open source alternative to Evernote. https://laverna.cc/index.html
    gfredericks/test.chuck
    string-from-regex is a suspiciously robust generator that will generate strings matching a regular expression
  • Weekly links for 2015-06-10

    Haskell for all: Scrap your type classes
    we as Haskell programmers have been conditioned to believe that it is correct and normal to have operators change behavior silently when passed different arguments, which completely subverts type-safety.
    GNUemacs: beyond the tutorial
    The Emacs tutorial introduces a few tens of commands; this document introduces around a hundred more that I have found useful (in over 25 years of using Emacs).
    Unison: Why are we still "compiling" and "building" code?
    Compilation, linking, the whole notion of “building” programs being a phase separate from the act of editing them is a relic from the punchcard era
    Laverna/laverna · GitHub
    Laverna is a JavaScript note taking application with Markdown editor and encryption support. Consider it like open source alternative to Evernote. https://laverna.cc/index.html