41554 blogs · [ { "id": "01a08748-8e77-7359-93bd-591c22e1224b", "title": "Cambridge potpourri", "url": "https://blog.ezyang.com/2010/11/cambridge-potpourri/", "published_at": "2010-11-19T09:00:39+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c22ebe6bc", "title": "Haskell.org committee", "url": "https://blog.ezyang.com/2010/11/haskell-org-committee/", "published_at": "2010-11-17T09:00:40+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c23b6b121", "title": "It's just a longjmp to the left", "url": "https://blog.ezyang.com/2010/11/its-just-a-longjmp-to-the-left/", "published_at": "2010-11-15T09:00:56+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2499adfc", "title": "You are in a maze of twisty little passages, all alike... (a GHC hacking post)", "url": "https://blog.ezyang.com/2010/11/another-ghc-hacking-post/", "published_at": "2010-11-12T09:00:00+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2545b9bf", "title": "mod_fcgid 2.3 is broken (fixed in 2.3.6)", "url": "https://blog.ezyang.com/2010/11/mod_fcgid-is-broke/", "published_at": "2010-11-10T09:00:48+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c263e63e7", "title": "Medieval medicine and computers", "url": "https://blog.ezyang.com/2010/11/medieval-medicine-and-computers/", "published_at": "2010-11-08T09:00:15+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c26d3da49", "title": "DP Zoo Tour", "url": "https://blog.ezyang.com/2010/11/dp-zoo-tour/", "published_at": "2010-11-05T09:00:46+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c276e0f19", "title": "Dead Edward Day", "url": "https://blog.ezyang.com/2010/11/dead-edward-day/", "published_at": "2010-11-03T09:00:02+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c280e3ce0", "title": "DP Zoo", "url": "https://blog.ezyang.com/2010/11/dp-zoo/", "published_at": "2010-11-01T09:00:09+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c28a09f89", "title": "Intelligence is the ability to make finer distinctions: Another Haskell Advocacy Post", "url": "https://blog.ezyang.com/2010/10/finer-distinctions/", "published_at": "2010-10-29T09:00:13+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c28a64702", "title": "Blog name changed...", "url": "https://blog.ezyang.com/2010/10/blog-name-changed/", "published_at": "2010-10-27T09:00:07+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2918707a", "title": "OCaml for Haskellers", "url": "https://blog.ezyang.com/2010/10/ocaml-for-haskellers/", "published_at": "2010-10-25T09:00:54+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c296a3328", "title": "Don't Repeat Yourself is context dependent", "url": "https://blog.ezyang.com/2010/10/dry-is-context-dependen/", "published_at": "2010-10-22T09:00:52+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2a231a29", "title": "Purpose of proof: semi-formal methods", "url": "https://blog.ezyang.com/2010/10/purpose-of-proof-sem-formal-methods/", "published_at": "2010-10-20T09:00:42+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2af71df6", "title": "Rapidly prototyping scripts in Haskell", "url": "https://blog.ezyang.com/2010/10/rapid-prototyping-in-haskell/", "published_at": "2010-10-18T09:00:08+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2b6a6c57", "title": "Existential type-curry", "url": "https://blog.ezyang.com/2010/10/existential-type-curry/", "published_at": "2010-10-15T09:00:02+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2c33ecb9", "title": "Quote Day", "url": "https://blog.ezyang.com/2010/10/quote-day/", "published_at": "2010-10-13T09:00:56+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2c475596", "title": "Why being a sysadmin will help you do Science!", "url": "https://blog.ezyang.com/2010/10/why-being-a-sysadmin-will-help-you-do-scienc/", "published_at": "2010-10-11T09:00:40+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2d3d1423", "title": "The HTML purification manifesto", "url": "https://blog.ezyang.com/2010/10/the-html-purification-manifesto/", "published_at": "2010-10-08T09:00:07+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2df13aef", "title": "Abstraction without a concrete concept", "url": "https://blog.ezyang.com/2010/10/beyond-generalizatio/", "published_at": "2010-10-06T09:00:28+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2e8663d8", "title": "Why I am in Cambridge", "url": "https://blog.ezyang.com/2010/10/why-i-m-in-cambridge/", "published_at": "2010-10-04T09:00:10+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2eb951f8", "title": "Tips for running a hackathon", "url": "https://blog.ezyang.com/2010/10/tips-for-running-a-hackatho/", "published_at": "2010-10-01T09:00:54+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2ece2020", "title": "How to get answers from busy maintainers", "url": "https://blog.ezyang.com/2010/09/how-to-get-answers-from-busy-maintainers/", "published_at": "2010-09-29T09:00:45+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2f436bee", "title": "So long America!", "url": "https://blog.ezyang.com/2010/09/so-long-america/", "published_at": "2010-09-27T09:00:18+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c2f738941", "title": "High performance monads", "url": "https://blog.ezyang.com/2010/09/high-performance-monads/", "published_at": "2010-09-24T09:00:51+00:00" }, { "id": "01a08748-8e77-7359-93bd-591c3026dc8f", "title": "Data is Code", "url": "https://blog.ezyang.com/2010/09/data-is-code/", "published_at": "2010-09-22T09:00:38+00:00" }, { "id": "01a08748-8e78-7310-b11d-121287d39f7f", "title": "Tension of patch and tree version control", "url": "https://blog.ezyang.com/2010/09/tension-of-patch-and-tree-version-control/", "published_at": "2010-09-20T09:00:06+00:00" }, { "id": "01a08748-8e78-7310-b11d-121288b95b04", "title": "Session types, subtyping and dependent types", "url": "https://blog.ezyang.com/2010/09/session-types-subtyping-and-dependent-types/", "published_at": "2010-09-17T09:00:09+00:00" }, { "id": "01a08748-8e78-7310-b11d-121288ed116f", "title": "Evolution of a Shared Web Host", "url": "https://blog.ezyang.com/2010/09/evolution-of-a-shared-web-host/", "published_at": "2010-09-15T09:00:03+00:00" }, { "id": "01a08748-8e78-7310-b11d-121289af8237", "title": "Keyword arguments in Haskell", "url": "https://blog.ezyang.com/2010/09/keyword-arguments-in-haskell/", "published_at": "2010-09-13T09:00:24+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128a779948", "title": "Towards platform-agnostic interruptibility", "url": "https://blog.ezyang.com/2010/09/towards-platform-agnostic-interruptibility/", "published_at": "2010-09-10T09:00:47+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128b2b87a0", "title": "pthread_cancel on Windows", "url": "https://blog.ezyang.com/2010/09/pthread-cancel-on-window/", "published_at": "2010-09-08T09:00:27+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128b434d93", "title": "Embracing Windows", "url": "https://blog.ezyang.com/2010/09/embracing-window/", "published_at": "2010-09-06T09:00:27+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128b6e077e", "title": "Annotating slides", "url": "https://blog.ezyang.com/2010/09/annotating-slides/", "published_at": "2010-09-03T09:00:53+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128bba0418", "title": "My type signature overfloweth", "url": "https://blog.ezyang.com/2010/09/my-type-signature-overfloweth/", "published_at": "2010-09-01T09:00:35+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128c5798c8", "title": "Defining “Haskelly”", "url": "https://blog.ezyang.com/2010/08/defining-haskelly/", "published_at": "2010-08-30T09:00:05+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128c724122", "title": "Interrupting GHC", "url": "https://blog.ezyang.com/2010/08/interrupting-ghc/", "published_at": "2010-08-27T09:00:27+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128c783957", "title": "abcBridge: Functional interfaces for AIGs and SAT solving", "url": "https://blog.ezyang.com/2010/08/galois-tech-talk-abcbridge-functional-interfaces-for-aigs-and-sat-solving/", "published_at": "2010-08-25T09:00:48+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128cd56650", "title": "Type Kata: Distinguishing different data with the same underlying representation", "url": "https://blog.ezyang.com/2010/08/type-kata-newtypes/", "published_at": "2010-08-23T09:00:36+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128d4dc549", "title": "Day in the life of a Galois intern", "url": "https://blog.ezyang.com/2010/08/day-in-the-life-of-a-galois-intern/", "published_at": "2010-08-20T09:00:11+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128e3d64ed", "title": "Type kata: Controlled sharing of references", "url": "https://blog.ezyang.com/2010/08/type-kata-controlled-sharing-of-references/", "published_at": "2010-08-18T09:00:51+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128f39f004", "title": "What high school Algebra quizzes and NP-complete problems have in common", "url": "https://blog.ezyang.com/2010/08/what-high-school-algebra-quizzes-and-np-complete-problems-have-in-common/", "published_at": "2010-08-16T09:00:03+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128f8d601c", "title": "Generalizing APIs", "url": "https://blog.ezyang.com/2010/08/generalizing-apis/", "published_at": "2010-08-13T09:00:54+00:00" }, { "id": "01a08748-8e78-7310-b11d-12128fa3ba8f", "title": "A radical Hackage social experiment", "url": "https://blog.ezyang.com/2010/08/the-radical-hackage-social-experiment/", "published_at": "2010-08-11T09:00:26+00:00" }, { "id": "01a08748-8e78-7310-b11d-121290795eca", "title": "Paper Monday", "url": "https://blog.ezyang.com/2010/08/paper-monday/", "published_at": "2010-08-09T09:00:03+00:00" }, { "id": "01a08748-8e78-7310-b11d-121290834fa2", "title": "The Gateway Drug to Type Programming", "url": "https://blog.ezyang.com/2010/08/the-gateway-drug-to-type-programming/", "published_at": "2010-08-06T09:00:14+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129147d11f", "title": "Tour of a distributed Erlang application", "url": "https://blog.ezyang.com/2010/08/tour-of-preach-distributed-erlang/", "published_at": "2010-08-05T09:00:16+00:00" }, { "id": "01a08748-8e78-7310-b11d-121291bddb9c", "title": "Buffered streams and iteratees", "url": "https://blog.ezyang.com/2010/08/buffered-streams-and-iteratee/", "published_at": "2010-08-04T09:00:42+00:00" }, { "id": "01a08748-8e78-7310-b11d-121292088e82", "title": "How to pick your string library in Haskell", "url": "https://blog.ezyang.com/2010/08/strings-in-haskell/", "published_at": "2010-08-02T09:00:50+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212926fb50a", "title": "Suggestion box", "url": "https://blog.ezyang.com/2010/07/suggestion-box/", "published_at": "2010-07-30T09:00:46+00:00" }, { "id": "01a08748-8e78-7310-b11d-121292b39ad6", "title": "Delaying implicit parameter binding", "url": "https://blog.ezyang.com/2010/07/delaying-implicit-parameter-binding/", "published_at": "2010-07-28T09:00:38+00:00" }, { "id": "01a08748-8e78-7310-b11d-121292d0cd9e", "title": "Reader monad and implicit parameters", "url": "https://blog.ezyang.com/2010/07/implicit-parameters-in-haskell/", "published_at": "2010-07-26T12:46:43+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212938d13ae", "title": "Managing foreign pointers effectively", "url": "https://blog.ezyang.com/2010/07/managing-foreign-pointers-effectively/", "published_at": "2010-07-23T09:00:43+00:00" }, { "id": "01a08748-8e78-7310-b11d-121293b739c8", "title": "Pipelines and continuations", "url": "https://blog.ezyang.com/2010/07/pipelines-and-continuation/", "published_at": "2010-07-21T09:00:19+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212942712b9", "title": "System.Posix.Redirect", "url": "https://blog.ezyang.com/2010/07/system-posix-redirect/", "published_at": "2010-07-19T09:00:28+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212947b6755", "title": "Maximum matching deadlock solution", "url": "https://blog.ezyang.com/2010/07/maximum-matching-deadlock-solution/", "published_at": "2010-07-16T09:00:13+00:00" }, { "id": "01a08748-8e78-7310-b11d-121294c61b65", "title": "Flipping arrows in coBurger King", "url": "https://blog.ezyang.com/2010/07/flipping-arrows-in-coburger-king/", "published_at": "2010-07-14T09:00:40+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212959db31b", "title": "Graphs not grids: How caches are corrupting young algorithms designers and how to fix it", "url": "https://blog.ezyang.com/2010/07/graphs-not-grids/", "published_at": "2010-07-12T09:00:17+00:00" }, { "id": "01a08748-8e78-7310-b11d-121295e1979d", "title": "Safety first: FFI and threading", "url": "https://blog.ezyang.com/2010/07/safety-first-ffi-and-threading/", "published_at": "2010-07-09T09:00:05+00:00" }, { "id": "01a08748-8e78-7310-b11d-121296a36b69", "title": "Groom: human readable Show for Haskell", "url": "https://blog.ezyang.com/2010/07/groom-human-readable-show-for-haskell/", "published_at": "2010-07-07T09:00:34+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212977b1ebf", "title": "Little’s law", "url": "https://blog.ezyang.com/2010/07/littles-law/", "published_at": "2010-07-05T09:00:47+00:00" }, { "id": "01a08748-8e78-7310-b11d-121298778907", "title": "MVC and Purity", "url": "https://blog.ezyang.com/2010/07/mvc-and-purity/", "published_at": "2010-07-02T09:00:21+00:00" }, { "id": "01a08748-8e78-7310-b11d-121298865cf9", "title": "Call and fun: marshalling redux", "url": "https://blog.ezyang.com/2010/06/call-and-fun-marshalling-redux/", "published_at": "2010-06-30T09:00:36+00:00" }, { "id": "01a08748-8e78-7310-b11d-121298e059e3", "title": "Thinking about talk", "url": "https://blog.ezyang.com/2010/06/thinking-about-talk/", "published_at": "2010-06-28T09:00:44+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212997969e0", "title": "Marshalling with get and set", "url": "https://blog.ezyang.com/2010/06/marshalling-with-get-and-set/", "published_at": "2010-06-25T09:00:43+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129a6889e6", "title": "First steps in c2hs", "url": "https://blog.ezyang.com/2010/06/first-steps-in-c2hs/", "published_at": "2010-06-23T09:00:52+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129acbfa42", "title": "The secret to successful autogenerated docs", "url": "https://blog.ezyang.com/2010/06/secret-of-autogenerated-docs/", "published_at": "2010-06-21T09:00:26+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129afb6140", "title": "Principles of FFI API design", "url": "https://blog.ezyang.com/2010/06/principles-of-ffi-api-design/", "published_at": "2010-06-18T09:00:26+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129b0f0c85", "title": "Well-founded recursion in Agda", "url": "https://blog.ezyang.com/2010/06/well-founded-recursion-in-agda/", "published_at": "2010-06-16T09:00:35+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129b1e04b3", "title": "Setting up Cabal, the FFI and c2hs", "url": "https://blog.ezyang.com/2010/06/setting-up-cabal-the-ffi-and-c2hs/", "published_at": "2010-06-14T09:00:18+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129bc75d35", "title": "The Haskell Preprocessor Hierarchy", "url": "https://blog.ezyang.com/2010/06/the-haskell-preprocessor-hierarchy/", "published_at": "2010-06-11T09:00:12+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129cb9e227", "title": "Static Analysis for everyday (not-PhD) man", "url": "https://blog.ezyang.com/2010/06/static-analysis-mozilla/", "published_at": "2010-06-09T09:00:48+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129cc66a19", "title": "AP Physics: Stuck in the concrete", "url": "https://blog.ezyang.com/2010/06/ap-physics-stuck-in-the-concrete/", "published_at": "2010-06-07T09:00:32+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129d601b2a", "title": "Databases are categories", "url": "https://blog.ezyang.com/2010/06/databases-are-categories/", "published_at": "2010-06-04T09:00:38+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129e1e137e", "title": "Bug boogie: Git and symlinks", "url": "https://blog.ezyang.com/2010/06/bug-boogie-git-and-symlinks/", "published_at": "2010-06-02T09:00:09+00:00" }, { "id": "01a08748-8e78-7310-b11d-12129f1c7e36", "title": "Punt the Prelude", "url": "https://blog.ezyang.com/2010/05/punt-the-prelude/", "published_at": "2010-05-31T09:00:03+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a008489a", "title": "Use The Monoid: A worked example", "url": "https://blog.ezyang.com/2010/05/use-the-monoid/", "published_at": "2010-05-28T09:00:14+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a0e6fdba", "title": "Bananas, Lenses, Envelopes and Barbed Wire A Translation Guide", "url": "https://blog.ezyang.com/2010/05/bananas-lenses-envelopes-and-barbed-wire-a-translation-guide/", "published_at": "2010-05-26T09:00:05+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a12d6e67", "title": "Lazy exceptions and IO", "url": "https://blog.ezyang.com/2010/05/imprecise-exceptions-and-io/", "published_at": "2010-05-24T09:00:41+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a1c54e59", "title": "Upgrading to Ubuntu Lucid", "url": "https://blog.ezyang.com/2010/05/upgrading-to-ubuntu-lucid/", "published_at": "2010-05-21T09:00:58+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a2435fa9", "title": "Class Reflections", "url": "https://blog.ezyang.com/2010/05/class-reflections/", "published_at": "2010-05-19T09:00:49+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a33969ee", "title": "I Hate Patches: Confessions of an Open-Source Developer", "url": "https://blog.ezyang.com/2010/05/i-hate-patches-confessions-of-an-open-source-developer/", "published_at": "2010-05-17T09:00:11+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a42aa83e", "title": "Spring 2010: A Random Walk", "url": "https://blog.ezyang.com/2010/05/spring-2010-a-random-walk/", "published_at": "2010-05-14T09:00:05+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a444ef41", "title": "Refactoring Haskell code?", "url": "https://blog.ezyang.com/2010/05/refactoring-haskell-code/", "published_at": "2010-05-12T09:00:41+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a4b202f1", "title": "Nested Data Parallelism versus Creative Catamorphisms", "url": "https://blog.ezyang.com/2010/05/nd-vs-catamorphisms/", "published_at": "2010-05-10T09:00:49+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a54b879a", "title": "Omnipresent Cabal", "url": "https://blog.ezyang.com/2010/05/omnipresent-cabal/", "published_at": "2010-05-07T09:00:34+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a614c0df", "title": "Name conflicts on Hackage", "url": "https://blog.ezyang.com/2010/05/name-conflicts-on-hackage/", "published_at": "2010-05-05T09:00:12+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a6c9e5e3", "title": "Design Patterns in Haskell", "url": "https://blog.ezyang.com/2010/05/design-patterns-in-haskel/", "published_at": "2010-05-03T09:00:32+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a6d515aa", "title": "Art. Code. Math. (And mit-scheme)", "url": "https://blog.ezyang.com/2010/04/art-code-math-and-mit-scheme/", "published_at": "2010-04-30T09:00:49+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a71d730c", "title": "Inessential guide to fclabels", "url": "https://blog.ezyang.com/2010/04/inessential-guide-to-fclabels/", "published_at": "2010-04-28T09:00:04+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a770ff71", "title": "The Problem with xUnit", "url": "https://blog.ezyang.com/2010/04/the-problem-with-xunit/", "published_at": "2010-04-26T09:00:07+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a7fbc396", "title": "Creative catamorphisms", "url": "https://blog.ezyang.com/2010/04/creative-catamorphisms/", "published_at": "2010-04-23T09:00:57+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a82ad88a", "title": "Association maps in mit-scheme", "url": "https://blog.ezyang.com/2010/04/association-maps-in-mit-scheme/", "published_at": "2010-04-21T09:00:08+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a91fec16", "title": "Thoughts on discussion", "url": "https://blog.ezyang.com/2010/04/thoughts-on-discussion/", "published_at": "2010-04-19T09:00:52+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212a96c1513", "title": "Dudamel visits MIT", "url": "https://blog.ezyang.com/2010/04/dudamel-visits-mit/", "published_at": "2010-04-16T09:00:54+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212aa34399d", "title": "Inessential Guide to data-accessor", "url": "https://blog.ezyang.com/2010/04/inessential-guide-to-data-accessor/", "published_at": "2010-04-14T09:00:23+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212aa97a850", "title": "Later Impressions of the VX-8R", "url": "https://blog.ezyang.com/2010/04/later-impressions-of-the-vx-8r/", "published_at": "2010-04-12T09:00:02+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212ab207b19", "title": "Diagramming in Xournal and Gimp", "url": "https://blog.ezyang.com/2010/04/diagramming-in-xournal-and-gimp/", "published_at": "2010-04-09T09:00:35+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212ac15a986", "title": "You could have invented zippers", "url": "https://blog.ezyang.com/2010/04/you-could-have-invented-zippers/", "published_at": "2010-04-07T09:00:54+00:00" }, { "id": "01a08748-8e78-7310-b11d-1212ac9d6564", "title": "Cup of FP with a Java twist", "url": "https://blog.ezyang.com/2010/04/cup-of-fp-java-twis/", "published_at": "2010-04-05T09:00:26+00:00" } ] posts Claim your blog
Back to blog.ezyang.com
Blog · corpus.blog/blogs/blog.ezyang.com/posts

blog.ezyang.com

blog.ezyang.com

2010