41554 blogs · [ { "id": "01a0874a-56ff-7079-9b19-83ca37e03b95", "title": "try and hs at osdi 2026", "url": "https://blog.greenberg.science/posts/osdi2026/", "published_at": "2026-07-10T16:36:51+00:00" }, { "id": "01a0874a-5705-7369-8f05-a5774116bdf8", "title": "popl 2026 tutorial: analyzing shell scripts", "url": "https://blog.greenberg.science/posts/popl2026-tutorial/", "published_at": "2026-03-26T13:58:56+00:00" }, { "id": "01a0874a-5705-7369-8f05-a577420e2289", "title": "reflections on minnowbrook logic programming seminar 2025", "url": "https://blog.greenberg.science/posts/minnowbrook-2025/", "published_at": "2025-05-30T20:21:41+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee0871776", "title": "mute: silence a running command", "url": "https://blog.greenberg.science/posts/mute-silence-a-running-command/", "published_at": "2025-04-01T15:17:25+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee10597da", "title": "how to give a good talk (plmw @ popl 2025)", "url": "https://blog.greenberg.science/posts/how-to-give-a-good-talk/", "published_at": "2025-02-27T23:06:33+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee1dfde7f", "title": "debugging materialize with materialize", "url": "https://blog.greenberg.science/posts/materialize-introspection/", "published_at": "2025-02-06T00:03:00+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee21d91b1", "title": "new blog, who dis?", "url": "https://blog.greenberg.science/posts/new-blog-who-dis/", "published_at": "2024-12-15T19:44:02+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee27c1241", "title": "I'm looking for students!", "url": "https://blog.greenberg.science/posts/2023-recruiting/", "published_at": "2023-10-25T13:19:05+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee3150bb4", "title": "Answer set programming (ASP) is the powerhouse technology you've never heard of", "url": "https://blog.greenberg.science/posts/answer-set-programming-powerhouse-tech/", "published_at": "2022-11-07T16:10:38+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee3bf7fe9", "title": "What's hard about grad school?", "url": "https://blog.greenberg.science/posts/whats-hard-about-grad-school/", "published_at": "2022-06-09T15:51:06+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee3c48893", "title": "When is program synthesis worthwhile?", "url": "https://blog.greenberg.science/posts/when-is-program-synthesis-worthwhile/", "published_at": "2022-05-24T14:52:49+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee3dc6a1b", "title": "How to cook a KAT for your pet theory", "url": "https://blog.greenberg.science/posts/how-to-cook-a-kat-for-your-pet-theory/", "published_at": "2022-05-13T15:34:53+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee49615bc", "title": "Summarizing performance numbers", "url": "https://blog.greenberg.science/posts/summarizing-performance-numbers/", "published_at": "2021-12-14T18:02:36+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee50e99ec", "title": "Bridging the gradual typing gap at OOPSLA 2021", "url": "https://blog.greenberg.science/posts/bridging-the-gradual-typing-gap-at-oopsla-2021/", "published_at": "2021-09-21T10:34:43+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee534700e", "title": "I'm looking for PhD students!", "url": "https://blog.greenberg.science/posts/2021-recruiting/", "published_at": "2021-09-17T10:25:53+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee5c347bf", "title": "Heaven, Hell, or Hoboken!", "url": "https://blog.greenberg.science/posts/heaven-hell-or-hoboken/", "published_at": "2021-09-17T09:58:31+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee5d40589", "title": "Pomona College is hiring!", "url": "https://blog.greenberg.science/posts/pomona-college-is-hiring/", "published_at": "2021-09-13T11:59:58+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee6b6f0ea", "title": "Processing Semi-Structured Data in the Unix Shell", "url": "https://blog.greenberg.science/posts/processing-semistructured-data-in-the-unix-shell/", "published_at": "2021-06-29T10:07:35+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee70f937f", "title": "SIGPLAN Blog: Making PL Ideas Accessible", "url": "https://blog.greenberg.science/posts/sigplan-blog-making-pl-ideas-accessible/", "published_at": "2021-04-13T12:25:33+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee716738f", "title": "POPL Cocktail Hour", "url": "https://blog.greenberg.science/posts/popl-cocktail-hour/", "published_at": "2021-01-16T18:49:09+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee7749265", "title": "Cast notation: a case study", "url": "https://blog.greenberg.science/posts/cast-notation-a-case-study/", "published_at": "2020-10-01T00:17:28+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee86c4027", "title": "Racist Bullshit in Mathematics", "url": "https://blog.greenberg.science/posts/racist-bullshit-in-mathematics/", "published_at": "2020-09-10T14:41:50+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee88aebf1", "title": "What to Define When You're Defining Gradual Type Systems", "url": "https://blog.greenberg.science/posts/what-to-define-when-youre-defining-gradual-type-systems/", "published_at": "2020-08-13T16:53:41+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee95241d3", "title": "Formulog: ML + Datalog + SMT", "url": "https://blog.greenberg.science/posts/formulog-ml-datalog-smt/", "published_at": "2020-08-07T12:47:05+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ee9f42ef4", "title": "The Big Brzozowski", "url": "https://blog.greenberg.science/posts/the-big-brzozowski/", "published_at": "2020-05-08T18:29:07+00:00" }, { "id": "01a0874a-5728-7319-9e51-674eead45fbd", "title": "Smart constructors are smarter than you think", "url": "https://blog.greenberg.science/posts/smart-constructors-are-smarter-than-you-think/", "published_at": "2020-05-07T12:50:01+00:00" }, { "id": "01a0874a-5728-7319-9e51-674eeb1b8c9e", "title": "Flapjax on PL Perspectives", "url": "https://blog.greenberg.science/posts/flapjax-on-pl-perspectives/", "published_at": "2019-12-03T08:23:27+00:00" }, { "id": "01a0874a-5728-7319-9e51-674eebb038f5", "title": "smoosh v0.1", "url": "https://blog.greenberg.science/posts/smoosh-v01/", "published_at": "2019-05-15T15:05:07+00:00" }, { "id": "01a0874a-5728-7319-9e51-674eec468f97", "title": "OBT on hiatus", "url": "https://blog.greenberg.science/posts/obt-on-hiatus/", "published_at": "2019-05-13T11:00:55+00:00" }, { "id": "01a0874a-5728-7319-9e51-674eed296704", "title": "The Dynamic Practice and Static Theory of Gradual Typing", "url": "https://blog.greenberg.science/posts/the-dynamic-practice-and-static-theory-of-gradual-typing/", "published_at": "2019-04-16T09:37:47+00:00" }, { "id": "01a0874a-5728-7319-9e51-674eed5966db", "title": "Collapsible Contracts: Space-Efficient Contracts in Racket", "url": "https://blog.greenberg.science/posts/collapsible-contracts-spaceefficient-contracts-in-racket/", "published_at": "2018-11-12T11:49:13+00:00" }, { "id": "01a0874a-5728-7319-9e51-674eedb5b03c", "title": "New paper: Word expansion supports POSIX shell interactivity", "url": "https://blog.greenberg.science/posts/new-paper-word-expansion-supports-posix-shell-interactivity/", "published_at": "2018-03-15T20:43:29+00:00" }, { "id": "01a0874a-5728-7319-9e51-674eee8b3c8a", "title": "Computer science at a small liberal arts college", "url": "https://blog.greenberg.science/posts/computer-science-at-a-small-liberal-arts-college/", "published_at": "2017-10-10T11:31:04+00:00" }, { "id": "01a0874a-5728-7319-9e51-674eef8acb96", "title": "Computer Security in the Face of a Hostile Government", "url": "https://blog.greenberg.science/posts/computer-security-in-the-face-of-a-hostile-government/", "published_at": "2016-12-12T19:33:07+00:00" }, { "id": "01a0874a-5728-7319-9e51-674eefff0ab2", "title": "PHPEnkoder 1.14", "url": "https://blog.greenberg.science/posts/phpenkoder-114/", "published_at": "2016-08-19T09:32:55+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ef0ca441a", "title": "Disjointness of subset types", "url": "https://blog.greenberg.science/posts/disjointness-of-subset-types/", "published_at": "2016-04-14T17:50:33+00:00" }, { "id": "01a0874a-5728-7319-9e51-674ef10ea62b", "title": "Installing ctypes and ctypes-foreign on OS X with brew and OPAM", "url": "https://blog.greenberg.science/posts/installing-ctypes-and-ctypesforeign-on-os-x-with-brew-and-opam/", "published_at": "2016-02-10T17:04:56+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd1c4573a8", "title": "A refinement type by any other name", "url": "https://blog.greenberg.science/posts/a-refinement-type-by-any-other-name/", "published_at": "2015-03-16T23:28:54+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd1c80b070", "title": "Twitter bots and OAuth", "url": "https://blog.greenberg.science/posts/twitter-bots-and-oauth/", "published_at": "2015-02-09T22:37:13+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd1d30c069", "title": "PHPEnkoder 1.13", "url": "https://blog.greenberg.science/posts/phpenkoder-113/", "published_at": "2015-02-09T15:55:36+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd1d965098", "title": "Cultural criticism and 'tech'", "url": "https://blog.greenberg.science/posts/cultural-criticism-and-tech/", "published_at": "2014-12-12T13:06:21+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd1e1bc7ed", "title": "PLVNET", "url": "https://blog.greenberg.science/posts/plvnet/", "published_at": "2014-12-02T12:51:17+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd1e7f52d3", "title": "Space-Efficient Manifest Contracts at POPL 15", "url": "https://blog.greenberg.science/posts/spaceefficient-manifest-contracts-at-popl-15/", "published_at": "2014-10-28T11:19:02+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd1e89453a", "title": "Contracts: first-order interlopers in a higher-order world", "url": "https://blog.greenberg.science/posts/contracts-firstorder-interlopers-in-a-higherorder-world/", "published_at": "2014-10-17T17:10:50+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd1f6a36f9", "title": "Scheduling the discussion order at PC meetings", "url": "https://blog.greenberg.science/posts/scheduling-the-discussion-order-at-pc-meetings/", "published_at": "2014-10-03T09:08:35+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd206a2388", "title": "New and improved: Space-Efficient Manifest Contracts", "url": "https://blog.greenberg.science/posts/new-and-improved-spaceefficient-manifest-contracts/", "published_at": "2014-07-08T13:35:57+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd20a61a19", "title": "Concurrent NetCore: From Policies to Pipelines", "url": "https://blog.greenberg.science/posts/concurrent-netcore-from-policies-to-pipelines/", "published_at": "2014-03-03T12:46:21+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd20e6c845", "title": "A Balance of Power: Expressive, Analyzable Controller Programming", "url": "https://blog.greenberg.science/posts/a-balance-of-power-expressive-analyzable-controller-programming/", "published_at": "2014-01-30T13:19:55+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd217226b6", "title": "PHPEnkoder 1.12.1: \"PHP is laughably bad\" edition", "url": "https://blog.greenberg.science/posts/phpenkoder-1121-php-is-laughably-bad-edition/", "published_at": "2014-01-15T11:01:08+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd21aa5d9e", "title": "PHPEnkoder 1.12: unicode support!", "url": "https://blog.greenberg.science/posts/phpenkoder-112-unicode-support/", "published_at": "2014-01-15T01:08:51+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd226f074f", "title": "Bug in \"Polymorphic Contracts\"", "url": "https://blog.greenberg.science/posts/bug-in-polymorphic-contracts/", "published_at": "2014-01-14T11:14:05+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd22b5d041", "title": "PhD thesis: Manifest Contracts", "url": "https://blog.greenberg.science/posts/phd-thesis-manifest-contracts/", "published_at": "2013-12-31T15:14:30+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd239f71f9", "title": "Axiomatizing manifest contracts", "url": "https://blog.greenberg.science/posts/axiomatizing-manifest-contracts/", "published_at": "2013-10-13T16:50:15+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd23a99679", "title": "Space-Efficient Manifest Contracts", "url": "https://blog.greenberg.science/posts/spaceefficient-manifest-contracts/", "published_at": "2013-07-12T11:26:32+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd23e37a70", "title": "NJPLS Fall 2012", "url": "https://blog.greenberg.science/posts/njpls-fall-2012/", "published_at": "2012-11-15T16:33:26+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd24830a36", "title": "LLVM 3.1, Haskell 7.4.1, and OS X", "url": "https://blog.greenberg.science/posts/llvm-31-haskell-741-and-os-x/", "published_at": "2012-08-01T10:50:35+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd24a3050e", "title": "Exceptionally Available Dynamic IFC", "url": "https://blog.greenberg.science/posts/exceptionally-available-dynamic-ifc/", "published_at": "2012-07-16T16:50:17+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd25656312", "title": "QuickRedex", "url": "https://blog.greenberg.science/posts/quickredex/", "published_at": "2012-02-01T15:18:01+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd25a7baf8", "title": "@mgrnbrg on twitter", "url": "https://blog.greenberg.science/posts/mgrnbrg-on-twitter/", "published_at": "2012-02-01T11:07:58+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2641684e", "title": "Towards a core calculus for implicitly migration-capable applications", "url": "https://blog.greenberg.science/posts/towards-a-core-calculus-for-implicitly-migrationcapable-applications/", "published_at": "2011-10-25T12:38:31+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd26af5d08", "title": "PHPEnkoder 1.11", "url": "https://blog.greenberg.science/posts/phpenkoder-111/", "published_at": "2011-10-11T09:47:02+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd26b5eabc", "title": "PHPEnkoder 1.10", "url": "https://blog.greenberg.science/posts/phpenkoder-110/", "published_at": "2011-10-05T11:48:48+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd26ea7ad0", "title": "PHPEnkoder 1.9", "url": "https://blog.greenberg.science/posts/phpenkoder-19/", "published_at": "2011-03-15T16:16:49+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd26f10c09", "title": "PHPEnkoder 1.8", "url": "https://blog.greenberg.science/posts/phpenkoder-18/", "published_at": "2011-02-21T21:05:18+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd278456fd", "title": "Lovelace and Babbage vs. The Organist", "url": "https://blog.greenberg.science/posts/lovelace-and-babbage-vs-the-organist/", "published_at": "2011-01-19T14:33:35+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd287e37ca", "title": "ESOP 2011 Papers", "url": "https://blog.greenberg.science/posts/esop-2011-papers/", "published_at": "2011-01-04T10:30:01+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2916f2f8", "title": "Polymorphic Contracts", "url": "https://blog.greenberg.science/posts/polymorphic-contracts/", "published_at": "2010-10-27T11:27:00+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2939f1c6", "title": "The Resurgence of Parallelism", "url": "https://blog.greenberg.science/posts/the-resurgence-of-parallelism/", "published_at": "2010-05-29T05:17:20+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2a38b58b", "title": "PHPEnkoder 1.7", "url": "https://blog.greenberg.science/posts/phpenkoder-17/", "published_at": "2010-05-03T14:49:14+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2af55f0f", "title": "Nested functions in GCC", "url": "https://blog.greenberg.science/posts/nested-functions-in-gcc/", "published_at": "2010-03-03T11:06:40+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2be17f8b", "title": "Type theory comes of age", "url": "https://blog.greenberg.science/posts/type-theory-comes-of-age/", "published_at": "2010-02-12T10:18:37+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2c29ab19", "title": "POPL 2010", "url": "https://blog.greenberg.science/posts/popl-2010/", "published_at": "2010-01-22T10:22:37+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2c4c959e", "title": "Contracts Made Manifest: final version", "url": "https://blog.greenberg.science/posts/contracts-made-manifest-final-version/", "published_at": "2009-11-03T12:03:30+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2d179137", "title": "Locally installing LLVM with Ocaml bindings", "url": "https://blog.greenberg.science/posts/locally-installing-llvm-with-ocaml-bindings/", "published_at": "2009-09-24T15:44:31+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2db9dfe6", "title": "PHPEnkoder 1.6", "url": "https://blog.greenberg.science/posts/phpenkoder-16/", "published_at": "2009-08-18T17:11:41+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2dc70a33", "title": "Flapjax: A Programming Language for Ajax Applications", "url": "https://blog.greenberg.science/posts/flapjax-a-programming-language-for-ajax-applications/", "published_at": "2009-08-13T12:00:29+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2e517863", "title": "Contracts Made Manifest", "url": "https://blog.greenberg.science/posts/contracts-made-manifest/", "published_at": "2009-07-30T16:31:49+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2e703f52", "title": "Gravatar support", "url": "https://blog.greenberg.science/posts/gravatar-support/", "published_at": "2009-05-31T14:40:14+00:00" }, { "id": "01a0874a-5729-72cb-b34b-a3bd2ef8b793", "title": "PHPEnkoder 1.5", "url": "https://blog.greenberg.science/posts/phpenkoder-15/", "published_at": "2009-05-23T10:44:31+00:00" }, { "id": "01a0874a-5732-7352-ab54-1121878ebc8c", "title": "PHPEnkoder 1.4", "url": "https://blog.greenberg.science/posts/phpenkoder-14/", "published_at": "2009-05-18T13:20:31+00:00" }, { "id": "01a0874a-5732-7352-ab54-1121885991eb", "title": "Open-Access Venue for Theoretical Computer Science", "url": "https://blog.greenberg.science/posts/openaccess-venue-for-theoretical-computer-science/", "published_at": "2009-04-30T21:58:00+00:00" }, { "id": "01a0874a-5732-7352-ab54-1121890dbe42", "title": "Flapjax TR", "url": "https://blog.greenberg.science/posts/flapjax-tr/", "published_at": "2009-04-15T10:44:25+00:00" }, { "id": "01a0874a-5732-7352-ab54-112189b22cb1", "title": "Debounce and other callback combinators", "url": "https://blog.greenberg.science/posts/debounce-and-other-callback-combinators/", "published_at": "2009-03-25T11:27:48+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd2d75044", "title": "PHPEnkoder 1.3", "url": "https://blog.greenberg.science/posts/phpenkoder-13/", "published_at": "2009-02-03T14:07:48+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd38c5743", "title": "The world's largest Scheme install-base is...", "url": "https://blog.greenberg.science/posts/the-worlds-largest-scheme-installbase-is/", "published_at": "2009-01-14T08:39:45+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd3d0c183", "title": "Practical OCaml", "url": "https://blog.greenberg.science/posts/practical-ocaml/", "published_at": "2008-10-29T17:30:03+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd476000e", "title": "PHPEnkoder now in Wordpress Plugin Directory", "url": "https://blog.greenberg.science/posts/phpenkoder-now-in-wordpress-plugin-directory/", "published_at": "2008-10-24T18:50:03+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd50114cb", "title": "Boomerang v0.1 available", "url": "https://blog.greenberg.science/posts/boomerang-v01-available/", "published_at": "2008-07-25T14:20:30+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd55f817b", "title": "ADTs in JS1.8", "url": "https://blog.greenberg.science/posts/adts-in-js18/", "published_at": "2008-06-18T11:52:46+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd64db593", "title": "boolopt update: v1.1", "url": "https://blog.greenberg.science/posts/boolopt-update-v11/", "published_at": "2008-02-21T16:59:43+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd74a169b", "title": "Solution: \"Correspondence, of a sort\"", "url": "https://blog.greenberg.science/posts/solution-correspondence-of-a-sort/", "published_at": "2008-02-01T09:14:15+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd7519706", "title": "Puzzle: \"Correspondence, of a sort\"", "url": "https://blog.greenberg.science/posts/puzzle-correspondence-of-a-sort/", "published_at": "2008-01-18T01:24:56+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd840df5d", "title": "Writing in Computer Science", "url": "https://blog.greenberg.science/posts/writing-in-computer-science/", "published_at": "2007-12-05T17:07:40+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdd92e18c3", "title": "JS2/ES4", "url": "https://blog.greenberg.science/posts/js2es4/", "published_at": "2007-11-30T11:19:29+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdda036f08", "title": "C# GC Leaks", "url": "https://blog.greenberg.science/posts/c-gc-leaks/", "published_at": "2007-11-17T11:18:02+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfdda04ff43", "title": "Lifting in Flapjax", "url": "https://blog.greenberg.science/posts/lifting-in-flapjax/", "published_at": "2007-08-11T20:22:04+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfddb009b6e", "title": "The University of Pennsylvania", "url": "https://blog.greenberg.science/posts/the-university-of-pennsylvania/", "published_at": "2007-04-16T17:27:37+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfddb1fef20", "title": "The price of `cloneNode`", "url": "https://blog.greenberg.science/posts/the-price-of-clonenode/", "published_at": "2007-04-04T17:22:23+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfddb7b5670", "title": "Attack of the `cloneNode`s", "url": "https://blog.greenberg.science/posts/attack-of-the-clonenodes/", "published_at": "2007-03-31T14:59:23+00:00" }, { "id": "01a0874a-5733-72b9-a44b-fdfddc0e398d", "title": "Another nasty bug -- and an idea", "url": "https://blog.greenberg.science/posts/another-nasty-bug-and-an-idea/", "published_at": "2007-03-30T11:28:49+00:00" } ] posts Claim your blog
Back to blog.greenberg.science
Blog · corpus.blog/blogs/blog.greenberg.science/posts

blog.greenberg.science

blog.greenberg.science

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

2009

2008

2007