From 43c376a9ba20f2e34d03727ac028c46bfacdcc31 Mon Sep 17 00:00:00 2001 From: Chris Beeley Date: Tue, 18 Jun 2024 19:11:51 +0100 Subject: [PATCH] Finish strategy post --- ...-one-build-a-pipeline-and-ship-the-code.md | 15 +- ...eplace-nested-ifelse-like-sql-case-when.md | 3 - ...19-02-17-citing-r-packages-in-rmarkdown.md | 3 - ...03-a-world-of-plotthedots-and-what-else.md | 5 +- ...-output-with-ggplot-purrr-and-rmarkdown.md | 6 - ...roducing-rmarkdown-reports-with-plumber.md | 3 - ...ing-line-returns-in-rmarkdown-in-a-loop.md | 3 - ...ence-data-at-nottinghamshire-healthcare.md | 3 - ...ote-for-kindle-readers-of-my-shiny-book.md | 3 - ...at-nottinghamshire-healthcare-nhs-trust.md | 3 - .../post/2019-08-08-the-analysts-manifesto.md | 5 +- .../2019-10-31-add-label-to-shinydashboard.md | 8 +- ...active-directory-using-shiny-server-pro.md | 3 - content/post/2019-12-08-nhs-r-conference.md | 3 - ...uperpower-a-talk-i-gave-about-being-ill.md | 3 - .../post/2020-01-19-decade-round-up-post.md | 3 - ...-survey-dataset-to-numbers-for-analysis.md | 3 - ...pidly-find-the-mean-of-survey-questions.md | 3 - .../post/2020-03-04-the-great-survey-munge.md | 3 - ...nhs-data-science-and-software-licensing.md | 3 - ...020-03-27-data-science-for-human-beings.md | 3 - content/post/2020-04-03-app-r-and-global-r.md | 4 - ...onising-r-at-nottinghamshire-healthcare.md | 3 - ...-10-rstudio-connect-behind-the-firewall.md | 3 - ...2020-06-10-rstudio-connect-in-the-cloud.md | 3 - content/post/2024-08-06-strategy.md | 31 + public/404.html | 15 +- public/?p=1016/index.html | 21 +- public/?p=1017/index.html | 21 +- public/?p=1023/index.html | 21 +- public/?p=1025/index.html | 21 +- public/?p=1030/index.html | 21 +- public/?p=1032/index.html | 21 +- public/?p=1037/index.html | 21 +- public/?p=1042/index.html | 21 +- public/?p=1047/index.html | 21 +- public/?p=1052/index.html | 21 +- public/?p=1057/index.html | 21 +- public/?p=1064/index.html | 21 +- public/?p=1077/index.html | 21 +- public/?p=108/index.html | 21 +- public/?p=1092/index.html | 21 +- public/?p=1096/index.html | 21 +- public/?p=1098/index.html | 21 +- public/?p=1104/index.html | 21 +- public/?p=1116/index.html | 21 +- public/?p=1124/index.html | 21 +- public/?p=1143/index.html | 21 +- public/?p=1147/index.html | 21 +- public/?p=1152/index.html | 21 +- public/?p=1155/index.html | 21 +- public/?p=1157/index.html | 21 +- public/?p=1159/index.html | 21 +- public/?p=1170/index.html | 21 +- public/?p=1173/index.html | 21 +- public/?p=1181/index.html | 21 +- public/?p=1186/index.html | 21 +- public/?p=1188/index.html | 21 +- public/?p=1190/index.html | 21 +- public/?p=1195/index.html | 31 +- public/?p=1198/index.html | 21 +- public/?p=1209/index.html | 21 +- public/?p=1212/index.html | 21 +- public/?p=1214/index.html | 21 +- public/?p=1216/index.html | 21 +- public/?p=1218/index.html | 21 +- public/?p=1222/index.html | 31 +- public/?p=133/index.html | 21 +- public/?p=147/index.html | 21 +- public/?p=159/index.html | 21 +- public/?p=166/index.html | 21 +- public/?p=171/index.html | 21 +- public/?p=182/index.html | 21 +- public/?p=187/index.html | 21 +- public/?p=189/index.html | 21 +- public/?p=199/index.html | 21 +- public/?p=203/index.html | 21 +- public/?p=205/index.html | 21 +- public/?p=209/index.html | 21 +- public/?p=215/index.html | 21 +- public/?p=218/index.html | 21 +- public/?p=219/index.html | 21 +- public/?p=230/index.html | 21 +- public/?p=239/index.html | 21 +- public/?p=25/index.html | 21 +- public/?p=255/index.html | 21 +- public/?p=293/index.html | 21 +- public/?p=302/index.html | 21 +- public/?p=303/index.html | 21 +- public/?p=371/index.html | 21 +- public/?p=378/index.html | 21 +- public/?p=380/index.html | 21 +- public/?p=398/index.html | 21 +- public/?p=40/index.html | 21 +- public/?p=400/index.html | 21 +- public/?p=402/index.html | 21 +- public/?p=405/index.html | 21 +- public/?p=412/index.html | 21 +- public/?p=414/index.html | 21 +- public/?p=454/index.html | 21 +- public/?p=46/index.html | 21 +- public/?p=462/index.html | 21 +- public/?p=467/index.html | 21 +- public/?p=474/index.html | 21 +- public/?p=481/index.html | 21 +- public/?p=487/index.html | 21 +- public/?p=5/index.html | 21 +- public/?p=511/index.html | 21 +- public/?p=520/index.html | 21 +- public/?p=530/index.html | 21 +- public/?p=537/index.html | 21 +- public/?p=551/index.html | 21 +- public/?p=554/index.html | 21 +- public/?p=564/index.html | 21 +- public/?p=571/index.html | 21 +- public/?p=578/index.html | 21 +- public/?p=590/index.html | 21 +- public/?p=593/index.html | 21 +- public/?p=603/index.html | 21 +- public/?p=609/index.html | 21 +- public/?p=61/index.html | 21 +- public/?p=624/index.html | 21 +- public/?p=631/index.html | 21 +- public/?p=641/index.html | 21 +- public/?p=644/index.html | 21 +- public/?p=654/index.html | 21 +- public/?p=657/index.html | 21 +- public/?p=671/index.html | 21 +- public/?p=682/index.html | 21 +- public/?p=689/index.html | 21 +- public/?p=696/index.html | 21 +- public/?p=703/index.html | 21 +- public/?p=710/index.html | 21 +- public/?p=717/index.html | 21 +- public/?p=722/index.html | 21 +- public/?p=726/index.html | 21 +- public/?p=731/index.html | 21 +- public/?p=74/index.html | 21 +- public/?p=740/index.html | 21 +- public/?p=748/index.html | 21 +- public/?p=757/index.html | 21 +- public/?p=769/index.html | 21 +- public/?p=779/index.html | 21 +- public/?p=783/index.html | 21 +- public/?p=796/index.html | 21 +- public/?p=8/index.html | 21 +- public/?p=824/index.html | 21 +- public/?p=83/index.html | 21 +- public/?p=861/index.html | 21 +- public/?p=87/index.html | 21 +- public/?p=871/index.html | 21 +- public/?p=886/index.html | 21 +- public/?p=904/index.html | 21 +- public/?p=936/index.html | 21 +- public/?p=955/index.html | 21 +- public/?p=957/index.html | 21 +- public/?p=983/index.html | 21 +- public/?p=99/index.html | 21 +- public/categories/Uncategorized/index.html | 240 +++++- public/categories/Uncategorized/index.xml | 692 ++++++++--------- public/categories/index.html | 240 +++++- public/categories/index.xml | 8 +- public/index.html | 274 +++++-- public/index.xml | 713 +++++++++--------- .../index.html | 21 +- .../index.html | 188 +++++ .../index.html | 177 +++++ .../index.html | 194 +++++ .../index.html | 178 +++++ .../index.html | 181 +++++ .../index.html | 224 ++++++ .../index.html | 175 +++++ .../index.html | 174 +++++ .../index.html | 171 +++++ .../index.html | 172 +++++ .../index.html | 172 +++++ .../index.html | 172 +++++ .../index.html | 203 +++++ .../2019-12-08-nhs-r-conference/index.html | 171 +++++ .../index.html | 173 +++++ .../index.html | 187 +++++ .../index.html | 207 +++++ .../index.html | 183 +++++ .../index.html | 171 +++++ .../index.html | 169 +++++ .../index.html | 171 +++++ .../2020-04-03-app-r-and-global-r/index.html | 174 +++++ .../index.html | 171 +++++ .../index.html | 186 +++++ .../index.html | 178 +++++ .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 23 +- public/post/2021-07-14-shoddy-data/index.html | 21 +- .../index.html | 21 +- .../post/2021-07-19-graphs-tables/index.html | 21 +- .../post/2021-08-19-pay-and-reward/index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 23 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../index.html | 21 +- .../2024-03-25-new-year-new-blog/index.html | 19 +- .../2024-05-04-decisions-decisions/index.html | 21 +- public/post/2024-08-06-strategy/index.html | 173 +++++ public/post/index.html | 65 +- public/post/index.xml | 713 +++++++++--------- public/post/page/1/index.html | 6 +- public/post/page/10/index.html | 65 +- public/post/page/11/index.html | 65 +- public/post/page/12/index.html | 66 +- public/post/page/13/index.html | 66 +- public/post/page/14/index.html | 65 +- public/post/page/15/index.html | 65 +- public/post/page/16/index.html | 65 +- public/post/page/17/index.html | 65 +- public/post/page/18/index.html | 41 +- public/post/page/2/index.html | 65 +- public/post/page/3/index.html | 67 +- public/post/page/4/index.html | 83 +- public/post/page/5/index.html | 85 ++- public/post/page/6/index.html | 71 +- public/post/page/7/index.html | 65 +- public/post/page/8/index.html | 65 +- public/post/page/9/index.html | 65 +- public/sitemap.xml | 399 +++++----- public/tags/HTML/index.html | 16 +- public/tags/HTML/index.xml | 8 +- public/tags/Interest-rates/index.html | 16 +- public/tags/Interest-rates/index.xml | 8 +- public/tags/R/index.html | 18 +- public/tags/R/index.xml | 16 +- public/tags/RStudio/index.html | 16 +- public/tags/RStudio/index.xml | 8 +- public/tags/Visualisation/index.html | 16 +- public/tags/Visualisation/index.xml | 8 +- public/tags/animation/index.html | 16 +- public/tags/animation/index.xml | 8 +- public/tags/data-visualisation/index.html | 17 +- public/tags/data-visualisation/index.xml | 12 +- public/tags/ggplot2/index.html | 16 +- public/tags/ggplot2/index.xml | 8 +- public/tags/index.html | 37 +- public/tags/index.xml | 72 +- public/tags/mean/index.html | 16 +- public/tags/mean/index.xml | 8 +- public/tags/median/index.html | 16 +- public/tags/median/index.xml | 8 +- public/tags/patient-survey/index.html | 18 +- public/tags/patient-survey/index.xml | 16 +- public/tags/pie-chart/index.html | 16 +- public/tags/pie-chart/index.xml | 8 +- public/tags/simulation/index.html | 16 +- public/tags/simulation/index.xml | 8 +- public/tags/sweave/index.html | 16 +- public/tags/sweave/index.xml | 8 +- public/tags/tables/index.html | 16 +- public/tags/tables/index.xml | 8 +- public/tags/text-mining/index.html | 16 +- public/tags/text-mining/index.xml | 8 +- public/tags/word-clouds/index.html | 16 +- public/tags/word-clouds/index.xml | 8 +- themes/ananke | 2 +- 277 files changed, 9967 insertions(+), 3279 deletions(-) create mode 100644 content/post/2024-08-06-strategy.md create mode 100644 public/post/2019-01-20-data-science-accelerator-lesson-one-build-a-pipeline-and-ship-the-code/index.html create mode 100644 public/post/2019-02-03-dplyr-function-to-replace-nested-ifelse-like-sql-case-when/index.html create mode 100644 public/post/2019-02-17-citing-r-packages-in-rmarkdown/index.html create mode 100644 public/post/2019-03-03-a-world-of-plotthedots-and-what-else/index.html create mode 100644 public/post/2019-03-17-suppress-console-output-with-ggplot-purrr-and-rmarkdown/index.html create mode 100644 public/post/2019-03-19-producing-rmarkdown-reports-with-plumber/index.html create mode 100644 public/post/2019-03-31-adding-line-returns-in-rmarkdown-in-a-loop/index.html create mode 100644 public/post/2019-04-05-the-future-of-patient-experience-data-at-nottinghamshire-healthcare/index.html create mode 100644 public/post/2019-05-25-a-note-for-kindle-readers-of-my-shiny-book/index.html create mode 100644 public/post/2019-07-02-python-working-together-and-productionising-code-at-nottinghamshire-healthcare-nhs-trust/index.html create mode 100644 public/post/2019-08-08-the-analysts-manifesto/index.html create mode 100644 public/post/2019-10-31-add-label-to-shinydashboard/index.html create mode 100644 public/post/2019-11-06-authenticating-using-ldap-from-active-directory-using-shiny-server-pro/index.html create mode 100644 public/post/2019-12-08-nhs-r-conference/index.html create mode 100644 public/post/2019-12-16-my-superpower-a-talk-i-gave-about-being-ill/index.html create mode 100644 public/post/2020-01-19-decade-round-up-post/index.html create mode 100644 public/post/2020-02-18-converting-words-on-a-survey-dataset-to-numbers-for-analysis/index.html create mode 100644 public/post/2020-02-25-rapidly-find-the-mean-of-survey-questions/index.html create mode 100644 public/post/2020-03-04-the-great-survey-munge/index.html create mode 100644 public/post/2020-03-23-nhs-data-science-and-software-licensing/index.html create mode 100644 public/post/2020-03-27-data-science-for-human-beings/index.html create mode 100644 public/post/2020-04-03-app-r-and-global-r/index.html create mode 100644 public/post/2020-05-26-productionising-r-at-nottinghamshire-healthcare/index.html create mode 100644 public/post/2020-06-10-rstudio-connect-behind-the-firewall/index.html create mode 100644 public/post/2020-06-10-rstudio-connect-in-the-cloud/index.html create mode 100644 public/post/2024-08-06-strategy/index.html diff --git a/content/post/2019-01-20-data-science-accelerator-lesson-one-build-a-pipeline-and-ship-the-code.md b/content/post/2019-01-20-data-science-accelerator-lesson-one-build-a-pipeline-and-ship-the-code.md index f4cfaa8..28cc9c4 100644 --- a/content/post/2019-01-20-data-science-accelerator-lesson-one-build-a-pipeline-and-ship-the-code.md +++ b/content/post/2019-01-20-data-science-accelerator-lesson-one-build-a-pipeline-and-ship-the-code.md @@ -3,20 +3,17 @@ author: chrisbeeley categories: - Uncategorized date: "2019-01-20T17:41:39Z" -guid: https://chrisbeeley.net/?p=1186 -id: 1186 title: Data science accelerator lesson one- build a pipeline and ship the code! -url: /?p=1186 --- My exciting news is that I was accepted onto the [data science accelerator](https://www.gov.uk/government/publications/data-science-accelerator-programme/introduction-to-the-data-science-accelerator) and have been doing it since late December. My project, basically, is all about using natural language processing to better understand the patient experience data that we collect (and, if I have time, the staff experience data too). Here are the goals: -1\) Using an unsupervised technique, generate a novel way of categorising the text data to give us a different perspective. We already have tagged data but I would like to interrogate the usefulness of the tags that we have used -2\) a. Generate a system that, given a comment or set of comments, can find other comments within the data that are semantically similar. Note that this system will need to run live on the server, since it would be impossible to store the semantic similarity of every comment to every other comment -3\) b. Generate a system that, instead of searching by word, searches by similarity to that word -3\) Produce a supervised learning algorithm which can be trained on a sample of tagged comments and then produce tags for comments that it has not previously seen -4\) a. Produce a sentiment analysis function that can tag every comment in a database with how positive or negative it is -4\) b. Produce reporting functions that can compute overall sentiment for a group of documents (e.g. of a particular service area) and optionally describe the change in sentiment over time +1) Using an unsupervised technique, generate a novel way of categorising the text data to give us a different perspective. We already have tagged data but I would like to interrogate the usefulness of the tags that we have used + 1) Generate a system that, given a comment or set of comments, can find other comments within the data that are semantically similar. Note that this system will need to run live on the server, since it would be impossible to store the semantic similarity of every comment to every other comment + 2) Generate a system that, instead of searching by word, searches by similarity to that word +3) Produce a supervised learning algorithm which can be trained on a sample of tagged comments and then produce tags for comments that it has not previously seen + 1) Produce a sentiment analysis function that can tag every comment in a database with how positive or negative it is + 2) Produce reporting functions that can compute overall sentiment for a group of documents (e.g. of a particular service area) and optionally describe the change in sentiment over time I’m not really sure if I’m going to get through all of it but I’ve made a decent start. I’ve made a [Trello board](https://trello.com/b/GlmtpsqB/data-science-accelerator) and there’s a [GitHub](https://github.com/ChrisBeeley/naturallanguageprocessing) too. diff --git a/content/post/2019-02-03-dplyr-function-to-replace-nested-ifelse-like-sql-case-when.md b/content/post/2019-02-03-dplyr-function-to-replace-nested-ifelse-like-sql-case-when.md index c99aaba..2e9a6ad 100644 --- a/content/post/2019-02-03-dplyr-function-to-replace-nested-ifelse-like-sql-case-when.md +++ b/content/post/2019-02-03-dplyr-function-to-replace-nested-ifelse-like-sql-case-when.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2019-02-03T17:45:39Z" -guid: https://chrisbeeley.net/?p=1188 -id: 1188 title: Dplyr function to replace nested ifelse (like SQL CASE WHEN) -url: /?p=1188 --- I hate nested ifelse statements in R code. I absolutely hate them. They are just ugly and difficult to read. I found this lovely function in dplyr called case\_when (which is like the SQL CASE WHEN if you know that) that banished them forever. It’s easier if I just show you (this is from the documentation) diff --git a/content/post/2019-02-17-citing-r-packages-in-rmarkdown.md b/content/post/2019-02-17-citing-r-packages-in-rmarkdown.md index e2b584e..1bd4ec6 100644 --- a/content/post/2019-02-17-citing-r-packages-in-rmarkdown.md +++ b/content/post/2019-02-17-citing-r-packages-in-rmarkdown.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2019-02-17T15:46:33Z" -guid: https://chrisbeeley.net/?p=1190 -id: 1190 title: Citing R packages in RMarkdown -url: /?p=1190 --- I haven’t really done much in the way of citing papers in the last couple of years, I’ve spent my time either messing around with Shiny servers or databases or writing RMarkdown reports- and being horribly ill, of course, haha!- see this blog, passim. Don’t worry, I’m as fit as a flea now 🙂 diff --git a/content/post/2019-03-03-a-world-of-plotthedots-and-what-else.md b/content/post/2019-03-03-a-world-of-plotthedots-and-what-else.md index 26cb2e3..f34599d 100644 --- a/content/post/2019-03-03-a-world-of-plotthedots-and-what-else.md +++ b/content/post/2019-03-03-a-world-of-plotthedots-and-what-else.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2019-03-03T09:26:42Z" -guid: https://chrisbeeley.net/?p=1195 -id: 1195 -title: 'A world of #plotthedots and… what else?' -url: /?p=1195 +title: 'A world of #plotthedots and what else?' --- ![image](https://chrisbeeley.net/wp-content/uploads/2019/02/image.png) diff --git a/content/post/2019-03-17-suppress-console-output-with-ggplot-purrr-and-rmarkdown.md b/content/post/2019-03-17-suppress-console-output-with-ggplot-purrr-and-rmarkdown.md index d19002a..b922dcd 100644 --- a/content/post/2019-03-17-suppress-console-output-with-ggplot-purrr-and-rmarkdown.md +++ b/content/post/2019-03-17-suppress-console-output-with-ggplot-purrr-and-rmarkdown.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2019-03-17T18:27:09Z" -guid: https://chrisbeeley.net/?p=1198 -id: 1198 title: Suppress console output with ggplot, purrr, and RMarkdown -url: /?p=1198 --- So [I posted a while back](https://chrisbeeley.net/?p=1143) about producing several plots at once with RMarkdown and purrr and how to suppress the console output in the document. @@ -18,8 +15,6 @@ For ggplot, you need to excellent function walk() which is like map() except it Bish bash bosh. Easy ``` -
-
 ```{r, message = FALSE, echo = FALSE}
 
 library(tidyverse)
@@ -32,5 +27,4 @@ walk(c("Plot1", "Plot 2", "Plot 3"), function(x) {
   print(p)
 })
 ```
