Deprecated: Creation of dynamic property wpdb::$categories is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$post2cat is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$link2cat is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 668

Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-theme.php on line 544

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/rest-api/class-wp-rest-request.php on line 960

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/rest-api/class-wp-rest-request.php on line 980

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/rest-api/class-wp-rest-request.php on line 992

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/rest-api/class-wp-rest-request.php on line 1003

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 199

Deprecated: Optional parameter $category declared before required parameter $page_number is implicitly treated as a required parameter in /var/www/html/uat.coloredcow.com/public/wp-content/mu-plugins/cc-employee-portal/class-ccemployee.php on line 114

Deprecated: Creation of dynamic property ACF::$fields is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/fields.php on line 136

Deprecated: Creation of dynamic property ACF::$locations is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/locations.php on line 130

Deprecated: Creation of dynamic property ACF::$json is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/json.php on line 184

Deprecated: Creation of dynamic property acf_loop::$loops is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/loop.php on line 26

Deprecated: Creation of dynamic property ACF::$loop is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/loop.php on line 270

Deprecated: Creation of dynamic property ACF::$revisions is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/revisions.php on line 413

Deprecated: Creation of dynamic property acf_validation::$errors is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/validation.php on line 26

Deprecated: Creation of dynamic property ACF::$validation is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/validation.php on line 212

Deprecated: Creation of dynamic property acf_form_customizer::$preview_values is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-customizer.php on line 26

Deprecated: Creation of dynamic property acf_form_customizer::$preview_fields is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-customizer.php on line 27

Deprecated: Creation of dynamic property acf_form_customizer::$preview_errors is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-customizer.php on line 28

Deprecated: Creation of dynamic property ACF::$form_front is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-front.php on line 603

Deprecated: Creation of dynamic property acf_form_widget::$preview_values is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-widget.php on line 34

Deprecated: Creation of dynamic property acf_form_widget::$preview_reference is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-widget.php on line 35

Deprecated: Creation of dynamic property acf_form_widget::$preview_errors is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-widget.php on line 36

Deprecated: Creation of dynamic property InsertHeadersAndFooters::$plugin is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/insert-headers-and-footers/ihaf.php on line 41

Deprecated: Creation of dynamic property InsertHeadersAndFooters::$body_open_supported is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/insert-headers-and-footers/ihaf.php on line 48

Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/wp-smushit/core/modules/helpers/class-parser.php on line 229

Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/wp-smushit/core/modules/helpers/class-parser.php on line 234

Deprecated: Creation of dynamic property Smush\Core\Modules::$webp is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/wp-smushit/core/class-modules.php on line 95

Deprecated: Creation of dynamic property acf_field_oembed::$width is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/fields/class-acf-field-oembed.php on line 31

Deprecated: Creation of dynamic property acf_field_oembed::$height is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/fields/class-acf-field-oembed.php on line 32

Deprecated: Creation of dynamic property acf_field_google_map::$default_values is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/fields/class-acf-field-google-map.php on line 33

Deprecated: Creation of dynamic property acf_field__group::$have_rows is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/fields/class-acf-field-group.php on line 31

Deprecated: Creation of dynamic property acf_field_clone::$cloning is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/pro/fields/class-acf-field-clone.php on line 34

Deprecated: Creation of dynamic property acf_field_clone::$have_rows is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/pro/fields/class-acf-field-clone.php on line 35

Deprecated: Creation of dynamic property WP_Block_Type::$skip_inner_blocks is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-type.php on line 347

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp.php on line 173

Deprecated: Creation of dynamic property WP_Term::$object_id is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-term.php on line 198

Deprecated: Creation of dynamic property WP_Term::$object_id is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-term.php on line 198
ColoredCow




Saving time with patterns and automation
Mohd Shamoon
June 11, 2021

While working on Glific and thinking about how chatbots work it suddenly stuck to me that if the conversations can be automated why not anything else that I work with.

In every automation, there is always a pattern that emerges and we automate based on that pattern.

Thinking about these patterns and while writing some code I immediately thought of a place where I have patterns in my work.


It was how I started my day with Glific. I noted down the things that I did while starting my work and came out with these:

  • Open my Editor (VS code) and go to my project repository.
  • Since Glific has a split tech architecture. It has a separate frontend and backend
    • Go to the frontend directory in the terminal and start the frontend server
    • Go to backend directory in terminal and start the backend server
  • Open discord, which is the messaging platform we used to communicate in Glific. 
  • Open Google Chat for internal communication.
  • And finally open chrome with Glific’s GitHub repository where I need to check the status of things.


These things take around 5 minutes and I did these 3 – 4 times a day.

I thought if these are the steps that I need every time while I will work on Glific why not just automate them.

So I created a command with Zsh shell and named it glific. The command runs a script that does these exact things for me every time I run this command.

A quick demo here:


This helped me primarily in these two things:

  • I don’t have to think if I am missed running any servers or missed starting any chat application.
  • if I have to switch to any other thing then I don’t have to worry about repeating those steps again.


Some may think that it is just a small amount of time and why take the effort to automate it but if you think about the overall picture, It saves around 10 minutes each day.

“And if you think about time then each second of life is valuable”


Deprecated: Creation of dynamic property WP_Query::$comments_by_type is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/comment-template.php on line 1528