41554 blogs · [ { "id": "01a08765-26a9-7086-be4a-b94894e00354", "title": "Book notes: Perfect Software and Other Illusions About Testing", "url": "https://cscheng.info/2026/03/22/book-notes-perfect-software-and-other-illusions-about-testing.html", "published_at": "2026-03-22T19:30:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b948950bd6de", "title": "Building a chat application with a local LLM from scratch", "url": "https://cscheng.info/2025/11/05/building-a-chat-application-with-a-local-llm-from-scratch.html", "published_at": "2025-11-05T12:30:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b94895e2ef8b", "title": "Applying natural sort to a Django CharField with PostgreSQL", "url": "https://cscheng.info/2025/07/10/applying-natural-sort-to-a-django-charfield-with-postgresql.html", "published_at": "2025-07-10T12:30:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b948967e3f85", "title": "Limiting the number of objects of an InlineModelAdmin in Django", "url": "https://cscheng.info/2025/02/26/limiting-the-number-of-objects-of-an-inlinemodeladmin-in-django.html", "published_at": "2025-02-26T21:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b94897654b34", "title": "Securely connect to Amazon RDS using ECS container as bastion", "url": "https://cscheng.info/2025/02/19/securely-connect-to-amazon-rds-using-ecs-container-as-bastion.html", "published_at": "2025-02-19T20:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489826dbaa", "title": "Monitoring Celery performance with CloudWatch Logs Insights", "url": "https://cscheng.info/2025/02/10/monitoring-celery-performance-with-cloudwatch-logs-insights.html", "published_at": "2025-02-10T19:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b94898569e7b", "title": "Debugging Sentry locally in a Django project", "url": "https://cscheng.info/2024/11/25/debugging-sentry-locally-in-a-django-project.html", "published_at": "2024-11-25T19:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b948989244f9", "title": "Prevent long running PostgreSQL queries with statement timeout in Django", "url": "https://cscheng.info/2024/11/22/prevent-long-running-postgresql-queries-with-statement-timeout-in-django.html", "published_at": "2024-11-22T13:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b94898b04d99", "title": "Book notes: The elements of FORTRAN style", "url": "https://cscheng.info/2024/11/18/book-notes-the-elements-of-fortran-style.html", "published_at": "2024-11-18T19:30:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b94898f435c5", "title": "Automatically import all Django models in the Django Console in PyCharm", "url": "https://cscheng.info/2022/12/15/automatically-import-all-django-models-in-the-django-console-in-pycharm.html", "published_at": "2022-12-15T18:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b94899299664", "title": "Prevent long running MySQL queries with max_execution_time in Django", "url": "https://cscheng.info/2020/06/03/prevent-long-running-mysql-queries-with-max-execution-time-in-django.html", "published_at": "2020-06-03T21:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489a0f131a", "title": "How to exclude duplicates using a subquery with Django and MySQL", "url": "https://cscheng.info/2020/02/27/how-to-exclude-duplicates-using-a-subquery-with-django-and-mysql.html", "published_at": "2020-02-27T10:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489abb49fe", "title": "Using GeoDjango with GDAL on AWS Lambda", "url": "https://cscheng.info/2019/07/04/using-geodjango-with-gdal-on-aws-lambda.html", "published_at": "2019-07-04T13:30:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489af609c4", "title": "Book notes: The Psychology of Computer Programming", "url": "https://cscheng.info/2018/11/18/book-notes-the-psychology-of-computer-programming.html", "published_at": "2018-11-18T08:30:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489bec5dab", "title": "Mocking a file storage backend in Django tests", "url": "https://cscheng.info/2018/08/21/mocking-a-file-storage-backend-in-django-tests.html", "published_at": "2018-08-21T21:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489cca325f", "title": "Trying out AWS Cloud9 IDE for Django development", "url": "https://cscheng.info/2018/08/19/trying-out-aws-cloud9-ide-for-django-development.html", "published_at": "2018-08-19T18:30:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489ce84139", "title": "Installing PycURL on macOS High Sierra", "url": "https://cscheng.info/2018/01/26/installing-pycurl-on-macos-high-sierra.html", "published_at": "2018-01-26T19:59:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489d88823b", "title": "Git tip: autostash with git pull --rebase", "url": "https://cscheng.info/2017/01/26/git-tip-autostash-with-git-pull-rebase.html", "published_at": "2017-01-26T07:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489e28d9b9", "title": "Integrating webpack-dev-server with Django", "url": "https://cscheng.info/2016/08/03/integrating-webpack-dev-server-with-django.html", "published_at": "2016-08-03T18:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489effe0b1", "title": "Book notes: Peripheral Vision", "url": "https://cscheng.info/2016/07/31/book-notes-peripheral-vision.html", "published_at": "2016-07-31T06:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489fa14fbd", "title": "Chain multiple Ajax requests with Backbone.js", "url": "https://cscheng.info/2016/06/10/chain-multiple-ajax-requests-with-backbone-js.html", "published_at": "2016-06-10T08:39:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b9489ff3abd5", "title": "Calculate circle-line intersection with JavaScript and p5.js", "url": "https://cscheng.info/2016/06/09/calculate-circle-line-intersection-with-javascript-and-p5js.html", "published_at": "2016-06-09T19:54:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b948a09516b7", "title": "Drawing egg shapes with p5.js", "url": "https://cscheng.info/2016/06/05/drawing-egg-shapes-with-p5js.html", "published_at": "2016-06-05T09:18:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b948a09994ea", "title": "One Light color scheme for IntelliJ", "url": "https://cscheng.info/2016/05/09/one-light-color-scheme-for-intellij.html", "published_at": "2016-05-09T08:30:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b948a11e66b4", "title": "Quick way to find unused CSS with Chrome DevTools", "url": "https://cscheng.info/2016/05/06/quick-way-to-find-unused-css-with-chrome-devtools.html", "published_at": "2016-05-06T08:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b948a1b6f6d6", "title": "Use Fira Sans as system font on Ubuntu 16.04", "url": "https://cscheng.info/2016/04/23/use-fira-sans-as-system-font-on-ubuntu-1604.html", "published_at": "2016-04-23T08:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b948a1f68856", "title": "Raspberry Pi AirPlay audio receiver with shairport-sync", "url": "https://cscheng.info/2016/04/16/raspberry-pi-airplay-audio-receiver-with-shairport-sync.html", "published_at": "2016-04-16T09:00:00+00:00" }, { "id": "01a08765-26a9-7086-be4a-b948a293a1b6", "title": "Hello again, world", "url": "https://cscheng.info/2016/04/12/hello-again-world.html", "published_at": "2016-04-12T10:00:00+00:00" } ] posts Claim your blog
Back to cscheng.info
Blog · corpus.blog/blogs/cscheng.info/posts

cscheng.info

cscheng.info

2026

2025

2024

2022

2020

2019

2018

2017

2016