41554 blogs · [ { "id": "01a087d6-c4e4-7005-a984-838fc4325427", "title": "Make ~/.pam_environment work again", "url": "http://ro-che.info/articles/2016-11-08-pam_environment", "published_at": "2016-11-08T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc4676619", "title": "Electoral vote distributions are polynomials", "url": "http://ro-che.info/articles/2016-10-28-vote-distributions-polynomials", "published_at": "2016-10-28T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc4835d09", "title": "Mean-variance ceiling", "url": "http://ro-che.info/articles/2016-10-20-mean-variance-ceiling", "published_at": "2016-10-20T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc4fde8ef", "title": "The rule of 17 in volleyball", "url": "http://ro-che.info/articles/2016-10-19-volleyball-rule-of-17", "published_at": "2016-10-19T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc563db49", "title": "How to prepare a good pull request", "url": "http://ro-che.info/articles/2016-09-18-good-pull-requests", "published_at": "2016-09-18T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc5996d1e", "title": "A case for static linking in scientific computing", "url": "http://ro-che.info/articles/2016-09-09-static-binaries-scientific-computing", "published_at": "2016-09-09T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc61b5c24", "title": "Extract the first n sequences from a FASTA file", "url": "http://ro-che.info/articles/2016-08-23-fasta-first-n-sequences", "published_at": "2016-08-23T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc6426bf1", "title": "Docker configuration on Fedora", "url": "http://ro-che.info/articles/2016-08-18-fedora-docker-configuration", "published_at": "2016-08-18T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc6c169ed", "title": "Does it matter if Hask is (not) a category?", "url": "http://ro-che.info/articles/2016-08-07-hask-category", "published_at": "2016-08-07T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc6f4746c", "title": "Debugging a CUPS Forbidden error", "url": "http://ro-che.info/articles/2016-07-08-debugging-cups-forbidden-error", "published_at": "2016-07-08T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc7c31306", "title": "Install Fedora Linux on an encrypted SSD", "url": "http://ro-che.info/articles/2016-06-28-install-fedora-linux-on-encrypted-ssd", "published_at": "2016-06-28T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc80da346", "title": "Predicting a coin toss", "url": "http://ro-che.info/articles/2016-06-14-predicting-coin-toss", "published_at": "2016-06-14T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc87579e3", "title": "Surprising reciprocity", "url": "http://ro-che.info/articles/2016-06-02-surprising-reciprocity", "published_at": "2016-06-02T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc8f0dad6", "title": "Basic HTTP auth with Scotty", "url": "http://ro-che.info/articles/2016-04-14-scotty-http-basic-auth", "published_at": "2016-04-14T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc922d6bf", "title": "Descending sort in Haskell", "url": "http://ro-che.info/articles/2016-04-02-descending-sort-haskell", "published_at": "2016-04-02T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc978f0df", "title": "rank vs. order in R", "url": "http://ro-che.info/articles/2016-03-19-rank-vs-order-r", "published_at": "2016-03-19T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fc99092c5", "title": "Reducing boilerplate in finally tagless style", "url": "http://ro-che.info/articles/2016-02-03-finally-tagless-boilerplate", "published_at": "2016-02-03T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fca5d33c2", "title": "Fixing Permission denied (publickey). after an SSH upgrade", "url": "http://ro-che.info/articles/2015-12-21-permission-denied-publickey-ssh-update", "published_at": "2015-12-21T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fca687e24", "title": "Torsors, midpoints, and homogeneous coordinates", "url": "http://ro-che.info/articles/2015-12-16-torsors-midpoints-homogeneous-coordinates", "published_at": "2015-12-16T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fca9ba896", "title": "Testing FFT with R", "url": "http://ro-che.info/articles/2015-12-05-testing-fft", "published_at": "2015-12-05T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fcab5190d", "title": "Simple FFT in Haskell", "url": "http://ro-che.info/articles/2015-12-04-fft", "published_at": "2015-12-04T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fcafe9093", "title": "Static linking with ghc", "url": "http://ro-che.info/articles/2015-10-26-static-linking-ghc", "published_at": "2015-10-26T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fcbb88489", "title": "MonadFix example: compiling regular expressions", "url": "http://ro-che.info/articles/2015-09-02-monadfix", "published_at": "2015-09-02T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fcc08a3e7", "title": "Better YAML parsing", "url": "http://ro-che.info/articles/2015-07-26-better-yaml-parsing", "published_at": "2015-07-26T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fcd00e324", "title": "How Haskell handles signals", "url": "http://ro-che.info/articles/2015-07-06-haskell-signals", "published_at": "2015-07-06T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fcd1af4d1", "title": "How to force a list", "url": "http://ro-che.info/articles/2015-05-28-force-list", "published_at": "2015-05-28T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fcd73c992", "title": "Announcing lambda prover", "url": "http://ro-che.info/articles/2015-05-27-prover", "published_at": "2015-05-27T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fcdd41561", "title": "Smarter validation", "url": "http://ro-che.info/articles/2015-05-02-smarter-validation", "published_at": "2015-05-02T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fce1caaea", "title": "Safe concurrent MySQL access in Haskell", "url": "http://ro-che.info/articles/2015-04-17-safe-concurrent-mysql-haskell", "published_at": "2015-04-17T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fce4b5795", "title": "Examples of monads in a dynamic language", "url": "http://ro-che.info/articles/2015-02-22-examples-monads-dynamic-language", "published_at": "2015-02-22T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fce52dac3", "title": "Foldable, Traversable, and parametricity", "url": "http://ro-che.info/articles/2015-02-12-foldable-traversable-parametricity", "published_at": "2015-02-12T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fceebc324", "title": "Dealing with broken Haskell packages", "url": "http://ro-che.info/articles/2015-02-09-dealing-with-broken-packages", "published_at": "2015-02-09T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fcf78d4c6", "title": "Spiral similarity solves an IMO problem", "url": "http://ro-che.info/articles/2015-01-31-imo-2014-4", "published_at": "2015-01-31T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd072e487", "title": "Recognizing lists", "url": "http://ro-che.info/articles/2015-01-29-recognizing-lists", "published_at": "2015-01-29T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd0826377", "title": "Lexical analysis with parser combinators", "url": "http://ro-che.info/articles/2015-01-02-lexical-analysis", "published_at": "2015-01-02T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd113150a", "title": "Denotational design does not work", "url": "http://ro-che.info/articles/2014-12-31-denotational-design-does-not-work", "published_at": "2014-12-31T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd206cb36", "title": "Taking advantage of type synonyms in monad-control", "url": "http://ro-che.info/articles/2014-12-26-monad-control-type-synonyms", "published_at": "2014-12-26T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd20dafa8", "title": "Extensible effects: abstracting from the transformer", "url": "http://ro-che.info/articles/2014-12-06-abstracting-from-transformer", "published_at": "2014-12-06T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd2d2aeb9", "title": "Rebalancing open source portfolio", "url": "http://ro-che.info/articles/2014-11-01-rebalancing-open-source-portfolio", "published_at": "2014-11-01T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd348ef90", "title": "Dependent Haskell", "url": "http://ro-che.info/articles/2014-09-05-dependent-haskell", "published_at": "2014-09-05T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd38aab90", "title": "What you need to know about bracket", "url": "http://ro-che.info/articles/2014-07-30-bracket", "published_at": "2014-07-30T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd4349cec", "title": "Type-based lift", "url": "http://ro-che.info/articles/2014-07-15-type-based-lift", "published_at": "2014-07-15T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd4b1967d", "title": "How to run SQL actions in persistent", "url": "http://ro-che.info/articles/2014-07-07-persistent", "published_at": "2014-07-07T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd5193543", "title": "Two failed attempts at extensible effects", "url": "http://ro-che.info/articles/2014-06-14-extensible-effects-failed", "published_at": "2014-06-14T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd616b40a", "title": "The problem with mtl", "url": "http://ro-che.info/articles/2014-06-11-problem-with-mtl", "published_at": "2014-06-11T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd6defc96", "title": "Avoid equational function definitions", "url": "http://ro-che.info/articles/2014-05-09-clauses", "published_at": "2014-05-09T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd75e263f", "title": "Lens is unidiomatic Haskell", "url": "http://ro-che.info/articles/2014-04-24-lens-unidiomatic", "published_at": "2014-04-24T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd78afbe7", "title": "Setting up Samsung Wireless Printer on Linux", "url": "http://ro-che.info/articles/2014-04-21-wireless-samsung-printer-linux", "published_at": "2014-04-21T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd7b46e9e", "title": "JSON validation combinators", "url": "http://ro-che.info/articles/2014-04-20-json-validation-combinators", "published_at": "2014-04-20T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd8093e81", "title": "Find out the type of an expression/function with typed holes", "url": "http://ro-che.info/articles/2014-03-13-type-of-local-function", "published_at": "2014-03-13T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd8534685", "title": "Happy, Alex, and GHC 7.8", "url": "http://ro-che.info/articles/2014-03-08-happy-alex-ghc-7.8", "published_at": "2014-03-08T20:00:00+00:00" }, { "id": "01a087d6-c4e4-7005-a984-838fd936af86", "title": "cabal sandbox tips", "url": "http://ro-che.info/articles/2014-03-05-cabal-sandbox-tips", "published_at": "2014-03-05T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d923f66ada", "title": "tasty-0.8 and other news", "url": "http://ro-che.info/articles/2014-03-03-tasty-0.8", "published_at": "2014-03-03T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d9249cbade", "title": "My Haskell will", "url": "http://ro-che.info/articles/2014-02-08-my-haskell-will", "published_at": "2014-02-08T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d924d07ac7", "title": "Resources in Tasty (update)", "url": "http://ro-che.info/articles/2013-12-29-tasty-resources-2", "published_at": "2013-12-29T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d925690f20", "title": "Custom options in Tasty", "url": "http://ro-che.info/articles/2013-12-20-tasty-custom-options", "published_at": "2013-12-20T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d92664711e", "title": "On column positions in vim", "url": "http://ro-che.info/articles/2013-12-14-vim-positions", "published_at": "2013-12-14T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d927486774", "title": "Resources in Tasty", "url": "http://ro-che.info/articles/2013-12-10-tasty-resources", "published_at": "2013-12-10T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d927552792", "title": "Why PVP doesn't work", "url": "http://ro-che.info/articles/2013-10-05-why-pvp-doesnt-work", "published_at": "2013-10-05T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d927ff021e", "title": "Flavours of free applicative functors", "url": "http://ro-che.info/articles/2013-03-31-flavours-of-free-applicative-functors", "published_at": "2013-03-31T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d9284fe23f", "title": "gtraverse vs. gfoldl", "url": "http://ro-che.info/articles/2013-03-29-gtraverse-vs-gfoldl", "published_at": "2013-03-29T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d928935ba7", "title": "Ergative verbs in programming", "url": "http://ro-che.info/articles/2013-03-14-ergative-verbs-in-programming", "published_at": "2013-03-14T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d928b7606d", "title": "Generalizing generic fold", "url": "http://ro-che.info/articles/2013-03-11-generalizing-gfoldl", "published_at": "2013-03-11T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d92914a434", "title": "Open your name resolution", "url": "http://ro-che.info/articles/2013-03-04-open-name-resolution", "published_at": "2013-03-04T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d929b66e04", "title": "Announcing SmallCheck 1.0", "url": "http://ro-che.info/articles/2013-02-19-smallcheck", "published_at": "2013-02-19T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d92a84a634", "title": "Generic uncurry", "url": "http://ro-che.info/articles/2013-01-29-generic-uncurry", "published_at": "2013-01-29T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d92b7c05ee", "title": "Subtractable values are torsors", "url": "http://ro-che.info/articles/2013-01-08-torsors", "published_at": "2013-01-08T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d92bdfbf32", "title": "Monads in dynamic languages", "url": "http://ro-che.info/articles/2012-12-26-monads-in-dynamic-languages", "published_at": "2012-12-26T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d92c75661b", "title": "Surprises of the Haskell module system (part 1)", "url": "http://ro-che.info/articles/2012-12-25-haskell-module-system-p1", "published_at": "2012-12-25T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d92c943f84", "title": "Haskell recipe: reading list of lines", "url": "http://ro-che.info/articles/2012-10-25-reading-list-of-lines", "published_at": "2012-10-25T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d92d0262bb", "title": "Reasoning about space usage in Haskell", "url": "http://ro-che.info/articles/2012-04-08-space-usage-reasoning", "published_at": "2012-04-08T20:00:00+00:00" }, { "id": "01a087d6-c4e5-707f-84dc-b9d92d97dde6", "title": "Composing monadic effects", "url": "http://ro-che.info/articles/2012-01-02-composing-monads", "published_at": "2012-01-02T20:00:00+00:00" } ] posts Claim your blog
Back to ro-che.info
Blog · corpus.blog/blogs/ro-che.info/posts

ro-che.info

ro-che.info

2016

2015

2014

2013

2012