41554 blogs · [ { "id": "01a0879a-69b4-70eb-bd80-70e85f6e77b1", "title": "What comes after the DDT pathway?", "url": "https://liamkaufman.com/posts/ddt-risk-based-approach/", "published_at": "2026-03-08T17:04:42+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e8601910ae", "title": "Is the Drug Development Pathway worth pursuing?", "url": "https://liamkaufman.com/posts/ddt-pathway/", "published_at": "2026-02-14T21:24:40+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86060b2de", "title": "FDA released a draft guidance on the use of AI to support regulatory decision-making for drugs", "url": "https://liamkaufman.com/posts/ai-fda-recommendation/", "published_at": "2026-01-14T01:10:29+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e860e93500", "title": "FDA Guidance on Assessment of Abuse Potential of Drugs", "url": "https://liamkaufman.com/posts/fda-abuse-potential/", "published_at": "2026-01-03T22:10:41+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e861c8e2f2", "title": "Rough Notes: Us Against Alzheimer's: Measure What Matters Most (WMM)", "url": "https://liamkaufman.com/posts/us-against-ad-what-matters-most/", "published_at": "2025-12-06T17:37:43+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86216cc30", "title": "FDA's Guidance on Patient-Focused Outcome Measurement in Clinical Trials", "url": "https://liamkaufman.com/posts/patient-focused-outcome-measurement-in-clinical-trials/", "published_at": "2025-11-24T02:53:59+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e862ee938a", "title": "FDA Committee meeting for generative AI-enabled mental health medical devices", "url": "https://liamkaufman.com/posts/fda-generative-ai-enabled-mental-health-devices/", "published_at": "2025-11-07T02:27:30+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e863d81dc5", "title": "NHS AI Trial Delivers Savings", "url": "https://liamkaufman.com/posts/nhs-ai-trial-delivers-savings/", "published_at": "2025-10-29T23:48:53+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e864659138", "title": "Smiley Faces in Linux Source Code and Token Statistics", "url": "https://liamkaufman.com/blog/2014/08/05/smily-faces-in-linux-source-code/", "published_at": "2014-08-05T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e865419869", "title": "Understanding AngularJS Directives Part 2: ngView", "url": "https://liamkaufman.com/blog/2013/10/11/understanding-angularjs-directives-part2-ng-view/", "published_at": "2013-11-11T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86591d275", "title": "Using AngularJS Promises", "url": "https://liamkaufman.com/blog/2013/09/09/using-angularjs-promises/", "published_at": "2013-09-09T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e8662191f7", "title": "How AngularJS Made Me a Better Node.js Developer", "url": "https://liamkaufman.com/blog/2013/08/06/how-angularjs-made-me-a-better-nodejs-developer/", "published_at": "2013-08-06T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e866c8d617", "title": "Understanding AngularJS Directives Part 1: ng-repeat and compile", "url": "https://liamkaufman.com/blog/2013/05/13/understanding-angularjs-directives-part1-ng-repeat-and-compile/", "published_at": "2013-05-13T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e866dcf5e5", "title": "Adding Real-Time To A RESTful Rails App", "url": "https://liamkaufman.com/blog/2013/02/27/adding-real-time-to-a-restful-rails-app/", "published_at": "2013-02-27T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e8676c8e84", "title": "Three Important Conversion Metrics You Should Watch", "url": "https://liamkaufman.com/blog/2013/02/08/three-important-conversion-metrics-you-should-watch/", "published_at": "2013-02-08T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e868680f82", "title": "Are You Ready To Launch?", "url": "https://liamkaufman.com/blog/2013/01/30/are-you-ready-to-launch/", "published_at": "2013-01-30T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e869447a42", "title": "Before Launching Build Software People Use", "url": "https://liamkaufman.com/blog/2013/01/22/making-software-people-want-before-launching/", "published_at": "2013-01-22T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86951c3af", "title": "Why You Should Be Nice To Your Customers", "url": "https://liamkaufman.com/blog/2012/11/21/why-you-should-be-nice-to-your-customers/", "published_at": "2012-11-21T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e8696c1d6f", "title": "Stripe Would Be Perfect If...", "url": "https://liamkaufman.com/blog/2012/11/09/stripe-would-be-perfect-if/", "published_at": "2012-11-09T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e869828ffb", "title": "Common JavaScript Errors", "url": "https://liamkaufman.com/blog/2012/09/09/common-javascript-errors/", "published_at": "2012-09-09T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86a0ab0e0", "title": "Redis and Relational Data", "url": "https://liamkaufman.com/blog/2012/06/04/redis-and-relational-data/", "published_at": "2012-06-04T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86a92bcc1", "title": "Adding Authentication, Waiting Lists and Sign Ups to an Express App Using Drawbridge.js and Redis", "url": "https://liamkaufman.com/blog/2012/04/21/adding-authentication-waiting-lists-and-sign-ups-to-and-express-app-using-drawbridge-and-redis/", "published_at": "2012-04-21T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86add5798", "title": "From Digg to Reddit to Hacker News: What's Next?", "url": "https://liamkaufman.com/blog/2012/03/23/from-digg-to-reddit-to-hacker-news-whats-next/", "published_at": "2012-03-22T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86b42f49f", "title": "Making Hacker News Faster: Two Approaches", "url": "https://liamkaufman.com/blog/2012/03/23/making-hacker-news-faster-two-approaches/", "published_at": "2012-03-22T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86bae6b4c", "title": "Scraping Web Pages with jQuery, Node.js and Jsdom", "url": "https://liamkaufman.com/blog/2012/03/08/scraping-web-pages-with-jquery-nodejs-and-jsdom/", "published_at": "2012-03-08T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86be4aa09", "title": "Why Riak and Node.js Make a Great Pair", "url": "https://liamkaufman.com/blog/2012/03/01/why-riak-and-nodejs-make-a-great-pair/", "published_at": "2012-03-01T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86c85db06", "title": "Adding Real-Time To Rails With Socket.IO, Node.js and Backbone.js (With Demo)", "url": "https://liamkaufman.com/blog/2012/02/25/adding_real-time_to_rails_with_socket.io_nodejs_and_backbonejs_with_demo/", "published_at": "2012-02-25T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86d856ccf", "title": "Integrating Backbone Boilerplate with Rails 3", "url": "https://liamkaufman.com/blog/2012/02/18/integrating-backbone-boilerplate-with-rails3/", "published_at": "2012-02-18T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86e05c61e", "title": "Pushing Files to the Browser Using Delivery.js, Socket.IO and Node.js", "url": "https://liamkaufman.com/blog/2012/02/11/12-pushing-files-to-the-browser-using-deliveryjs-socketio-and-nodejs/", "published_at": "2012-02-11T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86ed0be88", "title": "Testing Socket.IO with Mocha, Should.js and Socket.IO Client", "url": "https://liamkaufman.com/blog/2012/01/28/testing-socketio-with-mocha-should-and-socketio-client/", "published_at": "2012-01-28T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86f5f4b78", "title": "Examples I Want to See in JavaScript Frameworks.", "url": "https://liamkaufman.com/blog/2011/12/13/examples_i_want_to_see_in_javascript_frameworks/", "published_at": "2011-12-13T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86f634ee3", "title": "What is the best way of Mastering JavaScript?", "url": "https://liamkaufman.com/blog/2011/09/09/what-is-the-best-way-of-mastering-javascript/", "published_at": "2011-09-09T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e86fdce5c5", "title": "Liamkaufman.com gets a new look", "url": "https://liamkaufman.com/blog/2011/08/23/liamkaufmancom-gets-a-new-look/", "published_at": "2011-08-23T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e87059dcf3", "title": "pyItunes, a Python iTunes Library Parser", "url": "https://liamkaufman.com/blog/2009/03/18/pyitunes-a-python-itunes-library-parser/", "published_at": "2009-03-18T00:00:00+00:00" }, { "id": "01a0879a-69b4-70eb-bd80-70e870dde6a9", "title": null, "url": "https://liamkaufman.com/about/", "published_at": null } ] posts Claim your blog
Back to liamkaufman.com
Blog · corpus.blog/blogs/liamkaufman.com/posts

liamkaufman.com

liamkaufman.com

2026

2025

2014

2013

2012

2011

2009

Undated