https://paulhammant.com/2024/02/14/that-ruby-and-groovy-language-feature/ https://paulhammant.com/2024/02/14/that-groovy-language-feature/ https://paulhammant.com/2024/02/08/flask-static-files/ https://paulhammant.com/2024/01/24/infra-as-code-dsl/ https://paulhammant.com/2023/05/14/more-syntactic-sugar-for-java-dsls/ https://paulhammant.com/2023/02/15/collecting-and-charting-multi-module-nx-jest-coverage/ https://paulhammant.com/2022/08/14/merkleized-public-attestations/ https://paulhammant.com/2022/08/12/principles-of-containment-in-the-dom/ https://paulhammant.com/2022/04/13/more-on-depth-first-recursive-vs-dag-build-techs/ https://paulhammant.com/2022/04/08/depth-first-recursive-vs-dag-build-techs/ https://paulhammant.com/2022/02/12/a-tech-debt-balance-sheet/ https://paulhammant.com/2021/10/08/software-project-guidelines/ https://paulhammant.com/2021/04/05/modelling-wrongness/ https://paulhammant.com/2021/02/19/software-development-current-reality-tree-starter-pack/ https://paulhammant.com/2021/02/16/embedded-tweets-as-svgs/ https://paulhammant.com/2021/02/16/buildless-sfc-vuejs-applications/ https://paulhammant.com/2021/01/29/a-purpose-in-a-token/ https://paulhammant.com/2021/01/28/dagging-on-maven/ https://paulhammant.com/2021/01/18/jbehave-and-servirtium/ https://paulhammant.com/2021/01/09/personal-phishing-protection-idea/ https://paulhammant.com/2020/12/06/maven-central-meta-model/ https://paulhammant.com/2020/08/17/gitlab-virtual-TBD-event/ https://paulhammant.com/2020/06/25/fixed-price-upwork-contracts/ https://paulhammant.com/2020/04/23/servirtium-use-in-a-client-and-supplier-co-development/ https://paulhammant.com/2020/04/04/risk-and-responsibility-should-be-an-exchange/ https://paulhammant.com/2020/03/12/value-stream-mapping/ https://paulhammant.com/2020/01/19/vcs-nirvana/ https://paulhammant.com/2019/11/20/environment-hell/ https://paulhammant.com/2019/10/20/quicker-local-maven-builds/ https://paulhammant.com/2019/10/15/overtesting-endpoints/ https://paulhammant.com/2019/10/12/diagrams-to-help-or-hinder-understanding/ https://paulhammant.com/2019/08/02/pull-request-dissatisfaction/ https://paulhammant.com/2019/07/23/some-thoughts-on-toggles/ https://paulhammant.com/2019/07/21/using-git-in-business-and-government/ https://paulhammant.com/2019/07/11/tutorials-vs-reference-docs-vs-examples/ https://paulhammant.com/2019/06/27/merkle-trees-underpinning-civilization-going-forward/ https://paulhammant.com/2019/06/14/tcks-and-servirtium/ https://paulhammant.com/2019/06/14/merkle-trees-and-source-control/ https://paulhammant.com/2019/06/11/monorepos-vs-megarepos/ https://paulhammant.com/2019/06/01/modeling-architectures/ https://paulhammant.com/2018/10/07/conways-observation/ https://paulhammant.com/2018/08/18/flutter-and-ui-automation/ https://paulhammant.com/2018/08/06/decentralize-or-centralize-or-somwhere-in-between/ https://paulhammant.com/2018/07/24/win-win-vendor-contracts/ https://paulhammant.com/2018/07/13/another-graphic-for-technology-compatibility-kits/ https://paulhammant.com/2018/06/13/thinking-about-servlerless-again/ https://paulhammant.com/2018/05/30/better-practices-for-audits/ https://paulhammant.com/2018/05/23/examining-ci-cd-and-branching-models/ https://paulhammant.com/2018/04/10/it-turns-out-we-didnt-need-dependency-injection-containers-after-all/ https://paulhammant.com/2018/01/31/ontology-component-vs-class-vs-object-vs-service-vs-application-vs-process-vs-library-etc/ https://paulhammant.com/2017/12/12/dialing-up-release-cadence/ https://paulhammant.com/2017/11/23/network-extortion-is-what-you-get-when-network-neutrality-is-dropped/ https://paulhammant.com/2017/11/02/step-aside-blockchains-hashgraphs-are-giving-plain-merkle-trees-a-turbo-boost/ https://paulhammant.com/2017/11/02/merkle-trees-vs-blockchains-vs-hashgraphs/ https://paulhammant.com/2017/10/30/trunk-ci-builds-environments-and-integration/ https://paulhammant.com/2017/10/25/a-serverless-sequence-diagram/ https://paulhammant.com/2017/10/22/provenance-and-code-grants/ https://paulhammant.com/2017/09/28/choosing-between-blockchains-and-vanilla-merkle-trees/ https://paulhammant.com/2017/09/28/blockchains-in-pictures/ https://paulhammant.com/2017/09/23/wikis-that-use-source-control-for-their-backing-store/ https://paulhammant.com/2017/09/17/the-number-of-pre-production-environments/ https://paulhammant.com/2017/09/17/old-school-merkle-trees-rock/ https://paulhammant.com/2017/09/17/merkle-trees-in-pictures/ https://paulhammant.com/2017/09/01/smalltalk-envy/ https://paulhammant.com/2017/08/28/bdd-acceptance-criteria-pay-for-themselves-multiple-times/ https://paulhammant.com/2017/08/24/another-architecture-diagram/ https://paulhammant.com/2017/08/21/a-cynical-view-of-bonus-calculations/ https://paulhammant.com/2017/08/06/environment-creation-times-in-modern-teams/ https://paulhammant.com/2017/07/09/alignment-and-autonomy-and-quorums/ https://paulhammant.com/2017/06/29/trying-out-upwork-for-small-programming-jobs/ https://paulhammant.com/2017/06/22/devops-improvements-the-reduction-of-cycle-times/ https://paulhammant.com/2017/06/17/developer-activities-shouldnt-change-with-proximity-to-release-dates/ https://paulhammant.com/2017/05/14/todomvc-and-given-when-then-scenarios/ https://paulhammant.com/2017/05/13/maven-central-as-multiple-git-repos/ https://paulhammant.com/2017/05/01/scoring-continuous-integration/ https://paulhammant.com/2017/04/20/the-build/ https://paulhammant.com/2017/04/19/buildless-javascript-solutions-collecting-the-examples-on-github/ https://paulhammant.com/2017/04/08/node-qml-was-the-key-to-the-ubuntu-phones-success/ https://paulhammant.com/2017/04/07/tech-debt-balance-sheets/ https://paulhammant.com/2017/04/04/benchmarking-a-maven-monorepo/ https://paulhammant.com/2017/04/01/often-forgotten-must-haves-for-continuous-delivery-teams/ https://paulhammant.com/2017/03/28/monorepos-with-recursive-or-dag-build-techs/ https://paulhammant.com/2017/03/26/speedy-builds-using-sv/ https://paulhammant.com/2017/03/25/repositories-vs-release-cadences/ https://paulhammant.com/2017/03/25/engineering-led-companies/ https://paulhammant.com/2017/02/14/pre-commit-continuous-integration-infrastructure-is-cheaper-than-post-commit-for-high-throughput-teams/ https://paulhammant.com/2017/02/14/fake-news-via-continuous-isolation/ https://paulhammant.com/2017/02/13/wire-mocking-without-a-service-virtualization-framework/ https://paulhammant.com/2017/02/12/shared-nothing-builds/ https://paulhammant.com/2017/02/08/further-experiments-with-expanding-contracting-monorepos/ https://paulhammant.com/2017/02/05/service-virtualization-strategies-for-fast-builds/ https://paulhammant.com/2017/02/05/a-16-second-java-webapp-build-including-webdriver-tests/ https://paulhammant.com/2017/02/01/ui-component-testing/ https://paulhammant.com/2017/01/27/maven-in-a-google-style-monorepo/ https://paulhammant.com/2017/01/01/reducing-web-page-screenshot-size/ https://paulhammant.com/2016/12/19/infrastructure-versus-config-as-code/ https://paulhammant.com/2016/12/14/principles-of-containment/ https://paulhammant.com/2016/12/11/permissions-for-composite-in-house-webapps/ https://paulhammant.com/2016/11/21/incongruous-angular1-portal/ https://paulhammant.com/2016/11/15/qmls-squandered-opportunity/ https://paulhammant.com/2016/11/02/blockchains-for-patent-filing/ https://paulhammant.com/2016/09/26/visualizing-the-theory-of-constraints/ https://paulhammant.com/2016/08/15/introducing-git-size-command-and-visualization/ https://paulhammant.com/2016/08/06/wishing-angular-would-support-html5-dialogs-better/ https://paulhammant.com/2016/07/29/anvil-app-platform-using-github-as-datastore/ https://paulhammant.com/2016/07/25/java-legacy-hairball-refactoring-case-study/ https://paulhammant.com/2016/07/11/anvil-like-msaccess-for-the-web-but-with-git-coolness/ https://paulhammant.com/2016/07/02/svg-slides-and-tweening-in-javascript/ https://paulhammant.com/2016/06/26/using-rhodecode-and-angular1-as-an-editor-for-a-config-as-code-system/ https://paulhammant.com/2016/06/20/angulars-looming-searchability-challenge/ https://paulhammant.com/2016/06/18/subversion-merge-limitations-not-in-fossil/ https://paulhammant.com/2016/06/10/new-enterprise-web-app-design-choices-for-2016/ https://paulhammant.com/2016/05/30/hacking-confluence-with-javascript/ https://paulhammant.com/2016/05/10/angular-embedded-in-jekyll-markdown-blog-entries/ https://paulhammant.com/2016/04/04/reducing-my-robo-emails-to-a-handful-of-rollup-emails-every-few-minutes/ https://paulhammant.com/2016/03/16/list-of-5th-agile-values/ https://paulhammant.com/2016/03/02/angulars-models-conform-to-the-m-in-mvc/ https://paulhammant.com/2016/02/15/ci-breaking-builds-bisecting-and-reverting/ https://paulhammant.com/2016/02/13/because-github-decided-i-had-to-convert-from-textile-to-markdown/ https://paulhammant.com/2016/01/17/wishing-for-improvements-to-linkedin/ https://paulhammant.com/2016/01/11/predictive-index-stereotypes/ https://paulhammant.com/2016/01/02/CORS-vulnerabilities/ https://paulhammant.com/2015/12/28/architecture-diagrams/ https://paulhammant.com/2015/12/21/angular-and-svg-and-couchdb/ https://paulhammant.com/2015/12/19/the-iron-triangle-is-actually-a-square-and-not-particularly-iron/ https://paulhammant.com/2015/12/17/more-on-technology-compatibility-kits-in-app-development/ https://paulhammant.com/2015/12/15/branches-should-be-for-change-of-policy-on-the-same-source/ https://paulhammant.com/2015/12/13/trunk-based-development-when-to-branch-for-release/ https://paulhammant.com/2015/12/12/tooling-is-holding-back-dynamic-languages/ https://paulhammant.com/2015/11/08/scripting-amex-dot-com-to-monitor-temp-charges/ https://paulhammant.com/2015/10/16/using-mountebank-to-detatch-frontend-and-backend-development/ https://paulhammant.com/2015/10/05/subversion-merge-limitations-not-in-perforce/ https://paulhammant.com/2015/09/29/subversion-merge-limitations-not-in-mercurial/ https://paulhammant.com/2015/09/27/subversion-merge-limitations-not-in-git/ https://paulhammant.com/2015/09/25/subversion-merge-limitations/ https://paulhammant.com/2015/09/20/extracting-subversion-branch-mappings/ https://paulhammant.com/2015/09/17/continous-delivery-saas-and-robots/ https://paulhammant.com/2015/09/08/decorators-in-the-dom/ https://paulhammant.com/2015/09/03/resurrecting-a-small-piece-of-google-wave/ https://paulhammant.com/2015/09/02/the-buggy-screen-speaker-in-ios/ https://paulhammant.com/2015/08/12/making-a-very-small-mp3-player-with-qml/ https://paulhammant.com/2015/08/11/source-control-that-understands-refactorings/ https://paulhammant.com/2015/08/10/git-becomes-version-controls-lingua-franca-wire-protocol/ https://paulhammant.com/2015/07/30/git-storing-unzipped-office-docs/ https://paulhammant.com/2015/07/30/all-you-can-eat-software-licenses-when-doing-continuous-delivery/ https://paulhammant.com/2015/07/27/mavericks-versus-loose-cannons/ https://paulhammant.com/2015/07/13/how-google-makes-a-consistent-top-navigation-across-multiple-apps/ https://paulhammant.com/2015/06/27/scraping-github-pull-requests-and-their-code-review-comments/ https://paulhammant.com/2015/06/18/ini-files-for-form-templates/ https://paulhammant.com/2015/06/07/custom-json-editors-for-github/ https://paulhammant.com/2015/05/20/turning-bazel-back-into-blaze-for-monorepo-nirvana/ https://paulhammant.com/2015/05/04/treating-imap-as-a-store-rewriting-emails/ https://paulhammant.com/2015/05/02/so-you-think-monolith-is-the-only-alternative-to-microservices/ https://paulhammant.com/2015/05/02/scraping-leankit-for-analytics-and-pretty-urls/ https://paulhammant.com/2015/04/29/mvc-misunderstood-for-37-years/ https://paulhammant.com/2015/04/23/the-origins-of-trunk-based-development/ https://paulhammant.com/2015/04/14/a-lesser-talked-about-feature-of-microservices/ https://paulhammant.com/2015/03/20/jira-static-extract-script/ https://paulhammant.com/2015/03/03/perforce-gets-its-own-dvcs/ https://paulhammant.com/2015/02/21/playing-with-sikuli-for-desktop-automation/ https://paulhammant.com/2015/02/14/i-wish-subversion-had-a-query-language/ https://paulhammant.com/2015/02/14/bash-script-to-convert-subversion-to-git/ https://paulhammant.com/2015/01/27/detecting-redunant-tests/ https://paulhammant.com/2015/01/18/reducing-test-times-by-only-running-impacted-tests-python-edition/ https://paulhammant.com/2015/01/11/reducing-test-times-by-only-running-impacted-tests/ https://paulhammant.com/2015/01/08/omnipresent-infallible-omnipotent-instantantaneous-build-technologies/ https://paulhammant.com/2015/01/06/farewell-2014-farewell-thoughtworks/ https://paulhammant.com/2014/12/15/scraping-dzone-syndication-stats/ https://paulhammant.com/2014/12/08/the-rise-of-version-control/ https://paulhammant.com/2014/12/08/service-orientated-strangulation/ https://paulhammant.com/2014/12/07/moniliths-cookiecutters-or-microservices/ https://paulhammant.com/2014/12/06/cross-platform-sharing-code-the-google-inbox-way/ https://paulhammant.com/2014/11/20/strong-argumentative-positions/ https://paulhammant.com/2014/11/14/source-code-laundering/ https://paulhammant.com/2014/11/13/code-review-the-unit-of-work-should-be-a-single-commit/ https://paulhammant.com/2014/11/12/the-config-promotion-problem/ https://paulhammant.com/2014/11/09/to-soa-or-not-to-soa/ https://paulhammant.com/2014/11/04/selenium-is-ten-years-old/ https://paulhammant.com/2014/10/30/angular-commit-bubbles/ https://paulhammant.com/2014/10/28/corporate-file-sync-agony-and-ecstasy/ https://paulhammant.com/2014/10/27/the-pervasive-inbox/ https://paulhammant.com/2014/10/23/me-presenting-on-trunk-etc-at-the-perforce-merge-conference/ https://paulhammant.com/2014/10/20/checking-in-binaries/ https://paulhammant.com/2014/09/30/qml-becomes-a-viable-mobile-ui-framework-choice/ https://paulhammant.com/2014/09/29/shades-of-trunk-based-development/ https://paulhammant.com/2014/09/24/a-functional-branch-by-abstraction-case-study/ https://paulhammant.com/2014/09/22/cross-platform-mobile-application-development/ https://paulhammant.com/2014/09/17/ui-development-has-never-been-more-expensive/ https://paulhammant.com/2014/09/10/throughput-over-backlog/ https://paulhammant.com/2014/09/08/rules-engines-suck-too-if-they-are-not-backed-by-source-control/ https://paulhammant.com/2014/09/01/microcosm-deployments/ https://paulhammant.com/2014/08/29/nearly-all-cms-technologies-suck/ https://paulhammant.com/2014/08/27/provisioning-deployment-and-app-config-cycles/ https://paulhammant.com/2014/08/12/trunk-supporting-practices/ https://paulhammant.com/2014/08/07/text-streams-should-be-the-fallback-interface-in-unix/ https://paulhammant.com/2014/07/30/geojson-mashups-and-github/ https://paulhammant.com/2014/07/09/browsing-qml-instead-of-html/ https://paulhammant.com/2014/06/14/qt-qml-v-play-and-multi-platform-mobile/ https://paulhammant.com/2014/06/13/apple-dissatisfaction/ https://paulhammant.com/2014/06/03/bytedeco-a-portal-dedicated-to-calling-cpp-libraries-from-java/ https://paulhammant.com/2014/05/26/joe-walnes-on-successful-open-source/ https://paulhammant.com/2014/05/10/developer-delayed-development/ https://paulhammant.com/2014/05/08/tdd-when-you-cant-refactor/ https://paulhammant.com/2014/04/29/small-stories-with-angular/ https://paulhammant.com/2014/04/10/cd-the-price-of-admission/ https://paulhammant.com/2014/04/03/microsofts-trunk-based-development/ https://paulhammant.com/2014/03/15/more-on-git-merges/ https://paulhammant.com/2014/03/14/build-software-is-nothing-like-building-houses/ https://paulhammant.com/2014/03/07/omnigraffle-svg-to-angular-html-workflow/ https://paulhammant.com/2014/02/28/like-a-used-sofa/ https://paulhammant.com/2014/02/26/more-angular-inside-svg-inside-html/ https://paulhammant.com/2014/02/21/angular-inside-svg-inside-html/ https://paulhammant.com/2014/02/20/svg-support-in-browsers-today/ https://paulhammant.com/2014/02/15/app-architecture-in-the-cd-era-for-pro-services-teams/ https://paulhammant.com/2014/02/07/jetbrains-ides-their-best-feature-is-control-w/ https://paulhammant.com/2014/02/03/facebook-scaling-mercurial-for-trunk-based-development/ https://paulhammant.com/2014/01/30/its-time-for-email-apps-to-support-javascript/ https://paulhammant.com/2014/01/14/convincing-execs-to-switch-to-trunk-based-development/ https://paulhammant.com/2014/01/10/non-continuous-reviews/ https://paulhammant.com/2014/01/08/googles-vs-facebooks-trunk-based-development/ https://paulhammant.com/2014/01/08/gits-lightweight-merging/ https://paulhammant.com/2014/01/06/googlers-subset-their-trunk/ https://paulhammant.com/2014/01/04/browser-downloads-suck/ https://paulhammant.com/2013/12/15/worst-practices-teams/ https://paulhammant.com/2013/12/08/continuous-review2/ https://paulhammant.com/2013/12/05/continuous-review/ https://paulhammant.com/2013/12/04/what_is_your_branching_model/ https://paulhammant.com/2013/11/20/source-control-is-your-new-dr/ https://paulhammant.com/2013/11/19/elastic-environments-in-source-control-with-ansible/ https://paulhammant.com/2013/11/05/branchable-ci-with-thoughtworks-snap/ https://paulhammant.com/2013/10/23/a-lower-tech-style-of-angular-for-the-enterprise/ https://paulhammant.com/2013/10/17/a-small-stories-case-study/ https://paulhammant.com/2013/10/12/bad-java-servlet-apps/ https://paulhammant.com/2013/09/19/delaying-non-functional-stories/ https://paulhammant.com/2013/08/31/webdriver-and-angularjs/ https://paulhammant.com/2013/08/28/fluent-selenium-with-an-angular-application/ https://paulhammant.com/2013/08/26/a-different-style-of-fluent-selenium-tests/ https://paulhammant.com/2013/08/01/elastic-provisioning-of-new-environments/ https://paulhammant.com/2013/07/31/some-more-on-strangulation-inside-tomcat/ https://paulhammant.com/2013/07/15/legacy-java-applications-strangulation-inside-tomcat/ https://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/ https://paulhammant.com/2013/05/19/fluent-selenium-examples/ https://paulhammant.com/2013/05/19/coming-to-angular-from-something-else/ https://paulhammant.com/2013/05/07/android-and-the-art-of-war/ https://paulhammant.com/2013/05/06/googles-scaled-trunk-based-development/ https://paulhammant.com/2013/04/29/open-data-backed-by-source-control/ https://paulhammant.com/2013/04/28/when-agile-meets-angular-and-ux-led-development/ https://paulhammant.com/2013/04/27/what-to-do-about-the-broken-patent-system/ https://paulhammant.com/2013/04/09/scaling-trunk-based-development/ https://paulhammant.com/2013/04/05/what-is-trunk-based-development/ https://paulhammant.com/2013/04/02/maintained-divergence/ https://paulhammant.com/2013/03/28/interface-builders-alternative-lisp-timeline/ https://paulhammant.com/2013/03/20/singleton-escape-plan/ https://paulhammant.com/2013/03/20/reverse-engineering-a-db-for-devops-excellence/ https://paulhammant.com/2013/03/19/cost-of-unmerge/ https://paulhammant.com/2013/03/15/article-syndication-on-github-via-subversion/ https://paulhammant.com/2013/03/13/facebook-tbd-take-2/ https://paulhammant.com/2013/03/11/legacy-app-rejuvenation/ https://paulhammant.com/2013/03/06/a-better-html-slideshow-app-using-angular/ https://paulhammant.com/2013/03/04/facebook-tbd/ https://paulhammant.com/2013/02/24/angular-in-a-jekyll-blog/ https://paulhammant.com/2013/02/20/continuous-delivery-pro-am/ https://paulhammant.com/2013/02/16/misapplying-bayes-theorem-to-agile-versus-waterfall/ https://paulhammant.com/2013/02/15/html-slideshow-app-using-angular/ https://paulhammant.com/2013/02/14/features-i-would-love-source-control-tools-to-have/ https://paulhammant.com/2013/02/11/push-or-pull-decorators/ https://paulhammant.com/2013/02/08/angular-instead-of-media-queries/ https://paulhammant.com/2013/02/04/the-importance-of-the-dom/ https://paulhammant.com/2013/01/31/appdev-glass-ceiling-revisited/ https://paulhammant.com/2013/01/30/lotus-notes-vs-couchdb/ https://paulhammant.com/2013/01/29/content-syndication-using-source-control/ https://paulhammant.com/2013/01/18/client-side-mvc-roundup/ https://paulhammant.com/2013/01/12/rubymotion-in-a-declarative-ui-style/ https://paulhammant.com/2013/01/12/categorizing-languages/ https://paulhammant.com/2013/01/11/qml-and-the-new-ubuntu-phone-os/ https://paulhammant.com/2013/01/08/perforce-as-a-datastore-with-client-side-mvc/ https://paulhammant.com/2013/01/06/visualizing-the-client-side-mvc-race/ https://paulhammant.com/2013/01/06/the-sorry-state-of-the-anti-software-patents-movement/ https://paulhammant.com/2013/01/02/github-pages-as-cms-again/ https://paulhammant.com/2012/12/22/scm-and-key-value-store-convergence/ https://paulhammant.com/2012/12/05/push-or-pull-of-config-changes-for-a-production-stack/ https://paulhammant.com/2012/11/20/very-small-data/ https://paulhammant.com/2012/11/12/smaller-stories/ https://paulhammant.com/2012/11/07/candidate-stories/ https://paulhammant.com/2012/11/01/testability-and-cost-of-change/ https://paulhammant.com/2012/10/31/angular-for-designers/ https://paulhammant.com/2012/08/14/app-config-using-git-and-angular/ https://paulhammant.com/2012/08/10/its-time-for-a-new-take-on-spreadsheets/ https://paulhammant.com/2012/08/02/app-help-on-the-cheap/ https://paulhammant.com/2012/07/27/three-tier-resumes/ https://paulhammant.com/2012/07/10/app-config-workflow-using-scm/ https://paulhammant.com/2012/06/12/nosql-for-storage-AND-relational-for-reporting/ https://paulhammant.com/2012/04/24/call-to-arms-average-story-sizes-of-one-day/ https://paulhammant.com/2012/04/15/application-development-glass-ceilings/ https://paulhammant.com/2012/04/13/shift-towards-client-side-mvc/ https://paulhammant.com/2012/04/12/performance-testing-knockout-angular-and-backbone-with-selenium2/ https://paulhammant.com/2012/04/09/testing-knockout-and-angular-with-selenium2/ https://paulhammant.com/2012/03/15/angular-and-selenium-again/ https://paulhammant.com/2012/03/12/the-importance-of-design-mode-for-client-side-mvc/ https://paulhammant.com/2012/03/03/replacing-jquery-with-angular/ https://paulhammant.com/2012/02/14/client-side-mvc-browser-plugins/ https://paulhammant.com/2012/02/13/client-side-mvc-frameworks-compared/ https://paulhammant.com/2012/02/10/client-side-mvc-applications-best-practice-part-1/ https://paulhammant.com/2012/02/08/document-is-the-single-source-of-truth/ https://paulhammant.com/2012/02/06/webapp-model-quandary/ https://paulhammant.com/2012/02/06/previous-web-architectures/ https://paulhammant.com/2012/02/01/angular-and-selenium/ https://paulhammant.com/2012/02/01/angular-and-dreamweaver/ https://paulhammant.com/2012/01/29/(almost)-No-JavaScript-prototyping-with-Angular-in-a-single-source-file/ https://paulhammant.com/2012/01/23/ui-technology-paradigm-shift/ https://paulhammant.com/2011/12/11/sauce-labs-tunnels-or-not/ https://paulhammant.com/2011/11/29/cookie-cutter-scaling/ https://paulhammant.com/2011/11/22/google-accounts-architectural-meaning/ https://paulhammant.com/2011/11/14/reporting-selenium2-bugs/ https://paulhammant.com/2011/10/21/locked-us-iphones-suck/ https://paulhammant.com/2011/10/12/Mozilla-screwing-corporate-adopters-with-their-numbering-scheme/ https://paulhammant.com/2011/09/30/setContext-back-for-selenium2/ https://paulhammant.com/2011/09/30/branchable-continuous-integration/ https://paulhammant.com/2011/09/23/auto-sequence-diagrams-from-BDD-scenarios/ https://paulhammant.com/2011/09/21/a-forgotten-aspect-of-the-facade-pattern/ https://paulhammant.com/2011/09/12/what-is-dart-going-to-be/ https://paulhammant.com/2011/09/01/refactoring-experiment/ https://paulhammant.com/2011/08/31/contrasting-selenium2-locator-styles/ https://paulhammant.com/2011/08/09/no-one-gives-themselves-bad-ratings-in-hiring/ https://paulhammant.com/2011/08/06/five-port-rule/ https://paulhammant.com/2011/08/04/hiring-selenium-quality-assurance-peope/ https://paulhammant.com/2011/07/25/my-predictive-index/ https://paulhammant.com/2011/07/16/new-blog-technology-and-hosting/ https://paulhammant.com/2011/05/13/avoid-big-bang-for-branch-by-abstraction/ https://paulhammant.com/blog/github-as-a-cms-to-end-cmses.html https://paulhammant.com/blog/binary-diffing-for-increased-release-confidence.html https://paulhammant.com/blog/running-jbehave-webdriver-tests-on-saucelabs-service.html https://paulhammant.com/blog/playing-with-mobl-in-2-minutes-or-less.html https://paulhammant.com/blog/die-qtp-die.html https://paulhammant.com/blog/thoughtworks-sweetspot.html https://paulhammant.com/blog/introducing-story-navigator.html https://paulhammant.com/blog/extending-the-life-of-ipv4.html https://paulhammant.com/blog/bba-log-jam.html https://paulhammant.com/blog/a-spring-framework-shortcoming.html https://paulhammant.com/blog/two-issues-i-have-with-the-gpl.html https://paulhammant.com/blog/not-path-cookies.html https://paulhammant.com/blog/another-ui-prototyping-technique.html https://paulhammant.com/blog/angular-and-perl-backend.html https://paulhammant.com/blog/dotnet-di-better-practice.html https://paulhammant.com/blog/cookies-with-regex-paths.html https://paulhammant.com/blog/angular-declarative-ui.html https://paulhammant.com/blog/kinetic-declarative-ui.html https://paulhammant.com/blog/theory-of-constraints-and-agile.html https://paulhammant.com/blog/aaw-platform-is-awesome.html https://paulhammant.com/blog/appengines-blind-spot.html https://paulhammant.com/blog/comparing-two-alternate-ruby-clients-for-rich-internet-applications.html https://paulhammant.com/blog/google-app-engine-for-java-with-rich-ruby-clients.html https://paulhammant.com/blog/peter-royals-semantic-circus-movements.html https://paulhammant.com/blog/project-documentation.html https://paulhammant.com/blog/picocontainer-2.5-and-jremoting.html https://paulhammant.com/blog/interesting-google-result-for-javafxscript.html https://paulhammant.com/blog/what-brought-me-to-inversion-of-control-in-the-first-place.html https://paulhammant.com/blog/crazy-bob-and-type-safety-for-dependency-injection.html https://paulhammant.com/blog/sweb-3.0.html https://paulhammant.com/blog/injecting-into-servlets.html https://paulhammant.com/blog/picocontainer-2.0-beta.html https://paulhammant.com/blog/JavaFX_Mobile_is_just_SavaJE_acquired_by_Sun.html https://paulhammant.com/blog/branch_by_abstraction.html https://paulhammant.com/blog/C-for-Java.html https://paulhammant.com/blog/Waffle-Java_web_action_framework_with_smallest_lines_of_code_count_for_action_methods.html https://paulhammant.com/blog/announcing_paranamer.html https://paulhammant.com/blog/Simple_Wars.html https://paulhammant.com/blog/cozmos-gets-subversion-backend.html https://paulhammant.com/blog/cozmos-cms-using-WebDAV-and-Sitemesh.html https://paulhammant.com/blog/post-wiki-content-management-with-WebDAV.html https://paulhammant.com/blog/at-least-one-unilateral-improvement-to-java.html https://paulhammant.com/blog/short-social-oscon-notes.html https://paulhammant.com/blog/did-you-send-this.html https://paulhammant.com/blog/un-agile-things.html https://paulhammant.com/blog/derby-db-in-java6.html https://paulhammant.com/blog/xstream-json.html https://paulhammant.com/blog/xstream-rss.html https://paulhammant.com/blog/simple-java-and-dotnet-interop-paper.html https://paulhammant.com/blog/dependency-injection-vs-BUFA.html https://paulhammant.com/blog/parameter-names-for-java6-answer.html https://paulhammant.com/blog/magnets-and-laptops.html https://paulhammant.com/blog/parameter-names-for-java6-question.html https://paulhammant.com/blog/NanoContainer-Presentation.html https://paulhammant.com/blog/ruby-versus-javascript-for-web3.0.html https://paulhammant.com/blog/selenium-the-movie-the-directors-cut.html https://paulhammant.com/blog/transparency.html https://paulhammant.com/blog/selenium.html https://paulhammant.com/blog/selenium-the-movie.html https://paulhammant.com/blog/jmock-crash-course.html https://paulhammant.com/blog/content-editing-nirvana.html https://paulhammant.com/blog/agility-alliance.html https://paulhammant.com/blog/eu-software-patent-spectre.html https://paulhammant.com/blog/000300.html https://paulhammant.com/blog/000290.html https://paulhammant.com/blog/000280.html https://paulhammant.com/blog/000270.html https://paulhammant.com/blog/000260.html https://paulhammant.com/blog/000250.html https://paulhammant.com/2004/05/01/oscon/ https://paulhammant.com/blog/000245.html https://paulhammant.com/blog/000243.html https://paulhammant.com/blog/000242.html https://paulhammant.com/blog/000241.html https://paulhammant.com/blog/000237.html https://paulhammant.com/blog/000218.html https://paulhammant.com/blog/000210.html https://paulhammant.com/blog/000187.html https://paulhammant.com/blog/000186.html https://paulhammant.com/blog/000180.html https://paulhammant.com/blog/000179.html https://paulhammant.com/blog/000170.html https://paulhammant.com/blog/000148.html https://paulhammant.com/blog/000147.html https://paulhammant.com/blog/000129.html https://paulhammant.com/blog/000128.html https://paulhammant.com/blog/000127.html https://paulhammant.com/blog/000114.html https://paulhammant.com/blog/000102.html https://paulhammant.com/blog/000100.html https://paulhammant.com/blog/000099.html https://paulhammant.com/blog/000085.html https://paulhammant.com/blog/000084.html https://paulhammant.com/blog/000083.html https://paulhammant.com/blog/000082.html https://paulhammant.com/blog/000081.html https://paulhammant.com/blog/000080.html https://paulhammant.com/blog/000079.html https://paulhammant.com/blog/000078.html https://paulhammant.com/blog/000077.html https://paulhammant.com/blog/000075.html https://paulhammant.com/blog/000074.html https://paulhammant.com/blog/000073.html https://paulhammant.com/blog/000072.html https://paulhammant.com/blog/000071.html https://paulhammant.com/blog/000070.html https://paulhammant.com/blog/000069.html https://paulhammant.com/blog/000068.html https://paulhammant.com/blog/000066.html https://paulhammant.com/blog/000065.html https://paulhammant.com/blog/000064.html https://paulhammant.com/blog/000063.html https://paulhammant.com/blog/000062.html https://paulhammant.com/blog/000061.html https://paulhammant.com/blog/000060.html https://paulhammant.com/blog/000059.html https://paulhammant.com/blog/000058.html https://paulhammant.com/blog/000057.html https://paulhammant.com/blog/000056.html https://paulhammant.com/blog/000055.html https://paulhammant.com/blog/000054.html https://paulhammant.com/blog/000053.html https://paulhammant.com/blog/000052.html https://paulhammant.com/blog/000051.html https://paulhammant.com/archive/ https://paulhammant.com/atom.xml https://paulhammant.com/categories.html https://paulhammant.com/dzone.html https://paulhammant.com/embed-test.html https://paulhammant.com/Client-Side-MVC/ https://paulhammant.com/Concurrent-Development-of-Consecutive-Releases/ https://paulhammant.com/things-that-should-be-backed-by-source-control/ https://paulhammant.com/ui-markup-nirvana/ https://paulhammant.com/ https://paulhammant.com/pages/ https://paulhammant.com/sitemap.txt https://paulhammant.com/tags.html https://paulhammant.com/assets/css/style.css https://paulhammant.com/redirects.json