<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://grumpy-learning.com</loc>
    <lastmod>2026-01-26</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2026/01/26/weeknotes/</loc>
    <lastmod>2026-01-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2026/01/17/weeknotes/</loc>
    <lastmod>2026-01-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2026/01/11/weeknotes/</loc>
    <lastmod>2026-01-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2025/11/04/pretend-team/</loc>
    <lastmod>2025-11-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2025/10/06/weeknotes/</loc>
    <lastmod>2025-10-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2025/09/01/weeknotes/</loc>
    <lastmod>2025-09-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2025/08/26/weeknotes/</loc>
    <lastmod>2025-08-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2025/08/18/weeknotes/</loc>
    <lastmod>2025-08-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2025/08/10/weekenotes/</loc>
    <lastmod>2025-08-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2025/03/24/another-spin-around-the-sun/</loc>
    <lastmod>2025-03-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2025/02/12/self-hosting/</loc>
    <lastmod>2025-02-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2025/01/04/grumpy-3d-printing-part-1/</loc>
    <lastmod>2025-01-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/11/22/weeknotes/</loc>
    <lastmod>2024-11-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/11/04/true-north-php/</loc>
    <lastmod>2024-11-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/10/29/surviving-as-a-speaker/</loc>
    <lastmod>2024-10-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/10/18/weeknotes/</loc>
    <lastmod>2024-10-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/10/04/weeknotes/</loc>
    <lastmod>2024-10-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/09/13/weeknotes/</loc>
    <lastmod>2024-09-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/09/07/weeknotes/</loc>
    <lastmod>2024-09-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/09/01/weeknotes/</loc>
    <lastmod>2024-09-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/08/25/weeknotes/</loc>
    <lastmod>2024-08-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/08/16/weeknotes/</loc>
    <lastmod>2024-08-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/08/08/weeknotes/</loc>
    <lastmod>2024-08-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/07/19/debugging-running-python-app/</loc>
    <lastmod>2024-07-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/03/10/when-giving-talks-gets-boring/</loc>
    <lastmod>2024-03-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/03/03/grumpy-thoughts-llm/</loc>
    <lastmod>2024-03-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/02/17/what-was-it-like-at-mozilla/</loc>
    <lastmod>2024-02-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/02/04/thoughts-on-mentoring/</loc>
    <lastmod>2024-02-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/01/28/grumpy-tech-jan-24/</loc>
    <lastmod>2024-01-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/01/21/wait-long-enough/</loc>
    <lastmod>2024-01-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/01/13/view-models/</loc>
    <lastmod>2024-01-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2024/01/07/roi-on-updating/</loc>
    <lastmod>2024-01-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2023/12/29/secret-talks/</loc>
    <lastmod>2023-12-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2023/09/29/reducing-friction-in-development-environments/</loc>
    <lastmod>2023-09-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2023/05/03/deciding-how-to-test-bug-fixes/</loc>
    <lastmod>2023-05-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2023/04/03/neovim-and-xdebug/</loc>
    <lastmod>2023-04-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2023/03/09/thinking-about-it-too-much/</loc>
    <lastmod>2023-03-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2023/02/10/adding-search-to-a-static-blog/</loc>
    <lastmod>2023-02-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2023/01/19/monkeypatching-in-php/</loc>
    <lastmod>2023-01-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2022/12/31/python-irc-bot/</loc>
    <lastmod>2022-12-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2022/12/13/current-neovim-setup/</loc>
    <lastmod>2022-12-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2022/12/06/testing-decoupled-code/</loc>
    <lastmod>2022-12-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2022/11/22/why-isnt-testing-ubiquitous/</loc>
    <lastmod>2022-11-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2022/11/18/a-grumpy-posse/</loc>
    <lastmod>2022-11-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2022/11/12/federating-yourself/</loc>
    <lastmod>2022-11-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2022/01/14/asking-companies-about-testing/</loc>
    <lastmod>2022-01-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2022/01/05/solving-problems-with-profiling/</loc>
    <lastmod>2022-01-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2022/01/02/better-outcomes/</loc>
    <lastmod>2022-01-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2021/12/30/repeatable-dev-environments/</loc>
    <lastmod>2021-12-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2019/12/02/opencfp-engineering-diary-adding-doctrine/</loc>
    <lastmod>2019-12-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2019/05/15/getting-things-done-while-remote/</loc>
    <lastmod>2019-05-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2019/05/15/python-mocking-function-with-different-return-values/</loc>
    <lastmod>2019-05-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2019/04/27/watch-me-get-grumpy-event-sourcing-refactor/</loc>
    <lastmod>2019-04-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2019/03/17/zend-expressive-doctrine-configuration/</loc>
    <lastmod>2019-03-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2019/01/31/docker-as-a-testing-tool/</loc>
    <lastmod>2019-01-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2019/01/16/test-like-a-grumpyprogrammer-part-2/</loc>
    <lastmod>2019-01-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2018/12/18/test-like-a-grumpy-programmer-part-1/</loc>
    <lastmod>2018-12-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2018/11/08/why-grumpyconf-has-no-sponsors/</loc>
    <lastmod>2018-11-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2018/10/22/maybe-this-book-isnt-for-you/</loc>
    <lastmod>2018-10-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2018/10/18/codedaze-talk/</loc>
    <lastmod>2018-10-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2018/01/15/using-markers-in-pytest/</loc>
    <lastmod>2018-01-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2018/01/14/jan-2018-board-game-night/</loc>
    <lastmod>2018-01-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2018/01/05/what-a-grumpy-programmer-uses-2018-edition/</loc>
    <lastmod>2018-01-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2017/09/14/how-a-grumpy-programmer-wires-their-home/</loc>
    <lastmod>2017-09-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2017/09/06/who-coaches-the-coaches/</loc>
    <lastmod>2017-09-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2017/05/26/letting-emacs-into-your-grumpy-heart/</loc>
    <lastmod>2017-05-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2017/04/26/async-api-testing-in-python/</loc>
    <lastmod>2017-04-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2017/03/27/a-different-twitter-experience/</loc>
    <lastmod>2017-03-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2017/03/12/fighting-fear-and-loathing-in-crested-butte/</loc>
    <lastmod>2017-03-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2017/01/18/testing-xml-based-apis/</loc>
    <lastmod>2017-01-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2017/01/09/how-a-grumpy-programmer-secures-their-laptop/</loc>
    <lastmod>2017-01-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2016/11/28/from-macos-to-win10-part-3/</loc>
    <lastmod>2016-11-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2016/11/18/from-macos-to-win10-part-2/</loc>
    <lastmod>2016-11-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2016/11/10/from-macos-to-win10-part-1/</loc>
    <lastmod>2016-11-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2016/11/07/true-north-php-is-done/</loc>
    <lastmod>2016-11-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2016/08/22/tracking-test-cases/</loc>
    <lastmod>2016-08-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2016/03/29/choosers-not-losers/</loc>
    <lastmod>2016-03-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2016/02/29/marionette-first-steps/</loc>
    <lastmod>2016-02-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2016/02/03/containers-and-the-grumpy-tester/</loc>
    <lastmod>2016-02-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2016/01/28/metatesting/</loc>
    <lastmod>2016-01-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2016/01/16/mutation-testing/</loc>
    <lastmod>2016-01-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2015/06/08/php-created-this-monster/</loc>
    <lastmod>2015-06-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2014/12/14/stop-telling-me-to-refactor/</loc>
    <lastmod>2014-12-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2014/10/31/web-acceptance-tools-suck/</loc>
    <lastmod>2014-10-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/12/27/test-spies-and-mockery/</loc>
    <lastmod>2013-12-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/11/18/the-power-of-the-browserproxymob/</loc>
    <lastmod>2013-11-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/10/26/data-providers-and-arrays/</loc>
    <lastmod>2013-10-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/10/14/booze-babes-and-buttholes/</loc>
    <lastmod>2013-10-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/09/27/test-listeners/</loc>
    <lastmod>2013-09-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/04/30/testing-smells-try-catch/</loc>
    <lastmod>2013-04-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/03/30/grumpy-culture/</loc>
    <lastmod>2013-03-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/03/24/whats-in-chris-brain-birthday-edition/</loc>
    <lastmod>2013-03-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/03/07/grumpy-phpunit-launched/</loc>
    <lastmod>2013-03-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/01/20/standards-soapboxes-and-shamans/</loc>
    <lastmod>2013-01-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/01/11/one-year-of-grumpy-testing/</loc>
    <lastmod>2013-01-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2013/01/07/you-need-tests-just-not-yet/</loc>
    <lastmod>2013-01-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/12/31/2012-review/</loc>
    <lastmod>2012-12-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/12/17/so-you-want-to-write-tests/</loc>
    <lastmod>2012-12-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/12/02/the-birth-of-grumpy-learning/</loc>
    <lastmod>2012-12-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/11/17/not-really-rebels/</loc>
    <lastmod>2012-11-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/10/18/phpspec-and-the-new-wave-of-testing/</loc>
    <lastmod>2012-10-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/10/15/first-steps-in-node-testing/</loc>
    <lastmod>2012-10-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/10/12/grumpy-phpunit/</loc>
    <lastmod>2012-10-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/10/10/happy-thoughts/</loc>
    <lastmod>2012-10-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/09/21/biz-lessons-learned/</loc>
    <lastmod>2012-09-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/08/16/5-minute-tdd/</loc>
    <lastmod>2012-08-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/08/08/how-did-i-end-up-here/</loc>
    <lastmod>2012-08-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/07/31/watering-holes/</loc>
    <lastmod>2012-07-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/07/27/php-application-testing-bootcamp/</loc>
    <lastmod>2012-07-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/07/13/monkey-patching-is-for-closers/</loc>
    <lastmod>2012-07-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/06/20/yummy-sauce-on-my-behat/</loc>
    <lastmod>2012-06-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/06/18/why-dont-you-trust-your-developers/</loc>
    <lastmod>2012-06-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/06/06/dic-vs-service-locator/</loc>
    <lastmod>2012-06-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/05/31/tricorder-a-testing-helper-for-php/</loc>
    <lastmod>2012-05-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/05/17/how-the-testing-sausage-gets-made/</loc>
    <lastmod>2012-05-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/05/16/test-all-the-things/</loc>
    <lastmod>2012-05-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/05/15/have-a-strategy/</loc>
    <lastmod>2012-05-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/05/14/why-i-began-testing/</loc>
    <lastmod>2012-05-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/05/09/grumpy-programmers-like-pair-programming/</loc>
    <lastmod>2012-05-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/04/15/build-php-54-on-centos-with-vagrant/</loc>
    <lastmod>2012-04-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/04/05/metatesting-testing-constructors/</loc>
    <lastmod>2012-04-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/03/27/metatesting-understanding-mock-objects/</loc>
    <lastmod>2012-03-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/03/09/moving-on-and-a-testing-mini-manifesto/</loc>
    <lastmod>2012-03-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/02/26/simple-api-testing-with-behat/</loc>
    <lastmod>2012-02-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/02/22/thoughts-on-testing-apis/</loc>
    <lastmod>2012-02-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/02/14/organizing-slim-framework-apps/</loc>
    <lastmod>2012-02-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/02/13/baby-steps-with-node-js/</loc>
    <lastmod>2012-02-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/02/03/how-not-to-suck-at-php/</loc>
    <lastmod>2012-02-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/01/17/phpunit-aborted-fix/</loc>
    <lastmod>2012-01-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/01/16/codemash-2012-review/</loc>
    <lastmod>2012-01-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/01/05/better-remote-code-development/</loc>
    <lastmod>2012-01-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2012/01/03/grumpy-testing/</loc>
    <lastmod>2012-01-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/12/30/the-year-of-the-struggle/</loc>
    <lastmod>2011-12-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/12/12/better-http-request-response-in-php/</loc>
    <lastmod>2011-12-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/12/05/war-room-driven-deployment/</loc>
    <lastmod>2011-12-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/11/25/scope-is-not-mouthwash/</loc>
    <lastmod>2011-11-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/11/07/building-a-gimmebar-sidebar/</loc>
    <lastmod>2011-11-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/11/03/infrastructure-debt/</loc>
    <lastmod>2011-11-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/10/24/grumpy-programmers-guide-to-remote-working-part-2/</loc>
    <lastmod>2011-10-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/10/10/grumpy-programmers-guide-to-remote-working-part-1/</loc>
    <lastmod>2011-10-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/09/14/blogging-framework-for-hackers-is-the-right-label/</loc>
    <lastmod>2011-09-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/09/13/two-sides-to-api-building/</loc>
    <lastmod>2011-09-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/09/07/renovating-sucks/</loc>
    <lastmod>2011-09-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/08/09/a-day-in-the-life-at-moontoast/</loc>
    <lastmod>2011-08-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/06/29/brain-dump/</loc>
    <lastmod>2011-06-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/05/30/book-review-cakephp-cookbook/</loc>
    <lastmod>2011-05-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/05/02/testing-web-services/</loc>
    <lastmod>2011-05-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/04/26/real-people-building-real-things/</loc>
    <lastmod>2011-04-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/04/11/book-review-epwzf/</loc>
    <lastmod>2011-04-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/04/03/component-architecture-followup/</loc>
    <lastmod>2011-04-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/03/31/component-architecture/</loc>
    <lastmod>2011-03-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/03/24/djaml-in-pypi/</loc>
    <lastmod>2011-03-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/03/23/ruined-by-pr0n/</loc>
    <lastmod>2011-03-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/03/20/chris-pinboard-march-2011/</loc>
    <lastmod>2011-03-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/03/17/fear-is-the-mind-killer/</loc>
    <lastmod>2011-03-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/03/15/embrace-the-ideas-of-march/</loc>
    <lastmod>2011-03-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/02/27/wordpress-to-jekyll/</loc>
    <lastmod>2011-02-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/02/17/lies-i-told-my-kids-python-flask-gae/</loc>
    <lastmod>2011-02-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/02/07/the-grumpy-programmers-guide-to-zend-framework/</loc>
    <lastmod>2011-02-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/01/31/book-review-php-5-social-networking/</loc>
    <lastmod>2011-01-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/01/24/moving-on-and-shooting-for-the-moontoast/</loc>
    <lastmod>2011-01-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/01/19/smarter-db-migrations-using-zend-framework-and-doctrine-1-2/</loc>
    <lastmod>2011-01-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2011/01/17/codemash-2011-round-up/</loc>
    <lastmod>2011-01-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/12/15/fun-with-apis-frapi-and-django-tastypie/</loc>
    <lastmod>2010-12-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/12/07/slides-from-my-pragmatic-tdd-talk/</loc>
    <lastmod>2010-12-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/12/04/youve-gotten-haml-in-my-django-templates-introducing-djaml/</loc>
    <lastmod>2010-12-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/12/03/switched-servers/</loc>
    <lastmod>2010-12-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/12/01/whats-in-chris-brain-december-2010-edition/</loc>
    <lastmod>2010-12-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/11/02/ask-my-readers-development-environments/</loc>
    <lastmod>2010-11-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/10/18/whats-in-chris-brain-october-2010-edition/</loc>
    <lastmod>2010-10-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/09/22/testing-form-posts-in-zend-framework/</loc>
    <lastmod>2010-09-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/09/07/twitter-asks-continuous-integration-landscape-for-php-developers/</loc>
    <lastmod>2010-09-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/08/16/zend_application-and-zend_acl/</loc>
    <lastmod>2010-08-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/07/29/snakes-and-elephants-playing-nice-together-phpunit-and-py-test-with-hudson/</loc>
    <lastmod>2010-07-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/07/21/coding-lessons-learned/</loc>
    <lastmod>2010-07-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/06/24/fun-with-custom-zend_views/</loc>
    <lastmod>2010-06-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/06/16/book-review-codeigniter-1-7-professional-development/</loc>
    <lastmod>2010-06-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/06/03/testing-controllers-hiding-behind-zend_auth/</loc>
    <lastmod>2010-06-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/05/28/essential-programming-books-building-scalable-web-site/</loc>
    <lastmod>2010-05-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/05/26/its-the-community-stupid/</loc>
    <lastmod>2010-05-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/05/17/off-to-tek-x/</loc>
    <lastmod>2010-05-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/04/30/more-awesome-deployment-using-phing/</loc>
    <lastmod>2010-04-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/04/14/you-asked-for-it-chris-awesome-but-short-guide-to-deployment-using-phing/</loc>
    <lastmod>2010-04-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/03/30/is-there-a-more-practical-approach-to-tdd/</loc>
    <lastmod>2010-03-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/03/19/u-r-doin-it-wrong-adventures-with-flexible-forms-in-zend-framework/</loc>
    <lastmod>2010-03-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/03/16/expand-your-programming-mind-filters-in-lithium/</loc>
    <lastmod>2010-03-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/03/12/rallyhat-lives/</loc>
    <lastmod>2010-03-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/03/05/people-who-make-me-feel-stupid-fabien-potencier/</loc>
    <lastmod>2010-03-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/03/04/people-who-make-me-feel-stupid-ezra-zygmuntowicz/</loc>
    <lastmod>2010-03-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/03/03/people-who-make-me-feel-stupid-rich-hickey/</loc>
    <lastmod>2010-03-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/03/02/people-who-make-me-feel-stupid-antirez/</loc>
    <lastmod>2010-03-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/03/01/people-who-make-me-feel-stupid-geoffrey-grosenbach/</loc>
    <lastmod>2010-03-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/02/19/where-in-chris-reads-the-documentation-and-does-not-find-the-answer/</loc>
    <lastmod>2010-02-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/02/04/sorting-relationship-results-in-doctrine-1-2-2/</loc>
    <lastmod>2010-02-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/01/27/creating-usable-forms-with-zend-framework/</loc>
    <lastmod>2010-01-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/01/15/rallyhat-playing-with-couchdb-and-python/</loc>
    <lastmod>2010-01-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2010/01/08/who-cares-what-i-think/</loc>
    <lastmod>2010-01-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/12/22/whats-in-chris-brain-christmas-2009-edition/</loc>
    <lastmod>2009-12-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/12/15/shells-and-sandboxes/</loc>
    <lastmod>2009-12-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/12/02/readers-ask-me-tdd-and-freelancing/</loc>
    <lastmod>2009-12-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/30/so-it-ends-gentle-reader/</loc>
    <lastmod>2009-11-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/27/better-application-deployment/</loc>
    <lastmod>2009-11-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/26/whats-in-chris-brain-blog-experiment-version/</loc>
    <lastmod>2009-11-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/25/useful-tools-for-non-designers/</loc>
    <lastmod>2009-11-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/24/the-definition-of-open-source/</loc>
    <lastmod>2009-11-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/23/what-thrashed-around-in-chris-brain-this-past-weekend/</loc>
    <lastmod>2009-11-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/20/cleaning-up-the-dev-environment/</loc>
    <lastmod>2009-11-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/19/the-programming-environment-of-the-future/</loc>
    <lastmod>2009-11-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/18/using-django-as-an-admin-area-for-a-php-project-part-1/</loc>
    <lastmod>2009-11-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/17/whats-in-chris-brain-today/</loc>
    <lastmod>2009-11-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/16/rambling-on-the-future-of-php/</loc>
    <lastmod>2009-11-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/13/going-to-christmas-town/</loc>
    <lastmod>2009-11-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/12/the-scary-future-world-i-will-program-in/</loc>
    <lastmod>2009-11-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/11/on-remembrance-day-remember-both-sides/</loc>
    <lastmod>2009-11-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/10/code-generation-for-fun-and-profit/</loc>
    <lastmod>2009-11-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/09/why-i-dont-want-to-use-tools-written-for-php-4/</loc>
    <lastmod>2009-11-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/07/sending-data-via-http-put-using-basic-authentication/</loc>
    <lastmod>2009-11-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/05/next-gen-work-projects/</loc>
    <lastmod>2009-11-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/04/dont-get-too-cute-with-your-refactoring/</loc>
    <lastmod>2009-11-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/03/why-i-love-stack-overflow/</loc>
    <lastmod>2009-11-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/11/02/november-blogging-challenge-day-1/</loc>
    <lastmod>2009-11-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/10/28/rip-quenton-082198-to-102809/</loc>
    <lastmod>2009-10-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/10/27/new-site-for-refactoring-legacy-applications-using-cakephp/</loc>
    <lastmod>2009-10-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/10/23/building-rallyhat-out-of-the-cloud-and-onto-a-slice/</loc>
    <lastmod>2009-10-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/10/09/solutions-looking-for-a-problem/</loc>
    <lastmod>2009-10-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/09/24/chris-brain-almost-october-2009-edition/</loc>
    <lastmod>2009-09-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/09/14/open-source-is-really-about-documentation/</loc>
    <lastmod>2009-09-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/09/10/lazyweb-help-busting-out-of-frames/</loc>
    <lastmod>2009-09-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/09/04/whats-in-chris-brain-september-2009-edition/</loc>
    <lastmod>2009-09-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/08/22/book-review-coders-at-work/</loc>
    <lastmod>2009-08-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/08/15/so-you-want-to-telecommute-part-4-%e2%80%93-programming-tools/</loc>
    <lastmod>2009-08-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/08/08/so-you-want-to-telecommute-part-3-collaboration/</loc>
    <lastmod>2009-08-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/08/01/so-you-want-to-telecommute-part-2-accountability/</loc>
    <lastmod>2009-08-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/07/29/so-you-want-to-telecommute-part-1-building-trust/</loc>
    <lastmod>2009-07-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/07/22/some-clarity-about-canadian-health-care/</loc>
    <lastmod>2009-07-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/07/07/multiple-form-defaults-using-jquery/</loc>
    <lastmod>2009-07-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/07/01/brittle-web-services/</loc>
    <lastmod>2009-07-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/06/19/do-androids-dream-of-googlephones/</loc>
    <lastmod>2009-06-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/06/12/the-upcoming-scalable-datastore-singularity/</loc>
    <lastmod>2009-06-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/06/05/a-simple-couchdb-datasource/</loc>
    <lastmod>2009-06-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/05/26/book-now-available-on-amazon/</loc>
    <lastmod>2009-05-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/05/21/laziness-vs-efficiency/</loc>
    <lastmod>2009-05-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/05/14/my-next-book/</loc>
    <lastmod>2009-05-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/05/08/digging-through-the-bookmarks/</loc>
    <lastmod>2009-05-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/05/01/chris-brain-may-2009-edition/</loc>
    <lastmod>2009-05-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/04/23/cakephp-application-rfc-follow-up/</loc>
    <lastmod>2009-04-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/04/16/adventures-in-snake-handling-part-1/</loc>
    <lastmod>2009-04-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/04/09/lazyweb-questions-april-2009/</loc>
    <lastmod>2009-04-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/03/31/refactoring-legacy-applications-using-cakephp-is-now-available/</loc>
    <lastmod>2009-03-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/03/24/ada-lovelace-day-celebrating-women-in-technology/</loc>
    <lastmod>2009-03-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/03/21/countdown-to-refactoring-legacy-applications-using-cakephp/</loc>
    <lastmod>2009-03-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/03/13/got-that-olde-thyme-tdd-religion/</loc>
    <lastmod>2009-03-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/03/07/slides-from-php-quebec-2009-talk/</loc>
    <lastmod>2009-03-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/03/03/what-ill-be-doing-at-php-quebec/</loc>
    <lastmod>2009-03-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/02/25/ad-hoc-web-testing-using-python/</loc>
    <lastmod>2009-02-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/02/18/chris-brain-2009-02-18/</loc>
    <lastmod>2009-02-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/02/10/rebuilding-your-programming-and-deployment-environments/</loc>
    <lastmod>2009-02-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/02/04/book-update/</loc>
    <lastmod>2009-02-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/01/29/cakephp-plugins-server/</loc>
    <lastmod>2009-01-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/01/25/cakephp-nginx-configuration-update/</loc>
    <lastmod>2009-01-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/01/23/if-wishes-were-fishes-the-sea-would-be-full/</loc>
    <lastmod>2009-01-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/01/20/chriss-brain-2009-01-20/</loc>
    <lastmod>2009-01-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/01/16/preview-of-refactoring-legacy-applications-using-cakephp/</loc>
    <lastmod>2009-01-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/01/13/communication-tools-for-teams/</loc>
    <lastmod>2009-01-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/01/04/cakephp-mythbusters/</loc>
    <lastmod>2009-01-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2009/01/03/my-seven-things/</loc>
    <lastmod>2009-01-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/12/30/converting-legacy-apps-to-cakephp-part-3/</loc>
    <lastmod>2008-12-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/12/27/cakephp-12-final-released-and-some-thoughts-on-frameworks/</loc>
    <lastmod>2008-12-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/12/24/chris-brain-x-mas-2008-edition/</loc>
    <lastmod>2008-12-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/12/22/you-cannot-escapethe-framework-apocalypse/</loc>
    <lastmod>2008-12-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/12/18/cakephp-12rc4-released/</loc>
    <lastmod>2008-12-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/12/04/converting-legacy-apps-to-cakephp-part-2/</loc>
    <lastmod>2008-12-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/11/28/handling-multiple-environments-in-your-php-application/</loc>
    <lastmod>2008-11-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/11/27/converting-legacy-apps-to-cakephp-part-1/</loc>
    <lastmod>2008-11-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/11/19/come-heckle-me-at-the-2009-php-quebec-conference/</loc>
    <lastmod>2008-11-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/11/17/making-mistakes-so-you-dont-have-to-development-tools/</loc>
    <lastmod>2008-11-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/11/05/whats-in-chris-brain-november-2008-issue/</loc>
    <lastmod>2008-11-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/10/20/vim-programming-bounty-fuzzyfind-inside-files/</loc>
    <lastmod>2008-10-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/10/16/job-opening-xmlteam-solutions/</loc>
    <lastmod>2008-10-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/10/09/a-new-way-of-judging-frameworks-where-are-the-tests/</loc>
    <lastmod>2008-10-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/10/02/cakephp-12rc3-released/</loc>
    <lastmod>2008-10-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/09/19/komodo-and-cakephp/</loc>
    <lastmod>2008-09-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/09/16/whats-in-chris-brain-september-2008-edition/</loc>
    <lastmod>2008-09-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/09/08/book-review-cakephp-application-development/</loc>
    <lastmod>2008-09-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/09/04/dont-fear-the-command-line-using-cakephp-shells/</loc>
    <lastmod>2008-09-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/08/28/reader-feedback-web-application-performance/</loc>
    <lastmod>2008-08-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/08/27/reader-feedback-working-with-xml-in-php/</loc>
    <lastmod>2008-08-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/08/26/reader-feedback-experiences-with-django/</loc>
    <lastmod>2008-08-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/08/25/reader-feedback-personal-project-management/</loc>
    <lastmod>2008-08-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/08/18/cakephp-workshop/</loc>
    <lastmod>2008-08-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/08/12/please-do-not-adjust-your-set/</loc>
    <lastmod>2008-08-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/08/08/server-maintenance/</loc>
    <lastmod>2008-08-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/08/05/dynamic-models-in-cakephp-12/</loc>
    <lastmod>2008-08-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/08/01/august-is-reader-feedback-month/</loc>
    <lastmod>2008-08-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/07/22/what-is-really-considered-documentation/</loc>
    <lastmod>2008-07-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/07/15/whats-in-chris-brain-july-2008-edition/</loc>
    <lastmod>2008-07-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/07/07/web-mockups-with-a-hint-of-balsamiq/</loc>
    <lastmod>2008-07-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/06/30/namespaces-in-php-why-wouldnt-you-want-them/</loc>
    <lastmod>2008-06-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/06/24/new-trends-in-front-ends/</loc>
    <lastmod>2008-06-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/06/13/cakephp-and-the-iphone/</loc>
    <lastmod>2008-06-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/06/13/accuracy-in-baseball-simulations/</loc>
    <lastmod>2008-06-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/06/10/yes-i-do-some-javascript-programming-as-well/</loc>
    <lastmod>2008-06-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/05/30/never-stop-learning-2/</loc>
    <lastmod>2008-05-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/05/23/whats-in-chris-brain-may-2008-edition-2/</loc>
    <lastmod>2008-05-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/05/16/cakephp-application-deployment-rfc/</loc>
    <lastmod>2008-05-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/05/13/new-cakephp-12-release-coming/</loc>
    <lastmod>2008-05-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/05/07/cakefest-hispania/</loc>
    <lastmod>2008-05-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/05/02/whats-in-chris-brain-may-2008-edition/</loc>
    <lastmod>2008-05-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/04/25/deployment-rule-5-the-only-difference-between-environments-should-be-data-sets/</loc>
    <lastmod>2008-04-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/04/23/c7y-podcast/</loc>
    <lastmod>2008-04-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/04/17/deployment-is-not-a-4-letter-word-the-screencast/</loc>
    <lastmod>2008-04-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/04/15/open-web-vancouver-2008-day-2/</loc>
    <lastmod>2008-04-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/04/15/open-web-vancouver-208-day-1/</loc>
    <lastmod>2008-04-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/04/12/building-rallyhat-proof-of-concept-deployment/</loc>
    <lastmod>2008-04-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/04/11/building-rallyhat-up-into-the-cloud/</loc>
    <lastmod>2008-04-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/04/09/the-rise-of-the-app-cloud/</loc>
    <lastmod>2008-04-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/04/04/building-rallyhat-importing-schedules/</loc>
    <lastmod>2008-04-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/04/01/deployment-horror-stories/</loc>
    <lastmod>2008-04-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/03/29/upcoming-git-book/</loc>
    <lastmod>2008-03-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/03/28/whats-in-chris-brain-march-2008-edition/</loc>
    <lastmod>2008-03-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/03/25/building-rallyhat-first-steps/</loc>
    <lastmod>2008-03-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/03/21/im-a-editor-waffler-part-ii/</loc>
    <lastmod>2008-03-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/03/18/im-an-editor-waffler/</loc>
    <lastmod>2008-03-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/03/14/whats-the-next-php-stack/</loc>
    <lastmod>2008-03-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/03/12/darn-spammers-got-to-me/</loc>
    <lastmod>2008-03-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/03/06/my-framework-is-more-mvc-than-your-framework/</loc>
    <lastmod>2008-03-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/03/04/custom-cakephp-12-pagination-queries/</loc>
    <lastmod>2008-03-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/02/27/whats-in-chris-brain-february-2008-edition/</loc>
    <lastmod>2008-02-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/02/18/cooking-up-some-cake/</loc>
    <lastmod>2008-02-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/02/12/its-convention-season/</loc>
    <lastmod>2008-02-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/02/08/cakefest-2008-day-two/</loc>
    <lastmod>2008-02-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/02/06/cakefest-the-night-before/</loc>
    <lastmod>2008-02-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/02/06/cakefest-day-1/</loc>
    <lastmod>2008-02-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/02/02/the-devils-in-the-details-or-handling-sequences-in-postgres-in-cakephp/</loc>
    <lastmod>2008-02-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/01/29/whats-in-chris-brain-january-2008-edition/</loc>
    <lastmod>2008-01-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/01/22/simple-user-registration-in-cakephp-12-part-ii/</loc>
    <lastmod>2008-01-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/01/21/going-to-cakefest/</loc>
    <lastmod>2008-01-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/01/17/job-posting-manufacturing-engineer-position/</loc>
    <lastmod>2008-01-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/01/11/how-to-http-put-a-file-somewhere-using-php/</loc>
    <lastmod>2008-01-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/01/08/simple-user-registration-in-cakephp/</loc>
    <lastmod>2008-01-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/01/03/union-of-the-snake-part-1/</loc>
    <lastmod>2008-01-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/01/02/new-release-of-cakephp-12/</loc>
    <lastmod>2008-01-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2008/01/01/moving-from-herding-elephants-to-handling-snakes/</loc>
    <lastmod>2008-01-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/12/27/now-please-if-you-really-must-continue-acting-like-an-ass-take-it-to-your-crappy-blog-where-7200-developers-dont-have-to-watch-if-they-dont-want-to/</loc>
    <lastmod>2007-12-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/12/20/christmas-with-a-little-flex-2-it/</loc>
    <lastmod>2007-12-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/12/18/the-story-and-rebirth-of-zend_service_audioscrobbler-part-2/</loc>
    <lastmod>2007-12-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/12/11/the-story-and-rebirth-of-zend_service_audioscrobbler-part-1/</loc>
    <lastmod>2007-12-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/12/11/cakephp-pagination-with-a-habtm-relationship/</loc>
    <lastmod>2007-12-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/12/09/switched-hosts/</loc>
    <lastmod>2007-12-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/12/04/how-many-times-has-this-happened-to-you/</loc>
    <lastmod>2007-12-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/11/30/more-xml-db-fun/</loc>
    <lastmod>2007-11-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/11/28/want-to-write-php-code-in-bermuda/</loc>
    <lastmod>2007-11-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/11/26/developing-with-php-on-leopard/</loc>
    <lastmod>2007-11-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/11/20/looking-outside-the-box/</loc>
    <lastmod>2007-11-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/11/20/follow-up-to-a-hopefully-usefull-tutorial-for-using-cakephps-auth-component/</loc>
    <lastmod>2007-11-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/11/15/having-problems-when-upgrading-cakephp/</loc>
    <lastmod>2007-11-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/11/14/server-shakeout/</loc>
    <lastmod>2007-11-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/11/13/git-mah-code-from-th-repository-ma/</loc>
    <lastmod>2007-11-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/11/07/whats-in-chris-brain-november-2007-edition/</loc>
    <lastmod>2007-11-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/11/02/10-days-later-early-impressions-of-cakephp-vs-codeigniter/</loc>
    <lastmod>2007-11-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/10/31/more-fun-with-capistrano-and-php-applications/</loc>
    <lastmod>2007-10-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/10/26/babysteps-with-xquery/</loc>
    <lastmod>2007-10-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/10/23/the-perils-of-telecommuting/</loc>
    <lastmod>2007-10-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/10/19/ive-joined-the-xmlteam-team/</loc>
    <lastmod>2007-10-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/10/16/back-in-business/</loc>
    <lastmod>2007-10-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/10/02/things-will-be-quiet/</loc>
    <lastmod>2007-10-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/09/25/rails-fan-boys-missed-the-point/</loc>
    <lastmod>2007-09-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/09/21/deploying-cakephp-applications-using-capistrano/</loc>
    <lastmod>2007-09-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/09/18/new-cakephp-podcast-launched/</loc>
    <lastmod>2007-09-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/09/14/configuring-cakephp-to-work-with-nginx/</loc>
    <lastmod>2007-09-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/09/13/glue-vs-full-stack-the-podcast-edition/</loc>
    <lastmod>2007-09-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/09/11/a-hopefully-useful-tutorial-for-using-cakephps-auth-component/</loc>
    <lastmod>2007-09-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/09/07/whats-in-chris-brain-september-2007-edition/</loc>
    <lastmod>2007-09-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/09/04/a-glimpse-inside-cakephp-12/</loc>
    <lastmod>2007-09-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/08/28/when-do-you-take-your-ball-and-go-home/</loc>
    <lastmod>2007-08-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/08/21/trusting-magic-methods/</loc>
    <lastmod>2007-08-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/08/17/cakephp-resources/</loc>
    <lastmod>2007-08-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/08/14/extraction-vs-design/</loc>
    <lastmod>2007-08-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/08/07/stupid-cakephp-controller-tricks/</loc>
    <lastmod>2007-08-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/08/03/database-shards-and-cakephp/</loc>
    <lastmod>2007-08-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/08/01/whats-in-chris-brain-august-2007-edition/</loc>
    <lastmod>2007-08-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/07/28/two-headed-application-authentication-in-cakephp-12/</loc>
    <lastmod>2007-07-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/07/24/welcome-to-the-lazyweb/</loc>
    <lastmod>2007-07-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/07/20/protecting-your-php-code/</loc>
    <lastmod>2007-07-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/07/17/opinionated-software-the-podcast/</loc>
    <lastmod>2007-07-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/07/15/lazyweb-or-die-digging/</loc>
    <lastmod>2007-07-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/07/11/why-code-generation-just-works-damnit/</loc>
    <lastmod>2007-07-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/07/06/pretty-please-make-your-code-testable/</loc>
    <lastmod>2007-07-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/07/04/rss-feed-problems/</loc>
    <lastmod>2007-07-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/07/03/what-do-you-do-when-there-is-no-documentation/</loc>
    <lastmod>2007-07-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/06/26/testing-components-in-cakephp/</loc>
    <lastmod>2007-06-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/06/22/whats-in-chris-brain-june-2007-edition/</loc>
    <lastmod>2007-06-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/06/20/turning-back-the-clock/</loc>
    <lastmod>2007-06-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/06/06/this-time-i-mean-it/</loc>
    <lastmod>2007-06-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/05/30/glue-vs-full-stack/</loc>
    <lastmod>2007-05-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/05/29/now-entering-radio-silence/</loc>
    <lastmod>2007-05-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/05/25/screencast-interactive-console-for-cakephp/</loc>
    <lastmod>2007-05-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/05/23/who-is-responsible-for-scaling/</loc>
    <lastmod>2007-05-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/05/17/live-from-phptek/</loc>
    <lastmod>2007-05-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/05/15/off-to-phptek/</loc>
    <lastmod>2007-05-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/05/12/where-are-the-good-development-tools-for-php-part-ii/</loc>
    <lastmod>2007-05-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/05/08/where-are-the-good-development-tools-for-php/</loc>
    <lastmod>2007-05-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/05/04/form-validation-with-jquery/</loc>
    <lastmod>2007-05-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/05/02/carpenter-or-sculptor/</loc>
    <lastmod>2007-05-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/04/27/fat-models-skinny-controllers/</loc>
    <lastmod>2007-04-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/04/24/what-happens-when-a-good-idea-doesnt-actually-work/</loc>
    <lastmod>2007-04-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/04/17/whats-in-chris-brain-april-2007-edition/</loc>
    <lastmod>2007-04-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/04/11/doing-radar-in-cakephp/</loc>
    <lastmod>2007-04-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/04/05/lazyweb-need-a-t-shirt-artist/</loc>
    <lastmod>2007-04-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/04/04/keep-an-eye-on-your-radar/</loc>
    <lastmod>2007-04-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/03/31/what-do-you-mean-you-havent-had-a-code-review/</loc>
    <lastmod>2007-03-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/03/28/more-framework-fun/</loc>
    <lastmod>2007-03-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/03/23/in-spring-time-a-not-so-young-php-programmers-mind-turns-to-frameworks/</loc>
    <lastmod>2007-03-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/03/20/whats-in-chris-brain-march-2007-edition/</loc>
    <lastmod>2007-03-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/03/16/zend_service_audioscrobbler-moves-to-zend-framework-core/</loc>
    <lastmod>2007-03-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/03/15/lazyweb-job-posting-webmaster-with-php-skills/</loc>
    <lastmod>2007-03-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/03/13/how-easy-are-web-services-in-cakephp-12-really-easy/</loc>
    <lastmod>2007-03-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/03/09/riding-off-into-the-sunset/</loc>
    <lastmod>2007-03-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/03/06/i-can-sleep-when-im-dead/</loc>
    <lastmod>2007-03-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/03/03/still-no-new-code-to-report/</loc>
    <lastmod>2007-03-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/02/27/packing-my-bags-and-moving-on/</loc>
    <lastmod>2007-02-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/02/24/blog-roundup/</loc>
    <lastmod>2007-02-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/02/21/whats-chris-thinking-about-february-edition/</loc>
    <lastmod>2007-02-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/02/16/interview-with-cal-evans/</loc>
    <lastmod>2007-02-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/02/14/back-from-vancouver-php-conference-2007/</loc>
    <lastmod>2007-02-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/02/09/my-next-foolish-project-a-console-for-cakephp/</loc>
    <lastmod>2007-02-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/02/07/verticalscope-is-hiring-php-developers/</loc>
    <lastmod>2007-02-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/02/07/bips-and-boops/</loc>
    <lastmod>2007-02-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/02/02/have-i-become-a-grumpy-old-programmer/</loc>
    <lastmod>2007-02-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/01/30/wordpress-21-and-mint/</loc>
    <lastmod>2007-01-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/01/28/updated-look/</loc>
    <lastmod>2007-01-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/01/26/komodo-not-just-a-dragon/</loc>
    <lastmod>2007-01-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/01/20/rallyhatcom-moving-forward/</loc>
    <lastmod>2007-01-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/01/16/application-authentication/</loc>
    <lastmod>2007-01-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/01/10/how-has-ruby-on-rails-made-me-a-better-programmer/</loc>
    <lastmod>2007-01-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/01/05/whats-in-chris-brain-january-2007-edition/</loc>
    <lastmod>2007-01-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/01/03/rallyhatcom-now-live/</loc>
    <lastmod>2007-01-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2007/01/02/just-build-it-damnit/</loc>
    <lastmod>2007-01-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/12/29/deploying-rails-apps-with-capistrano/</loc>
    <lastmod>2006-12-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/12/26/rallyhatcom-now-has-a-home/</loc>
    <lastmod>2006-12-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/12/23/weve-moved/</loc>
    <lastmod>2006-12-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/12/19/ruthless-refactoring-and-other-activities/</loc>
    <lastmod>2006-12-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/12/15/elephants-rubiesand-now-snakes/</loc>
    <lastmod>2006-12-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/12/13/sometimes-the-weirdest-problems-have-the-simplest-solutions/</loc>
    <lastmod>2006-12-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/12/08/speaking-at-phptek/</loc>
    <lastmod>2006-12-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/12/06/bug-hunting-should-be-taught-to-beginners/</loc>
    <lastmod>2006-12-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/12/05/rallyhatcom-baby-steps/</loc>
    <lastmod>2006-12-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/29/using-cakephps-native-web-service-support/</loc>
    <lastmod>2006-11-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/24/adventures-with-jquery/</loc>
    <lastmod>2006-11-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/22/learning-from-ruby-on-rails-published/</loc>
    <lastmod>2006-11-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/21/catfish-redux/</loc>
    <lastmod>2006-11-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/17/mmmmcatfish-in-a-browser/</loc>
    <lastmod>2006-11-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/15/how-do-you-scale-a-rails-app-with-great-difficulty-apparantly/</loc>
    <lastmod>2006-11-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/14/quick-hits-3/</loc>
    <lastmod>2006-11-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/10/zend_service_audioscrobbler-update-2/</loc>
    <lastmod>2006-11-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/08/the-constant-battle-that-goes-on-in-my-head/</loc>
    <lastmod>2006-11-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/02/php-community-card-deck/</loc>
    <lastmod>2006-11-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/11/01/what-chris-is-thinking-about-november-issue/</loc>
    <lastmod>2006-11-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/10/29/amazon-web-services-takes-it-to-the-next-level/</loc>
    <lastmod>2006-10-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/10/24/if-they-want-to-eat-cake-they-have-to-ask-nicely/</loc>
    <lastmod>2006-10-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/10/20/freckles-are-cute/</loc>
    <lastmod>2006-10-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/10/17/new-ads-on-the-site/</loc>
    <lastmod>2006-10-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/10/13/mini-book-review-ajax-design-patterns/</loc>
    <lastmod>2006-10-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/10/10/what-chris-is-thinking-about-2/</loc>
    <lastmod>2006-10-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/10/06/tutorial-how-to-create-a-thread-in-vbulletin-with-a-script/</loc>
    <lastmod>2006-10-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/10/04/its-dead-jim/</loc>
    <lastmod>2006-10-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/28/zend_service_audioscrobbler-update/</loc>
    <lastmod>2006-09-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/27/there-is-such-a-thing-as-bad-agile-software-development/</loc>
    <lastmod>2006-09-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/26/tutorial-integrating-phpswf-charts-with-cakephp/</loc>
    <lastmod>2006-09-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/20/it-was-a-good-day-for-a-tutorial/</loc>
    <lastmod>2006-09-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/15/live-from-phpworks-day-3-falling-asleep-at-home-edition/</loc>
    <lastmod>2006-09-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/15/live-from-phpworks-day-3-almost-there-edition/</loc>
    <lastmod>2006-09-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/14/live-from-phpworks-day-2-sitting-in-the-lobby-edition/</loc>
    <lastmod>2006-09-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/14/live-from-phpworks-day-2-decompressing-edition/</loc>
    <lastmod>2006-09-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/14/live-from-phpworks-day-2-keynote-edition/</loc>
    <lastmod>2006-09-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/13/live-from-phpworks-interview-with-cal-evans/</loc>
    <lastmod>2006-09-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/13/live-from-phpworks-laying-in-bed-edition/</loc>
    <lastmod>2006-09-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/13/live-from-phpworks-keynote-edition/</loc>
    <lastmod>2006-09-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/12/slides-for-my-phpworks-presentation-what-can-php-learn-from-ruby-on-rails/</loc>
    <lastmod>2006-09-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/12/run-up-to-phpworks-and-some-ajax-fun/</loc>
    <lastmod>2006-09-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/08/tgif/</loc>
    <lastmod>2006-09-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/05/what-chris-is-thinking-about/</loc>
    <lastmod>2006-09-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/09/03/should-you-protect-your-code/</loc>
    <lastmod>2006-09-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/08/29/random-thoughts/</loc>
    <lastmod>2006-08-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/08/25/plugins-for-vbulletin/</loc>
    <lastmod>2006-08-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/08/22/quick-hits-2/</loc>
    <lastmod>2006-08-22T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/08/18/socket-servers-redux/</loc>
    <lastmod>2006-08-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/08/14/database-metaprogramming/</loc>
    <lastmod>2006-08-14T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/08/12/all-quiet/</loc>
    <lastmod>2006-08-12T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/08/10/theballpark-is-broken/</loc>
    <lastmod>2006-08-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/08/09/socket-servers/</loc>
    <lastmod>2006-08-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/08/02/phpworks-isnt-that-far-off/</loc>
    <lastmod>2006-08-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/07/28/cake-and-ajax/</loc>
    <lastmod>2006-07-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/07/26/quick-hits/</loc>
    <lastmod>2006-07-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/07/21/i-think-i-might-be-hungry-for-cake/</loc>
    <lastmod>2006-07-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/07/21/friday-night-with-the-wife/</loc>
    <lastmod>2006-07-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/07/18/working-with-the-zend-framework/</loc>
    <lastmod>2006-07-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/07/13/back-at-the-keys/</loc>
    <lastmod>2006-07-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/07/01/thoughts-about-my-upcoming-talk/</loc>
    <lastmod>2006-07-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/06/27/static-members/</loc>
    <lastmod>2006-06-27T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/06/23/zend_service_audioscrobbler/</loc>
    <lastmod>2006-06-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/06/20/see-you-in-september/</loc>
    <lastmod>2006-06-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/06/16/a-hidden-joy-of-parenting/</loc>
    <lastmod>2006-06-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/06/13/sql-for-web-nerds/</loc>
    <lastmod>2006-06-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/06/09/why-exception-handling-matters/</loc>
    <lastmod>2006-06-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/06/05/people-over-30-should-be-dead/</loc>
    <lastmod>2006-06-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/06/01/rock-paper-scissors-25/</loc>
    <lastmod>2006-06-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/05/31/odds-and-ends/</loc>
    <lastmod>2006-05-31T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/05/28/its-not-just-birds-that-migrate/</loc>
    <lastmod>2006-05-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/05/26/im-a-php-plumber/</loc>
    <lastmod>2006-05-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/05/23/the-upcoming-php-framework-war/</loc>
    <lastmod>2006-05-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/05/23/ive-got-ipod-withdrawl/</loc>
    <lastmod>2006-05-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/05/17/non-acid-rephlux/</loc>
    <lastmod>2006-05-17T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/05/08/never-stop-learning/</loc>
    <lastmod>2006-05-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/05/01/scratchin-an-itch/</loc>
    <lastmod>2006-05-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/04/28/article-over-at-tophostscom/</loc>
    <lastmod>2006-04-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/04/25/help-make-subethaedit-free/</loc>
    <lastmod>2006-04-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/04/25/deploying-applications/</loc>
    <lastmod>2006-04-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/04/19/simple-testing-with-php/</loc>
    <lastmod>2006-04-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/04/18/geeks-can-build-more-stuff-than-software/</loc>
    <lastmod>2006-04-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/04/11/what-colour-is-your-aura/</loc>
    <lastmod>2006-04-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/04/10/when-memes-attack/</loc>
    <lastmod>2006-04-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/04/07/blog-maintenance/</loc>
    <lastmod>2006-04-07T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/03/29/batman-year-100/</loc>
    <lastmod>2006-03-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/03/28/i-broke-it/</loc>
    <lastmod>2006-03-28T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/03/23/help-vampires/</loc>
    <lastmod>2006-03-23T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/03/20/my-php-article-is-out/</loc>
    <lastmod>2006-03-20T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/03/09/the-grim-meathook-future/</loc>
    <lastmod>2006-03-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/03/06/zend-framework-preview/</loc>
    <lastmod>2006-03-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/03/01/poka-yoke/</loc>
    <lastmod>2006-03-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/02/24/ruby-on-rails-at-the-high-volume-level/</loc>
    <lastmod>2006-02-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/02/24/graphing-results/</loc>
    <lastmod>2006-02-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/02/21/gimme-that-php-lovin/</loc>
    <lastmod>2006-02-21T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/02/09/coming-to-a-magazine-near-you/</loc>
    <lastmod>2006-02-09T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/01/30/which-sci-fi-crew-do-you-belong-too/</loc>
    <lastmod>2006-01-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/01/26/what-type-of-programmer-are-you/</loc>
    <lastmod>2006-01-26T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/01/25/all-time-best-hangovers/</loc>
    <lastmod>2006-01-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/01/18/why-being-an-optimist-sometimes-pays-off/</loc>
    <lastmod>2006-01-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/01/11/the-few-the-proud-the-1000/</loc>
    <lastmod>2006-01-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/01/10/not-just-a-codemonkey-any-more/</loc>
    <lastmod>2006-01-10T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/01/06/new-ibl-web-site-now-in-development/</loc>
    <lastmod>2006-01-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2006/01/03/happy-new-year/</loc>
    <lastmod>2006-01-03T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/12/30/work-commences-on-new-ibl-site/</loc>
    <lastmod>2005-12-30T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/12/19/beauty-is-in-the-eye-of-the-coder/</loc>
    <lastmod>2005-12-19T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/12/15/zend-certificate-finally-arrives/</loc>
    <lastmod>2005-12-15T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/12/13/back-in-the-groove/</loc>
    <lastmod>2005-12-13T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/12/05/zend-framework-webcast/</loc>
    <lastmod>2005-12-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/11/29/phptek-conference/</loc>
    <lastmod>2005-11-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/11/29/sometimes-its-better-to-give-in/</loc>
    <lastmod>2005-11-29T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/11/18/if-it-walks-like-a-duck/</loc>
    <lastmod>2005-11-18T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/11/16/movin-on/</loc>
    <lastmod>2005-11-16T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/11/11/been-quiet/</loc>
    <lastmod>2005-11-11T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/11/04/sessions-updateand-some-caching/</loc>
    <lastmod>2005-11-04T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/11/02/session-handling/</loc>
    <lastmod>2005-11-02T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/25/some-more-info-about-the-zend-framework/</loc>
    <lastmod>2005-10-25T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/24/bad-programming-practices-example-1/</loc>
    <lastmod>2005-10-24T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/06/refactoring-is-actually-fun/</loc>
    <lastmod>2005-10-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/06/how-will-you-die/</loc>
    <lastmod>2005-10-06T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/05/year-of-confusion/</loc>
    <lastmod>2005-10-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/05/true-tales-from-the-internet/</loc>
    <lastmod>2005-10-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/05/supersecret-project-is-revealed/</loc>
    <lastmod>2005-10-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/05/programmer-grrl-does-grreat/</loc>
    <lastmod>2005-10-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/05/php-frameworksare-they-worth-the-trouble/</loc>
    <lastmod>2005-10-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/05/my-first-steps-towards-open-source/</loc>
    <lastmod>2005-10-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/05/its-like-meta-versioning/</loc>
    <lastmod>2005-10-05T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
    <url>
    <loc>https://grumpy-learning.com/blog/2005/10/01/first-post/</loc>
    <lastmod>2005-10-01T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  </urlset>