41554 blogs · [ { "id": "01a08761-9e74-703a-8b65-70c39e499955", "title": "An LLM TDD loop", "url": "https://codeinthehole.com/tips/llm-tdd-loop-script/", "published_at": "2024-10-06T13:48:50+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c39e546368", "title": "Writing Markdown in Vim", "url": "https://codeinthehole.com/tips/writing-markdown-in-vim/", "published_at": "2023-06-06T00:00:00+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c39f2bbdb7", "title": "Tips for using Github Copilot in Vim", "url": "https://codeinthehole.com/tips/vim-and-github-copilot/", "published_at": "2023-01-06T12:07:03+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c39fe969b9", "title": "Creating pull requests with GPT3 and random artwork", "url": "https://codeinthehole.com/projects/pull-requests-with-gpt3-and-random-artwork/", "published_at": "2022-12-22T21:42:35+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a00829e4", "title": "New project: Food price scraper", "url": "https://codeinthehole.com/projects/food-scraper/", "published_at": "2022-11-12T17:51:38+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a09ee306", "title": "OpenAI Git poetry", "url": "https://codeinthehole.com/tidbits/openai-git-poetry/", "published_at": "2022-11-11T22:07:17+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a19b8942", "title": "\"It was the system. We can't change it.\"", "url": "https://codeinthehole.com/tidbits/the-bone-clocks/", "published_at": "2022-10-30T15:31:23+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a24b719c", "title": "Auditing 1Password activity", "url": "https://codeinthehole.com/tips/auditing-1password-activity/", "published_at": "2022-06-29T21:00:01+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a259caa1", "title": "Flakey tests in a large Python/Django codebase", "url": "https://codeinthehole.com/news/oe-tech-flakey-tests/", "published_at": "2022-06-08T08:45:59+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a313f504", "title": "Explaining", "url": "https://codeinthehole.com/tips/explaining/", "published_at": "2021-10-14T15:29:42+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a327f9d6", "title": "Vim's useful lists", "url": "https://codeinthehole.com/tips/vim-lists/", "published_at": "2021-05-03T08:27:17+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a3f7d512", "title": "A Vim mapping for opening virtualenv files", "url": "https://codeinthehole.com/tips/a-vim-mapping-for-opening-virtualenv-files/", "published_at": "2020-11-16T15:45:30+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a486c518", "title": "Setting up a 2020 MacBook Pro for Python development", "url": "https://codeinthehole.com/guides/settings-up-a-2020-macbook-for-python-development/", "published_at": "2020-07-18T23:00:00+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a494826b", "title": "Conditional nested blocks in Terraform", "url": "https://codeinthehole.com/tips/conditional-nested-blocks-in-terraform/", "published_at": "2020-07-14T21:05:23+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a504fad8", "title": "Maintainable Terraform CIDR lists", "url": "https://codeinthehole.com/tips/terraform-cidrs/", "published_at": "2020-07-08T00:00:00+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a5a7e83f", "title": "Easy Github URLs from Vim", "url": "https://codeinthehole.com/tips/easy-github-urls-from-vim/", "published_at": "2020-06-23T14:49:58+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a66cd335", "title": "Software development tips – part 2", "url": "https://codeinthehole.com/tips/software-development-tips-part2/", "published_at": "2020-04-24T10:04:16+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a6ed1970", "title": "Resolving conflicts during a Git rebase", "url": "https://codeinthehole.com/guides/resolving-conflicts-during-a-git-rebase/", "published_at": "2020-03-05T00:00:00+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a71924d1", "title": "Software development tips – part 1", "url": "https://codeinthehole.com/tips/software-development-tips-part1/", "published_at": "2020-02-26T10:04:16+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a7827e0b", "title": "Vim text-objects for Python development", "url": "https://codeinthehole.com/tips/vim-text-objects/", "published_at": "2019-06-13T00:00:00+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a877f98b", "title": "Debugging Vim by example", "url": "https://codeinthehole.com/tips/debugging-vim-by-example/", "published_at": "2019-03-28T00:00:00+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a88a99b3", "title": "Beware of changing the 'related name' of a Django model field", "url": "https://codeinthehole.com/news/oe-related-name-outage/", "published_at": "2019-03-18T17:05:53+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a96f6e9f", "title": "Using black and isort with Vim", "url": "https://codeinthehole.com/tips/using-black-and-isort-with-vim/", "published_at": "2019-03-08T09:22:04+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a96febb3", "title": "Avoiding package lock-out when provisioning Ubuntu 18.04 machines", "url": "https://codeinthehole.com/tips/avoiding-package-lockout-in-ubuntu-1804/", "published_at": "2019-03-06T15:49:53+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3a98dfb98", "title": "Installing the latest RabbitMQ on Ubuntu 18.04", "url": "https://codeinthehole.com/tips/install-latest-rabbitmq-on-ubuntu-1804/", "published_at": "2019-02-21T12:51:47+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3aa302fb0", "title": "Easy to change", "url": "https://codeinthehole.com/tips/easy-to-change/", "published_at": "2018-12-24T11:51:36+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3aac71ca1", "title": "Listing groups in G-Suite", "url": "https://codeinthehole.com/tips/listing-google-groups/", "published_at": "2018-10-27T11:53:24+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3ab4d8184", "title": "Advanced pull-request crafting", "url": "https://codeinthehole.com/tips/advanced-pull-request-crafting/", "published_at": "2018-06-03T11:30:05+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3ab6401a7", "title": "Shortcuts of the old and minimalist", "url": "https://codeinthehole.com/tips/shortcuts-of-the-old-and-minimalist/", "published_at": "2017-11-27T11:27:45+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3ab74c917", "title": "Joining between date and timestamp fields in Postgres", "url": "https://codeinthehole.com/tips/joining-between-date-and-datetime-fields-in-postgres/", "published_at": "2017-11-16T15:50:04+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3abb2509b", "title": "Little-known words relevant to software development", "url": "https://codeinthehole.com/lists/little-known-words-relevant-to-software-development/", "published_at": "2017-11-07T21:41:21+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3ac0d3bf4", "title": "Using a custom Sentry client", "url": "https://codeinthehole.com/news/oe-tech-custom-sentry-client/", "published_at": "2017-10-16T15:33:45+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3acb8470e", "title": "Why your Django models are fat", "url": "https://codeinthehole.com/lists/why-your-models-are-fat/", "published_at": "2017-10-04T10:30:02+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3ad963d92", "title": "Bash error reporting", "url": "https://codeinthehole.com/tips/bash-error-reporting/", "published_at": "2017-09-30T21:44:03+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3ae26f799", "title": "Using pgbadger with AWS RDS", "url": "https://codeinthehole.com/tips/using-pgbadger-with-aws-rds/", "published_at": "2017-08-29T13:08:08+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3ae27fc3d", "title": "A mnemonic for mock decorators", "url": "https://codeinthehole.com/tips/a-mnemonic-for-mocks/", "published_at": "2017-08-26T00:00:00+00:00" }, { "id": "01a08761-9e74-703a-8b65-70c3ae70aa67", "title": "Your codebase is your house", "url": "https://codeinthehole.com/tips/your-codebase-is-your-/", "published_at": "2017-06-30T10:26:39+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dcf2285e3", "title": "Git tips for working with pull requests", "url": "https://codeinthehole.com/tips/open-github-pull-request-command/", "published_at": "2017-06-06T20:30:36+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dcfa5f08c", "title": "Converting JSON into CSV data for Google Sheets", "url": "https://codeinthehole.com/tips/json-to-google-sheets/", "published_at": "2017-05-16T20:52:21+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dcfd52da8", "title": "Podcast.__init__ on Oscar", "url": "https://codeinthehole.com/news/podcast-init/", "published_at": "2017-04-10T22:00:20+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd0c96a00", "title": "Reorganising a Consul key-value store", "url": "https://codeinthehole.com/tips/migrate-consul-key-value-store/", "published_at": "2017-03-27T14:25:05+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd1b3c53f", "title": "Lies you're told on a software project", "url": "https://codeinthehole.com/lists/lies/", "published_at": "2017-03-21T11:54:01+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd1db5b85", "title": "Hugo", "url": "https://codeinthehole.com/news/hugo/", "published_at": "2017-03-16T10:30:02+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd20ea74a", "title": "Django, ELB health checks and continuous delivery", "url": "https://codeinthehole.com/news/oe-tech-elb-health-checks/", "published_at": "2016-05-05T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd2503afa", "title": "Testing for missing migrations in Django", "url": "https://codeinthehole.com/news/oe-tech-missing-migrations/", "published_at": "2016-01-21T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd2ae7dc0", "title": "Octopus Energy", "url": "https://codeinthehole.com/news/octopus-energy/", "published_at": "2015-11-23T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd2edd8bb", "title": "A useful template for commit messages", "url": "https://codeinthehole.com/tips/a-useful-template-for-commit-messages/", "published_at": "2015-10-02T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd3a215aa", "title": "Copying Postgres output into a spreadsheet", "url": "https://codeinthehole.com/tips/copying-postgres-output-into-a-spreadsheet/", "published_at": "2015-09-02T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd46e6e0c", "title": "An SSH tip for modern AWS patrons", "url": "https://codeinthehole.com/tips/an-ssh-tip-for-modern-aws-patrons/", "published_at": "2015-05-02T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd4d4c93e", "title": "commandlinefu.com is in new hands", "url": "https://codeinthehole.com/news/commandlinefucom-is-in-new-hands/", "published_at": "2015-04-04T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd53ff2a1", "title": "Backing up Postgres database rows before deleting them", "url": "https://codeinthehole.com/tips/backing-up-database-rows-in-postgres-before-deleting-them/", "published_at": "2015-03-19T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd5bcd70f", "title": "Avoiding clashing Django migrations", "url": "https://codeinthehole.com/tips/avoiding-clashing-django-migrations/", "published_at": "2015-01-31T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd63e5e38", "title": "Bootstrapped virtualenvs", "url": "https://codeinthehole.com/tips/bootstrapped-virtualenvs/", "published_at": "2014-10-24T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd726e25a", "title": "Integrating Django application metrics into Zabbix", "url": "https://codeinthehole.com/tips/integrating-django-application-metrics-into-zabbix/", "published_at": "2014-10-22T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd7744488", "title": "Linking to Github", "url": "https://codeinthehole.com/tips/linking-to-github/", "published_at": "2014-07-17T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd811de2a", "title": "Continuously rebuild your project", "url": "https://codeinthehole.com/tips/continuously-re-build-your-project/", "published_at": "2014-06-18T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd8ac4f6c", "title": "Using the silver searcher with Vim", "url": "https://codeinthehole.com/tips/using-the-silver-searcher-with-vim/", "published_at": "2014-06-17T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd8d1a0f1", "title": "The road to Oscar 1.0", "url": "https://codeinthehole.com/projects/the-road-to-oscar-10/", "published_at": "2014-05-01T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd8e4d871", "title": "Command-line tips for effective release announcements", "url": "https://codeinthehole.com/tips/command-line-tips-for-effective-release-announcements/", "published_at": "2014-01-16T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd93679a0", "title": "How to install PostGIS and GeoDjango on Ubuntu", "url": "https://codeinthehole.com/tips/how-to-install-postgis-and-geodjango-on-ubuntu/", "published_at": "2013-10-04T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dd93f27ac", "title": "Enhancing your Git commit editor", "url": "https://codeinthehole.com/tips/enhancing-your-git-commit-editor/", "published_at": "2013-08-08T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dda2a14c0", "title": "Dumping and restoring a PostGIS database", "url": "https://codeinthehole.com/tips/dumping-and-restoring-a-postgis-database/", "published_at": "2013-07-28T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0ddb004178", "title": "purl, URI templates and generated tests", "url": "https://codeinthehole.com/projects/purl-uri-templates-and-generated-tests/", "published_at": "2013-07-09T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0ddbb8767f", "title": "A deferred logging file handler for Django", "url": "https://codeinthehole.com/tips/a-deferred-logging-file-handler-for-django/", "published_at": "2013-06-12T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0ddc32e31e", "title": "Conditional logic in Django forms", "url": "https://codeinthehole.com/tips/conditional-logic-in-django-forms/", "published_at": "2013-06-01T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0ddc93ee70", "title": "PyPI README badges", "url": "https://codeinthehole.com/tips/pypi-readme-badges/", "published_at": "2013-05-03T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0ddd3941f5", "title": "A useful Git post-checkout hook for Python repos", "url": "https://codeinthehole.com/tips/a-useful-git-post-checkout-hook-for-python-repos/", "published_at": "2013-04-23T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0ddda0543e", "title": "Disable database access when writing unit tests in Django", "url": "https://codeinthehole.com/tips/disable-database-access-when-writing-unit-tests-in-django/", "published_at": "2013-04-22T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dde0c39b5", "title": "How to install PIL on 64-bit Ubuntu 12.04", "url": "https://codeinthehole.com/tips/how-to-install-pil-on-64-bit-ubuntu-1204/", "published_at": "2013-04-18T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dde526abb", "title": "Converting Github issues into pull requests", "url": "https://codeinthehole.com/tips/converting-github-issues-into-pull-requests/", "published_at": "2013-03-04T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0ddf427500", "title": "Altering Postgres table columns with South", "url": "https://codeinthehole.com/tips/altering-postgres-table-columns-with-south/", "published_at": "2013-02-19T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0ddfdff538", "title": "Configuring logging for Postgres.app", "url": "https://codeinthehole.com/tips/configuring-logging-for-postgresapp/", "published_at": "2013-01-14T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de07723f5", "title": "Mathematics and engineering", "url": "https://codeinthehole.com/tidbits/mathematics-and-engineering/", "published_at": "2012-12-14T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de147c432", "title": "Effective pull requests and other good practices for teams using github", "url": "https://codeinthehole.com/tips/pull-requests-and-other-good-practices-for-teams-using-github/", "published_at": "2012-10-20T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de22c520d", "title": "How to chroot a user in Ubuntu 12.04", "url": "https://codeinthehole.com/tips/how-to-chroot-a-user-in-ubuntu-1204/", "published_at": "2012-10-16T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de319c1d1", "title": "Prefer WebTest to Django's test client for functional tests", "url": "https://codeinthehole.com/tips/prefer-webtest-to-djangos-test-client-for-functional-tests/", "published_at": "2012-09-09T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de34fa886", "title": "Cacheback - asynchronous cache refreshing for Django", "url": "https://codeinthehole.com/projects/cacheback-asynchronous-cache-refreshing-for-django/", "published_at": "2012-09-02T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de3fd59a6", "title": "Use models for uploads", "url": "https://codeinthehole.com/tips/use-models-for-uploads/", "published_at": "2012-07-19T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de488b05f", "title": "Vim macros for adding i18n support to Django templates", "url": "https://codeinthehole.com/tips/vim-macros-for-adding-i18n-support-to-django-templates/", "published_at": "2012-07-06T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de505b231", "title": "A data migration for every Django project", "url": "https://codeinthehole.com/tips/a-data-migration-for-every-django-project/", "published_at": "2012-06-16T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de6027127", "title": "Django, Nginx, WSGI and encoded slashes", "url": "https://codeinthehole.com/tips/django-nginx-wsgi-and-encoded-slashes/", "published_at": "2012-05-05T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de66b35b1", "title": "purl - immutable URL objects for Python", "url": "https://codeinthehole.com/projects/purl-immutable-url-objects-for-python/", "published_at": "2012-04-19T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de673cb92", "title": "Embedding HTML in Django messages", "url": "https://codeinthehole.com/tips/embedding-html-in-django-messages/", "published_at": "2012-04-12T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de762975d", "title": "csvfilter - a Python command-line tool for manipulating CSV data", "url": "https://codeinthehole.com/projects/csvfilter-a-python-command-line-tool-for-manipulating-csv-data/", "published_at": "2012-04-01T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de7f05462", "title": "How to reload Django's URL config", "url": "https://codeinthehole.com/tips/how-to-reload-djangos-url-config/", "published_at": "2012-03-21T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de8e27cdc", "title": "Validating international postcodes in Django", "url": "https://codeinthehole.com/tips/validating-international-postcodes-in-django/", "published_at": "2012-03-13T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de8ef175b", "title": "How to sync PyCon videos to your iPhone", "url": "https://codeinthehole.com/tips/how-to-sync-pycon-videos-to-your-iphone/", "published_at": "2012-03-11T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de9af7e69", "title": "Tips for using a git pre-commit hook", "url": "https://codeinthehole.com/tips/tips-for-using-a-git-pre-commit-hook/", "published_at": "2012-03-05T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0de9c8b96f", "title": "Confoo 2012 presentations", "url": "https://codeinthehole.com/talks/confoo-2012-presentations/", "published_at": "2012-03-03T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0deaab3e50", "title": "Testing HTTPS handling in Django", "url": "https://codeinthehole.com/tips/testing-https-handling-in-django/", "published_at": "2012-03-01T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0deb3770ba", "title": "Prefer data migrations to initial data", "url": "https://codeinthehole.com/tips/prefer-data-migrations-to-initial-data/", "published_at": "2012-02-25T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0deb37f5a1", "title": "A Fabric function for git tagging", "url": "https://codeinthehole.com/tips/a-fabric-function-for-git-tagging/", "published_at": "2012-02-09T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dec26670a", "title": "Solving MySQL connection problems caused by a dead name server", "url": "https://codeinthehole.com/tips/solving-mysql-connection-problems-caused-by-a-dead-name-server/", "published_at": "2012-02-02T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dec5e2aa6", "title": "Auto-setting terminal titles for python virtual environments", "url": "https://codeinthehole.com/tips/auto-setting-terminal-titles-for-python-virtual-environments/", "published_at": "2012-01-23T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0ded2dc529", "title": "Introducing unittest-xml: testing XML in Python", "url": "https://codeinthehole.com/projects/introducing-unittest-xml-testing-xml-in-python/", "published_at": "2012-01-13T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dee2a6cee", "title": "Rewriting codeinthehole.com", "url": "https://codeinthehole.com/news/rewriting-codeintheholecom/", "published_at": "2012-01-06T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0dee6a418f", "title": "How to set-up MySQL for Python on Ubuntu", "url": "https://codeinthehole.com/tips/how-to-set-up-mysql-for-python-on-ubuntu/", "published_at": "2012-01-05T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0def5da3b9", "title": "Using pip and requirements.txt to install from the HEAD of a Github branch", "url": "https://codeinthehole.com/tips/using-pip-and-requirementstxt-to-install-from-the-head-of-a-github-branch/", "published_at": "2011-08-20T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0def97a7d1", "title": "Console logging to STDOUT in Django", "url": "https://codeinthehole.com/tips/console-logging-to-stdout-in-django/", "published_at": "2011-08-16T00:00:00+00:00" }, { "id": "01a08761-9e75-72c6-b51e-4c0defdd8e01", "title": "Running django cronjobs within a virtualenv", "url": "https://codeinthehole.com/tips/running-django-cronjobs-within-a-virtualenv/", "published_at": "2011-08-11T00:00:00+00:00" } ] posts Claim your blog
Back to codeinthehole.com
Blog · corpus.blog/blogs/codeinthehole.com/posts

codeinthehole.com

codeinthehole.com

2024

2023

2022

2021

2020

2019

2018

2017

16 Mar 2017

2016

2015

2014

2013

2012

2011