41554 blogs · [ { "id": "01a08219-4faa-704e-bd1e-40113feee5fa", "title": "Braille, and the evolution of software development", "url": "https://stitcher.io/blog/braille-and-the-history-of-software", "published_at": "2020-06-27T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011403ce293", "title": "Abstract resources in Laravel Nova", "url": "https://stitcher.io/blog/abstract-resources-in-laravel-nova", "published_at": "2020-06-23T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011407e41f0", "title": "PHP 8: Constructor property promotion", "url": "https://stitcher.io/blog/constructor-promotion-in-php-8", "published_at": "2020-06-12T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011413d2015", "title": "Survey results: type systems in PHP", "url": "https://stitcher.io/blog/type-system-in-php-survey-results", "published_at": "2020-06-09T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011415810c1", "title": "What does array + do in PHP?", "url": "https://stitcher.io/blog/what-is-array-plus-in-php", "published_at": "2020-06-05T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401141cb38f9", "title": "How to merge multidimensional arrays in PHP?", "url": "https://stitcher.io/blog/merging-multidimensional-arrays-in-php", "published_at": "2020-06-05T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011420838f2", "title": "Survey: type systems in PHP", "url": "https://stitcher.io/blog/type-system-in-php-survey", "published_at": "2020-06-03T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401142566311", "title": "Improvements on Laravel Nova", "url": "https://stitcher.io/blog/improvements-on-laravel-nova", "published_at": "2020-05-26T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114271cd88", "title": "PHP 7.4 in 7 code blocks", "url": "https://stitcher.io/blog/php-74-in-7-code-blocks", "published_at": "2020-05-23T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401142fe69a8", "title": "The IKEA effect", "url": "https://stitcher.io/blog/the-ikea-effect", "published_at": "2020-05-21T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011432a5880", "title": "Builders and architects: two types of programmers", "url": "https://stitcher.io/blog/builders-and-architects-two-types-of-programmers", "published_at": "2020-05-20T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011439f93b4", "title": "PHP 8 in 8 code blocks", "url": "https://stitcher.io/blog/php-8-in-8-code-blocks", "published_at": "2020-05-15T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114487674c", "title": "array_chunk in PHP", "url": "https://stitcher.io/blog/array-chunk-in-php", "published_at": "2020-05-14T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401144a6fa6c", "title": "Combining event sourcing and stateful systems", "url": "https://stitcher.io/blog/combining-event-sourcing-and-stateful-systems", "published_at": "2020-04-14T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401144fbacf2", "title": "Minor versions, breaking changes", "url": "https://stitcher.io/blog/minor-versions-breaking-changes", "published_at": "2020-03-26T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401145177848", "title": "Event driven server in PHP", "url": "https://stitcher.io/blog/event-driven-php", "published_at": "2020-03-13T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114556a946", "title": "Bitwise booleans in PHP", "url": "https://stitcher.io/blog/bitwise-booleans-in-php", "published_at": "2020-02-14T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401146275100", "title": "Enums without enums in PHP", "url": "https://stitcher.io/blog/enums-without-enums", "published_at": "2020-02-01T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401146cd5a19", "title": "PHP in 2020", "url": "https://stitcher.io/blog/php-in-2020", "published_at": "2020-01-17T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401147c2a5ff", "title": "Preloading benchmarks in PHP 7.4", "url": "https://stitcher.io/blog/php-preload-benchmarks", "published_at": "2020-01-10T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011485f41ba", "title": "Upgrade to PHP 7.4 with Homebrew on Mac", "url": "https://stitcher.io/blog/php-74-upgrade-mac", "published_at": "2019-11-28T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011492863f4", "title": "What's new in PHP 7.4", "url": "https://stitcher.io/blog/new-in-php-74", "published_at": "2019-11-26T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401149ec7e7a", "title": "Relationship issues", "url": "https://stitcher.io/blog/laravel-custom-relation-classes", "published_at": "2019-11-09T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114a8e9b68", "title": "Laravel's HasManyThrough cheatsheet", "url": "https://stitcher.io/blog/laravel-has-many-through", "published_at": "2019-11-08T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114b26e6a5", "title": "Can I translate your blog?", "url": "https://stitcher.io/blog/can-i-translate-your-blog", "published_at": "2019-11-07T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114b9216a1", "title": "Guest posts", "url": "https://stitcher.io/blog/guest-posts", "published_at": "2019-09-16T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114c8a7079", "title": "re: re: A letter to the PHP team", "url": "https://stitcher.io/blog/a-letter-to-the-php-team-reply-to-joe", "published_at": "2019-08-29T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114c9c6568", "title": "A letter to the PHP team", "url": "https://stitcher.io/blog/a-letter-to-the-php-team", "published_at": "2019-08-28T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114d08d307", "title": "Things dependency injection is not about", "url": "https://stitcher.io/blog/things-dependency-injection-is-not-about", "published_at": "2019-07-30T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114d6606a2", "title": "Preloading in PHP 7.4", "url": "https://stitcher.io/blog/preloading-in-php-74", "published_at": "2019-07-05T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114e225d9b", "title": "Typed properties in PHP 7.4", "url": "https://stitcher.io/blog/typed-properties-in-php-74", "published_at": "2019-06-30T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114e4d06cc", "title": "Tests and types", "url": "https://stitcher.io/blog/tests-and-types", "published_at": "2019-06-07T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114f0aed6a", "title": "What are objects anyway? - Rant With Brent 02", "url": "https://stitcher.io/blog/what-are-objects-anyway-rant-with-brent", "published_at": "2019-06-05T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114f0e4c26", "title": "A project at Spatie", "url": "https://stitcher.io/blog/a-project-at-spatie", "published_at": "2019-05-30T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114f3c3759", "title": "I'm starting a podcast", "url": "https://stitcher.io/blog/starting-a-podcast", "published_at": "2019-05-14T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114f84bd65", "title": "PHP in 2019", "url": "https://stitcher.io/blog/php-in-2019", "published_at": "2019-05-10T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40114fcae477", "title": "SOLID, interfaces and final - Rant With Brent 01", "url": "https://stitcher.io/blog/solid-interfaces-and-final-rant-with-brent", "published_at": "2019-05-07T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401150011cdf", "title": "Arrow functions in PHP 7.4", "url": "https://stitcher.io/blog/short-closures-in-php", "published_at": "2019-05-02T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401150c855c8", "title": "I'm starting a newsletter", "url": "https://stitcher.io/blog/starting-a-newsletter", "published_at": "2019-04-26T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401151ae559c", "title": "Unsafe SQL functions in Laravel", "url": "https://stitcher.io/blog/unsafe-sql-functions-in-laravel", "published_at": "2019-04-10T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401152a19a71", "title": "Array destructuring in PHP", "url": "https://stitcher.io/blog/array-destructuring-with-list-in-php", "published_at": "2019-04-01T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401153a0172f", "title": "Upgrade to PHP 7.3 with Homebrew on Mac", "url": "https://stitcher.io/blog/php-73-upgrade-mac", "published_at": "2019-03-21T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40115404c1e8", "title": "Queueable actions in Laravel", "url": "https://stitcher.io/blog/laravel-queueable-actions", "published_at": "2019-03-11T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401154720902", "title": "Craftsmen know their tools", "url": "https://stitcher.io/blog/craftsmen-know-their-tools", "published_at": "2019-02-21T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401155080afc", "title": "PHP 8: The JIT", "url": "https://stitcher.io/blog/php-jit", "published_at": "2019-02-06T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401155b65ada", "title": "I'm building something", "url": "https://stitcher.io/blog/announcing-aggregate", "published_at": "2019-01-29T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401155f5d060", "title": "Analytics for developers", "url": "https://stitcher.io/blog/analytics-for-developers", "published_at": "2019-01-22T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401156691766", "title": "Share a blog: sebastiandedeyne", "url": "https://stitcher.io/blog/share-a-blog-sebastiandedeyne-com", "published_at": "2019-01-15T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40115752d74d", "title": "Comparing dates", "url": "https://stitcher.io/blog/comparing-dates", "published_at": "2018-12-21T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011581a2dbe", "title": "Have you thought about casing?", "url": "https://stitcher.io/blog/have-you-thought-about-casing", "published_at": "2018-12-20T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-4011589686d5", "title": "Share a blog: betterwebtype", "url": "https://stitcher.io/blog/share-a-blog-betterwebtype-com", "published_at": "2018-12-15T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401158d98cd2", "title": "New in PHP 7.3", "url": "https://stitcher.io/blog/new-in-php-73", "published_at": "2018-12-06T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401159bc84fb", "title": "Share a blog: codingwriter.com", "url": "https://stitcher.io/blog/share-a-blog-codingwriter-com", "published_at": "2018-11-14T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-401159e8ef49", "title": "Structuring unstructured data", "url": "https://stitcher.io/blog/structuring-unstructured-data", "published_at": "2018-11-11T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40115a957495", "title": "PhpStorm OSX performance: October 2018", "url": "https://stitcher.io/blog/phpstorm-performance-october-2018", "published_at": "2018-10-26T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40115b67e45b", "title": "Share a blog: assertchris.io", "url": "https://stitcher.io/blog/share-a-blog-assertchris-io", "published_at": "2018-10-25T00:00:00+00:00" }, { "id": "01a08219-4faa-704e-bd1e-40115c56031a", "title": "array_merge or + in PHP", "url": "https://stitcher.io/blog/array-merge-vs+", "published_at": "2018-10-24T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059a68e79a", "title": "Organise by domain", "url": "https://stitcher.io/blog/organise-by-domain", "published_at": "2018-10-16T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059b065361", "title": "Laravel view models vs. view composers", "url": "https://stitcher.io/blog/laravel-view-models-vs-view-composers", "published_at": "2018-10-16T00:00:00+00:00" }, { "id": "01a07df5-5f6c-7289-a28c-a723670d19fa", "title": "Laravel domains", "url": "https://stitcher.io/blog/laravel-domains", "published_at": "2018-10-15T08:00:46+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059b4b0195", "title": "Laravel view models", "url": "https://stitcher.io/blog/laravel-view-models", "published_at": "2018-09-10T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059b6a7a48", "title": "Eloquent MySQL views", "url": "https://stitcher.io/blog/eloquent-mysql-views", "published_at": "2018-08-27T00:00:00+00:00" }, { "id": "01a07df5-5f6d-7012-aa5c-b78bb0deff10", "title": "Array objects", "url": "https://www.stitcher.io/blog/aray-objects-with-fixed-types", "published_at": "2018-08-23T07:01:46+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059b9f748f", "title": "The web in 2045", "url": "https://stitcher.io/blog/the-web-in-2045", "published_at": "2018-08-15T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059c72045f", "title": "Service locator: an anti-pattern", "url": "https://stitcher.io/blog/service-locator-anti-pattern", "published_at": "2018-08-10T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059d2d68b5", "title": "The Visual Perception of Code", "url": "https://stitcher.io/blog/visual-perception-of-code", "published_at": "2018-06-09T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059d5feeeb", "title": "Acquisition by giants", "url": "https://stitcher.io/blog/acquisition-by-giants", "published_at": "2018-06-05T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059e445701", "title": "Liskov and type safety", "url": "https://stitcher.io/blog/liskov-and-type-safety", "published_at": "2018-05-19T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059f1c05a8", "title": "Dependency injection for beginners", "url": "https://stitcher.io/blog/dependency-injection-for-beginners", "published_at": "2018-04-30T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-54059f43146f", "title": "PHPStorm performance issues on OSX", "url": "https://stitcher.io/blog/phpstorm-performance-issues-on-osx", "published_at": "2018-04-25T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a031b929", "title": "What PHP can be", "url": "https://stitcher.io/blog/what-php-can-be", "published_at": "2018-04-15T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a053fc63", "title": "PHPStorm tips for power users", "url": "https://stitcher.io/blog/phpstorm-tips-for-power-users", "published_at": "2018-03-15T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a05f9bd4", "title": "Responsive images done right", "url": "https://stitcher.io/blog/responsive-images-done-right", "published_at": "2018-03-07T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a0b040c7", "title": "Showing full MySQL foreign key errors", "url": "https://stitcher.io/blog/mysql-show-foreign-key-errors", "published_at": "2018-02-13T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a1431e41", "title": "MySQL query logging", "url": "https://stitcher.io/blog/mysql-query-logging", "published_at": "2018-01-20T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a1d1baa6", "title": "Where a curly bracket belongs", "url": "https://stitcher.io/blog/where-a-curly-bracket-belongs", "published_at": "2018-01-16T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a2bea282", "title": "MySQL import: JSON with binary character set", "url": "https://stitcher.io/blog/mysql-import-json-binary-character-set", "published_at": "2018-01-09T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a35dce32", "title": "Asynchronous PHP", "url": "https://stitcher.io/blog/asynchronous-php", "published_at": "2017-12-24T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a40b8e9a", "title": "Optimised UUIDs in mysql", "url": "https://stitcher.io/blog/optimised-uuids-in-mysql", "published_at": "2017-11-29T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a4315fc0", "title": "Improving PHPStorm's performance", "url": "https://stitcher.io/blog/phpstorm-performance", "published_at": "2017-10-22T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a4fdac3e", "title": "Stitcher beta 2", "url": "https://stitcher.io/blog/stitcher-beta-2", "published_at": "2017-08-27T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a526c4f9", "title": "Mastering key bindings", "url": "https://stitcher.io/blog/mastering-key-bindings", "published_at": "2017-08-25T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a582f615", "title": "A programmer's cognitive load", "url": "https://stitcher.io/blog/a-programmers-cognitive-load", "published_at": "2017-06-25T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a5b52938", "title": "Responsive images as CSS background", "url": "https://stitcher.io/blog/responsive-images-as-css-background", "published_at": "2017-06-24T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a63ea61c", "title": "Object oriented generators", "url": "https://stitcher.io/blog/object-oriented-generators", "published_at": "2017-06-17T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a7096156", "title": "Process forks", "url": "https://stitcher.io/blog/process-forks", "published_at": "2017-06-09T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a7887e9c", "title": "Performance 101: building the better web", "url": "https://stitcher.io/blog/performance-101-building-the-better-web", "published_at": "2017-05-30T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a8547f63", "title": "Array objects", "url": "https://stitcher.io/blog/array-objects-with-fixed-types", "published_at": "2017-05-25T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a885140a", "title": "Stitcher beta 1", "url": "https://stitcher.io/blog/stitcher-beta-1", "published_at": "2017-05-20T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a9129a7f", "title": "PHP Generics and why we need them", "url": "https://stitcher.io/blog/php-generics-and-why-we-need-them", "published_at": "2017-05-17T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a92a182d", "title": "Stitcher alpha 5", "url": "https://stitcher.io/blog/stitcher-alpha-5", "published_at": "2017-05-01T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405a93d0be1", "title": "The simplest plugin support", "url": "https://stitcher.io/blog/simplest-plugin-support", "published_at": "2017-04-27T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405aa0f2a94", "title": "Stitcher alpha 4", "url": "https://stitcher.io/blog/stitcher-alpha-4", "published_at": "2017-04-21T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405aa4fd9e4", "title": "Static site generators vs. caching", "url": "https://stitcher.io/blog/static_sites_vs_caching", "published_at": "2017-03-02T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405aaae6734", "title": "Image optimizers", "url": "https://stitcher.io/blog/image_optimizers", "published_at": "2017-02-26T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405ab5574cf", "title": "Tackling responsive images - part 2", "url": "https://stitcher.io/blog/tackling_responsive_images-part_2", "published_at": "2017-02-18T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405abb945e7", "title": "Tackling responsive images - part 1", "url": "https://stitcher.io/blog/tackling_responsive_images-part_1", "published_at": "2017-02-17T00:00:00+00:00" }, { "id": "01a08219-4fab-7287-bec9-5405abbd9979", "title": "Which editor to choose?", "url": "https://stitcher.io/blog/which-editor-to-choose", "published_at": "2015-08-24T00:00:00+00:00" } ] posts Claim your blog
Back to Brent Roose
Blog · corpus.blog/blogs/stitcher.io/posts

Brent Roose

stitcher.io

2020

2019

2018

2017

2015