The Conscientious Programmer

Humbly exploring what it means to do the right thing.

  • About
  • Non-programming blog

Copyright © 2018 Franklin Chen
Powered by Hugo and Hyde-X

  • 24 days of Hackage, 2015: day 24: conclusion and thanks · HaskellHackageReddit · Dec 24, 2015
  • 24 days of Hackage, 2015: day 23: Liquid Haskell: refinement types for the real world · HaskellHackageLiquid Haskellcontractsrefinement typesSMT · Dec 23, 2015
  • 24 days of Hackage, 2015: day 22: Shake: the dynamic build system · HaskellHackageshakemakeSConsPython · Dec 22, 2015
  • 24 days of Hackage, 2015: day 21: hood, GHood, Hoed: observation oriented debugging in Haskell · HaskellHackagegoodGHoodHoeddebugging · Dec 21, 2015
  • 24 days of Hackage, 2015: day 20: dimensional: type-checked computation on physical quantities with units · HaskellHackageFsharpdimensional · Dec 20, 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 · HaskellHackagefusionGHCghc-core-htmllist-fusion-probe · Dec 19, 2015
  • 24 days of Hackage, 2015: day 18: vector, vector-algorithms: unleash your inner C programmer! · HaskellHackagevectorvector-algorithmsarrayrepaarraysmutationC · Dec 18, 2015
  • 24 days of Hackage, 2015: day 17: ansi-wl-pprint: avoiding string hacking · HaskellHackageansi-wl-pprintannotated-wl-pprint · Dec 17, 2015
  • 24 days of Hackage, 2015: day 16: safe; what is safety anyway? · HaskellHackagesafesafetyexceptionsPureScriptElmpsychology · Dec 16, 2015
  • 24 days of Hackage, 2015: day 15: IOSpec: testing IO; and some QuickCheck tricks · HaskellHackageIOSpecIOtestingQuickCheckquickcheck-unicodecoercion · Dec 15, 2015
  • 24 days of Hackage, 2015: day 14: Earley: a promising newer parser library for Haskell · HaskellHackageEarleyparsecparsersambiguitynonempty lists · Dec 14, 2015
  • 24 days of Hackage, 2015: day 13: hint: runtime eval for Haskell · HaskellHackagehintevaldynamicGHCLispJavaScriptJava · Dec 13, 2015
  • 24 days of Hackage, 2015: day 12: json-autotype: inferring types from data · HaskellHackageaesonjson-autotypeJSONinferencetype providersFsharp · Dec 12, 2015
  • 24 days of Hackage, 2015: day 11: monad-loops: avoiding writing recursive functions by refactoring · HaskellHackagerecursionmonad-loops · Dec 11, 2015
  • 24 days of Hackage, 2015: day 10: s-cargot: using S-expression syntax · HaskellHackageLispSchemes-cargotS-expressionsdomain-specific languageparsersparsec · Dec 10, 2015
  • 24 days of Hackage, 2015: day 9: Template Haskell goodies: here, interpolate, file-embed · HaskellHackageTemplate Haskellhereinterpolatefile-embedstrings · Dec 9, 2015
  • 24 days of Hackage, 2015: day 8: multiset; I wish this were in the standard containers package · HaskellHackagemultisetcontainerstextsortingbuilder pattern · Dec 8, 2015
  • 24 days of Hackage, 2015: day 7: semigroups; NonEmpty list and a case study of types and tests · HaskellHackagesemigroupsnonempty liststypesparsecmonoidsalgebrasplitsafe · Dec 7, 2015
  • 24 days of Hackage, 2015: day 6: finding utilities with Hoogle and Hayoo: MissingH, extra · HaskellHackageHoogleHayooutilitiesMissingHextrahigher-rank typesPureScript · Dec 6, 2015
  • 24 days of Hackage, 2015: day 5: should-not-typecheck: making Haskell sort of dynamically typed with deferred type errors · HaskellHackageshould-not-typecheckStackdynamicdeferred type errorsGHC extensionstestingHSpec · Dec 5, 2015
  • 24 days of Hackage, 2015: day 4: wreq: Web client programming; with notes on lens and operator syntax · HaskellHackagewreqJSONlensaesonsyntaxPittsburgh Code and SupplyStandard MLOCamlElmElixirtypesdomain-specific languages · Dec 4, 2015
  • 24 days of Hackage, 2015: day 3: HSpec; the importance of testing · HaskellHackageHSpecRSpectestingtest-driven developmenttype-driven developmentPerlRubyElixirOCamltypesrefactoringdomain-specific languages · Dec 3, 2015
  • 24 days of Hackage, 2015: day 2: Regexes with pcre-heavy; standalone Haskell scripts using Stack · HaskellHackagepcre-heavyregexesparsersparsecPerlPCREPittsburgh TechFestTemplate Haskell · Dec 2, 2015
  • Haskell tidbits: 24 days of Hackage, 2015: day 1: Introduction and Stack · HaskellHackageStack · Nov 30, 2015
  • Why I switched from Octopress 2 to Hugo · static site generatorOctopressHugoJekyllHakyllRubyGoHaskellperformancecachePandocMarkdownPerl · May 31, 2015
  • Remembering over 20 years of reading Dr. Dobb's Journal even till today · Dr. Dobb's JournalCaml LightHaskellGoferDylanSchemetypesgradual typing · Dec 16, 2014
  • Understanding Clojure transducers through types · Clojuretransducerstypeshigher-rank typesHaskellmonadstype classesScalaRich HickeyJohn LaunchburySimon Peyton Jones · Aug 7, 2014
  • toString considered harmful, part 3 · ScalaJavaHaskellStandard MLOCamlCC++CsharpRubyPythonLispSchemeGoobject-orientedstring interpolationtype classes · Dec 27, 2013
  • toString considered harmful, part 2 · ScalaJavaHaskellStandard MLOCamlCC++CsharpRubyPythonLispSchemeGoobject-orientedstring interpolationimplicitstype classes · Dec 26, 2013
  • toString considered harmful, part 1 · ScalaJavaHaskellStandard MLOCamlCC++CsharpRubyPythonLispSchemeGoRustJavaScriptobject-orientedstring interpolation · Dec 23, 2013
  • OpenHack Pittsburgh: learning Elixir test-driven and package-publishing · OpenHackPittsburghErlangElixirtest-driven developmentTDDtestingconcurrencyasynchronousmacrostaupiTraviscontinuous integrationHaskellC++PerlPythonScalaJavaClojureJavaScriptRacketHSpecQuickCheckRSpecpytestSpecs2ScalaCheckMidjeJasminegoogletestRackUnit · Aug 26, 2013
  • Pittsburgh JavaScript meetup: functional programming · PittsburghJavaScriptfunctional programmingfunctional languagePittsburgh TechFestimmutableJavaMLStandard MLOCamlFsharpHaskellhigher-orderfirst-classSchemeRubyPythonPerlScalajQuerymonadsrecursionparallelismfunctional reactive programmingMVC.NETRx · Jul 10, 2013
  • nil, non-determinism, exceptions: a journey in debugging the software that generates my blog · static site generatorerror handlingerror messagesnilRubyexceptionstimeoutstestingOctopressJekyllPygmentsPythondynamic typingstatic typingGoOCamlScalaHaskell · Jun 29, 2013
  • Pittsburgh Java User Group: Building and Evolving a Java API · PittJUGPittsburghJavaC++RubyMLHaskellErlangstringsexceptionstypesScalaAPIserror messageserror handlingtest-driven developmentimmutable · Jun 25, 2013
  • Introducing this new programming blog · bikesheddingblog softwareOctopressJekyllRubyHakyllHaskell · Jun 24, 2013
  • Learning about Parasail: a new parallel programming language · ParasailparallelismconcurrencyCarnegie Mellon UniversityAdatypesTucker TaftGuy BlellochNESLStandard MLHaskell · Oct 17, 2012