From ddcfe1d7aa710633af9f1d35a0c0dc83f700dcfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9on=20Avic=20Simmons?= Date: Mon, 29 Jun 2026 13:51:27 -0400 Subject: [PATCH] docs: fix 6 typos in comments and documentation --- _posts/2015-09-14-lead-developer.md | 2 +- _posts/2016-07-29-hacking-on-bluemix.md | 2 +- _posts/2017-11-10-learning-gulpjs.md | 2 +- _posts/2019-02-01-How-to-update-data-model-on-drupal-8.md | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/_posts/2015-09-14-lead-developer.md b/_posts/2015-09-14-lead-developer.md index 802d09f..973aad6 100644 --- a/_posts/2015-09-14-lead-developer.md +++ b/_posts/2015-09-14-lead-developer.md @@ -53,7 +53,7 @@ As the end of the day approached, it was clear that the day would be ending with [Una Kravets](https://twitter.com/una) gave a [Primer on Performance](http://una.im/slides--lead-dev/#/), giving a really good walkthrough on front-end performance considerations and techniques, along with good ammunition for anyone who needs to build business cases of why we should care about performance [($40m a year for 0.4 seconds anyone?)](http://una.im/slides--lead-dev/#/3/5). CMAT (Concatenate, Minify, Async, Test) was a really good mantra for people to follow. Although a lot of the material in this talk was familiar to me, the delivery was excellent, and the slides stand on their own as a reference so I'd recommend checking them out. -The talk that chimed most with me from the day was "Staying Ahead of the Curve" by [Trisha Gee](https://twitter.com/trisha_gee), developer advocate at JetBrains. This talk focused on to (safely) keep up with the latest technology for both your team and yourself, and approaches to combining this with your daily work without blowing up production. Carving out time for this kind of thing has always been something I've wrestled with unsuccessfully, and it was reassuring to hear that others find the same problem, and some ideas to get around it. Looking forward to the slides and video on this one to rewatch and digest further as my note taking was horrendous! +The talk that chimed most with me from the day was "Staying Ahead of the Curve" by [Trisha Gee](https://twitter.com/trisha_gee), developer advocate at JetBrains. This talk focused on how to (safely) keep up with the latest technology for both your team and yourself, and approaches to combining this with your daily work without blowing up production. Carving out time for this kind of thing has always been something I've wrestled with unsuccessfully, and it was reassuring to hear that others find the same problem, and some ideas to get around it. Looking forward to the slides and video on this one to rewatch and digest further as my note taking was horrendous! Finally, the day came to a close with [Oren Ellenbogen](https://twitter.com/orenellenbogen) talking about Building Happier Engineering Teams. I've been subscribed to Oren's weekly newsletter - [Software Lead Weekly](http://softwareleadweekly.com/) - for a while now, so it was exciting to finally see on stage someone whose name pops up in my inbox once a week. Oren talked about how to grow teams whilst keeping everyone happy, and gave some insightful techniques for both keeping and attracting the right people. I had to smile at one of these, one of the reasons we started this blog in the first place: diff --git a/_posts/2016-07-29-hacking-on-bluemix.md b/_posts/2016-07-29-hacking-on-bluemix.md index 9044f53..096a33d 100755 --- a/_posts/2016-07-29-hacking-on-bluemix.md +++ b/_posts/2016-07-29-hacking-on-bluemix.md @@ -19,7 +19,7 @@ Onto Bluemix, it's a vast array of services, boilerplate templates, virtual mach Criticism two: if you're providing boilerplate code I expect high standards and good basic structure to the code. Unfortunately the ones I saw were primitive "Hello World"-type examples, which for us fell down like a house of cards as you try and bend it into some sort of order and coding standards. This is something I think should be addressed quickly and would happily contribute to. Our team started off using the mobile app builder. We toiled away for four hours, eventually abandoning it to start again writing an Android application from scratch. This is my first tip, avoid using the boilerplate for anything other than getting snippets of code or experimenting with connections to other services on Bluemix. -Criticism three: the explosion of browser tabs trying to configure anything. Every service basically has its own landing screen and then opens its interface into another tab, try using more than three services and its starts becoming irritating. Combining services together results in a series of copy/pastes of the generated credentials from one service to the next. This isn't the case for all services, some integrate nicely but not nearly enough. +Criticism three: the explosion of browser tabs trying to configure anything. Every service basically has its own landing screen and then opens its interface into another tab, try using more than three services and it starts becoming irritating. Combining services together results in a series of copy/pastes of the generated credentials from one service to the next. This isn't the case for all services, some integrate nicely but not nearly enough. I've finally got to a point where I feel like I've got some stuff off my chest, **did I like any of it?** Yes, back to [Node-RED](http://nodered.org/). It's a browser-based flow editor using [Node.js](https://nodejs.org) to wire up IoT data. The best way I can describe it is as an electronic circuit for streams of IoT data. It's really simple, really powerful and something I'd recommend getting kids into to hack stuff with IoT (something I've thought more about since finding out about [devoxx4kids](http://www.devoxx4kids.org/)). There's a subset of the plugins available on the service but I think that'll improve. One issue I did find with Node-RED was that occasionally it lost my changes and the source control wasn't integrated well, again something I think will be addressed soon. The integration with other services for this was really easy, [Twitter](https://twitter.com), [Watson](http://www.ibm.com/watson), Push notifications to name but three - and it has a host of custom functions. We used it to send push notifications when the plane detected an intruder for example and read a twitter feed using a Watson component to assess the sentiment of the tweet. The potential power of this really excites me; the ability to drag and drop to combine datasources ranging from IoT streams, social feeds, api's, database etc. then filter for the data you need and apply cognitive behaviour from Watson opens up endless possibilities. diff --git a/_posts/2017-11-10-learning-gulpjs.md b/_posts/2017-11-10-learning-gulpjs.md index 71eabeb..0ca2f9d 100644 --- a/_posts/2017-11-10-learning-gulpjs.md +++ b/_posts/2017-11-10-learning-gulpjs.md @@ -30,7 +30,7 @@ let gulp = require('gulp'); ``` ### Installing Gulp -To install Gulp you should run the following in the route directory of your project (you can use the `-g` flag to install globally): +To install Gulp you should run the following in the root directory of your project (you can use the `-g` flag to install globally): ``` npm install --save-dev gulp diff --git a/_posts/2019-02-01-How-to-update-data-model-on-drupal-8.md b/_posts/2019-02-01-How-to-update-data-model-on-drupal-8.md index 8883885..e764716 100644 --- a/_posts/2019-02-01-How-to-update-data-model-on-drupal-8.md +++ b/_posts/2019-02-01-How-to-update-data-model-on-drupal-8.md @@ -19,7 +19,7 @@ Updating the database (executing hook updates and/or importing the configuration It is important to differentiate between a contributed module to be published on drupal.org aimed at a wide audience, and a custom Drupal project (a set of Drupal contrib/custom modules) designed to provide a bespoke solution in response to a client's needs. In a contributed module it is rare to have a real need to create instances of configuration/content entities, on the other hand deploying a custom Drupal project makes updating data models more complicated. In the following sections we will list all possible types of updates in Drupal 8. -The Field module allows us to add fields to bundles, we must make difference between the data structure that will be stored in the field (the static `schema()` method) and all the settings of the field and its storage that will be stored as a configuration. All the dependencies related to the configuration of the field are stored in the `field_config` configuration entity and all the dependencies related to the storage of the field are stored in the `field_storage_config` configuration entity. Base fields are stored by default in the entity's base table. +The Field module allows us to add fields to bundles, we must make a difference between the data structure that will be stored in the field (the static `schema()` method) and all the settings of the field and its storage that will be stored as a configuration. All the dependencies related to the configuration of the field are stored in the `field_config` configuration entity and all the dependencies related to the storage of the field are stored in the `field_storage_config` configuration entity. Base fields are stored by default in the entity's base table.   Configurable fields are the fields that can be added via the UI and attached to a bundle, which can be exported and deployed. Base fields are not managed by the `field_storage_config` configuration entities and `field_config`. @@ -40,9 +40,9 @@ What is the solution for this problem? (We will look at a solution for this prob ## Now the question is: How to import default content in a custom Drupal project? -Importing default content for a site is an action which is not well documented in Drupal, in a profile installation often this import is done in the `hook_install()` hook because always the data content have not a complex structure with levels of nested references, in some cases we can use [the default content module](https://www.drupal.org/project/default_content). Overall in a module we can't create content in a `hook_install()` hook, simply because when installing a module the integrity of the configuration is still not imported. +Importing default content for a site is an action which is not well documented in Drupal, in a profile installation often this import is done in the `hook_install()` hook because always the data content has not a complex structure with levels of nested references, in some cases we can use [the default content module](https://www.drupal.org/project/default_content). Overall in a module we can't create content in a `hook_install()` hook, simply because when installing a module the integrity of the configuration is still not imported. -In a recent project i used the [`drush php-script`](https://drushcommands.com/drush-8x/core/php-script/) command to execute import scripts after the ([`drush updatedb`](https://drushcommands.com/drush-8x/core/updatedb/) -> [`drush config-import`](https://drushcommands.com/drush-8x/config/config-import/)) but this command is not always available during deployment process. The first idea that comes to mind is to subscribe to the event that is triggered after the import of the configurations to be able to create the contents that will be available for the site editors, but the use of an event is not a nice developer experience hence the introduction of [a new hook `hook_post_config_import_NAME()`](https://www.drupal.org/project/drupal/issues/2901418) that will run once after the database updates and configuration import. +In a recent project I used the [`drush php-script`](https://drushcommands.com/drush-8x/core/php-script/) command to execute import scripts after the ([`drush updatedb`](https://drushcommands.com/drush-8x/core/updatedb/) -> [`drush config-import`](https://drushcommands.com/drush-8x/config/config-import/)) but this command is not always available during deployment process. The first idea that comes to mind is to subscribe to the event that is triggered after the import of the configurations to be able to create the contents that will be available for the site editors, but the use of an event is not a nice developer experience hence the introduction of [a new hook `hook_post_config_import_NAME()`](https://www.drupal.org/project/drupal/issues/2901418) that will run once after the database updates and configuration import. Another hook `hook_pre_config_import_NAME()` has also been introduced to fix performance issues. ## A workflow that works for me