41554 blogs · [ { "id": "01a0821b-0b58-70ac-8042-379660ad7efd", "title": "Fuzzy String Matching in Django and PostgreSQL", "url": "https://www.caktusgroup.com/blog/2026/08/21/fuzzy-string-matching-django-postgresql/", "published_at": "2026-08-21T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37966143d5ee", "title": "Chicago Like a Local: Things to Do During DjangoCon US 2026 (Part 1)", "url": "https://www.caktusgroup.com/blog/2026/07/31/chicago-like-a-local-2026/", "published_at": "2026-07-31T18:35:47+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379661ef1f8d", "title": "Easily Stream LLM Responses with Django-Bolt and PydanticAI", "url": "https://www.caktusgroup.com/blog/2026/04/27/django-bolt-easy-pydanticai-streaming/", "published_at": "2026-04-27T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379662e29df0", "title": "PydanticAI Agents Intro", "url": "https://www.caktusgroup.com/blog/2025/12/16/pydanticai-agents-intro/", "published_at": "2025-12-16T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796630b749e", "title": "LLM Basics: Ollama Function Calling", "url": "https://www.caktusgroup.com/blog/2025/12/03/learning-llm-basics-ollama-function-calling/", "published_at": "2025-12-03T16:42:14+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796633f83ed", "title": "LLM Basics: OpenAI Function Calling", "url": "https://www.caktusgroup.com/blog/2025/12/01/learning-llm-basics-openai-function-calling/", "published_at": "2025-12-01T15:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37965fd96a0a", "title": "Accessible Traffic Stop Data with NC CopWatch", "url": "https://www.caktusgroup.com/case-study/accessible-nc-traffic-stops-data/", "published_at": "2025-10-21T05:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796636fd6d0", "title": "How to migrate from pip-tools to uv", "url": "https://www.caktusgroup.com/blog/2025/08/25/migrate-pip-tools-to-uv/", "published_at": "2025-08-25T18:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379663957b76", "title": "How to Migrate your Python & Django Projects to uv", "url": "https://www.caktusgroup.com/blog/2025/06/11/migrating-python-django-projects-uv/", "published_at": "2025-06-11T05:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379663bb22fe", "title": "Upgrade Smarter, Not Harder: Python Tools for Code Modernization", "url": "https://www.caktusgroup.com/blog/2025/03/27/upgrade-smarter-not-harder-python-tools-code-modernization/", "published_at": "2025-03-27T10:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796644017ee", "title": "How to fix factory_boy post-generation deprecation warnings", "url": "https://www.caktusgroup.com/blog/2025/02/18/how-fix-factory_boy-post-generation-deprecation-warning/", "published_at": "2025-02-18T17:52:17+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796651c4599", "title": "Getting Started with Dagster", "url": "https://www.caktusgroup.com/blog/2024/12/09/getting-started-dagster/", "published_at": "2024-12-09T23:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379665274a2d", "title": "Analyze data with SQL window functions", "url": "https://www.caktusgroup.com/blog/2023/04/05/analyze-data-sql-window-functions/", "published_at": "2023-04-05T14:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796656a383b", "title": "Begin your Data Analysis Journey with Pandas and Seaborn", "url": "https://www.caktusgroup.com/blog/2023/03/28/begin-your-data-analysis-journey-pandas-and-seaborn/", "published_at": "2023-03-28T14:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379665f87214", "title": "An introduction to Django Simple History", "url": "https://www.caktusgroup.com/blog/2023/02/13/introduction-django-simple-history/", "published_at": "2023-02-13T15:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379666e0d366", "title": "Meet the New Owners of Caktus", "url": "https://www.caktusgroup.com/blog/2022/01/14/meet-new-owners-caktus/", "published_at": "2022-01-14T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379667ab606b", "title": "How to Use Celery for Scheduling Tasks", "url": "https://www.caktusgroup.com/blog/2021/08/11/using-celery-scheduling-tasks/", "published_at": "2021-08-11T18:14:40+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379668490c6e", "title": "Highlights from PyCon US 2021", "url": "https://www.caktusgroup.com/blog/2021/06/24/pycon-us-2021/", "published_at": "2021-06-24T17:10:44+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379668980ec0", "title": "How to Decouple Your App From its Operating System with Docker", "url": "https://www.caktusgroup.com/blog/2021/06/04/decouple-app-operating-system/", "published_at": "2021-06-04T13:48:53+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796696ceeb4", "title": "PyCon US 2021 is Around the Corner", "url": "https://www.caktusgroup.com/blog/2021/04/30/pycon-us-2021-around-corner/", "published_at": "2021-04-30T18:23:52+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379669e4997b", "title": "Python, Django, and React Development on Apple Silicon", "url": "https://www.caktusgroup.com/blog/2021/04/02/python-django-react-development-apple-silicon/", "published_at": "2021-04-02T17:06:27+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379669e53ae7", "title": "Automating PyPI releases with Github Actions", "url": "https://www.caktusgroup.com/blog/2021/02/11/automating-pypi-releases/", "published_at": "2021-02-11T14:37:42+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37966a492d42", "title": "My Python Development Environment", "url": "https://www.caktusgroup.com/blog/2021/01/14/python-development-environment/", "published_at": "2021-01-14T14:40:35+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37966b4068f0", "title": "Our Top 20 Blogs in 2020", "url": "https://www.caktusgroup.com/blog/2021/01/05/top-20-blogs-2020/", "published_at": "2021-01-05T15:26:55+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37966c0700b5", "title": "My Favorite Technical Blogs and Mailing Lists", "url": "https://www.caktusgroup.com/blog/2020/11/04/favorite-technical-blogs-and-mailing-lists/", "published_at": "2020-11-04T19:16:51+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37966c9dcaa8", "title": "A Quick Guide to Generating Fake Data with Pandas", "url": "https://www.caktusgroup.com/blog/2020/04/15/quick-guide-generating-fake-data-with-pandas/", "published_at": "2020-04-15T10:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37966cf8040c", "title": "What to do About Email: How to Extract Data from Microsoft PST Files", "url": "https://www.caktusgroup.com/blog/2020/03/19/email-extract-data-microsoft-pst-files/", "published_at": "2020-03-19T12:27:52+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37966d76b50b", "title": "Our Top 19 Blogs of 2019", "url": "https://www.caktusgroup.com/blog/2020/01/01/top-19-blogs-2019/", "published_at": "2020-01-01T17:17:32+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37966e5e53e0", "title": "A Review of ReportLab: PDF Processing with Python", "url": "https://www.caktusgroup.com/blog/2019/08/28/review-reportlab-pdf-processing-python/", "published_at": "2019-08-28T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37966ef83b9a", "title": "Book Review: Creating GUI Applications with wxPython", "url": "https://www.caktusgroup.com/blog/2019/07/10/book-review-gui-applications/", "published_at": "2019-07-10T12:22:06+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37966fbdca99", "title": "How to Set Up a Centralized Log Server with rsyslog", "url": "https://www.caktusgroup.com/blog/2019/06/20/how-to-set-up-centralized-log-server-rsyslog/", "published_at": "2019-06-20T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967093a6e1", "title": "Our Favorite PyCon 2019 Presentations", "url": "https://www.caktusgroup.com/blog/2019/06/11/favorite-pycon-2019-presentations/", "published_at": "2019-06-11T18:31:31+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796711a7fb6", "title": "Be Quick or Eat Potatoes: A Newbie’s Guide to PyCon", "url": "https://www.caktusgroup.com/blog/2019/05/23/newbies-guide-pycon/", "published_at": "2019-05-23T20:49:07+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379671c1daff", "title": "We're Eagerly Preparing for PyCon 2019!", "url": "https://www.caktusgroup.com/blog/2019/04/11/pycon-2019/", "published_at": "2019-04-11T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796722cabfa", "title": "Coding for Time Zones & Daylight Saving Time — Oh, the Horror", "url": "https://www.caktusgroup.com/blog/2019/03/21/coding-time-zones-and-daylight-saving-time/", "published_at": "2019-03-21T16:45:36+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967303d587", "title": "Caktus Blog: Top 18 Posts of 2018", "url": "https://www.caktusgroup.com/blog/2019/01/01/caktus-blog-top-18-posts-2018/", "published_at": "2019-01-01T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379673d646e5", "title": "My New Year’s Resolution: Work Less to Code Better", "url": "https://www.caktusgroup.com/blog/2018/12/27/new-years-resolution-work-less-code-better/", "published_at": "2018-12-27T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379673f5429e", "title": "How to Fix your Python Code's Style", "url": "https://www.caktusgroup.com/blog/2018/12/10/how-to-fix-python-code-style/", "published_at": "2018-12-10T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379674d63d36", "title": "Better Python Dependency Management with pip-tools", "url": "https://www.caktusgroup.com/blog/2018/09/18/python-dependency-management-pip-tools/", "published_at": "2018-09-18T14:37:29+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379675aa61a1", "title": "Stories of Security (PyCon 2018 Must-See Talk Series)", "url": "https://www.caktusgroup.com/blog/2018/06/13/pycon-2018-must-see-talk-series/", "published_at": "2018-06-13T13:50:52+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796766abb46", "title": "Love Your Bugs (PyCon 2018 Must-See Talk Series)", "url": "https://www.caktusgroup.com/blog/2018/05/23/love-your-bugs-pycon-2018-must-see-talk-series/", "published_at": "2018-05-23T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796774cae49", "title": "PyCon 2018 Recap", "url": "https://www.caktusgroup.com/blog/2018/05/21/pycon-2018-recap/", "published_at": "2018-05-21T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379677692e56", "title": "Caktus at PyCon 2018", "url": "https://www.caktusgroup.com/blog/2018/04/09/caktus-pycon-2018/", "published_at": "2018-04-09T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379678391736", "title": "Caktus is Excited about Django 2.0", "url": "https://www.caktusgroup.com/blog/2017/12/04/caktus-excited-about-django-2/", "published_at": "2017-12-04T14:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379678a9de22", "title": "Readability Counts (PyCon 2017 Must-See Talk 6/6)", "url": "https://www.caktusgroup.com/blog/2017/07/10/readability-counts-pycon-2017-must-see-talk-66/", "published_at": "2017-07-10T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967925efc2", "title": "Python Tool Review: Using PyCharm for Python Development - and More", "url": "https://www.caktusgroup.com/blog/2017/07/05/python-tool-review-using-pycharm-python-development-and-more/", "published_at": "2017-07-05T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379679c2ed0a", "title": "Requests, Under the Hood (PyCon 2017 Must-See Talk 5/6)", "url": "https://www.caktusgroup.com/blog/2017/07/03/requests-under-hood-pycon-2017-must-see-talk-56/", "published_at": "2017-07-03T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379679e09b4a", "title": "Managing your AWS Container Infrastructure with Python", "url": "https://www.caktusgroup.com/blog/2017/06/28/managing-your-aws-container-infrastructure-with-python/", "published_at": "2017-06-28T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967ac9d01c", "title": "5 Ways to Deploy Your Python Web App in 2017 (PyCon 2017 Must-See Talk 4/6)", "url": "https://www.caktusgroup.com/blog/2017/06/26/5-ways-deploy-your-python-web-app-2017-pycon-2017-must-see-talks-46/", "published_at": "2017-06-26T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967b6b7c2b", "title": "Python at Instagram (PyCon 2017 Must-See Talk 2/6)", "url": "https://www.caktusgroup.com/blog/2017/06/12/python-instagram/", "published_at": "2017-06-12T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967c0873ae", "title": "Decorators, Unwrapped: How Do They Work? (PyCon 2017 Must-See Talk 1/6)", "url": "https://www.caktusgroup.com/blog/2017/06/05/decorators-unwrapped-how-do-they-work-pycon-2017-must-see-talk-16/", "published_at": "2017-06-05T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967cce5a84", "title": "Subtests are the Best", "url": "https://www.caktusgroup.com/blog/2017/05/29/subtests-are-best/", "published_at": "2017-05-29T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967d1bf049", "title": "PyCon 2017 Recap", "url": "https://www.caktusgroup.com/blog/2017/05/24/pycon-2017-recap/", "published_at": "2017-05-24T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967dc188ee", "title": "ShipIt Day Recap Q2 2017", "url": "https://www.caktusgroup.com/blog/2017/05/03/shipit-day-recap-q2-2017/", "published_at": "2017-05-03T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967e7cb4c0", "title": "Building a Custom Block Template Tag", "url": "https://www.caktusgroup.com/blog/2017/05/01/building-custom-block-template-tag/", "published_at": "2017-05-01T13:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967f5646d3", "title": "Digging Into Django QuerySets", "url": "https://www.caktusgroup.com/blog/2017/04/05/digging-into-django-querysets/", "published_at": "2017-04-05T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37967ff2e316", "title": "Come Visit Us at PyCon 2017", "url": "https://www.caktusgroup.com/blog/2017/03/29/come-visit-us-pycon-2017/", "published_at": "2017-03-29T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796808a6279", "title": "Here's a Production-Ready Dockerfile for Your Python/Django App", "url": "https://www.caktusgroup.com/blog/2017/03/14/production-ready-dockerfile-your-python-django-app/", "published_at": "2017-03-14T08:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379680d8bd73", "title": "Python type annotations", "url": "https://www.caktusgroup.com/blog/2017/02/22/python-type-annotations/", "published_at": "2017-02-22T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968114c230", "title": "Caktus Attends Wagtail CMS Sprint in Reykjavik", "url": "https://www.caktusgroup.com/blog/2017/02/17/caktus-attends-wagtail-cms-sprint-reykjavik/", "published_at": "2017-02-17T23:15:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968194dc0a", "title": "Caktus at PyCaribbean", "url": "https://www.caktusgroup.com/blog/2017/02/01/Caktus-at-pycaribbean/", "published_at": "2017-02-01T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379682522ceb", "title": "Ship It Day Q1 2017", "url": "https://www.caktusgroup.com/blog/2017/01/18/ship-it-day-q1-2017/", "published_at": "2017-01-18T16:39:28+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796825c748a", "title": "New year, new Python: Python 3.6", "url": "https://www.caktusgroup.com/blog/2017/01/11/new-year-new-python-3-6/", "published_at": "2017-01-11T19:44:14+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968321d356", "title": "Django is Boring, or Why Tech Startups (Should) Use Django", "url": "https://www.caktusgroup.com/blog/2016/12/14/django-boring-or-why-tech-startups-should-use-django/", "published_at": "2016-12-14T15:04:32+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796839aa7d0", "title": "Django Under the Hood 2016 Recap", "url": "https://www.caktusgroup.com/blog/2016/11/29/django-under-hood-2016-recap/", "published_at": "2016-11-29T17:31:25+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968491ebec", "title": "RapidCon 2016: RapidPro Developer's Recap", "url": "https://www.caktusgroup.com/blog/2016/11/16/rapidcon-2016-rapidpro-developers-recap/", "published_at": "2016-11-16T15:41:07+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379685275c06", "title": "Common web site security vulnerabilities", "url": "https://www.caktusgroup.com/blog/2016/11/10/common-web-site-vulnerabilities-Django-security/", "published_at": "2016-11-10T17:47:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379685ad499c", "title": "Managing multiple Python projects: Virtual environments", "url": "https://www.caktusgroup.com/blog/2016/11/03/managing-multiple-python-projects-virtual-environments/", "published_at": "2016-11-03T12:06:49+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968630648b", "title": "Presidential debate questions influenced by open source platform", "url": "https://www.caktusgroup.com/blog/2016/10/25/presidential-debate-questions-influenced-open-source-platform/", "published_at": "2016-10-25T18:40:02+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379687001bf9", "title": "Don't keep important data in your Celery queue", "url": "https://www.caktusgroup.com/blog/2016/10/18/dont-keep-important-data-your-celery-queue/", "published_at": "2016-10-18T19:53:34+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796873fe710", "title": "PyData Carolinas 2016 Recap", "url": "https://www.caktusgroup.com/blog/2016/10/17/pydata-carolinas-2016-recap/", "published_at": "2016-10-17T19:29:14+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379687875763", "title": "Caktus Group @ PyData Carolinas 2016", "url": "https://www.caktusgroup.com/blog/2016/09/14/Caktus-group-pydata-carolinas-2016/", "published_at": "2016-09-14T17:23:47+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796887a7b4d", "title": "Python Nordeste 2016 Recap", "url": "https://www.caktusgroup.com/blog/2016/08/15/python-nordeste-2016-recap/", "published_at": "2016-08-15T15:52:15+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379688df4662", "title": "Bake the Cookies (PyCon 2016 Must-See Talk: 5/6)", "url": "https://www.caktusgroup.com/blog/2016/08/10/bake-cookies-pycon-2016-must-see-talk-56/", "published_at": "2016-08-10T17:29:12+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379689777ffe", "title": "How I Built a Power Debugger (PyCon 2016 Must-See Talk: 3/6)", "url": "https://www.caktusgroup.com/blog/2016/07/27/how-i-built-power-debugger-pycon-2016-must-see-talk-36/", "published_at": "2016-07-27T14:15:27+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379689ae8dee", "title": "ShipIt Day Recap - July 2016", "url": "https://www.caktusgroup.com/blog/2016/07/25/shipit-day-recap-july-2016/", "published_at": "2016-07-25T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379689efeec4", "title": "Better Testing With Less Code (PyCon 2016 Must-See Talk: 2/6)", "url": "https://www.caktusgroup.com/blog/2016/07/13/better-testing-less-code-pycon-2016-must-see-talk-26/", "published_at": "2016-07-13T13:37:37+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968aaf184c", "title": "From Developer to Manager by Sean O'Connor (PyCon 2016 Must-See Talk: 1/6)", "url": "https://www.caktusgroup.com/blog/2016/07/08/developer-manager-sean-oconnor-pycon-2016-must-see-talk-16/", "published_at": "2016-07-08T17:56:11+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968b428b16", "title": "Query Expressions are Amazing", "url": "https://www.caktusgroup.com/blog/2016/06/20/query-expressions-are-amazing/", "published_at": "2016-06-20T11:30:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968bc95dee", "title": "The Journal of Medical Internet Research Features Epic Allies Phase 1 Study Results", "url": "https://www.caktusgroup.com/blog/2016/06/16/journal-medical-internet-research-features-epic-allies-phase-1-study-results/", "published_at": "2016-06-16T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968c6ec2da", "title": "PyCon 2016 Recap", "url": "https://www.caktusgroup.com/blog/2016/06/14/pycon-2016-recap/", "published_at": "2016-06-14T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968d335724", "title": "What We’re Clicking - May Link Roundup", "url": "https://www.caktusgroup.com/blog/2016/06/08/what-were-clicking-may-link-roundup/", "published_at": "2016-06-08T14:16:14+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968d579ad8", "title": "Where to Find Cakti at PyCon 2016", "url": "https://www.caktusgroup.com/blog/2016/05/26/where-find-cakti-pycon-2016/", "published_at": "2016-05-26T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968e414b37", "title": "Mark Lavin to Give Keynote at Python Nordeste", "url": "https://www.caktusgroup.com/blog/2016/05/16/mark-lavin-give-keynote-python-nordeste/", "published_at": "2016-05-16T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968f0fd10f", "title": "Caktus CTO Colin Copeland Invited to the White House Open Police Data Initiative", "url": "https://www.caktusgroup.com/blog/2016/05/12/Caktus-CTO-Colin-Copeland-White-House-Open-Police-Data-Initiative/", "published_at": "2016-05-12T18:46:57+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37968fd8ed13", "title": "What We’re Clicking - April Link Roundup", "url": "https://www.caktusgroup.com/blog/2016/05/05/what-were-clicking-april-link-roundup/", "published_at": "2016-05-05T14:04:27+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379690aab3c8", "title": "Florida Open Debate Platform Receives National Attention (The Atlantic, USA Today, Engadget)", "url": "https://www.caktusgroup.com/blog/2016/05/03/florida-open-debate-platform-receives-national-attention-atlantic-usa-today-engadget/", "published_at": "2016-05-03T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796910d28f4", "title": "ES6 For Django Lovers", "url": "https://www.caktusgroup.com/blog/2016/05/02/es6-django-lovers/", "published_at": "2016-05-02T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37969158c943", "title": "Florida Open Debate Site Powers First-Ever Crowd-Sourced Open Senate Debate", "url": "https://www.caktusgroup.com/blog/2016/04/25/florida-open-debate-site-powers-first-ever-crowd-sourced-open-senate-debate/", "published_at": "2016-04-25T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379691fdd180", "title": "Adopting Scrum in a Client-services, Multi-project Organization", "url": "https://www.caktusgroup.com/blog/2016/04/11/adopting-scrum-client-services-multi-project-organization/", "published_at": "2016-04-11T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796927bc753", "title": "What We're Clicking - March Link Roundup", "url": "https://www.caktusgroup.com/blog/2016/04/05/what-were-clicking-march-link-roundup/", "published_at": "2016-04-05T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379692f181fb", "title": "New white paper: \"Shipping faster: Django team improvements\"", "url": "https://www.caktusgroup.com/blog/2016/04/04/new-white-paper-shipping-faster-django-team-improvements/", "published_at": "2016-04-04T13:26:38+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796933d526f", "title": "Lightweight Django now in Portuguese!", "url": "https://www.caktusgroup.com/blog/2016/04/02/lightweight-django-now-portuguese/", "published_at": "2016-04-02T17:18:24+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796935c522d", "title": "Best Python Libraries", "url": "https://www.caktusgroup.com/blog/2016/03/17/best-python-libraries/", "published_at": "2016-03-17T12:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796938dda11", "title": "Wagtail: 2 Steps for Adding Pages Outside of the CMS", "url": "https://www.caktusgroup.com/blog/2016/02/15/wagtail-2-steps-adding-pages-outside-cms/", "published_at": "2016-02-15T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379694047fd8", "title": "Writing Unit Tests for Django Migrations", "url": "https://www.caktusgroup.com/blog/2016/02/02/writing-unit-tests-django-migrations/", "published_at": "2016-02-02T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796942cded3", "title": "ShipIt Day Recap: Q1 2016", "url": "https://www.caktusgroup.com/blog/2016/01/20/shipit-day-recap-q1-2016/", "published_at": "2016-01-20T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-379694d1a873", "title": "Modified Preorder Tree Traversal in Django", "url": "https://www.caktusgroup.com/blog/2016/01/04/modified-preorder-tree-traversal-django/", "published_at": "2016-01-04T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-3796958367c5", "title": "What We Open Sourced in 2015: A New Year's Retrospective", "url": "https://www.caktusgroup.com/blog/2015/12/31/what-we-open-sourced-2015-new-years-retrospective/", "published_at": "2015-12-31T13:00:00+00:00" }, { "id": "01a0821b-0b58-70ac-8042-37969620f5ae", "title": "Reflecting on My Time as Caktus' Open Source Fellow", "url": "https://www.caktusgroup.com/blog/2015/12/21/reflecting-my-time-caktus-open-source-fellow/", "published_at": "2015-12-21T13:00:00+00:00" } ] posts Claim your blog
Back to Caktus Consulting Group
Blog · corpus.blog/blogs/caktusgroup.com/posts

Caktus Consulting Group

caktusgroup.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015