Conscientious Programmer
These articles were originally published on ConscientiousProgrammer.com, my programming blog (2012–2015) covering Haskell, Scala, Python, and other languages. The domain now redirects here.
64 posts
- 12/24/2015 24 days of Hackage, 2015: day 24: conclusion and thanks
- 12/23/2015 24 days of Hackage, 2015: day 23: Liquid Haskell: refinement types for the real world
- 12/22/2015 24 days of Hackage, 2015: day 22: Shake: the dynamic build system
- 12/21/2015 24 days of Hackage, 2015: day 21: hood, GHood, Hoed: observation oriented debugging in Haskell
- 12/20/2015 24 days of Hackage, 2015: day 20: dimensional: type-checked computation on physical quantities with units
- 12/19/2015 24 days of Hackage, 2015: day 19: ghc-core-html, list-fusion-probe; checking GHC's fusion rewrite rules for erasing intermediate data from existence
- 12/18/2015 24 days of Hackage, 2015: day 18: vector, vector-algorithms: unleash your inner C programmer!
- 12/17/2015 24 days of Hackage, 2015: day 17: ansi-wl-pprint: avoiding string hacking
- 12/16/2015 24 days of Hackage, 2015: day 16: safe; what is safety anyway?
- 12/15/2015 24 days of Hackage, 2015: day 15: IOSpec: testing IO; and some QuickCheck tricks
- 12/14/2015 24 days of Hackage, 2015: day 14: Earley: a promising newer parser library for Haskell
- 12/13/2015 24 days of Hackage, 2015: day 13: hint: runtime eval for Haskell
- 12/12/2015 24 days of Hackage, 2015: day 12: json-autotype: inferring types from data
- 12/11/2015 24 days of Hackage, 2015: day 11: monad-loops: avoiding writing recursive functions by refactoring
- 12/10/2015 24 days of Hackage, 2015: day 10: s-cargot: using S-expression syntax
- 12/9/2015 24 days of Hackage, 2015: day 9: Template Haskell goodies: here, interpolate, file-embed
- 12/8/2015 24 days of Hackage, 2015: day 8: multiset; I wish this were in the standard containers package
- 12/7/2015 24 days of Hackage, 2015: day 7: semigroups; NonEmpty list and a case study of types and tests
- 12/6/2015 24 days of Hackage, 2015: day 6: finding utilities with Hoogle and Hayoo: MissingH, extra
- 12/5/2015 24 days of Hackage, 2015: day 5: should-not-typecheck: making Haskell sort of dynamically typed with deferred type errors
- 12/4/2015 24 days of Hackage, 2015: day 4: wreq: Web client programming; with notes on lens and operator syntax
- 12/3/2015 24 days of Hackage, 2015: day 3: HSpec; the importance of testing
- 12/2/2015 24 days of Hackage, 2015: day 2: Regexes with pcre-heavy; standalone Haskell scripts using Stack
- 11/30/2015 Haskell tidbits: 24 days of Hackage, 2015: day 1: Introduction and Stack
- 10/8/2015 Report on my talk "A gentle conceptual introduction to functional programming"
- 6/17/2015 Aegis and Cook: what happens when an open source developer dies?
- 5/31/2015 Why I switched from Octopress 2 to Hugo
- 12/21/2014 How to think about Rust ownership versus C++ unique_ptr
- 12/17/2014 Remembering over 20 years of reading Dr. Dobb's Journal even till today
- 11/7/2014 When a computer algebra program gives wrong answers
- 10/8/2014 Pittsburgh Code and Supply: Making music with Overtone in Clojure; Conveying information through sound
- 8/8/2014 Understanding Clojure transducers through types
- 7/18/2014 Pittsburgh Code and Supply: Programming in journalism
- 7/17/2014 Why programming puzzlers make me sad
- 5/16/2014 Pittsburgh Scala Meetup: Exploring type-directed, test-driven development using FizzBuzz (my practice talk)
- 2/24/2014 OpenHack Pittsburgh: working on a private project
- 2/14/2014 Pittsburgh Scala Meetup: Implicits
- 1/28/2014 OpenHack Pittsburgh: a great place to share and learn
- 1/10/2014 Pittsburgh Scala Meetup: Introduction to Reactive
- 1/1/2014 Review of the free Coursera course "Principles of Reactive Programming"
- 12/27/2013 toString considered harmful, part 3
- 12/26/2013 toString considered harmful, part 2
- 12/23/2013 toString considered harmful, part 1
- 12/6/2013 Pittsburgh Scala Meetup: code walk through tic-tac-toe with Play
- 12/5/2013 MongoDB free online course: a review
- 10/31/2013 Surprised by the Go programming language's treatment of nil
- 10/11/2013 Pittsburgh Scala Meetup: learning by reading Josh's code!
- 8/26/2013 OpenHack Pittsburgh: learning Elixir test-driven and package-publishing
- 8/23/2013 Pittsburgh Data Visualization: D3 and only D3
- 8/19/2013 My lightning talk at Steel City Ruby 2013: "Reflections"
- 8/19/2013 Steel City Ruby 2013: my second year and it radically changed my life again (part 1)
- 8/14/2013 Pittsburgh Java User Group: Java EE 7, 8, and beyond; or done?
- 8/8/2013 Pittsburgh Data Visualization: D3 and R
- 8/3/2013 Pittsburgh Ruby/Python social and some observations about our polyglot world
- 8/1/2013 Pittsburgh Node Meetup: Optimizing development workflow with Grunt
- 7/31/2013 Pittsburgh Data Visualization Meetup: inaugural meet and greet
- 7/11/2013 Pittsburgh Ruby lightning talk night: RVM, business logic with Rails, IRC, rspec-given, Vagrant
- 7/10/2013 Pittsburgh JavaScript meetup: functional programming
- 6/29/2013 nil, non-determinism, exceptions: a journey in debugging the software that generates my blog
- 6/26/2013 We should not create this kind of terrible error message for the end user
- 6/26/2013 Pittsburgh Python: night of the favorite module
- 6/25/2013 Pittsburgh Java User Group: Building and Evolving a Java API
- 6/24/2013 Introducing this new programming blog
- 10/18/2012 Learning about Parasail: a new parallel programming language