-
 ```
\ No newline at end of file
diff --git a/content/post/2019-03-19-producing-rmarkdown-reports-with-plumber.md b/content/post/2019-03-19-producing-rmarkdown-reports-with-plumber.md
index f7f5a7b..0798d02 100644
--- a/content/post/2019-03-19-producing-rmarkdown-reports-with-plumber.md
+++ b/content/post/2019-03-19-producing-rmarkdown-reports-with-plumber.md
@@ -3,10 +3,7 @@ author: chrisbeeley
 categories:
 - Uncategorized
 date: "2019-03-19T18:56:03Z"
-guid: https://chrisbeeley.net/?p=1209
-id: 1209
 title: Producing RMarkdown reports with Plumber
-url: /?p=1209
 ---
 
 I wasn’t going to post this until I got it working on the server but I’ve got the wrong train ticket and am stuck in London St Pancras until 7pm so I thought I’d be productive and put it up now.
diff --git a/content/post/2019-03-31-adding-line-returns-in-rmarkdown-in-a-loop.md b/content/post/2019-03-31-adding-line-returns-in-rmarkdown-in-a-loop.md
index ec1a115..fac87c1 100644
--- a/content/post/2019-03-31-adding-line-returns-in-rmarkdown-in-a-loop.md
+++ b/content/post/2019-03-31-adding-line-returns-in-rmarkdown-in-a-loop.md
@@ -3,10 +3,7 @@ author: chrisbeeley
 categories:
 - Uncategorized
 date: "2019-03-31T16:48:05Z"
-guid: https://chrisbeeley.net/?p=1212
-id: 1212
 title: Adding line returns in RMarkdown in a loop
-url: /?p=1212
 ---
 
 Another one that’s for me when I forget. The internet seems strangely reluctant to tell me how to do this, yet [here it is](https://stackoverflow.com/questions/49561077/creating-a-new-line-within-an-rmarkdown-chunk) buried in the answer to something else.
diff --git a/content/post/2019-04-05-the-future-of-patient-experience-data-at-nottinghamshire-healthcare.md b/content/post/2019-04-05-the-future-of-patient-experience-data-at-nottinghamshire-healthcare.md
index b1d2cba..e295bd9 100644
--- a/content/post/2019-04-05-the-future-of-patient-experience-data-at-nottinghamshire-healthcare.md
+++ b/content/post/2019-04-05-the-future-of-patient-experience-data-at-nottinghamshire-healthcare.md
@@ -3,10 +3,7 @@ author: chrisbeeley
 categories:
 - Uncategorized
 date: "2019-04-05T10:50:20Z"
-guid: https://chrisbeeley.net/?p=1214
-id: 1214
 title: The future of patient experience data at Nottinghamshire Healthcare
-url: /?p=1214
 ---
 
 I’ve talked about my plans for patient experience data in quite a few different forums recently, but it just occurred to me that it isn’t written down anywhere.
diff --git a/content/post/2019-05-25-a-note-for-kindle-readers-of-my-shiny-book.md b/content/post/2019-05-25-a-note-for-kindle-readers-of-my-shiny-book.md
index 02b8c35..a46b867 100644
--- a/content/post/2019-05-25-a-note-for-kindle-readers-of-my-shiny-book.md
+++ b/content/post/2019-05-25-a-note-for-kindle-readers-of-my-shiny-book.md
@@ -3,10 +3,7 @@ author: chrisbeeley
 categories:
 - Uncategorized
 date: "2019-05-25T14:34:00Z"
-guid: https://chrisbeeley.net/?p=1216
-id: 1216
 title: A note for Kindle readers of my Shiny book
-url: /?p=1216
 ---
 
 Someone has been in touch with me to say that the Kindle version has no chapter numbers and they were finding it difficult to figure out which bit of the book went with which bit in the repository.
diff --git a/content/post/2019-07-02-python-working-together-and-productionising-code-at-nottinghamshire-healthcare-nhs-trust.md b/content/post/2019-07-02-python-working-together-and-productionising-code-at-nottinghamshire-healthcare-nhs-trust.md
index c62ea9e..bf8c9a4 100644
--- a/content/post/2019-07-02-python-working-together-and-productionising-code-at-nottinghamshire-healthcare-nhs-trust.md
+++ b/content/post/2019-07-02-python-working-together-and-productionising-code-at-nottinghamshire-healthcare-nhs-trust.md
@@ -3,11 +3,8 @@ author: chrisbeeley
 categories:
 - Uncategorized
 date: "2019-07-02T16:28:58Z"
-guid: https://chrisbeeley.net/?p=1218
-id: 1218
 title: Python, working together, and productionising code at Nottinghamshire Healthcare
   NHS Trust
-url: /?p=1218
 ---
 
 Someone just asked me a question on Twitter and I was most of the way through what would have been several tweets before I thought perhaps it would work better as a blog post. I’m going to answer the question first, and then talk some more about the context and what I’m hoping to achieve where I am and (with the advent of more collaborative working through the ICS) in the wider system. So I’ve been using scikit-learn to train a classifier to predict non attendance at healthcare appointments and the question to me was “What made you choose Python rather than R for this one? Which classifier are you using?”.
diff --git a/content/post/2019-08-08-the-analysts-manifesto.md b/content/post/2019-08-08-the-analysts-manifesto.md
index 7c7b638..dfd0267 100644
--- a/content/post/2019-08-08-the-analysts-manifesto.md
+++ b/content/post/2019-08-08-the-analysts-manifesto.md
@@ -3,10 +3,7 @@ author: chrisbeeley
 categories:
 - Uncategorized
 date: "2019-08-08T14:53:23Z"
-guid: https://chrisbeeley.net/?p=1222
-id: 1222
-title: The analysts’ manifesto
-url: /?p=1222
+title: The analysts' manifesto
 ---
 
 I was at an event a little while ago and there was talk of change coming for healthcare analysts. With the advent of population health management we were going to finally get the recognition we as a profession deserve and would get the training and tools necessary to deliver the improvements we all know that data can give.
diff --git a/content/post/2019-10-31-add-label-to-shinydashboard.md b/content/post/2019-10-31-add-label-to-shinydashboard.md
index 8f087f7..871db63 100644
--- a/content/post/2019-10-31-add-label-to-shinydashboard.md
+++ b/content/post/2019-10-31-add-label-to-shinydashboard.md
@@ -3,10 +3,7 @@ author: chrisbeeley
 categories:
 - Uncategorized
 date: "2019-10-31T11:38:12Z"
-guid: http://chrisbeeley.net/?p=1230
-id: 1230
 title: Add label to shinydashboard
-url: /?p=1230
 ---
 
 I feel like I’m sticking my neck out a bit here, and there’s a simple way to doing this that I haven’t found, but I’ve looked pretty hard and “add label to sidebar shiny dashboard” has basically no Google juice at all, and I should know because I’ve been staring at it for half an hour.
@@ -15,10 +12,9 @@ Sometimes you want to add a simple, static label to a shinydashboard sidebar. If
 
 You can add something dynamic with sidebarMenuOutput, and you could do that as a long way round, but I got to thinking that there must be a simple way of doing it. I ended up looking at my shinydashboard in developer view in Chrome, and just stealing the markup from there. Once you’ve done that it’s very simple.
 
-
``` -
+```
 div(class = "shiny-input-container", 
       p(paste0("Data updated: ", date_update))
 ```
 
