41554 blogs · [ { "id": "01a087e5-e6f2-7339-ab46-ee2d4ee0f736", "title": "EE’s bugs are not my problem (or yours)", "url": "https://www.stephenlewis.me/blog/ees-bugs-are-not-my-problem-or-yours/", "published_at": "2012-07-18T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d4f3e640f", "title": "EE gotchas: Nested “no results” tags", "url": "https://www.stephenlewis.me/blog/ee-gotchas-nested-no-results-tags/", "published_at": "2012-07-17T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d4ff3a1be", "title": "Hull Digital Live 2012", "url": "https://www.stephenlewis.me/blog/hull-digital-live-2012/", "published_at": "2012-07-13T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d506b9d89", "title": "Introducing add-on RSS feeds", "url": "https://www.stephenlewis.me/blog/introducing-add-on-rss-feeds/", "published_at": "2012-03-02T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d51147fb9", "title": "The missing ExpressionEngine multi-language lingua franca", "url": "https://www.stephenlewis.me/blog/the-missing-expressionengine-multi-language-lingua-franca/", "published_at": "2012-02-15T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5164020d", "title": "How to implement a custom ExpressionEngine extension hook", "url": "https://www.stephenlewis.me/blog/how-to-implement-a-custom-expressionengine-extension-hook/", "published_at": "2012-01-19T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d51ff80a3", "title": "The add-on developer’s guide to abdicating responsibility", "url": "https://www.stephenlewis.me/blog/add-on-developers-guide-to-abdicating-responsibility/", "published_at": "2011-11-29T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d528db589", "title": "SL Developer Info for ExpressionEngine 2", "url": "https://www.stephenlewis.me/blog/sl-developer-info-for-expressionengine-2/", "published_at": "2011-11-07T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d538955bf", "title": "Interviewed at Meta Q", "url": "https://www.stephenlewis.me/blog/interviewed-at-meta-q/", "published_at": "2011-09-21T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d53ef2a56", "title": "Introducing SmartDown 1.2", "url": "https://www.stephenlewis.me/blog/introducing-smartdown-1-2/", "published_at": "2011-09-15T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d53f01ac6", "title": "So long to ExpressionEngine 1", "url": "https://www.stephenlewis.me/blog/so-long-to-expressionengine-1/", "published_at": "2011-08-17T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d54a6d1c9", "title": "Updates and oddments", "url": "https://www.stephenlewis.me/blog/updates-and-oddments/", "published_at": "2011-08-09T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d54c756df", "title": "Introducing Usher", "url": "https://www.stephenlewis.me/blog/introducing-usher/", "published_at": "2011-07-29T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d55966aba", "title": "Integrating ExpressionEngine with third-party APIs (part 4 of 4)", "url": "https://www.stephenlewis.me/blog/integrating-ee-with-apis-part-4/", "published_at": "2011-07-26T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d55983fa6", "title": "Integrating ExpressionEngine with third-party APIs (part 3 of 4)", "url": "https://www.stephenlewis.me/blog/integrating-ee-with-apis-part-3/", "published_at": "2011-07-08T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d568083a1", "title": "Introducing OmniLog: System-wide message logging for ExpressionEngine add-on developers", "url": "https://www.stephenlewis.me/blog/introducing-omnilog-system-wide-message-logging-for-expressionengine-add-on-developers/", "published_at": "2011-06-29T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d571f0b35", "title": "Integrating ExpressionEngine with third-party APIs (part 2 of 4)", "url": "https://www.stephenlewis.me/blog/integrating-ee-with-apis-part-2/", "published_at": "2011-06-27T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d57be53a4", "title": "Speaking at EEUK 2011", "url": "https://www.stephenlewis.me/blog/speaking-at-eeuk-2011/", "published_at": "2011-06-21T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d57c9f7d5", "title": "Integrating ExpressionEngine with third-party APIs (part 1 of 4)", "url": "https://www.stephenlewis.me/blog/integrating-ee-with-apis-part-1/", "published_at": "2011-06-16T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d581ec1b0", "title": "Introducing Crumbly: Custom ExpressionEngine breadcrumbs made easy", "url": "https://www.stephenlewis.me/blog/introducing-crumbly/", "published_at": "2011-06-14T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d58ed493f", "title": "Introducing DropDate for ExpressionEngine 2", "url": "https://www.stephenlewis.me/blog/introducing-dropdate-for-expressionengine-2/", "published_at": "2011-06-09T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d59e82064", "title": "ExpressionEngine add-on development: An update", "url": "https://www.stephenlewis.me/blog/expressionengine-add-on-development-an-update/", "published_at": "2011-06-06T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5aa8d417", "title": "Introducing Testee: Unit testing for ExpressionEngine add-ons", "url": "https://www.stephenlewis.me/blog/introducing-testee-unit-testing-for-expressionengine-add-ons/", "published_at": "2011-05-31T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5b84afb5", "title": "Introducing Campaigner 4", "url": "https://www.stephenlewis.me/blog/introducing-campaigner-4/", "published_at": "2011-02-25T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5baab4cf", "title": "Introducing Campaigner for ExpressionEngine 2", "url": "https://www.stephenlewis.me/blog/introducing-campaigner-for-expressionengine-2/", "published_at": "2010-11-02T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5be55a67", "title": "ExpressionEngine add-on development: Designing the user interface", "url": "https://www.stephenlewis.me/blog/ee-add-on-development-designing-the-user-interface/", "published_at": "2010-08-13T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5cdf3a6a", "title": "Announcing MailChimp Subscribe for ExpressionEngine 2", "url": "https://www.stephenlewis.me/blog/announcing-mailchimp-subscribe-for-ee-2/", "published_at": "2010-07-21T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5ce05a1e", "title": "ExpressionEngine add-on development: User interface design principles", "url": "https://www.stephenlewis.me/blog/ee-add-on-development-ui-design-principles/", "published_at": "2010-07-14T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5d9637a0", "title": "ExpressionEngine add-on development: Introducing Tweedee", "url": "https://www.stephenlewis.me/blog/ee-add-on-development-introducing-tweedee/", "published_at": "2010-07-06T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5dddbc55", "title": "ExpressionEngine add-on development: Survey results", "url": "https://www.stephenlewis.me/blog/ee-add-on-development-survey-results/", "published_at": "2010-06-29T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5e215538", "title": "Speaking at EECI 2010", "url": "https://www.stephenlewis.me/blog/speaking-at-eeci-2010/", "published_at": "2010-06-19T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5e55f6da", "title": "Hull Digital Live 2010", "url": "https://www.stephenlewis.me/blog/hull-digital-live-2010/", "published_at": "2010-06-18T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5f01ed33", "title": "ExpressionEngine add-on development", "url": "https://www.stephenlewis.me/blog/expressionengine-add-on-development/", "published_at": "2010-06-10T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d5fe6b36a", "title": "ExpressionEngine 2 add-on plans", "url": "https://www.stephenlewis.me/blog/expressionengine-2-add-on-plans/", "published_at": "2010-05-03T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d606bdc5c", "title": "Hull Digital Question Time", "url": "https://www.stephenlewis.me/blog/hull-digital-question-time/", "published_at": "2010-04-17T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d606d9c92", "title": "Introducing Campaigner", "url": "https://www.stephenlewis.me/blog/introducing-campaigner/", "published_at": "2010-04-06T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d60c7c9d2", "title": "Introducing SmartDown: Markdown Extra and SmartyPants for ExpressionEngine", "url": "https://www.stephenlewis.me/blog/introducing-smartdown/", "published_at": "2010-03-24T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d61b26680", "title": "It speaks!", "url": "https://www.stephenlewis.me/blog/it-speaks/", "published_at": "2010-03-23T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d61deb87f", "title": "Introducing DropDate: Better date selection in ExpressionEngine", "url": "https://www.stephenlewis.me/blog/introducing-dropdate/", "published_at": "2010-03-17T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d629cc7db", "title": "Ready to serve", "url": "https://www.stephenlewis.me/blog/ready-to-serve/", "published_at": "2010-03-09T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d62adf358", "title": "Introducing BucketList 1.1", "url": "https://www.stephenlewis.me/blog/introducing-bucketlist-1-1/", "published_at": "2010-03-02T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d635d5479", "title": "The myth of company morality", "url": "https://www.stephenlewis.me/blog/the-myth-of-company-morality/", "published_at": "2010-03-01T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d63981784", "title": "New ExpressionEngine module: SL Developer Info", "url": "https://www.stephenlewis.me/blog/new-expressionengine-module-sl-developer-info/", "published_at": "2010-02-24T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6415b054", "title": "Got dissatisfaction", "url": "https://www.stephenlewis.me/blog/got-dissatisfaction/", "published_at": "2010-02-17T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6429ba86", "title": "The ExpressionEngine 2.0 add-on dilemma", "url": "https://www.stephenlewis.me/blog/expressionengine-2-add-on-dilemma/", "published_at": "2009-11-30T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d644d07a0", "title": "Introducing Speakeasy, the ExpressionEngine anti-spambot", "url": "https://www.stephenlewis.me/blog/speakeasy-anti-spam-ee-addon/", "published_at": "2009-11-10T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d64f47ac1", "title": "Using Git to manage an ExpressionEngine website (part 4 of 4)", "url": "https://www.stephenlewis.me/blog/using-git-with-expressionengine-part-4/", "published_at": "2009-10-12T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d65d4fcd8", "title": "Using Git to manage an ExpressionEngine website (part 3 of 4)", "url": "https://www.stephenlewis.me/blog/using-git-with-expressionengine-part-3/", "published_at": "2009-07-18T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6685bc0e", "title": "Iconic Interiors shortlisted for Top 10 Sites of 2008", "url": "https://www.stephenlewis.me/blog/interactive-media-awards-2008-shortlist/", "published_at": "2009-06-11T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d66d8e21b", "title": "Using Git to manage an ExpressionEngine website (part 2 of 4)", "url": "https://www.stephenlewis.me/blog/using-git-with-expressionengine-part-2/", "published_at": "2009-06-10T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d67a95637", "title": "Using Git to manage an ExpressionEngine website (part 1 of 4)", "url": "https://www.stephenlewis.me/blog/using-git-with-expressionengine-part-1/", "published_at": "2009-06-03T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d68795932", "title": "Labgruppen.com bags an “Outstanding Achievement” Interactive Media Award", "url": "https://www.stephenlewis.me/blog/labgruppen-interactive-media-award/", "published_at": "2009-05-12T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d68b1a9a3", "title": "The Lack of Enterprise Show", "url": "https://www.stephenlewis.me/blog/the-lack-of-enterprise-show/", "published_at": "2009-05-08T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d69a6ff0a", "title": "Atebits' common-sense approach to licensing", "url": "https://www.stephenlewis.me/blog/atebits-common-sense-approach-to-licensing/", "published_at": "2009-04-22T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6a204ffe", "title": "Kicking the business book habit", "url": "https://www.stephenlewis.me/blog/kicking-the-business-book-habit/", "published_at": "2009-04-12T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6a9b0f65", "title": "In the club", "url": "https://www.stephenlewis.me/blog/in-the-club/", "published_at": "2009-03-02T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6b2300e9", "title": "How to write a quotation request that saves you money", "url": "https://www.stephenlewis.me/blog/how-to-write-a-quotation-request/", "published_at": "2009-01-30T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6bd5363d", "title": "A guide to choosing the best DOCTYPE for your website", "url": "https://www.stephenlewis.me/blog/guide-to-choosing-the-best-doctype/", "published_at": "2009-01-19T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6c740014", "title": "If you can't fix it, it's not a problem", "url": "https://www.stephenlewis.me/blog/if-you-cant-fix-it-its-not-a-problem/", "published_at": "2008-12-22T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6ce1cb78", "title": "Show them what you're made of", "url": "https://www.stephenlewis.me/blog/show-them-what-youre-made-of/", "published_at": "2008-12-21T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6daa8a42", "title": "The right way to buy on price during a recession", "url": "https://www.stephenlewis.me/blog/the-right-way-to-buy-on-price-during-a-recession/", "published_at": "2008-12-12T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6e59bc18", "title": "Show me the money", "url": "https://www.stephenlewis.me/blog/show-me-the-money/", "published_at": "2008-11-03T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6f44a59c", "title": "Sitting pretty at the Interactive Media Awards", "url": "https://www.stephenlewis.me/blog/iconic-interiors-ima-award/", "published_at": "2008-08-02T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d6f5ab2e1", "title": "In praise of the Email Standards Project", "url": "https://www.stephenlewis.me/blog/email-standards-project/", "published_at": "2007-11-29T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d7000a937", "title": "The agile developer's guide to building a cathedral", "url": "https://www.stephenlewis.me/blog/agile-cathedral-building/", "published_at": "2007-11-19T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d70aa4083", "title": "Working for the greater good", "url": "https://www.stephenlewis.me/blog/working-for-the-greater-good/", "published_at": "2007-11-15T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d70ff97fd", "title": "Stop planning, start doing", "url": "https://www.stephenlewis.me/blog/stop-planning-start-doing/", "published_at": "2007-11-06T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d716b6e8c", "title": "HTML vs. plain text emails: Get your priorities straight", "url": "https://www.stephenlewis.me/blog/html-email-priorities/", "published_at": "2007-10-09T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d71968242", "title": "Marketing the Mormons", "url": "https://www.stephenlewis.me/blog/marketing-the-mormons/", "published_at": "2007-10-04T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d7294a216", "title": "Not making the most of now", "url": "https://www.stephenlewis.me/blog/not-making-the-most-of-now/", "published_at": "2007-09-20T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d73541d61", "title": "Never forget the big picture", "url": "https://www.stephenlewis.me/blog/never-forget-the-big-picture/", "published_at": "2007-09-17T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d74535d6b", "title": "The stupidity of the opt-out checkbox", "url": "https://www.stephenlewis.me/blog/opt-out-stupidity/", "published_at": "2007-09-14T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d747ac4bc", "title": "Delivering a reliable service through business processes", "url": "https://www.stephenlewis.me/blog/reliable-service-business-processes/", "published_at": "2007-07-22T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d74dc7155", "title": "The USP of me", "url": "https://www.stephenlewis.me/blog/the-usp-of-me/", "published_at": "2007-06-15T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d74f50405", "title": "The worst productivity killer", "url": "https://www.stephenlewis.me/blog/worst-productivity-killer/", "published_at": "2007-02-14T00:00:00+00:00" }, { "id": "01a087e5-e6f2-7339-ab46-ee2d751c2543", "title": "Keep JavaScript form validation simple", "url": "https://www.stephenlewis.me/blog/keep-form-validation-simple/", "published_at": "2007-02-07T00:00:00+00:00" } ] posts Claim your blog
Back to stephenlewis.me
Blog · corpus.blog/blogs/stephenlewis.me/posts

stephenlewis.me

stephenlewis.me

2012

2011

2010

2009

2008

2007