-
This code just shows a pre-calculated value of the date when the data was updated. I stole this idea from a colleague because sometimes the cron job that updates the data chokes and nobody notices for a while. \ No newline at end of file +This code just shows a pre-calculated value of the date when the data was updated. I stole this idea from a colleague because sometimes the cron job that updates the data chokes and nobody notices for a while. \ No newline at end of file diff --git a/content/post/2019-11-06-authenticating-using-ldap-from-active-directory-using-shiny-server-pro.md b/content/post/2019-11-06-authenticating-using-ldap-from-active-directory-using-shiny-server-pro.md index d749794..87325b8 100644 --- a/content/post/2019-11-06-authenticating-using-ldap-from-active-directory-using-shiny-server-pro.md +++ b/content/post/2019-11-06-authenticating-using-ldap-from-active-directory-using-shiny-server-pro.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2019-11-06T18:03:08Z" -guid: http://chrisbeeley.net/?p=1242 -id: 1242 title: Authenticating using LDAP from Active Directory using Shiny Server Pro -url: /?p=1242 --- Right, I promised I would write this a very long time ago and I still haven’t done it. I’ve just got back from the NHS-R community conference (see an upcoming post) and I’m in a sharing mood, and besides someone just asked me about this on Twitter. diff --git a/content/post/2019-12-08-nhs-r-conference.md b/content/post/2019-12-08-nhs-r-conference.md index aed349b..887d9eb 100644 --- a/content/post/2019-12-08-nhs-r-conference.md +++ b/content/post/2019-12-08-nhs-r-conference.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2019-12-08T12:36:07Z" -guid: http://chrisbeeley.net/?p=1257 -id: 1257 title: NHS-R conference -url: /?p=1257 --- So I recently just got back from the NHS-R community conference, which was amazing of course, and it’s got me in the mood to share, so I’m writing a few blog posts. I’ve got some more in depth stuff to say about where I think NHS-R is/ should be going, but this is the “feels” one. diff --git a/content/post/2019-12-16-my-superpower-a-talk-i-gave-about-being-ill.md b/content/post/2019-12-16-my-superpower-a-talk-i-gave-about-being-ill.md index 9aa96f0..454704d 100644 --- a/content/post/2019-12-16-my-superpower-a-talk-i-gave-about-being-ill.md +++ b/content/post/2019-12-16-my-superpower-a-talk-i-gave-about-being-ill.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2019-12-16T09:25:00Z" -guid: http://chrisbeeley.net/?p=1263 -id: 1263 title: My superpower (a talk I gave about being ill) -url: /?p=1263 --- So this post is nothing to do with R, or Linux, or statistics, or any of the usual stuff. It’s about me. It’s more than possible that you’re not very interested in that so consider yourself warned. diff --git a/content/post/2020-01-19-decade-round-up-post.md b/content/post/2020-01-19-decade-round-up-post.md index b68626a..ea83177 100644 --- a/content/post/2020-01-19-decade-round-up-post.md +++ b/content/post/2020-01-19-decade-round-up-post.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2020-01-19T09:58:21Z" -guid: http://chrisbeeley.net/?p=1273 -id: 1273 title: Decade round up post -url: /?p=1273 --- I’ve got into the habit of writing a yearly roundup blog post (see this blog, passim), based on a suggested framework by David Allen. Since this is the end of a decade I thought it would be fun to do one for the whole decade. diff --git a/content/post/2020-02-18-converting-words-on-a-survey-dataset-to-numbers-for-analysis.md b/content/post/2020-02-18-converting-words-on-a-survey-dataset-to-numbers-for-analysis.md index 249a447..88b827d 100644 --- a/content/post/2020-02-18-converting-words-on-a-survey-dataset-to-numbers-for-analysis.md +++ b/content/post/2020-02-18-converting-words-on-a-survey-dataset-to-numbers-for-analysis.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2020-02-18T13:41:50Z" -guid: http://chrisbeeley.net/?p=1287 -id: 1287 title: Converting words on a survey dataset to numbers for analysis -url: /?p=1287 --- As always, I have very little time for blogging (sorry) but I just came up with a neat way of converting “Strongly Agree”, “Always”, all that stuff that you get on survey based datasets into numbers ready for analysis. It’s automatic, so it will play havoc with any word based questions- analyse them in a separate script. diff --git a/content/post/2020-02-25-rapidly-find-the-mean-of-survey-questions.md b/content/post/2020-02-25-rapidly-find-the-mean-of-survey-questions.md index c13e519..05761de 100644 --- a/content/post/2020-02-25-rapidly-find-the-mean-of-survey-questions.md +++ b/content/post/2020-02-25-rapidly-find-the-mean-of-survey-questions.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2020-02-25T14:18:00Z" -guid: http://chrisbeeley.net/?p=1292 -id: 1292 title: Rapidly find the mean of survey questions -url: /?p=1292 --- Following on from the last blog post, I’ve got quite a nice way of generating lots of means from a survey dataset. This one relies on the fact that I’m averaging questions that go 2.1, 2.2, 2.3, and 3.1, 3.2, 3.3, so I can look for all questions that start with “2.”, “3.”, etc. diff --git a/content/post/2020-03-04-the-great-survey-munge.md b/content/post/2020-03-04-the-great-survey-munge.md index ebd96a3..113daa5 100644 --- a/content/post/2020-03-04-the-great-survey-munge.md +++ b/content/post/2020-03-04-the-great-survey-munge.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2020-03-04T13:51:00Z" -guid: http://chrisbeeley.net/?p=1307 -id: 1307 title: The Great Survey Munge -url: /?p=1307 --- As I mentioned on Twitter the other day, I have this rather ugly spreadsheet that comes from some online survey software that requires quite a lot of cleaning in order to upload it to the database. I had an old version written in base R but the survey has changed so I’ve updated it to tidyverse. diff --git a/content/post/2020-03-23-nhs-data-science-and-software-licensing.md b/content/post/2020-03-23-nhs-data-science-and-software-licensing.md index 0801bd0..3397649 100644 --- a/content/post/2020-03-23-nhs-data-science-and-software-licensing.md +++ b/content/post/2020-03-23-nhs-data-science-and-software-licensing.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2020-03-23T13:04:45Z" -guid: http://chrisbeeley.net/?p=1336 -id: 1336 title: NHS data science and software licensing -url: /?p=1336 --- I’m writing something about software licensing and IP in NHS data science projects at the moment. I don’t think I ever dreamed about doing this, but I’ve noticed that a lot of people working in data science and related fields are confused about some of the issues and I would like to produce a set of facts (and opinions) which are based on a thorough reading of the subject and share them with interested parties. It’s a big job but I thought I’d trail a bit of it here and there as I go. Here’s the summary at the end of the licences section. diff --git a/content/post/2020-03-27-data-science-for-human-beings.md b/content/post/2020-03-27-data-science-for-human-beings.md index d98ba08..8f21bd9 100644 --- a/content/post/2020-03-27-data-science-for-human-beings.md +++ b/content/post/2020-03-27-data-science-for-human-beings.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2020-03-27T10:46:57Z" -guid: http://chrisbeeley.net/?p=1341 -id: 1341 title: Data science for human beings -url: /?p=1341 --- Someone just emailed me to ask me about getting into data science. They knew all the usual stuff, linear algebra, Python, all that stuff, so I thought I’d talk about the other side of data science. It’s all stuff I say whenever I talk about data science, but I’ve never written it down so I thought I may as well blog it. diff --git a/content/post/2020-04-03-app-r-and-global-r.md b/content/post/2020-04-03-app-r-and-global-r.md index c960e30..0bd8cfe 100644 --- a/content/post/2020-04-03-app-r-and-global-r.md +++ b/content/post/2020-04-03-app-r-and-global-r.md @@ -4,11 +4,7 @@ categories: - Uncategorized date: "2020-04-03T18:14:49Z" guid: http://chrisbeeley.net/?p=1344 -id: 1344 -spay_email: -- "" title: app.R and global.R -url: /?p=1344 --- I’m doing some Shiny training this year and I want to teach whatever the new thinking is so I’ve been reading Hadley Wickham’s online book [Mastering Shiny](https://mastering-shiny.org/). There’s a couple of things that I’ve noticed where Shiny is moving on, so if you want to keep up to date I suggest you have a look. I’m going to pick out a few here. Firstly, note that in Shiny 1.5 (which is not released at the time of writing) all code in the R/ directory will be sourced automatically. This is a very good idea, I’ve got loads of source(“useful\_code.R”, local = TRUE) lines in some of my applications, so it gets rid of all that. diff --git a/content/post/2020-05-26-productionising-r-at-nottinghamshire-healthcare.md b/content/post/2020-05-26-productionising-r-at-nottinghamshire-healthcare.md index ec958b5..d6f5985 100644 --- a/content/post/2020-05-26-productionising-r-at-nottinghamshire-healthcare.md +++ b/content/post/2020-05-26-productionising-r-at-nottinghamshire-healthcare.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2020-05-26T17:18:50Z" -guid: http://chrisbeeley.net/?p=1366 -id: 1366 title: Productionising R at Nottinghamshire Healthcare -url: /?p=1366 --- I’m hopeful we’re moving into a bit of a new phase with using R in my Trust so I thought I’d outline the direction of travel, to see if it chimes with anyone else and just to keep people up to date about what we’re doing. diff --git a/content/post/2020-06-10-rstudio-connect-behind-the-firewall.md b/content/post/2020-06-10-rstudio-connect-behind-the-firewall.md index 27edd92..d3c90b8 100644 --- a/content/post/2020-06-10-rstudio-connect-behind-the-firewall.md +++ b/content/post/2020-06-10-rstudio-connect-behind-the-firewall.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2020-06-10T16:18:43Z" -guid: http://chrisbeeley.net/?p=1388 -id: 1388 title: RStudio Connect behind the firewall -url: /?p=1388 --- This is part II of what would otherwise have been a far-too-long post about configuring RStudio Connect. A bit of back story, particularly for those of you who might have hit this from a Google search (which does happen, JetPack tells me) and don’t know who the heck I am and what I do all day. Here’s what I said in part I: diff --git a/content/post/2020-06-10-rstudio-connect-in-the-cloud.md b/content/post/2020-06-10-rstudio-connect-in-the-cloud.md index 80c2296..23dcc61 100644 --- a/content/post/2020-06-10-rstudio-connect-in-the-cloud.md +++ b/content/post/2020-06-10-rstudio-connect-in-the-cloud.md @@ -3,10 +3,7 @@ author: chrisbeeley categories: - Uncategorized date: "2020-06-10T16:09:06Z" -guid: http://chrisbeeley.net/?p=1380 -id: 1380 title: RStudio Connect in the cloud -url: /?p=1380 --- I’ve been using RStudio stuff on the server for a long time. I started using Shiny community edition back in 2013 for an application that is totally open and so doesn’t need authenticating. Then two years ago I started deploying Shiny applications that people authenticated to behind our Trust firewall using Shiny Pro. I have wanted to use RStudio Connect for a long time but it was hard to get the funding together for it given how things are with austerity since the banking crisis. diff --git a/content/post/2024-08-06-strategy.md b/content/post/2024-08-06-strategy.md new file mode 100644 index 0000000..e7e5b6d --- /dev/null +++ b/content/post/2024-08-06-strategy.md @@ -0,0 +1,31 @@ +--- +title: "Strategy" +date: 2024-06-18T14:05:57+01:00 +tags: [] +featured_image: "" +description: "" +--- + +Another one in my series of "Wot I reckon" posts based on no science or evidence at all, just me trying to figure stuff out. So proceed at your own risk. + +This post is a bit more dangerous than the previous posts I wrote (for me, I mean) because it may get a little bit ranty in the middle (which I will try to avoid) but also because I don't think it really paints me in the best light, or certainly the old me it doesn't paint in a good light. And for all I know this perspective is unique to me and everyone else got it first time. If so, this is just a letter to my past self, but I can't see the harm in that. + +I worked for the same NHS organisation for a long time. Different jobs, same organisation. I should say this is not aimed at them or individuals there at all. I think I've observed this everywhere I looked, but I saw it closest in my old organisation. So from time to time my organisation would publish a "Strategy" and there would be all this hoo-ha about it and meetings and consultations (public and organisational). They would publish these incredibly concise versions of it that would basically say "We're going to provide high quality clinical care- but not only that- in a cost effective way too!". And my eyes would roll out of my sockets and under my keyboard and I would just carry on doing whatever I was doing before that had nothing to do with the strategy. I held the word strategy in complete disdain, it seemed to be a weasel word for "We're going to do what we did last year but dress it up a bit". For a long time the stuff I was interested in, digital, data, and analytics didn't have a strategy. When it finally did it again suffered the same problem of just saying obvious stuff anybody would do. Upgrade the databases. Cross team collaboration. ChatGPT could have written it just as well. + +And going from the specific to the general other strategies I've seen haven't engaged me at all. Most just seem to be obvious generalities dressed up, lowest common denominator stuff that will get through a committee. I'm going to make three criticisms of the strategers (them) and the stratagees (myself and colleagues). + +The first problem is that insufficient effort is made to engage people in the detail of the strategy. Nice headlines are shared, that I suppose are supposed to make you feel warm and fuzzy. And people who know about the strategy and care about it will think "Ooh yes, what a good strategy". But all the people like me who don't know anything about it and don't yet care just see all this wooly jargon and wander off. More effort needs to be given over to why it matters- what are the alternatives? What will happen if we don't do that? What data is there? I realise now too late that good strategies will have that in the background, but hidden away. Show it to us. Sell me on it. Don't think that I'll just fall in love with some cosy words and go back to my desk with renewed vigour. + +The second problem is related to the first, which is that there is no frank discussions of the trade offs in the strategy. Everything is always optimal. Whenever we reorganised services so they cost less it was always (supposedly) true that this new way of working was more clinically effective. Be honest. There are trade offs. You can either tell me what they are or don't and I'll resort to guessing. + +The third problem is people like me, and this is where it really is a letter to my younger self. It isn't rational to suppose that a group of apparently intelligent people would engage in such a lot of activity if it wasn't worthwhile. I should have had a bit of faith that there was a bit more to this process and tried to get at the detail that I wanted rather than just laughing into my latte and going back to writing code. + +So I want to make a plea to those writing and implementing strategy to have a bit more faith in the intelligence of their workforce and to do more to show the detailed reasoning behind the strategy and be honest about the trade offs. And I want to make a plea to people like me, analysts I'm talking about, to stop being so cynical about everything and look at what the other half are doing with a bit more interest and a bit more faith. + +This may all be nonsense, I'm really not sure. It could just be me that thinks this way. But in case you are a cynical analyst reading this (and stay cynical, naturally- some strategies are stupid and rightly induce cynicism) I want to tell one story that really made me think about how this could be done. NVidia is now the world's second largest company with a value of three trillion dollars. They were ideally placed to sell chips for AI applications and the explosion of AI in recent years has massively increased the value of the company. But this success is not accidental. NVidia invested in [CUDA](https://en.wikipedia.org/wiki/CUDA) in 2006. Even in 2015 it was described as [“...investing in zero billion dollar markets"](https://www.sequoiacap.com/podcast/crucible-moments-nvidia/#the-pivot-to-ai). + +Committing to AI computing was described by the CEO of NVidia as: + +> This was a giant pivot for our company. We’re adding cost, we’re adding people, we have to learn new skills. It took our attention away from our normal day-to-day competition in computer graphics and gaming. The company’s focus was steered away from its core business. And it wasn’t just in one place, it’s all over the company. It was a wholesale pivot in this new direction. + +This strategy was bold and new, there were clear trade offs, and it affected the business of NVidia at every level. They had no way of knowing ahead of time whether it would affect things for good or ill. And clearly it has paid off massively, not just in terms of share price but in terms of useful stuff being done in AI. So now when I look at strategy I think of NVidia and I think one simple idea can revolutionise a business. \ No newline at end of file diff --git a/public/404.html b/public/404.html index 15d8a7d..e235703 100644 --- a/public/404.html +++ b/public/404.html @@ -1,19 +1,20 @@ - + - + + @@ -21,15 +22,19 @@ - + + + + - + + @@ -82,7 +87,7 @@