diff --git a/.claude/commands/new-post.md b/.claude/commands/new-post.md index 5598782ca..fcce93760 100644 --- a/.claude/commands/new-post.md +++ b/.claude/commands/new-post.md @@ -53,7 +53,7 @@ git checkout -b blog/ ## Step 4: Scaffold the post -New posts go at the top level: `content/blog//`. The subfolders (`tidyverse/`, `shiny/`, `quarto/`, `ai/`, etc.) are reserved for ported legacy content — never scaffold a new post into one, even if `source` is set. The `source` frontmatter field controls which project blog listing the post appears on; it does not affect folder placement. +New posts go at the top level: `content/blog//`. The `content/blog/ported/` tree is reserved for posts ported from legacy blogs — never scaffold a new post in there, even if `source` is set. The `source` frontmatter field controls which project blog listing the post appears on; it does not affect folder placement. Description: "Scaffolding the post folder and frontmatter from the blog archetype" diff --git a/content/blog/CLAUDE.md b/content/blog/CLAUDE.md index 4b4964119..06dd873b1 100644 --- a/content/blog/CLAUDE.md +++ b/content/blog/CLAUDE.md @@ -104,8 +104,8 @@ Each entry in the JSON array has: ```json { - "md_path": "content/blog/tidyverse/my-post/index.md", - "source_path": "content/blog/tidyverse/my-post/index.qmd", // null if no source file + "md_path": "content/blog/ported/tidyverse/my-post/index.md", + "source_path": "content/blog/ported/tidyverse/my-post/index.qmd", // null if no source file "frontmatter": { "title": "My Post", "date": "2025-01-15", diff --git a/content/blog/_authoring-guide.md b/content/blog/_authoring-guide.md index e4c901db2..58f5177d9 100644 --- a/content/blog/_authoring-guide.md +++ b/content/blog/_authoring-guide.md @@ -12,7 +12,7 @@ If you're using Claude Code, the `/new-post` skill will handle scaffolding, fron New posts go at the top level: `content/blog/my-post-slug/`. -The subfolders (`quarto/`, `tidyverse/`, `shiny/`, `ai/`, etc.) contain ported legacy content — don't use them for new posts. +Ported posts from legacy blogs live under `content/blog/ported//` — never scaffold a new post in there. New posts always go at the top level of `content/blog/`. Create a new post with: diff --git a/content/blog/_editing-ported-posts.md b/content/blog/_editing-ported-posts.md index 76365f77f..4a0609efc 100644 --- a/content/blog/_editing-ported-posts.md +++ b/content/blog/_editing-ported-posts.md @@ -65,7 +65,7 @@ For quick fixes, edit the `.md` file directly. If you plan to re-render, fix the **Link guidelines:** - Use **absolute URLs** for external sites: `https://shiny.posit.co/r/getstarted/` -- Use **site-root paths** for internal blog links: `/blog/shiny/foo/` +- Use **permalink-form paths** for internal blog links: `/blog/YYYY-MM-DD_/` (see `_authoring-guide.md`). Don't use content-directory paths like `/blog/ported///` — those break if posts are reorganized. - Never use `https://posit.co/blog/...` for internal links — that's a different site - In source files, avoid relative paths like `../` — they break when posts move @@ -84,22 +84,22 @@ Some blogs have shared virtual environments for rendering posts with executable | Blog | R (renv) | Python (uv) | |------|----------|-------------| -| `content/blog/ai/` | Yes | — | -| `content/blog/shiny/` | Yes | Yes | -| `content/blog/great-tables/` | — | Yes | -| `content/blog/pointblank/` | — | Yes | -| `content/blog/plotnine/` | — | Yes | +| `content/blog/ported/ai/` | Yes | — | +| `content/blog/ported/shiny/` | Yes | Yes | +| `content/blog/ported/great-tables/` | — | Yes | +| `content/blog/ported/pointblank/` | — | Yes | +| `content/blog/ported/plotnine/` | — | Yes | **To render with the environment:** ```bash # Python (uv) -cd content/blog/ +cd content/blog/ported/ uv sync uv run quarto render /index.qmd --to hugo-md # R (renv) - start R from the blog directory -cd content/blog/ +cd content/blog/ported/ R # then in R: renv::restore() ``` @@ -115,7 +115,7 @@ R ## Blog-specific notes -### AI blog (`content/blog/ai/`) +### AI blog (`content/blog/ported/ai/`) The AI blog has the biggest gap between source and rendered frontmatter. Source files typically have: - `author:` with name/affiliation/url structure @@ -125,15 +125,15 @@ The AI blog has the biggest gap between source and rendered frontmatter. Source **If re-rendering:** Posts with bibliographies won't get a "References" heading without a full Quarto project setup. -### Tidyverse blog (`content/blog/tidyverse/`) +### Tidyverse blog (`content/blog/ported/tidyverse/`) Source `.Rmd` files have `output: hugodown::hugo_document`. Remove this before rendering with Quarto. -### Education blog (`content/blog/education/`) +### Education blog (`content/blog/ported/education/`) Uses `.Rmarkdown` (source) and `.markdown` (rendered). These are usually well-synced. -### Shiny blog (`content/blog/shiny/`) +### Shiny blog (`content/blog/ported/shiny/`) `.qmd` and `.md` files are usually in sync. Watch for `imagealt` vs `image-alt`. diff --git a/content/blog/_porting-notes.md b/content/blog/_porting-notes.md index 721de76e4..0be55bb58 100644 --- a/content/blog/_porting-notes.md +++ b/content/blog/_porting-notes.md @@ -34,11 +34,11 @@ Shallow clones of all legacy blog repos are in `/_external-sources/` (ignored by For posts with a `.qmd` source (Quarto, Shiny, Great Tables, etc.): -1. Copy the `.qmd` and any assets (images, data files) from `_external-sources/` into the new post folder under `content/blog/`. +1. Copy the `.qmd` and any assets (images, data files) from `_external-sources/` into the new post folder under `content/blog/ported//`. 2. **Commit the copied files before editing.** This makes it easy to audit changes and see exactly what was modified from the original source. 3. Edit the frontmatter **in the `.qmd`**: replace `author` with `people`, and add `source`, `ported_from`, `port_status`, `software`, `languages`, `topics`. `source` should always match `ported_from` — it powers the `blog/q/` collection pages for each legacy blog. Move any original `categories` values into `tags` (then remove `categories`). If the folder name contains a date prefix (e.g. `2026-04-06-april-newsletter`), add a `slug` without the date (e.g. `slug: april-newsletter`) to avoid the date appearing twice in the permalink. 4. Fix links in the `.qmd`: - - Internal blog cross-links: `/docs/blog/posts//` → `/blog/quarto//` + - Internal blog cross-links: use the permalink form `/blog/YYYY-MM-DD_/` (see `_authoring-guide.md`). Don't use content-directory paths like `/blog/ported///` — those break if posts are reorganized. - Quarto docs links: `/docs/...something.qmd` → `https://quarto.org/docs/...something.html` (note: `.qmd` → `.html`, not just prefixing the domain — fragment URLs like `.qmd#anchor` need manual attention as regex replacements can miss them) 5. Run `quarto render index.qmd` from the post folder to generate `index.md`. 6. Commit both `index.qmd` and `index.md`. @@ -47,21 +47,23 @@ Don't write the `.md` by hand — always render from the `.qmd` so the two stay ## Folder structure -Posts are organized by source blog: +Ported posts live under `content/blog/ported/`, organized by source blog: ``` content/blog/ -├── tidyverse/ # tidyverse.org posts -│ ├── 2017/ -│ ├── 2018/ +├── ported/ +│ ├── tidyverse/ # tidyverse.org posts +│ │ ├── 2017/ +│ │ ├── 2018/ +│ │ └── ... +│ ├── education/ # education.rstudio.com posts +│ │ ├── 2019-09-24-welcome/ +│ │ └── ... │ └── ... -├── education/ # education.rstudio.com posts -│ ├── 2019-09-24-welcome/ -│ └── ... -└── ... # other posts (not ported) +└── ... # top-level: new posts only ``` -This preserves original folder structures and makes it easy to track porting progress. +This preserves the original folder structures of each source blog and keeps new posts separate from ported content. URLs are unaffected — the blog permalink template uses `date` + `slug`/`basename`, not the section path. ## Cross-blog links @@ -129,11 +131,11 @@ These exist but need implementation: | Post | Issue | |------|-------| -| quarto/2024-07-02-beautiful-tables-in-typst | Complex freeze structure, needs manual porting | -| education/2019-09-24-welcome | Very blog-specific ("Welcome to education.rstudio.com") | -| education/2019-08-26-learner-personas | Was draft in source | -| ai/2018-07-17-activity-detection | Blank on legacy blog, marked as draft | -| ai/2017-09-06-keras-for-r | Broken external image (keras.rstudio.com) | +| ported/quarto/2024-07-02-beautiful-tables-in-typst | Complex freeze structure, needs manual porting | +| ported/education/2019-09-24-welcome | Very blog-specific ("Welcome to education.rstudio.com") | +| ported/education/2019-08-26-learner-personas | Was draft in source | +| ported/ai/2018-07-17-activity-detection | Blank on legacy blog, marked as draft | +| ported/ai/2017-09-06-keras-for-r | Broken external image (keras.rstudio.com) | ## Archived porting scripts diff --git a/content/blog/ai/.Rprofile b/content/blog/ported/ai/.Rprofile similarity index 100% rename from content/blog/ai/.Rprofile rename to content/blog/ported/ai/.Rprofile diff --git a/content/blog/ai/2017-08-17-tensorflow-v13-released/index.Rmd b/content/blog/ported/ai/2017-08-17-tensorflow-v13-released/index.Rmd similarity index 100% rename from content/blog/ai/2017-08-17-tensorflow-v13-released/index.Rmd rename to content/blog/ported/ai/2017-08-17-tensorflow-v13-released/index.Rmd diff --git a/content/blog/ai/2017-08-17-tensorflow-v13-released/index.md b/content/blog/ported/ai/2017-08-17-tensorflow-v13-released/index.md similarity index 100% rename from content/blog/ai/2017-08-17-tensorflow-v13-released/index.md rename to content/blog/ported/ai/2017-08-17-tensorflow-v13-released/index.md diff --git a/content/blog/ai/2017-08-17-tensorflow-v13-released/tensorflow-logo.png b/content/blog/ported/ai/2017-08-17-tensorflow-v13-released/tensorflow-logo.png similarity index 100% rename from content/blog/ai/2017-08-17-tensorflow-v13-released/tensorflow-logo.png rename to content/blog/ported/ai/2017-08-17-tensorflow-v13-released/tensorflow-logo.png diff --git a/content/blog/ai/2017-08-17-tensorflow-v13-released/tensorflow-logo.png.original b/content/blog/ported/ai/2017-08-17-tensorflow-v13-released/tensorflow-logo.png.original similarity index 100% rename from content/blog/ai/2017-08-17-tensorflow-v13-released/tensorflow-logo.png.original rename to content/blog/ported/ai/2017-08-17-tensorflow-v13-released/tensorflow-logo.png.original diff --git a/content/blog/ai/2017-08-17-tensorflow-v13-released/thumbnail.png b/content/blog/ported/ai/2017-08-17-tensorflow-v13-released/thumbnail.png similarity index 100% rename from content/blog/ai/2017-08-17-tensorflow-v13-released/thumbnail.png rename to content/blog/ported/ai/2017-08-17-tensorflow-v13-released/thumbnail.png diff --git a/content/blog/ai/2017-08-17-tensorflow-v13-released/thumbnail.png.original b/content/blog/ported/ai/2017-08-17-tensorflow-v13-released/thumbnail.png.original similarity index 100% rename from content/blog/ai/2017-08-17-tensorflow-v13-released/thumbnail.png.original rename to content/blog/ported/ai/2017-08-17-tensorflow-v13-released/thumbnail.png.original diff --git a/content/blog/ai/2017-08-31-tensorflow-estimators-for-r/index.Rmd b/content/blog/ported/ai/2017-08-31-tensorflow-estimators-for-r/index.Rmd similarity index 100% rename from content/blog/ai/2017-08-31-tensorflow-estimators-for-r/index.Rmd rename to content/blog/ported/ai/2017-08-31-tensorflow-estimators-for-r/index.Rmd diff --git a/content/blog/ai/2017-08-31-tensorflow-estimators-for-r/index.md b/content/blog/ported/ai/2017-08-31-tensorflow-estimators-for-r/index.md similarity index 100% rename from content/blog/ai/2017-08-31-tensorflow-estimators-for-r/index.md rename to content/blog/ported/ai/2017-08-31-tensorflow-estimators-for-r/index.md diff --git a/content/blog/ai/2017-08-31-tensorflow-estimators-for-r/tensorflow-architecture.png b/content/blog/ported/ai/2017-08-31-tensorflow-estimators-for-r/tensorflow-architecture.png similarity index 100% rename from content/blog/ai/2017-08-31-tensorflow-estimators-for-r/tensorflow-architecture.png rename to content/blog/ported/ai/2017-08-31-tensorflow-estimators-for-r/tensorflow-architecture.png diff --git a/content/blog/ai/2017-08-31-tensorflow-estimators-for-r/thumbnail.png b/content/blog/ported/ai/2017-08-31-tensorflow-estimators-for-r/thumbnail.png similarity index 100% rename from content/blog/ai/2017-08-31-tensorflow-estimators-for-r/thumbnail.png rename to content/blog/ported/ai/2017-08-31-tensorflow-estimators-for-r/thumbnail.png diff --git a/content/blog/ai/2017-09-06-keras-for-r/index.Rmd b/content/blog/ported/ai/2017-09-06-keras-for-r/index.Rmd similarity index 100% rename from content/blog/ai/2017-09-06-keras-for-r/index.Rmd rename to content/blog/ported/ai/2017-09-06-keras-for-r/index.Rmd diff --git a/content/blog/ai/2017-09-06-keras-for-r/index.md b/content/blog/ported/ai/2017-09-06-keras-for-r/index.md similarity index 100% rename from content/blog/ai/2017-09-06-keras-for-r/index.md rename to content/blog/ported/ai/2017-09-06-keras-for-r/index.md diff --git a/content/blog/ai/2017-09-06-keras-for-r/preview.png b/content/blog/ported/ai/2017-09-06-keras-for-r/preview.png similarity index 100% rename from content/blog/ai/2017-09-06-keras-for-r/preview.png rename to content/blog/ported/ai/2017-09-06-keras-for-r/preview.png diff --git a/content/blog/ai/2017-09-06-keras-for-r/thumbnail.png b/content/blog/ported/ai/2017-09-06-keras-for-r/thumbnail.png similarity index 100% rename from content/blog/ai/2017-09-06-keras-for-r/thumbnail.png rename to content/blog/ported/ai/2017-09-06-keras-for-r/thumbnail.png diff --git a/content/blog/ai/2017-10-04-tfruns/index.Rmd b/content/blog/ported/ai/2017-10-04-tfruns/index.Rmd similarity index 100% rename from content/blog/ai/2017-10-04-tfruns/index.Rmd rename to content/blog/ported/ai/2017-10-04-tfruns/index.Rmd diff --git a/content/blog/ai/2017-10-04-tfruns/index.md b/content/blog/ported/ai/2017-10-04-tfruns/index.md similarity index 100% rename from content/blog/ai/2017-10-04-tfruns/index.md rename to content/blog/ported/ai/2017-10-04-tfruns/index.md diff --git a/content/blog/ai/2017-10-04-tfruns/preview.png b/content/blog/ported/ai/2017-10-04-tfruns/preview.png similarity index 100% rename from content/blog/ai/2017-10-04-tfruns/preview.png rename to content/blog/ported/ai/2017-10-04-tfruns/preview.png diff --git a/content/blog/ai/2017-10-04-tfruns/thumbnail.png b/content/blog/ported/ai/2017-10-04-tfruns/thumbnail.png similarity index 100% rename from content/blog/ai/2017-10-04-tfruns/thumbnail.png rename to content/blog/ported/ai/2017-10-04-tfruns/thumbnail.png diff --git a/content/blog/ai/2017-12-07-text-classification-with-keras/images/3_layer_network.png b/content/blog/ported/ai/2017-12-07-text-classification-with-keras/images/3_layer_network.png similarity index 100% rename from content/blog/ai/2017-12-07-text-classification-with-keras/images/3_layer_network.png rename to content/blog/ported/ai/2017-12-07-text-classification-with-keras/images/3_layer_network.png diff --git a/content/blog/ai/2017-12-07-text-classification-with-keras/images/relu.png b/content/blog/ported/ai/2017-12-07-text-classification-with-keras/images/relu.png similarity index 100% rename from content/blog/ai/2017-12-07-text-classification-with-keras/images/relu.png rename to content/blog/ported/ai/2017-12-07-text-classification-with-keras/images/relu.png diff --git a/content/blog/ai/2017-12-07-text-classification-with-keras/images/sigmoid.png b/content/blog/ported/ai/2017-12-07-text-classification-with-keras/images/sigmoid.png similarity index 100% rename from content/blog/ai/2017-12-07-text-classification-with-keras/images/sigmoid.png rename to content/blog/ported/ai/2017-12-07-text-classification-with-keras/images/sigmoid.png diff --git a/content/blog/ai/2017-12-07-text-classification-with-keras/images/training-history.png b/content/blog/ported/ai/2017-12-07-text-classification-with-keras/images/training-history.png similarity index 100% rename from content/blog/ai/2017-12-07-text-classification-with-keras/images/training-history.png rename to content/blog/ported/ai/2017-12-07-text-classification-with-keras/images/training-history.png diff --git a/content/blog/ai/2017-12-07-text-classification-with-keras/index.Rmd b/content/blog/ported/ai/2017-12-07-text-classification-with-keras/index.Rmd similarity index 100% rename from content/blog/ai/2017-12-07-text-classification-with-keras/index.Rmd rename to content/blog/ported/ai/2017-12-07-text-classification-with-keras/index.Rmd diff --git a/content/blog/ai/2017-12-07-text-classification-with-keras/index.md b/content/blog/ported/ai/2017-12-07-text-classification-with-keras/index.md similarity index 100% rename from content/blog/ai/2017-12-07-text-classification-with-keras/index.md rename to content/blog/ported/ai/2017-12-07-text-classification-with-keras/index.md diff --git a/content/blog/ai/2017-12-07-text-classification-with-keras/thumbnail.png b/content/blog/ported/ai/2017-12-07-text-classification-with-keras/thumbnail.png similarity index 100% rename from content/blog/ai/2017-12-07-text-classification-with-keras/thumbnail.png rename to content/blog/ported/ai/2017-12-07-text-classification-with-keras/thumbnail.png diff --git a/content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_feature_extraction_with_augmentation-r.png b/content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_feature_extraction_with_augmentation-r.png similarity index 100% rename from content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_feature_extraction_with_augmentation-r.png rename to content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_feature_extraction_with_augmentation-r.png diff --git a/content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_feature_extraction_with_augmentation-r.png.original b/content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_feature_extraction_with_augmentation-r.png.original similarity index 100% rename from content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_feature_extraction_with_augmentation-r.png.original rename to content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_feature_extraction_with_augmentation-r.png.original diff --git a/content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_fine_tuning-r.png b/content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_fine_tuning-r.png similarity index 100% rename from content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_fine_tuning-r.png rename to content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_fine_tuning-r.png diff --git a/content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_fine_tuning-r.png.original b/content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_fine_tuning-r.png.original similarity index 100% rename from content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_fine_tuning-r.png.original rename to content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/5-3_metrics_plot_fine_tuning-r.png.original diff --git a/content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/cats_vs_dogs_samples.jpg b/content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/cats_vs_dogs_samples.jpg similarity index 100% rename from content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/cats_vs_dogs_samples.jpg rename to content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/cats_vs_dogs_samples.jpg diff --git a/content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/swapping_fc_classifier.png b/content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/swapping_fc_classifier.png similarity index 100% rename from content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/swapping_fc_classifier.png rename to content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/swapping_fc_classifier.png diff --git a/content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/vgg16_fine_tuning.png b/content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/vgg16_fine_tuning.png similarity index 100% rename from content/blog/ai/2017-12-14-image-classification-on-small-datasets/images/vgg16_fine_tuning.png rename to content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/images/vgg16_fine_tuning.png diff --git a/content/blog/ai/2017-12-14-image-classification-on-small-datasets/index.Rmd b/content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/index.Rmd similarity index 100% rename from content/blog/ai/2017-12-14-image-classification-on-small-datasets/index.Rmd rename to content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/index.Rmd diff --git a/content/blog/ai/2017-12-14-image-classification-on-small-datasets/index.md b/content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/index.md similarity index 100% rename from content/blog/ai/2017-12-14-image-classification-on-small-datasets/index.md rename to content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/index.md diff --git a/content/blog/ai/2017-12-14-image-classification-on-small-datasets/thumbnail.png b/content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/thumbnail.png similarity index 100% rename from content/blog/ai/2017-12-14-image-classification-on-small-datasets/thumbnail.png rename to content/blog/ported/ai/2017-12-14-image-classification-on-small-datasets/thumbnail.png diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_first_ml_baseline-r.png b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_first_ml_baseline-r.png similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_first_ml_baseline-r.png rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_first_ml_baseline-r.png diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_first_ml_baseline-r.png.original b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_first_ml_baseline-r.png.original similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_first_ml_baseline-r.png.original rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_first_ml_baseline-r.png.original diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_baseline-r.png b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_baseline-r.png similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_baseline-r.png rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_baseline-r.png diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_baseline-r.png.original b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_baseline-r.png.original similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_baseline-r.png.original rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_baseline-r.png.original diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_dropout-r.png b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_dropout-r.png similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_dropout-r.png rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_dropout-r.png diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_dropout-r.png.original b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_dropout-r.png.original similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_dropout-r.png.original rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_gru_dropout-r.png.original diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_reversed_gru-r.png b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_reversed_gru-r.png similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_reversed_gru-r.png rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_reversed_gru-r.png diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_reversed_gru-r.png.original b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_reversed_gru-r.png.original similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_reversed_gru-r.png.original rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_reversed_gru-r.png.original diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_stacked_gru-r.png b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_stacked_gru-r.png similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_stacked_gru-r.png rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_stacked_gru-r.png diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_stacked_gru-r.png.original b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_stacked_gru-r.png.original similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_stacked_gru-r.png.original rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/6-3_loss_plot_stacked_gru-r.png.original diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/bidirectional_rnn.png b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/bidirectional_rnn.png similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/bidirectional_rnn.png rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/bidirectional_rnn.png diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp-r.png b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp-r.png similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp-r.png rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp-r.png diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp-r.png.original b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp-r.png.original similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp-r.png.original rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp-r.png.original diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp_first_10_days-r.png b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp_first_10_days-r.png similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp_first_10_days-r.png rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp_first_10_days-r.png diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp_first_10_days-r.png.original b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp_first_10_days-r.png.original similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp_first_10_days-r.png.original rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/images/jena_temp_first_10_days-r.png.original diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/index.Rmd b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/index.Rmd similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/index.Rmd rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/index.Rmd diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/index.md b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/index.md similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/index.md rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/index.md diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/thumbnail.png b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/thumbnail.png similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/thumbnail.png rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/thumbnail.png diff --git a/content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/thumbnail.png.original b/content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/thumbnail.png.original similarity index 100% rename from content/blog/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/thumbnail.png.original rename to content/blog/ported/ai/2017-12-20-time-series-forecasting-with-recurrent-neural-networks/thumbnail.png.original diff --git a/content/blog/ai/2017-12-22-word-embeddings-with-keras/index.Rmd b/content/blog/ported/ai/2017-12-22-word-embeddings-with-keras/index.Rmd similarity index 100% rename from content/blog/ai/2017-12-22-word-embeddings-with-keras/index.Rmd rename to content/blog/ported/ai/2017-12-22-word-embeddings-with-keras/index.Rmd diff --git a/content/blog/ai/2017-12-22-word-embeddings-with-keras/index.md b/content/blog/ported/ai/2017-12-22-word-embeddings-with-keras/index.md similarity index 100% rename from content/blog/ai/2017-12-22-word-embeddings-with-keras/index.md rename to content/blog/ported/ai/2017-12-22-word-embeddings-with-keras/index.md diff --git a/content/blog/ai/2017-12-22-word-embeddings-with-keras/thumbnail.png b/content/blog/ported/ai/2017-12-22-word-embeddings-with-keras/thumbnail.png similarity index 100% rename from content/blog/ai/2017-12-22-word-embeddings-with-keras/thumbnail.png rename to content/blog/ported/ai/2017-12-22-word-embeddings-with-keras/thumbnail.png diff --git a/content/blog/ai/2017-12-22-word-embeddings-with-keras/word-embeddings-with-keras.png b/content/blog/ported/ai/2017-12-22-word-embeddings-with-keras/word-embeddings-with-keras.png similarity index 100% rename from content/blog/ai/2017-12-22-word-embeddings-with-keras/word-embeddings-with-keras.png rename to content/blog/ported/ai/2017-12-22-word-embeddings-with-keras/word-embeddings-with-keras.png diff --git a/content/blog/ai/2018-01-09-keras-duplicate-questions-quora/index.Rmd b/content/blog/ported/ai/2018-01-09-keras-duplicate-questions-quora/index.Rmd similarity index 100% rename from content/blog/ai/2018-01-09-keras-duplicate-questions-quora/index.Rmd rename to content/blog/ported/ai/2018-01-09-keras-duplicate-questions-quora/index.Rmd diff --git a/content/blog/ai/2018-01-09-keras-duplicate-questions-quora/index.md b/content/blog/ported/ai/2018-01-09-keras-duplicate-questions-quora/index.md similarity index 100% rename from content/blog/ai/2018-01-09-keras-duplicate-questions-quora/index.md rename to content/blog/ported/ai/2018-01-09-keras-duplicate-questions-quora/index.md diff --git a/content/blog/ai/2018-01-09-keras-duplicate-questions-quora/keras-duplicate-questions-quora.png b/content/blog/ported/ai/2018-01-09-keras-duplicate-questions-quora/keras-duplicate-questions-quora.png similarity index 100% rename from content/blog/ai/2018-01-09-keras-duplicate-questions-quora/keras-duplicate-questions-quora.png rename to content/blog/ported/ai/2018-01-09-keras-duplicate-questions-quora/keras-duplicate-questions-quora.png diff --git a/content/blog/ai/2018-01-09-keras-duplicate-questions-quora/thumbnail.png b/content/blog/ported/ai/2018-01-09-keras-duplicate-questions-quora/thumbnail.png similarity index 100% rename from content/blog/ai/2018-01-09-keras-duplicate-questions-quora/thumbnail.png rename to content/blog/ported/ai/2018-01-09-keras-duplicate-questions-quora/thumbnail.png diff --git a/content/blog/ai/2018-01-10-r-interface-to-cloudml/images/cloudml.png b/content/blog/ported/ai/2018-01-10-r-interface-to-cloudml/images/cloudml.png similarity index 100% rename from content/blog/ai/2018-01-10-r-interface-to-cloudml/images/cloudml.png rename to content/blog/ported/ai/2018-01-10-r-interface-to-cloudml/images/cloudml.png diff --git a/content/blog/ai/2018-01-10-r-interface-to-cloudml/images/training-run.png b/content/blog/ported/ai/2018-01-10-r-interface-to-cloudml/images/training-run.png similarity index 100% rename from content/blog/ai/2018-01-10-r-interface-to-cloudml/images/training-run.png rename to content/blog/ported/ai/2018-01-10-r-interface-to-cloudml/images/training-run.png diff --git a/content/blog/ai/2018-01-10-r-interface-to-cloudml/index.Rmd b/content/blog/ported/ai/2018-01-10-r-interface-to-cloudml/index.Rmd similarity index 100% rename from content/blog/ai/2018-01-10-r-interface-to-cloudml/index.Rmd rename to content/blog/ported/ai/2018-01-10-r-interface-to-cloudml/index.Rmd diff --git a/content/blog/ai/2018-01-10-r-interface-to-cloudml/index.md b/content/blog/ported/ai/2018-01-10-r-interface-to-cloudml/index.md similarity index 100% rename from content/blog/ai/2018-01-10-r-interface-to-cloudml/index.md rename to content/blog/ported/ai/2018-01-10-r-interface-to-cloudml/index.md diff --git a/content/blog/ai/2018-01-10-r-interface-to-cloudml/thumbnail.png b/content/blog/ported/ai/2018-01-10-r-interface-to-cloudml/thumbnail.png similarity index 100% rename from content/blog/ai/2018-01-10-r-interface-to-cloudml/thumbnail.png rename to content/blog/ported/ai/2018-01-10-r-interface-to-cloudml/thumbnail.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/Artificial-Neural-Network-Architecture.jpg b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/Artificial-Neural-Network-Architecture.jpg similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/Artificial-Neural-Network-Architecture.jpg rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/Artificial-Neural-Network-Architecture.jpg diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_corrr.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_corrr.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_corrr.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_corrr.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_corrr.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_corrr.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_corrr.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_corrr.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_lime.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_lime.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_lime.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/customer_churn_analysis_lime.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-10-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-10-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-10-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-10-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-10-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-10-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-10-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-10-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-11-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-11-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-11-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-11-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-11-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-11-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-11-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-11-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-12-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-12-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-12-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-12-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-12-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-12-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-12-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-12-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-14-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-14-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-14-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-14-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-14-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-14-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-14-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-14-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-23-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-23-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-23-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-23-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-23-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-23-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-23-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-23-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-41-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-41-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-41-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-41-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-41-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-41-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-41-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-41-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-42-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-42-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-42-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-42-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-42-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-42-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-42-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-42-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-44-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-44-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-44-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-44-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-44-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-44-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-44-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-44-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-45-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-45-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-45-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-45-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-45-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-45-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-45-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-45-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-46-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-46-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-46-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-46-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-46-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-46-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-46-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-46-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-47-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-47-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-47-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-47-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-47-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-47-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-47-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-47-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-48-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-48-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-48-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-48-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-48-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-48-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-48-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-48-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-49-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-49-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-49-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-49-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-49-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-49-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-49-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-49-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-50-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-50-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-50-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-50-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-50-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-50-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-50-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-50-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-9-1.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-9-1.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-9-1.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-9-1.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-9-1.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-9-1.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-9-1.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/figure-html/unnamed-chunk-9-1.png.original diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/images/shiny-application.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/images/shiny-application.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/images/shiny-application.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/images/shiny-application.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/index.Rmd b/content/blog/ported/ai/2018-01-11-keras-customer-churn/index.Rmd similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/index.Rmd rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/index.Rmd diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/index.md b/content/blog/ported/ai/2018-01-11-keras-customer-churn/index.md similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/index.md rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/index.md diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/thumbnail.png b/content/blog/ported/ai/2018-01-11-keras-customer-churn/thumbnail.png similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/thumbnail.png rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/thumbnail.png diff --git a/content/blog/ai/2018-01-11-keras-customer-churn/thumbnail.png.original b/content/blog/ported/ai/2018-01-11-keras-customer-churn/thumbnail.png.original similarity index 100% rename from content/blog/ai/2018-01-11-keras-customer-churn/thumbnail.png.original rename to content/blog/ported/ai/2018-01-11-keras-customer-churn/thumbnail.png.original diff --git a/content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/change_breaks-1.png b/content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/change_breaks-1.png similarity index 100% rename from content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/change_breaks-1.png rename to content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/change_breaks-1.png diff --git a/content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/customplot-1.png b/content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/customplot-1.png similarity index 100% rename from content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/customplot-1.png rename to content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/customplot-1.png diff --git a/content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/densities-1.png b/content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/densities-1.png similarity index 100% rename from content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/densities-1.png rename to content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/densities-1.png diff --git a/content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/first_model-1.png b/content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/first_model-1.png similarity index 100% rename from content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/first_model-1.png rename to content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/first_model-1.png diff --git a/content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/mentionsplot-1.png b/content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/mentionsplot-1.png similarity index 100% rename from content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/mentionsplot-1.png rename to content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/images/mentionsplot-1.png diff --git a/content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/index.Rmd b/content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/index.Rmd similarity index 100% rename from content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/index.Rmd rename to content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/index.Rmd diff --git a/content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/index.md b/content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/index.md similarity index 100% rename from content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/index.md rename to content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/index.md diff --git a/content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/thumbnail.png b/content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/thumbnail.png similarity index 100% rename from content/blog/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/thumbnail.png rename to content/blog/ported/ai/2018-01-24-analyzing-rtweet-data-with-kerasformula/thumbnail.png diff --git a/content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/cloudml_report.png b/content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/cloudml_report.png similarity index 100% rename from content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/cloudml_report.png rename to content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/cloudml_report.png diff --git a/content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/joy-division.png b/content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/joy-division.png similarity index 100% rename from content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/joy-division.png rename to content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/joy-division.png diff --git a/content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/money.png b/content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/money.png similarity index 100% rename from content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/money.png rename to content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/money.png diff --git a/content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/precision.png b/content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/precision.png similarity index 100% rename from content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/precision.png rename to content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/precision.png diff --git a/content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/preview.png b/content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/preview.png similarity index 100% rename from content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/preview.png rename to content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/preview.png diff --git a/content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/recall.png b/content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/recall.png similarity index 100% rename from content/blog/ai/2018-01-24-keras-fraud-autoencoder/images/recall.png rename to content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/images/recall.png diff --git a/content/blog/ai/2018-01-24-keras-fraud-autoencoder/index.Rmd b/content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/index.Rmd similarity index 100% rename from content/blog/ai/2018-01-24-keras-fraud-autoencoder/index.Rmd rename to content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/index.Rmd diff --git a/content/blog/ai/2018-01-24-keras-fraud-autoencoder/index.md b/content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/index.md similarity index 100% rename from content/blog/ai/2018-01-24-keras-fraud-autoencoder/index.md rename to content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/index.md diff --git a/content/blog/ai/2018-01-24-keras-fraud-autoencoder/thumbnail.png b/content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/thumbnail.png similarity index 100% rename from content/blog/ai/2018-01-24-keras-fraud-autoencoder/thumbnail.png rename to content/blog/ported/ai/2018-01-24-keras-fraud-autoencoder/thumbnail.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_01_test_training_over_epochs.png b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_01_test_training_over_epochs.png similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_01_test_training_over_epochs.png rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_01_test_training_over_epochs.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_01_test_training_over_epochs.png.original b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_01_test_training_over_epochs.png.original similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_01_test_training_over_epochs.png.original rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_01_test_training_over_epochs.png.original diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_02_results_3_by_3_confusion_matrix.png b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_02_results_3_by_3_confusion_matrix.png similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_02_results_3_by_3_confusion_matrix.png rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_02_results_3_by_3_confusion_matrix.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_02_results_3_by_3_confusion_matrix.png.original b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_02_results_3_by_3_confusion_matrix.png.original similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_02_results_3_by_3_confusion_matrix.png.original rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/01_ffn_02_results_3_by_3_confusion_matrix.png.original diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_01_test_training_over_epochs.png b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_01_test_training_over_epochs.png similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_01_test_training_over_epochs.png rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_01_test_training_over_epochs.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_01_test_training_over_epochs.png.original b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_01_test_training_over_epochs.png.original similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_01_test_training_over_epochs.png.original rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_01_test_training_over_epochs.png.original diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_02_results_3_by_3_confusion_matrix.png b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_02_results_3_by_3_confusion_matrix.png similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_02_results_3_by_3_confusion_matrix.png rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_02_results_3_by_3_confusion_matrix.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_02_results_3_by_3_confusion_matrix.png.original b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_02_results_3_by_3_confusion_matrix.png.original similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_02_results_3_by_3_confusion_matrix.png.original rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/02_cnn_02_results_3_by_3_confusion_matrix.png.original diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/03_rf_01_results_3_by_3_confusion_matrix.png b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/03_rf_01_results_3_by_3_confusion_matrix.png similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/03_rf_01_results_3_by_3_confusion_matrix.png rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/03_rf_01_results_3_by_3_confusion_matrix.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/03_rf_01_results_3_by_3_confusion_matrix.png.original b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/03_rf_01_results_3_by_3_confusion_matrix.png.original similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/03_rf_01_results_3_by_3_confusion_matrix.png.original rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/03_rf_01_results_3_by_3_confusion_matrix.png.original diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/Adoptive_T-cell_therapy.png b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/Adoptive_T-cell_therapy.png similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/Adoptive_T-cell_therapy.png rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/Adoptive_T-cell_therapy.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/ffn-training-history.png b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/ffn-training-history.png similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/ffn-training-history.png rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/ffn-training-history.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/sequence-motif.png b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/sequence-motif.png similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/sequence-motif.png rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/sequence-motif.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/visualize-encoding.png b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/visualize-encoding.png similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/images/visualize-encoding.png rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/images/visualize-encoding.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/index.Rmd b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/index.Rmd similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/index.Rmd rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/index.Rmd diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/index.md b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/index.md similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/index.md rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/index.md diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/thumbnail.png b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/thumbnail.png similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/thumbnail.png rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/thumbnail.png diff --git a/content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/thumbnail.png.original b/content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/thumbnail.png.original similarity index 100% rename from content/blog/ai/2018-01-29-dl-for-cancer-immunotherapy/thumbnail.png.original rename to content/blog/ported/ai/2018-01-29-dl-for-cancer-immunotherapy/thumbnail.png.original diff --git a/content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/lime_logo_small.jpg b/content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/lime_logo_small.jpg similarity index 100% rename from content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/lime_logo_small.jpg rename to content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/lime_logo_small.jpg diff --git a/content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-10-1.png b/content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-10-1.png similarity index 100% rename from content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-10-1.png rename to content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-10-1.png diff --git a/content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-2-1.png b/content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-2-1.png similarity index 100% rename from content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-2-1.png rename to content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-2-1.png diff --git a/content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-7-1.png b/content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-7-1.png similarity index 100% rename from content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-7-1.png rename to content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-7-1.png diff --git a/content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-7-2.png b/content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-7-2.png similarity index 100% rename from content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-7-2.png rename to content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-7-2.png diff --git a/content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-8-1.png b/content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-8-1.png similarity index 100% rename from content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-8-1.png rename to content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-8-1.png diff --git a/content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-9-1.png b/content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-9-1.png similarity index 100% rename from content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-9-1.png rename to content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/images/unnamed-chunk-9-1.png diff --git a/content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/index.Rmd b/content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/index.Rmd similarity index 100% rename from content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/index.Rmd rename to content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/index.Rmd diff --git a/content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/index.md b/content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/index.md similarity index 100% rename from content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/index.md rename to content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/index.md diff --git a/content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/thumbnail.png b/content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/thumbnail.png similarity index 100% rename from content/blog/ai/2018-03-09-lime-v04-the-kitten-picture-edition/thumbnail.png rename to content/blog/ported/ai/2018-03-09-lime-v04-the-kitten-picture-edition/thumbnail.png diff --git a/content/blog/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-machine-type.png b/content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-machine-type.png similarity index 100% rename from content/blog/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-machine-type.png rename to content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-machine-type.png diff --git a/content/blog/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-machine.png b/content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-machine.png similarity index 100% rename from content/blog/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-machine.png rename to content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-machine.png diff --git a/content/blog/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-mnist-cnn.png b/content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-mnist-cnn.png similarity index 100% rename from content/blog/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-mnist-cnn.png rename to content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-mnist-cnn.png diff --git a/content/blog/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-rstudio.png b/content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-rstudio.png similarity index 100% rename from content/blog/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-rstudio.png rename to content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-rstudio.png diff --git a/content/blog/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-rstudio.png.original b/content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-rstudio.png.original similarity index 100% rename from content/blog/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-rstudio.png.original rename to content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/images/paperspace-rstudio.png.original diff --git a/content/blog/ai/2018-04-02-rstudio-gpu-paperspace/index.Rmd b/content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/index.Rmd similarity index 100% rename from content/blog/ai/2018-04-02-rstudio-gpu-paperspace/index.Rmd rename to content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/index.Rmd diff --git a/content/blog/ai/2018-04-02-rstudio-gpu-paperspace/index.md b/content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/index.md similarity index 100% rename from content/blog/ai/2018-04-02-rstudio-gpu-paperspace/index.md rename to content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/index.md diff --git a/content/blog/ai/2018-04-02-rstudio-gpu-paperspace/thumbnail.png b/content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/thumbnail.png similarity index 100% rename from content/blog/ai/2018-04-02-rstudio-gpu-paperspace/thumbnail.png rename to content/blog/ported/ai/2018-04-02-rstudio-gpu-paperspace/thumbnail.png diff --git a/content/blog/ai/2018-06-06-simple-audio-classification-keras/Spectrogram-19thC.png b/content/blog/ported/ai/2018-06-06-simple-audio-classification-keras/Spectrogram-19thC.png similarity index 100% rename from content/blog/ai/2018-06-06-simple-audio-classification-keras/Spectrogram-19thC.png rename to content/blog/ported/ai/2018-06-06-simple-audio-classification-keras/Spectrogram-19thC.png diff --git a/content/blog/ai/2018-06-06-simple-audio-classification-keras/images/alluvial.png b/content/blog/ported/ai/2018-06-06-simple-audio-classification-keras/images/alluvial.png similarity index 100% rename from content/blog/ai/2018-06-06-simple-audio-classification-keras/images/alluvial.png rename to content/blog/ported/ai/2018-06-06-simple-audio-classification-keras/images/alluvial.png diff --git a/content/blog/ai/2018-06-06-simple-audio-classification-keras/index.Rmd b/content/blog/ported/ai/2018-06-06-simple-audio-classification-keras/index.Rmd similarity index 100% rename from content/blog/ai/2018-06-06-simple-audio-classification-keras/index.Rmd rename to content/blog/ported/ai/2018-06-06-simple-audio-classification-keras/index.Rmd diff --git a/content/blog/ai/2018-06-06-simple-audio-classification-keras/index.md b/content/blog/ported/ai/2018-06-06-simple-audio-classification-keras/index.md similarity index 100% rename from content/blog/ai/2018-06-06-simple-audio-classification-keras/index.md rename to content/blog/ported/ai/2018-06-06-simple-audio-classification-keras/index.md diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/all_splits.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/all_splits.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/all_splits.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/all_splits.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/all_splits_zoomed.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/all_splits_zoomed.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/all_splits_zoomed.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/all_splits_zoomed.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/backtested_test.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/backtested_test.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/backtested_test.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/backtested_test.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/backtested_train.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/backtested_train.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/backtested_train.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/backtested_train.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/cowplot.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/cowplot.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/cowplot.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/cowplot.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/history.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/history.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/history.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/history.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/pred_test.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/pred_test.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/pred_test.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/pred_test.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/pred_train.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/pred_train.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/pred_train.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/pred_train.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/rnn.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/rnn.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/rnn.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/rnn.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/slice1.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/slice1.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/slice1.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/slice1.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/slice6.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/slice6.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/slice6.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/slice6.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/sunspot_nasa.jpg b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/sunspot_nasa.jpg similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/sunspot_nasa.jpg rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/sunspot_nasa.jpg diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/images/sunspots_full.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/images/sunspots_full.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/images/sunspots_full.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/images/sunspots_full.png diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/index.Rmd b/content/blog/ported/ai/2018-06-25-sunspots-lstm/index.Rmd similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/index.Rmd rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/index.Rmd diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/index.md b/content/blog/ported/ai/2018-06-25-sunspots-lstm/index.md similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/index.md rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/index.md diff --git a/content/blog/ai/2018-06-25-sunspots-lstm/thumbnail.png b/content/blog/ported/ai/2018-06-25-sunspots-lstm/thumbnail.png similarity index 100% rename from content/blog/ai/2018-06-25-sunspots-lstm/thumbnail.png rename to content/blog/ported/ai/2018-06-25-sunspots-lstm/thumbnail.png diff --git a/content/blog/ai/2018-07-17-activity-detection/index.md b/content/blog/ported/ai/2018-07-17-activity-detection/index.md similarity index 100% rename from content/blog/ai/2018-07-17-activity-detection/index.md rename to content/blog/ported/ai/2018-07-17-activity-detection/index.md diff --git a/content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-12-1.png b/content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-12-1.png similarity index 100% rename from content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-12-1.png rename to content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-12-1.png diff --git a/content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-19-1.png b/content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-19-1.png similarity index 100% rename from content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-19-1.png rename to content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-19-1.png diff --git a/content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-20-1.png b/content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-20-1.png similarity index 100% rename from content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-20-1.png rename to content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-20-1.png diff --git a/content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-21-1.png b/content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-21-1.png similarity index 100% rename from content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-21-1.png rename to content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-21-1.png diff --git a/content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-22-1.png b/content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-22-1.png similarity index 100% rename from content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-22-1.png rename to content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-22-1.png diff --git a/content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-23-1.png b/content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-23-1.png similarity index 100% rename from content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-23-1.png rename to content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-23-1.png diff --git a/content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-8-1.png b/content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-8-1.png similarity index 100% rename from content/blog/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-8-1.png rename to content/blog/ported/ai/2018-07-17-activity-detection/index_files/figure-html5/unnamed-chunk-8-1.png diff --git a/content/blog/ai/2018-07-17-activity-detection/thumbnail.png b/content/blog/ported/ai/2018-07-17-activity-detection/thumbnail.png similarity index 100% rename from content/blog/ai/2018-07-17-activity-detection/thumbnail.png rename to content/blog/ported/ai/2018-07-17-activity-detection/thumbnail.png diff --git a/content/blog/ai/2018-07-30-attention-layer/bibliography.bib b/content/blog/ported/ai/2018-07-30-attention-layer/bibliography.bib similarity index 100% rename from content/blog/ai/2018-07-30-attention-layer/bibliography.bib rename to content/blog/ported/ai/2018-07-30-attention-layer/bibliography.bib diff --git a/content/blog/ai/2018-07-30-attention-layer/images/attention.png b/content/blog/ported/ai/2018-07-30-attention-layer/images/attention.png similarity index 100% rename from content/blog/ai/2018-07-30-attention-layer/images/attention.png rename to content/blog/ported/ai/2018-07-30-attention-layer/images/attention.png diff --git a/content/blog/ai/2018-07-30-attention-layer/images/train-1.png b/content/blog/ported/ai/2018-07-30-attention-layer/images/train-1.png similarity index 100% rename from content/blog/ai/2018-07-30-attention-layer/images/train-1.png rename to content/blog/ported/ai/2018-07-30-attention-layer/images/train-1.png diff --git a/content/blog/ai/2018-07-30-attention-layer/images/train-4-thumbnail.png b/content/blog/ported/ai/2018-07-30-attention-layer/images/train-4-thumbnail.png similarity index 100% rename from content/blog/ai/2018-07-30-attention-layer/images/train-4-thumbnail.png rename to content/blog/ported/ai/2018-07-30-attention-layer/images/train-4-thumbnail.png diff --git a/content/blog/ai/2018-07-30-attention-layer/images/train-4.png b/content/blog/ported/ai/2018-07-30-attention-layer/images/train-4.png similarity index 100% rename from content/blog/ai/2018-07-30-attention-layer/images/train-4.png rename to content/blog/ported/ai/2018-07-30-attention-layer/images/train-4.png diff --git a/content/blog/ai/2018-07-30-attention-layer/images/validation-3.png b/content/blog/ported/ai/2018-07-30-attention-layer/images/validation-3.png similarity index 100% rename from content/blog/ai/2018-07-30-attention-layer/images/validation-3.png rename to content/blog/ported/ai/2018-07-30-attention-layer/images/validation-3.png diff --git a/content/blog/ai/2018-07-30-attention-layer/index.Rmd b/content/blog/ported/ai/2018-07-30-attention-layer/index.Rmd similarity index 100% rename from content/blog/ai/2018-07-30-attention-layer/index.Rmd rename to content/blog/ported/ai/2018-07-30-attention-layer/index.Rmd diff --git a/content/blog/ai/2018-07-30-attention-layer/index.md b/content/blog/ported/ai/2018-07-30-attention-layer/index.md similarity index 100% rename from content/blog/ai/2018-07-30-attention-layer/index.md rename to content/blog/ported/ai/2018-07-30-attention-layer/index.md diff --git a/content/blog/ai/2018-07-30-attention-layer/thumbnail.png b/content/blog/ported/ai/2018-07-30-attention-layer/thumbnail.png similarity index 100% rename from content/blog/ai/2018-07-30-attention-layer/thumbnail.png rename to content/blog/ported/ai/2018-07-30-attention-layer/thumbnail.png diff --git a/content/blog/ai/2018-08-26-eager-dcgan/bibliography.bib b/content/blog/ported/ai/2018-08-26-eager-dcgan/bibliography.bib similarity index 100% rename from content/blog/ai/2018-08-26-eager-dcgan/bibliography.bib rename to content/blog/ported/ai/2018-08-26-eager-dcgan/bibliography.bib diff --git a/content/blog/ai/2018-08-26-eager-dcgan/images/images_epoch_150.png b/content/blog/ported/ai/2018-08-26-eager-dcgan/images/images_epoch_150.png similarity index 100% rename from content/blog/ai/2018-08-26-eager-dcgan/images/images_epoch_150.png rename to content/blog/ported/ai/2018-08-26-eager-dcgan/images/images_epoch_150.png diff --git a/content/blog/ai/2018-08-26-eager-dcgan/images/thumb.png b/content/blog/ported/ai/2018-08-26-eager-dcgan/images/thumb.png similarity index 100% rename from content/blog/ai/2018-08-26-eager-dcgan/images/thumb.png rename to content/blog/ported/ai/2018-08-26-eager-dcgan/images/thumb.png diff --git a/content/blog/ai/2018-08-26-eager-dcgan/index.Rmd b/content/blog/ported/ai/2018-08-26-eager-dcgan/index.Rmd similarity index 100% rename from content/blog/ai/2018-08-26-eager-dcgan/index.Rmd rename to content/blog/ported/ai/2018-08-26-eager-dcgan/index.Rmd diff --git a/content/blog/ai/2018-08-26-eager-dcgan/index.md b/content/blog/ported/ai/2018-08-26-eager-dcgan/index.md similarity index 100% rename from content/blog/ai/2018-08-26-eager-dcgan/index.md rename to content/blog/ported/ai/2018-08-26-eager-dcgan/index.md diff --git a/content/blog/ai/2018-08-26-eager-dcgan/thumbnail.png b/content/blog/ported/ai/2018-08-26-eager-dcgan/thumbnail.png similarity index 100% rename from content/blog/ai/2018-08-26-eager-dcgan/thumbnail.png rename to content/blog/ported/ai/2018-08-26-eager-dcgan/thumbnail.png diff --git a/content/blog/ai/2018-09-07-getting-started/images/digits.png b/content/blog/ported/ai/2018-09-07-getting-started/images/digits.png similarity index 100% rename from content/blog/ai/2018-09-07-getting-started/images/digits.png rename to content/blog/ported/ai/2018-09-07-getting-started/images/digits.png diff --git a/content/blog/ai/2018-09-07-getting-started/images/dl_in_motion.png b/content/blog/ported/ai/2018-09-07-getting-started/images/dl_in_motion.png similarity index 100% rename from content/blog/ai/2018-09-07-getting-started/images/dl_in_motion.png rename to content/blog/ported/ai/2018-09-07-getting-started/images/dl_in_motion.png diff --git a/content/blog/ai/2018-09-07-getting-started/images/dlwR.png b/content/blog/ported/ai/2018-09-07-getting-started/images/dlwR.png similarity index 100% rename from content/blog/ai/2018-09-07-getting-started/images/dlwR.png rename to content/blog/ported/ai/2018-09-07-getting-started/images/dlwR.png diff --git a/content/blog/ai/2018-09-07-getting-started/index.Rmd b/content/blog/ported/ai/2018-09-07-getting-started/index.Rmd similarity index 100% rename from content/blog/ai/2018-09-07-getting-started/index.Rmd rename to content/blog/ported/ai/2018-09-07-getting-started/index.Rmd diff --git a/content/blog/ai/2018-09-07-getting-started/index.md b/content/blog/ported/ai/2018-09-07-getting-started/index.md similarity index 100% rename from content/blog/ai/2018-09-07-getting-started/index.md rename to content/blog/ported/ai/2018-09-07-getting-started/index.md diff --git a/content/blog/ai/2018-09-07-getting-started/thumbnail.png b/content/blog/ported/ai/2018-09-07-getting-started/thumbnail.png similarity index 100% rename from content/blog/ai/2018-09-07-getting-started/thumbnail.png rename to content/blog/ported/ai/2018-09-07-getting-started/thumbnail.png diff --git a/content/blog/ai/2018-09-10-eager-style-transfer/bibliography.bib b/content/blog/ported/ai/2018-09-10-eager-style-transfer/bibliography.bib similarity index 100% rename from content/blog/ai/2018-09-10-eager-style-transfer/bibliography.bib rename to content/blog/ported/ai/2018-09-10-eager-style-transfer/bibliography.bib diff --git a/content/blog/ai/2018-09-10-eager-style-transfer/images/The_Great_Wave_off_Kanagawa.jpg b/content/blog/ported/ai/2018-09-10-eager-style-transfer/images/The_Great_Wave_off_Kanagawa.jpg similarity index 100% rename from content/blog/ai/2018-09-10-eager-style-transfer/images/The_Great_Wave_off_Kanagawa.jpg rename to content/blog/ported/ai/2018-09-10-eager-style-transfer/images/The_Great_Wave_off_Kanagawa.jpg diff --git a/content/blog/ai/2018-09-10-eager-style-transfer/images/The_Great_Wave_off_Kanagawa.jpg.original b/content/blog/ported/ai/2018-09-10-eager-style-transfer/images/The_Great_Wave_off_Kanagawa.jpg.original similarity index 100% rename from content/blog/ai/2018-09-10-eager-style-transfer/images/The_Great_Wave_off_Kanagawa.jpg.original rename to content/blog/ported/ai/2018-09-10-eager-style-transfer/images/The_Great_Wave_off_Kanagawa.jpg.original diff --git a/content/blog/ai/2018-09-10-eager-style-transfer/images/isar.jpg b/content/blog/ported/ai/2018-09-10-eager-style-transfer/images/isar.jpg similarity index 100% rename from content/blog/ai/2018-09-10-eager-style-transfer/images/isar.jpg rename to content/blog/ported/ai/2018-09-10-eager-style-transfer/images/isar.jpg diff --git a/content/blog/ai/2018-09-10-eager-style-transfer/images/isar.jpg.original b/content/blog/ported/ai/2018-09-10-eager-style-transfer/images/isar.jpg.original similarity index 100% rename from content/blog/ai/2018-09-10-eager-style-transfer/images/isar.jpg.original rename to content/blog/ported/ai/2018-09-10-eager-style-transfer/images/isar.jpg.original diff --git a/content/blog/ai/2018-09-10-eager-style-transfer/images/preview.png b/content/blog/ported/ai/2018-09-10-eager-style-transfer/images/preview.png similarity index 100% rename from content/blog/ai/2018-09-10-eager-style-transfer/images/preview.png rename to content/blog/ported/ai/2018-09-10-eager-style-transfer/images/preview.png diff --git a/content/blog/ai/2018-09-10-eager-style-transfer/images/style_epoch_1000.png b/content/blog/ported/ai/2018-09-10-eager-style-transfer/images/style_epoch_1000.png similarity index 100% rename from content/blog/ai/2018-09-10-eager-style-transfer/images/style_epoch_1000.png rename to content/blog/ported/ai/2018-09-10-eager-style-transfer/images/style_epoch_1000.png diff --git a/content/blog/ai/2018-09-10-eager-style-transfer/index.Rmd b/content/blog/ported/ai/2018-09-10-eager-style-transfer/index.Rmd similarity index 100% rename from content/blog/ai/2018-09-10-eager-style-transfer/index.Rmd rename to content/blog/ported/ai/2018-09-10-eager-style-transfer/index.Rmd diff --git a/content/blog/ai/2018-09-10-eager-style-transfer/index.md b/content/blog/ported/ai/2018-09-10-eager-style-transfer/index.md similarity index 100% rename from content/blog/ai/2018-09-10-eager-style-transfer/index.md rename to content/blog/ported/ai/2018-09-10-eager-style-transfer/index.md diff --git a/content/blog/ai/2018-09-10-eager-style-transfer/thumbnail.png b/content/blog/ported/ai/2018-09-10-eager-style-transfer/thumbnail.png similarity index 100% rename from content/blog/ai/2018-09-10-eager-style-transfer/thumbnail.png rename to content/blog/ported/ai/2018-09-10-eager-style-transfer/thumbnail.png diff --git a/content/blog/ai/2018-09-17-eager-captioning/bibliography.bib b/content/blog/ported/ai/2018-09-17-eager-captioning/bibliography.bib similarity index 100% rename from content/blog/ai/2018-09-17-eager-captioning/bibliography.bib rename to content/blog/ported/ai/2018-09-17-eager-captioning/bibliography.bib diff --git a/content/blog/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000089158.jpg b/content/blog/ported/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000089158.jpg similarity index 100% rename from content/blog/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000089158.jpg rename to content/blog/ported/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000089158.jpg diff --git a/content/blog/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000118167.jpg b/content/blog/ported/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000118167.jpg similarity index 100% rename from content/blog/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000118167.jpg rename to content/blog/ported/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000118167.jpg diff --git a/content/blog/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000510592.jpg b/content/blog/ported/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000510592.jpg similarity index 100% rename from content/blog/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000510592.jpg rename to content/blog/ported/ai/2018-09-17-eager-captioning/images/COCO_train2014_000000510592.jpg diff --git a/content/blog/ai/2018-09-17-eager-captioning/images/attention.png b/content/blog/ported/ai/2018-09-17-eager-captioning/images/attention.png similarity index 100% rename from content/blog/ai/2018-09-17-eager-captioning/images/attention.png rename to content/blog/ported/ai/2018-09-17-eager-captioning/images/attention.png diff --git a/content/blog/ai/2018-09-17-eager-captioning/images/showattendandtell.png b/content/blog/ported/ai/2018-09-17-eager-captioning/images/showattendandtell.png similarity index 100% rename from content/blog/ai/2018-09-17-eager-captioning/images/showattendandtell.png rename to content/blog/ported/ai/2018-09-17-eager-captioning/images/showattendandtell.png diff --git a/content/blog/ai/2018-09-17-eager-captioning/images/training_examples.png b/content/blog/ported/ai/2018-09-17-eager-captioning/images/training_examples.png similarity index 100% rename from content/blog/ai/2018-09-17-eager-captioning/images/training_examples.png rename to content/blog/ported/ai/2018-09-17-eager-captioning/images/training_examples.png diff --git a/content/blog/ai/2018-09-17-eager-captioning/images/validation_examples.png b/content/blog/ported/ai/2018-09-17-eager-captioning/images/validation_examples.png similarity index 100% rename from content/blog/ai/2018-09-17-eager-captioning/images/validation_examples.png rename to content/blog/ported/ai/2018-09-17-eager-captioning/images/validation_examples.png diff --git a/content/blog/ai/2018-09-17-eager-captioning/index.Rmd b/content/blog/ported/ai/2018-09-17-eager-captioning/index.Rmd similarity index 98% rename from content/blog/ai/2018-09-17-eager-captioning/index.Rmd rename to content/blog/ported/ai/2018-09-17-eager-captioning/index.Rmd index 5c54b6b0d..938bda5f3 100644 --- a/content/blog/ai/2018-09-17-eager-captioning/index.Rmd +++ b/content/blog/ported/ai/2018-09-17-eager-captioning/index.Rmd @@ -34,7 +34,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) In image captioning, an algorithm is given an image and tasked with producing a sensible caption. It is a challenging task for several reasons, not the least being that it involves a notion of _saliency_ or _relevance_. This is why recent deep learning approaches mostly include some "attention" mechanism (sometimes even more than one) to help focusing on relevant image features. -In this post, we demonstrate a formulation of image captioning as an encoder-decoder problem, enhanced by spatial attention over image grid cells. The idea comes from a recent paper on *Neural Image Caption Generation with Visual Attention* [@XuBKCCSZB15], and employs the same kind of attention algorithm as detailed in our post on [machine translation](/blog/ai/2018-07-30-attention-layer/). +In this post, we demonstrate a formulation of image captioning as an encoder-decoder problem, enhanced by spatial attention over image grid cells. The idea comes from a recent paper on *Neural Image Caption Generation with Visual Attention* [@XuBKCCSZB15], and employs the same kind of attention algorithm as detailed in our post on [machine translation](/blog/2018-07-30_attention-layer/). We're porting Python code from a recent [Google Colaboratory notebook ](https://colab.research.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/generative_examples/image_captioning_with_attention.ipynb?linkId=54343050&pli=1#scrollTo=io7ws3ReRPGv), using Keras with TensorFlow eager execution to simplify our lives. @@ -346,7 +346,7 @@ train_dataset <- ## Captioning model -The model is basically the same as that discussed in the [machine translation post](/blog/ai/2018-07-30-attention-layer/). Please refer to that article for an explanation of the concepts, as well as a detailed walk-through of the tensor shapes involved at every step. Here, we provide the tensor shapes as comments in the code snippets, for quick overview/comparison. +The model is basically the same as that discussed in the [machine translation post](/blog/2018-07-30_attention-layer/). Please refer to that article for an explanation of the concepts, as well as a detailed walk-through of the tensor shapes involved at every step. Here, we provide the tensor shapes as comments in the code snippets, for quick overview/comparison. However, if you develop your own models, with eager execution you can simply insert debugging/logging statements at arbitrary places in the code - even in model definitions. So you can have a function diff --git a/content/blog/ai/2018-09-17-eager-captioning/index.md b/content/blog/ported/ai/2018-09-17-eager-captioning/index.md similarity index 98% rename from content/blog/ai/2018-09-17-eager-captioning/index.md rename to content/blog/ported/ai/2018-09-17-eager-captioning/index.md index 149c07aee..e6efbe2e3 100644 --- a/content/blog/ai/2018-09-17-eager-captioning/index.md +++ b/content/blog/ported/ai/2018-09-17-eager-captioning/index.md @@ -35,7 +35,7 @@ slug: eager-captioning In image captioning, an algorithm is given an image and tasked with producing a sensible caption. It is a challenging task for several reasons, not the least being that it involves a notion of *saliency* or *relevance*. This is why recent deep learning approaches mostly include some "attention" mechanism (sometimes even more than one) to help focusing on relevant image features. -In this post, we demonstrate a formulation of image captioning as an encoder-decoder problem, enhanced by spatial attention over image grid cells. The idea comes from a recent paper on *Neural Image Caption Generation with Visual Attention* (Xu et al. 2015), and employs the same kind of attention algorithm as detailed in our post on [machine translation](/blog/ai/2018-07-30-attention-layer/). +In this post, we demonstrate a formulation of image captioning as an encoder-decoder problem, enhanced by spatial attention over image grid cells. The idea comes from a recent paper on *Neural Image Caption Generation with Visual Attention* (Xu et al. 2015), and employs the same kind of attention algorithm as detailed in our post on [machine translation](/blog/2018-07-30_attention-layer/). We're porting Python code from a recent [Google Colaboratory notebook](https://colab.research.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/generative_examples/image_captioning_with_attention.ipynb?linkId=54343050&pli=1#scrollTo=io7ws3ReRPGv), using Keras with TensorFlow eager execution to simplify our lives. @@ -334,7 +334,7 @@ train_dataset <- ## Captioning model -The model is basically the same as that discussed in the [machine translation post](/blog/ai/2018-07-30-attention-layer/). Please refer to that article for an explanation of the concepts, as well as a detailed walk-through of the tensor shapes involved at every step. Here, we provide the tensor shapes as comments in the code snippets, for quick overview/comparison. +The model is basically the same as that discussed in the [machine translation post](/blog/2018-07-30_attention-layer/). Please refer to that article for an explanation of the concepts, as well as a detailed walk-through of the tensor shapes involved at every step. Here, we provide the tensor shapes as comments in the code snippets, for quick overview/comparison. However, if you develop your own models, with eager execution you can simply insert debugging/logging statements at arbitrary places in the code - even in model definitions. So you can have a function diff --git a/content/blog/ai/2018-09-17-eager-captioning/thumbnail.png b/content/blog/ported/ai/2018-09-17-eager-captioning/thumbnail.png similarity index 100% rename from content/blog/ai/2018-09-17-eager-captioning/thumbnail.png rename to content/blog/ported/ai/2018-09-17-eager-captioning/thumbnail.png diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/bibliography.bib b/content/blog/ported/ai/2018-09-20-eager-pix2pix/bibliography.bib similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/bibliography.bib rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/bibliography.bib diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/images/105.jpg b/content/blog/ported/ai/2018-09-20-eager-pix2pix/images/105.jpg similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/images/105.jpg rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/images/105.jpg diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/images/cyclegan.png b/content/blog/ported/ai/2018-09-20-eager-pix2pix/images/cyclegan.png similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/images/cyclegan.png rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/images/cyclegan.png diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pix.png b/content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pix.png similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pix.png rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pix.png diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_10.png b/content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_10.png similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_10.png rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_10.png diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_32.png b/content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_32.png similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_32.png rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_32.png diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_82.png b/content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_82.png similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_82.png rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_82.png diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_92.png b/content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_92.png similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_92.png rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pix_test_92.png diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pixlosses.png b/content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pixlosses.png similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/images/pix2pixlosses.png rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/images/pix2pixlosses.png diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/images/unet.png b/content/blog/ported/ai/2018-09-20-eager-pix2pix/images/unet.png similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/images/unet.png rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/images/unet.png diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/index.Rmd b/content/blog/ported/ai/2018-09-20-eager-pix2pix/index.Rmd similarity index 98% rename from content/blog/ai/2018-09-20-eager-pix2pix/index.Rmd rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/index.Rmd index 673e38e1a..6c8159fad 100644 --- a/content/blog/ai/2018-09-20-eager-pix2pix/index.Rmd +++ b/content/blog/ported/ai/2018-09-20-eager-pix2pix/index.Rmd @@ -41,7 +41,7 @@ As computer programs work with numbers, the cost function has to be pretty speci In some cases it may be straightforward to map a task to a measure of error, in others, it may not. Consider the task of generating non-existing objects of a certain type (like a face, a scene, or a video clip). How do we quantify success? The trick with _generative adversarial networks_ (GANs) is to let the network learn the cost function. -As shown in [Generating images with Keras and TensorFlow eager execution](/blog/ai/2018-08-26-eager-dcgan/), in a simple GAN the setup is this: One agent, the _generator_, keeps on producing fake objects. The other, the _discriminator_, is tasked to tell apart the real objects from the fake ones. For the generator, loss is augmented when its fraud gets discovered, meaning that the generator's cost function depends on what the discriminator does. For the discriminator, loss grows when it fails to correctly tell apart generated objects from authentic ones. +As shown in [Generating images with Keras and TensorFlow eager execution](/blog/2018-08-26_keydana2018eagerdcgan/), in a simple GAN the setup is this: One agent, the _generator_, keeps on producing fake objects. The other, the _discriminator_, is tasked to tell apart the real objects from the fake ones. For the generator, loss is augmented when its fraud gets discovered, meaning that the generator's cost function depends on what the discriminator does. For the discriminator, loss grows when it fails to correctly tell apart generated objects from authentic ones. In a GAN of the type just described, creation starts from white noise. However in the real world, what is required may be a form of transformation, not creation. Take, for example, colorization of black-and-white images, or conversion of aerials to maps. For applications like those, we _condition_ on additional input: Hence the name, _conditional adversarial networks_. diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/index.md b/content/blog/ported/ai/2018-09-20-eager-pix2pix/index.md similarity index 98% rename from content/blog/ai/2018-09-20-eager-pix2pix/index.md rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/index.md index f3e1be339..02e45f1e5 100644 --- a/content/blog/ai/2018-09-20-eager-pix2pix/index.md +++ b/content/blog/ported/ai/2018-09-20-eager-pix2pix/index.md @@ -41,7 +41,7 @@ As computer programs work with numbers, the cost function has to be pretty speci In some cases it may be straightforward to map a task to a measure of error, in others, it may not. Consider the task of generating non-existing objects of a certain type (like a face, a scene, or a video clip). How do we quantify success? The trick with *generative adversarial networks* (GANs) is to let the network learn the cost function. -As shown in [Generating images with Keras and TensorFlow eager execution](/blog/ai/2018-08-26-eager-dcgan/), in a simple GAN the setup is this: One agent, the *generator*, keeps on producing fake objects. The other, the *discriminator*, is tasked to tell apart the real objects from the fake ones. For the generator, loss is augmented when its fraud gets discovered, meaning that the generator's cost function depends on what the discriminator does. For the discriminator, loss grows when it fails to correctly tell apart generated objects from authentic ones. +As shown in [Generating images with Keras and TensorFlow eager execution](/blog/2018-08-26_keydana2018eagerdcgan/), in a simple GAN the setup is this: One agent, the *generator*, keeps on producing fake objects. The other, the *discriminator*, is tasked to tell apart the real objects from the fake ones. For the generator, loss is augmented when its fraud gets discovered, meaning that the generator's cost function depends on what the discriminator does. For the discriminator, loss grows when it fails to correctly tell apart generated objects from authentic ones. In a GAN of the type just described, creation starts from white noise. However in the real world, what is required may be a form of transformation, not creation. Take, for example, colorization of black-and-white images, or conversion of aerials to maps. For applications like those, we *condition* on additional input: Hence the name, *conditional adversarial networks*. diff --git a/content/blog/ai/2018-09-20-eager-pix2pix/thumbnail.png b/content/blog/ported/ai/2018-09-20-eager-pix2pix/thumbnail.png similarity index 100% rename from content/blog/ai/2018-09-20-eager-pix2pix/thumbnail.png rename to content/blog/ported/ai/2018-09-20-eager-pix2pix/thumbnail.png diff --git a/content/blog/ai/2018-09-26-embeddings-recommender/bibliography.bib b/content/blog/ported/ai/2018-09-26-embeddings-recommender/bibliography.bib similarity index 100% rename from content/blog/ai/2018-09-26-embeddings-recommender/bibliography.bib rename to content/blog/ported/ai/2018-09-26-embeddings-recommender/bibliography.bib diff --git a/content/blog/ai/2018-09-26-embeddings-recommender/images/bias_embedding.png b/content/blog/ported/ai/2018-09-26-embeddings-recommender/images/bias_embedding.png similarity index 100% rename from content/blog/ai/2018-09-26-embeddings-recommender/images/bias_embedding.png rename to content/blog/ported/ai/2018-09-26-embeddings-recommender/images/bias_embedding.png diff --git a/content/blog/ai/2018-09-26-embeddings-recommender/images/levelplot.png b/content/blog/ported/ai/2018-09-26-embeddings-recommender/images/levelplot.png similarity index 100% rename from content/blog/ai/2018-09-26-embeddings-recommender/images/levelplot.png rename to content/blog/ported/ai/2018-09-26-embeddings-recommender/images/levelplot.png diff --git a/content/blog/ai/2018-09-26-embeddings-recommender/images/m.png b/content/blog/ported/ai/2018-09-26-embeddings-recommender/images/m.png similarity index 100% rename from content/blog/ai/2018-09-26-embeddings-recommender/images/m.png rename to content/blog/ported/ai/2018-09-26-embeddings-recommender/images/m.png diff --git a/content/blog/ai/2018-09-26-embeddings-recommender/images/pca.png b/content/blog/ported/ai/2018-09-26-embeddings-recommender/images/pca.png similarity index 100% rename from content/blog/ai/2018-09-26-embeddings-recommender/images/pca.png rename to content/blog/ported/ai/2018-09-26-embeddings-recommender/images/pca.png diff --git a/content/blog/ai/2018-09-26-embeddings-recommender/images/simple_embedding.png b/content/blog/ported/ai/2018-09-26-embeddings-recommender/images/simple_embedding.png similarity index 100% rename from content/blog/ai/2018-09-26-embeddings-recommender/images/simple_embedding.png rename to content/blog/ported/ai/2018-09-26-embeddings-recommender/images/simple_embedding.png diff --git a/content/blog/ai/2018-09-26-embeddings-recommender/images/svd.png b/content/blog/ported/ai/2018-09-26-embeddings-recommender/images/svd.png similarity index 100% rename from content/blog/ai/2018-09-26-embeddings-recommender/images/svd.png rename to content/blog/ported/ai/2018-09-26-embeddings-recommender/images/svd.png diff --git a/content/blog/ai/2018-09-26-embeddings-recommender/index.Rmd b/content/blog/ported/ai/2018-09-26-embeddings-recommender/index.Rmd similarity index 100% rename from content/blog/ai/2018-09-26-embeddings-recommender/index.Rmd rename to content/blog/ported/ai/2018-09-26-embeddings-recommender/index.Rmd diff --git a/content/blog/ai/2018-09-26-embeddings-recommender/index.md b/content/blog/ported/ai/2018-09-26-embeddings-recommender/index.md similarity index 100% rename from content/blog/ai/2018-09-26-embeddings-recommender/index.md rename to content/blog/ported/ai/2018-09-26-embeddings-recommender/index.md diff --git a/content/blog/ai/2018-09-26-embeddings-recommender/thumbnail.png b/content/blog/ported/ai/2018-09-26-embeddings-recommender/thumbnail.png similarity index 100% rename from content/blog/ai/2018-09-26-embeddings-recommender/thumbnail.png rename to content/blog/ported/ai/2018-09-26-embeddings-recommender/thumbnail.png diff --git a/content/blog/ai/2018-10-02-eager-wrapup/attention.png b/content/blog/ported/ai/2018-10-02-eager-wrapup/attention.png similarity index 100% rename from content/blog/ai/2018-10-02-eager-wrapup/attention.png rename to content/blog/ported/ai/2018-10-02-eager-wrapup/attention.png diff --git a/content/blog/ai/2018-10-02-eager-wrapup/images/m.png b/content/blog/ported/ai/2018-10-02-eager-wrapup/images/m.png similarity index 100% rename from content/blog/ai/2018-10-02-eager-wrapup/images/m.png rename to content/blog/ported/ai/2018-10-02-eager-wrapup/images/m.png diff --git a/content/blog/ai/2018-10-02-eager-wrapup/index.Rmd b/content/blog/ported/ai/2018-10-02-eager-wrapup/index.Rmd similarity index 82% rename from content/blog/ai/2018-10-02-eager-wrapup/index.Rmd rename to content/blog/ported/ai/2018-10-02-eager-wrapup/index.Rmd index 070a4d857..6602e2c40 100644 --- a/content/blog/ai/2018-10-02-eager-wrapup/index.Rmd +++ b/content/blog/ported/ai/2018-10-02-eager-wrapup/index.Rmd @@ -100,16 +100,16 @@ Attention is an important ingredient of sequence-to-sequence models, e.g. (but n When using LSTMs on both the encoding and the decoding sides, the decoder, being a recurrent layer, knows about the sequence it has generated so far. It also (in all but the simplest models) has access to the complete input sequence. But where in the input sequence is the piece of information it needs to generate the next output token? It is this question that attention is meant to address. -Now consider implementing this in code. Each time it is called to produce a new token, the decoder needs to get current input from the attention mechanism. This means we can't just squeeze an attention layer between the encoder and the decoder LSTM. Before the advent of eager execution, a solution would have been to implement this in low-level TensorFlow code. With eager execution and custom models, we can just [use Keras](/blog/ai/2018-07-30-attention-layer/). +Now consider implementing this in code. Each time it is called to produce a new token, the decoder needs to get current input from the attention mechanism. This means we can't just squeeze an attention layer between the encoder and the decoder LSTM. Before the advent of eager execution, a solution would have been to implement this in low-level TensorFlow code. With eager execution and custom models, we can just [use Keras](/blog/2018-07-30_attention-layer/). -Attention is not just relevant to sequence-to-sequence problems, though. In [image captioning](/blog/ai/2018-09-17-eager-captioning/), the output is a sequence, while the input is a complete image. When generating a caption, attention is used to focus on parts of the image relevant to different time steps in the text-generating process. +Attention is not just relevant to sequence-to-sequence problems, though. In [image captioning](/blog/2018-09-17_eager-captioning/), the output is a sequence, while the input is a complete image. When generating a caption, attention is used to focus on parts of the image relevant to different time steps in the text-generating process. @@ -117,10 +117,10 @@ Attention is not just relevant to sequence-to-sequence problems, though. In [ima ## Easy inspection In terms of debuggability, just using custom models (without eager execution) already simplifies things. -If we have a custom model like `simple_dot` from the recent [embeddings post](/blog/ai/2018-09-26-embeddings-recommender) and are unsure if we've got the shapes correct, we can simply add logging statements, like so: +If we have a custom model like `simple_dot` from the recent [embeddings post](/blog/2018-09-26_keydana2018embeddings-recommender/) and are unsure if we've got the shapes correct, we can simply add logging statements, like so: ```{r} @@ -157,10 +157,10 @@ print(gradients) If you've read [Deep Learning with R](https://www.amazon.com/Deep-Learning-R-Francois-Chollet/dp/161729554X), you know that it's possible to program less straightforward workflows, such as those required for training GANs or doing neural style transfer, using the Keras functional API. However, the graph code does not make it easy to keep track of where you are in the workflow. -Now compare the example from the [generating digits with GANs](/blog/ai/2018-08-26-eager-dcgan) post. Generator and discriminator each get set up as actors in a drama: +Now compare the example from the [generating digits with GANs](/blog/2018-08-26_keydana2018eagerdcgan/) post. Generator and discriminator each get set up as actors in a drama: ```{r} @@ -220,7 +220,7 @@ The code ends up so close to how we mentally picture the situation that hardly a Relatedly, this way of programming lends itself to extensive modularization. This is illustrated by the [second post on GANs](pix2pixlosses.png) that includes U-Net like downsampling and upsampling steps. Here, the downsampling and upsampling layers are each factored out into their own models @@ -258,16 +258,16 @@ However, now already we have a list of use cases illustrating the vast options, For quick reference, these cover: -- [Neural machine translation with attention](/blog/ai/2018-07-30-attention-layer/). This post provides a detailed introduction to eager execution and its building blocks, as well as an in-depth explanation of the attention mechanism used. Together with the next one, it occupies a very special role in this list: It uses eager execution to solve a problem that otherwise could only be solved with hard-to-read, hard-to-write low-level code. +- [Neural machine translation with attention](/blog/2018-07-30_attention-layer/). This post provides a detailed introduction to eager execution and its building blocks, as well as an in-depth explanation of the attention mechanism used. Together with the next one, it occupies a very special role in this list: It uses eager execution to solve a problem that otherwise could only be solved with hard-to-read, hard-to-write low-level code. -- [Image captioning with attention](/blog/ai/2018-09-17-eager-captioning/). +- [Image captioning with attention](/blog/2018-09-17_eager-captioning/). This post builds on the first in that it does not re-explain attention in detail; however, it ports the concept to spatial attention applied over image regions. -- [Generating digits with convolutional generative adversarial networks (DCGANs)](/blog/ai/2018-08-26-eager-dcgan). This post introduces using two custom models, each with their associated loss functions and optimizers, and having them go through forward- and backpropagation in sync. It is perhaps the most impressive example of how eager execution simplifies coding by better alignment to our mental model of the situation. +- [Generating digits with convolutional generative adversarial networks (DCGANs)](/blog/2018-08-26_keydana2018eagerdcgan/). This post introduces using two custom models, each with their associated loss functions and optimizers, and having them go through forward- and backpropagation in sync. It is perhaps the most impressive example of how eager execution simplifies coding by better alignment to our mental model of the situation. -- [Image-to-image translation with pix2pix](/blog/ai/2018-09-20-eager-pix2pix) is another application of generative adversarial networks, but uses a more complex architecture based on U-Net-like downsampling and upsampling. It nicely demonstrates how eager execution allows for modular coding, rendering the final program much more readable. +- [Image-to-image translation with pix2pix](/blog/2018-09-20_keydana2018eagerpix2pix/) is another application of generative adversarial networks, but uses a more complex architecture based on U-Net-like downsampling and upsampling. It nicely demonstrates how eager execution allows for modular coding, rendering the final program much more readable. -- [Neural style transfer](/blog/ai/2018-09-10-eager-style-transfer/). Finally, this post reformulates the style transfer problem in an eager way, again resulting in readable, concise code. +- [Neural style transfer](/blog/2018-09-10_keydana2018eagerstyletransfer/). Finally, this post reformulates the style transfer problem in an eager way, again resulting in readable, concise code. When diving into these applications, it is a good idea to also refer to the [eager execution guide](https://tensorflow.rstudio.com/keras/articles/eager_guide.html) so you don't lose sight of the forest for the trees. diff --git a/content/blog/ai/2018-10-02-eager-wrapup/index.md b/content/blog/ported/ai/2018-10-02-eager-wrapup/index.md similarity index 81% rename from content/blog/ai/2018-10-02-eager-wrapup/index.md rename to content/blog/ported/ai/2018-10-02-eager-wrapup/index.md index 7bde5357b..33b592503 100644 --- a/content/blog/ai/2018-10-02-eager-wrapup/index.md +++ b/content/blog/ported/ai/2018-10-02-eager-wrapup/index.md @@ -94,25 +94,25 @@ Attention is an important ingredient of sequence-to-sequence models, e.g. (but When using LSTMs on both the encoding and the decoding sides, the decoder, being a recurrent layer, knows about the sequence it has generated so far. It also (in all but the simplest models) has access to the complete input sequence. But where in the input sequence is the piece of information it needs to generate the next output token? It is this question that attention is meant to address. -Now consider implementing this in code. Each time it is called to produce a new token, the decoder needs to get current input from the attention mechanism. This means we can't just squeeze an attention layer between the encoder and the decoder LSTM. Before the advent of eager execution, a solution would have been to implement this in low-level TensorFlow code. With eager execution and custom models, we can just [use Keras](/blog/ai/2018-07-30-attention-layer/). +Now consider implementing this in code. Each time it is called to produce a new token, the decoder needs to get current input from the attention mechanism. This means we can't just squeeze an attention layer between the encoder and the decoder LSTM. Before the advent of eager execution, a solution would have been to implement this in low-level TensorFlow code. With eager execution and custom models, we can just [use Keras](/blog/2018-07-30_attention-layer/). -Attention is not just relevant to sequence-to-sequence problems, though. In [image captioning](/blog/ai/2018-09-17-eager-captioning/), the output is a sequence, while the input is a complete image. When generating a caption, attention is used to focus on parts of the image relevant to different time steps in the text-generating process. +Attention is not just relevant to sequence-to-sequence problems, though. In [image captioning](/blog/2018-09-17_eager-captioning/), the output is a sequence, while the input is a complete image. When generating a caption, attention is used to focus on parts of the image relevant to different time steps in the text-generating process. ## Easy inspection In terms of debuggability, just using custom models (without eager execution) already simplifies things. -If we have a custom model like `simple_dot` from the recent [embeddings post](/blog/ai/2018-09-26-embeddings-recommender) and are unsure if we've got the shapes correct, we can simply add logging statements, like so: +If we have a custom model like `simple_dot` from the recent [embeddings post](/blog/2018-09-26_keydana2018embeddings-recommender/) and are unsure if we've got the shapes correct, we can simply add logging statements, like so: ``` r @@ -147,10 +147,10 @@ print(gradients) If you've read [Deep Learning with R](https://www.amazon.com/Deep-Learning-R-Francois-Chollet/dp/161729554X), you know that it's possible to program less straightforward workflows, such as those required for training GANs or doing neural style transfer, using the Keras functional API. However, the graph code does not make it easy to keep track of where you are in the workflow. -Now compare the example from the [generating digits with GANs](/blog/ai/2018-08-26-eager-dcgan) post. Generator and discriminator each get set up as actors in a drama: +Now compare the example from the [generating digits with GANs](/blog/2018-08-26_keydana2018eagerdcgan/) post. Generator and discriminator each get set up as actors in a drama: ``` r @@ -208,7 +208,7 @@ The code ends up so close to how we mentally picture the situation that hardly a Relatedly, this way of programming lends itself to extensive modularization. This is illustrated by the [second post on GANs](pix2pixlosses.png) that includes U-Net like downsampling and upsampling steps. Here, the downsampling and upsampling layers are each factored out into their own models @@ -244,16 +244,16 @@ However, now already we have a list of use cases illustrating the vast options, For quick reference, these cover: -- [Neural machine translation with attention](/blog/ai/2018-07-30-attention-layer/). This post provides a detailed introduction to eager execution and its building blocks, as well as an in-depth explanation of the attention mechanism used. Together with the next one, it occupies a very special role in this list: It uses eager execution to solve a problem that otherwise could only be solved with hard-to-read, hard-to-write low-level code. +- [Neural machine translation with attention](/blog/2018-07-30_attention-layer/). This post provides a detailed introduction to eager execution and its building blocks, as well as an in-depth explanation of the attention mechanism used. Together with the next one, it occupies a very special role in this list: It uses eager execution to solve a problem that otherwise could only be solved with hard-to-read, hard-to-write low-level code. -- [Image captioning with attention](/blog/ai/2018-09-17-eager-captioning/). +- [Image captioning with attention](/blog/2018-09-17_eager-captioning/). This post builds on the first in that it does not re-explain attention in detail; however, it ports the concept to spatial attention applied over image regions. -- [Generating digits with convolutional generative adversarial networks (DCGANs)](/blog/ai/2018-08-26-eager-dcgan). This post introduces using two custom models, each with their associated loss functions and optimizers, and having them go through forward- and backpropagation in sync. It is perhaps the most impressive example of how eager execution simplifies coding by better alignment to our mental model of the situation. +- [Generating digits with convolutional generative adversarial networks (DCGANs)](/blog/2018-08-26_keydana2018eagerdcgan/). This post introduces using two custom models, each with their associated loss functions and optimizers, and having them go through forward- and backpropagation in sync. It is perhaps the most impressive example of how eager execution simplifies coding by better alignment to our mental model of the situation. -- [Image-to-image translation with pix2pix](/blog/ai/2018-09-20-eager-pix2pix) is another application of generative adversarial networks, but uses a more complex architecture based on U-Net-like downsampling and upsampling. It nicely demonstrates how eager execution allows for modular coding, rendering the final program much more readable. +- [Image-to-image translation with pix2pix](/blog/2018-09-20_keydana2018eagerpix2pix/) is another application of generative adversarial networks, but uses a more complex architecture based on U-Net-like downsampling and upsampling. It nicely demonstrates how eager execution allows for modular coding, rendering the final program much more readable. -- [Neural style transfer](/blog/ai/2018-09-10-eager-style-transfer/). Finally, this post reformulates the style transfer problem in an eager way, again resulting in readable, concise code. +- [Neural style transfer](/blog/2018-09-10_keydana2018eagerstyletransfer/). Finally, this post reformulates the style transfer problem in an eager way, again resulting in readable, concise code. When diving into these applications, it is a good idea to also refer to the [eager execution guide](https://tensorflow.rstudio.com/keras/articles/eager_guide.html) so you don't lose sight of the forest for the trees. diff --git a/content/blog/ai/2018-10-02-eager-wrapup/m.png b/content/blog/ported/ai/2018-10-02-eager-wrapup/m.png similarity index 100% rename from content/blog/ai/2018-10-02-eager-wrapup/m.png rename to content/blog/ported/ai/2018-10-02-eager-wrapup/m.png diff --git a/content/blog/ai/2018-10-02-eager-wrapup/pix2pixlosses.png b/content/blog/ported/ai/2018-10-02-eager-wrapup/pix2pixlosses.png similarity index 100% rename from content/blog/ai/2018-10-02-eager-wrapup/pix2pixlosses.png rename to content/blog/ported/ai/2018-10-02-eager-wrapup/pix2pixlosses.png diff --git a/content/blog/ai/2018-10-02-eager-wrapup/showattendandtell.png b/content/blog/ported/ai/2018-10-02-eager-wrapup/showattendandtell.png similarity index 100% rename from content/blog/ai/2018-10-02-eager-wrapup/showattendandtell.png rename to content/blog/ported/ai/2018-10-02-eager-wrapup/showattendandtell.png diff --git a/content/blog/ai/2018-10-02-eager-wrapup/thumb.png b/content/blog/ported/ai/2018-10-02-eager-wrapup/thumb.png similarity index 100% rename from content/blog/ai/2018-10-02-eager-wrapup/thumb.png rename to content/blog/ported/ai/2018-10-02-eager-wrapup/thumb.png diff --git a/content/blog/ai/2018-10-02-eager-wrapup/thumbnail.png b/content/blog/ported/ai/2018-10-02-eager-wrapup/thumbnail.png similarity index 100% rename from content/blog/ai/2018-10-02-eager-wrapup/thumbnail.png rename to content/blog/ported/ai/2018-10-02-eager-wrapup/thumbnail.png diff --git a/content/blog/ai/2018-10-11-activations-intro/bibliography.bib b/content/blog/ported/ai/2018-10-11-activations-intro/bibliography.bib similarity index 100% rename from content/blog/ai/2018-10-11-activations-intro/bibliography.bib rename to content/blog/ported/ai/2018-10-11-activations-intro/bibliography.bib diff --git a/content/blog/ai/2018-10-11-activations-intro/images/output.png b/content/blog/ported/ai/2018-10-11-activations-intro/images/output.png similarity index 100% rename from content/blog/ai/2018-10-11-activations-intro/images/output.png rename to content/blog/ported/ai/2018-10-11-activations-intro/images/output.png diff --git a/content/blog/ai/2018-10-11-activations-intro/images/sigmoid.png b/content/blog/ported/ai/2018-10-11-activations-intro/images/sigmoid.png similarity index 100% rename from content/blog/ai/2018-10-11-activations-intro/images/sigmoid.png rename to content/blog/ported/ai/2018-10-11-activations-intro/images/sigmoid.png diff --git a/content/blog/ai/2018-10-11-activations-intro/images/softmax_post.png b/content/blog/ported/ai/2018-10-11-activations-intro/images/softmax_post.png similarity index 100% rename from content/blog/ai/2018-10-11-activations-intro/images/softmax_post.png rename to content/blog/ported/ai/2018-10-11-activations-intro/images/softmax_post.png diff --git a/content/blog/ai/2018-10-11-activations-intro/images/softmax_pre.png b/content/blog/ported/ai/2018-10-11-activations-intro/images/softmax_pre.png similarity index 100% rename from content/blog/ai/2018-10-11-activations-intro/images/softmax_pre.png rename to content/blog/ported/ai/2018-10-11-activations-intro/images/softmax_pre.png diff --git a/content/blog/ai/2018-10-11-activations-intro/images/xent.png b/content/blog/ported/ai/2018-10-11-activations-intro/images/xent.png similarity index 100% rename from content/blog/ai/2018-10-11-activations-intro/images/xent.png rename to content/blog/ported/ai/2018-10-11-activations-intro/images/xent.png diff --git a/content/blog/ai/2018-10-11-activations-intro/index.Rmd b/content/blog/ported/ai/2018-10-11-activations-intro/index.Rmd similarity index 100% rename from content/blog/ai/2018-10-11-activations-intro/index.Rmd rename to content/blog/ported/ai/2018-10-11-activations-intro/index.Rmd diff --git a/content/blog/ai/2018-10-11-activations-intro/index.md b/content/blog/ported/ai/2018-10-11-activations-intro/index.md similarity index 100% rename from content/blog/ai/2018-10-11-activations-intro/index.md rename to content/blog/ported/ai/2018-10-11-activations-intro/index.md diff --git a/content/blog/ai/2018-10-11-activations-intro/thumbnail.png b/content/blog/ported/ai/2018-10-11-activations-intro/thumbnail.png similarity index 100% rename from content/blog/ai/2018-10-11-activations-intro/thumbnail.png rename to content/blog/ported/ai/2018-10-11-activations-intro/thumbnail.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/bibliography.bib b/content/blog/ported/ai/2018-10-22-mmd-vae/bibliography.bib similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/bibliography.bib rename to content/blog/ported/ai/2018-10-22-mmd-vae/bibliography.bib diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/c_epoch_0.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/c_epoch_0.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/c_epoch_0.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/c_epoch_0.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/comp_digits.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/comp_digits.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/comp_digits.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/comp_digits.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/comp_grid.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/comp_grid.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/comp_grid.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/comp_grid.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/comp_lat.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/comp_lat.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/comp_lat.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/comp_lat.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/cvae_clothes_epoch_50.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/cvae_clothes_epoch_50.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/cvae_clothes_epoch_50.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/cvae_clothes_epoch_50.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/cvae_grid_epoch_50.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/cvae_grid_epoch_50.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/cvae_grid_epoch_50.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/cvae_grid_epoch_50.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/cvae_latentspace_epoch_50.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/cvae_latentspace_epoch_50.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/cvae_latentspace_epoch_50.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/cvae_latentspace_epoch_50.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/mmd_clothes_epoch_50.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/mmd_clothes_epoch_50.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/mmd_clothes_epoch_50.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/mmd_clothes_epoch_50.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/mmd_grid_epoch_50.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/mmd_grid_epoch_50.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/mmd_grid_epoch_50.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/mmd_grid_epoch_50.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/mmd_latentspace_epoch_50.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/mmd_latentspace_epoch_50.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/mmd_latentspace_epoch_50.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/mmd_latentspace_epoch_50.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/images/thumb.png b/content/blog/ported/ai/2018-10-22-mmd-vae/images/thumb.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/images/thumb.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/images/thumb.png diff --git a/content/blog/ai/2018-10-22-mmd-vae/index.Rmd b/content/blog/ported/ai/2018-10-22-mmd-vae/index.Rmd similarity index 98% rename from content/blog/ai/2018-10-22-mmd-vae/index.Rmd rename to content/blog/ported/ai/2018-10-22-mmd-vae/index.Rmd index 218437436..4ef91300a 100644 --- a/content/blog/ai/2018-10-22-mmd-vae/index.Rmd +++ b/content/blog/ported/ai/2018-10-22-mmd-vae/index.Rmd @@ -33,7 +33,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -Recently, we showed how to [generate images](/blog/ai/2018-08-26-eager-dcgan/) using generative adversarial networks (GANs). GANs may yield amazing results, but the contract there basically is: what you see is what you get. +Recently, we showed how to [generate images](/blog/2018-08-26_keydana2018eagerdcgan/) using generative adversarial networks (GANs). GANs may yield amazing results, but the contract there basically is: what you see is what you get. Sometimes this may be all we want. In other cases, we may be more interested in actually modelling a domain. We don't just want to generate realistic-looking samples - we want our samples to be located at specific coordinates in domain space. For example, imagine our domain to be the space of facial expressions. Then our latent space might be conceived as two-dimensional: In accordance with underlying emotional states, expressions vary on a positive-negative scale. At the same time, they vary in intensity. Now if we trained a VAE on a set of facial expressions adequately covering the ranges, and it did in fact "discover" our hypothesized dimensions, we could then use it to generate previously-nonexisting incarnations of points (faces, that is) in latent space. diff --git a/content/blog/ai/2018-10-22-mmd-vae/index.md b/content/blog/ported/ai/2018-10-22-mmd-vae/index.md similarity index 99% rename from content/blog/ai/2018-10-22-mmd-vae/index.md rename to content/blog/ported/ai/2018-10-22-mmd-vae/index.md index 25ed8ee22..0db1f0ef3 100644 --- a/content/blog/ai/2018-10-22-mmd-vae/index.md +++ b/content/blog/ported/ai/2018-10-22-mmd-vae/index.md @@ -34,7 +34,7 @@ math: true -Recently, we showed how to [generate images](/blog/ai/2018-08-26-eager-dcgan/) using generative adversarial networks (GANs). GANs may yield amazing results, but the contract there basically is: what you see is what you get. +Recently, we showed how to [generate images](/blog/2018-08-26_keydana2018eagerdcgan/) using generative adversarial networks (GANs). GANs may yield amazing results, but the contract there basically is: what you see is what you get. Sometimes this may be all we want. In other cases, we may be more interested in actually modelling a domain. We don't just want to generate realistic-looking samples - we want our samples to be located at specific coordinates in domain space. For example, imagine our domain to be the space of facial expressions. Then our latent space might be conceived as two-dimensional: In accordance with underlying emotional states, expressions vary on a positive-negative scale. At the same time, they vary in intensity. Now if we trained a VAE on a set of facial expressions adequately covering the ranges, and it did in fact "discover" our hypothesized dimensions, we could then use it to generate previously-nonexisting incarnations of points (faces, that is) in latent space. diff --git a/content/blog/ai/2018-10-22-mmd-vae/thumbnail.png b/content/blog/ported/ai/2018-10-22-mmd-vae/thumbnail.png similarity index 100% rename from content/blog/ai/2018-10-22-mmd-vae/thumbnail.png rename to content/blog/ported/ai/2018-10-22-mmd-vae/thumbnail.png diff --git a/content/blog/ai/2018-11-05-naming-locating-objects/images/bicycle.jpeg b/content/blog/ported/ai/2018-11-05-naming-locating-objects/images/bicycle.jpeg similarity index 100% rename from content/blog/ai/2018-11-05-naming-locating-objects/images/bicycle.jpeg rename to content/blog/ported/ai/2018-11-05-naming-locating-objects/images/bicycle.jpeg diff --git a/content/blog/ai/2018-11-05-naming-locating-objects/images/preds_train.jpg b/content/blog/ported/ai/2018-11-05-naming-locating-objects/images/preds_train.jpg similarity index 100% rename from content/blog/ai/2018-11-05-naming-locating-objects/images/preds_train.jpg rename to content/blog/ported/ai/2018-11-05-naming-locating-objects/images/preds_train.jpg diff --git a/content/blog/ai/2018-11-05-naming-locating-objects/images/preds_train_2.jpg b/content/blog/ported/ai/2018-11-05-naming-locating-objects/images/preds_train_2.jpg similarity index 100% rename from content/blog/ai/2018-11-05-naming-locating-objects/images/preds_train_2.jpg rename to content/blog/ported/ai/2018-11-05-naming-locating-objects/images/preds_train_2.jpg diff --git a/content/blog/ai/2018-11-05-naming-locating-objects/images/preds_valid.jpg b/content/blog/ported/ai/2018-11-05-naming-locating-objects/images/preds_valid.jpg similarity index 100% rename from content/blog/ai/2018-11-05-naming-locating-objects/images/preds_valid.jpg rename to content/blog/ported/ai/2018-11-05-naming-locating-objects/images/preds_valid.jpg diff --git a/content/blog/ai/2018-11-05-naming-locating-objects/images/preds_valid_2.jpg b/content/blog/ported/ai/2018-11-05-naming-locating-objects/images/preds_valid_2.jpg similarity index 100% rename from content/blog/ai/2018-11-05-naming-locating-objects/images/preds_valid_2.jpg rename to content/blog/ported/ai/2018-11-05-naming-locating-objects/images/preds_valid_2.jpg diff --git a/content/blog/ai/2018-11-05-naming-locating-objects/index.Rmd b/content/blog/ported/ai/2018-11-05-naming-locating-objects/index.Rmd similarity index 99% rename from content/blog/ai/2018-11-05-naming-locating-objects/index.Rmd rename to content/blog/ported/ai/2018-11-05-naming-locating-objects/index.Rmd index d3c246640..abbb5fbd3 100644 --- a/content/blog/ai/2018-11-05-naming-locating-objects/index.Rmd +++ b/content/blog/ported/ai/2018-11-05-naming-locating-objects/index.Rmd @@ -471,7 +471,7 @@ Now, the most interesting change is to the model - even though it's a change to Were we to use `categorical_crossentropy` now (the non-sparse variant of the above), combined with a `softmax` activation, we would effectively tell the model to pick just one, namely, the most probable object. Instead, we want to decide: For each object class, is it present in the image or not? Thus, instead of `softmax` we use `sigmoid`, paired with `binary_crossentropy`, to obtain an independent verdict on every class. diff --git a/content/blog/ai/2018-11-05-naming-locating-objects/index.md b/content/blog/ported/ai/2018-11-05-naming-locating-objects/index.md similarity index 99% rename from content/blog/ai/2018-11-05-naming-locating-objects/index.md rename to content/blog/ported/ai/2018-11-05-naming-locating-objects/index.md index 7902e23c0..ca6d3b5fd 100644 --- a/content/blog/ai/2018-11-05-naming-locating-objects/index.md +++ b/content/blog/ported/ai/2018-11-05-naming-locating-objects/index.md @@ -461,7 +461,7 @@ Now, the most interesting change is to the model - even though it's a change to Were we to use `categorical_crossentropy` now (the non-sparse variant of the above), combined with a `softmax` activation, we would effectively tell the model to pick just one, namely, the most probable object. Instead, we want to decide: For each object class, is it present in the image or not? Thus, instead of `softmax` we use `sigmoid`, paired with `binary_crossentropy`, to obtain an independent verdict on every class. diff --git a/content/blog/ai/2018-11-05-naming-locating-objects/thumbnail.jpg b/content/blog/ported/ai/2018-11-05-naming-locating-objects/thumbnail.jpg similarity index 100% rename from content/blog/ai/2018-11-05-naming-locating-objects/thumbnail.jpg rename to content/blog/ported/ai/2018-11-05-naming-locating-objects/thumbnail.jpg diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/bibliography.bib b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/bibliography.bib similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/bibliography.bib rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/bibliography.bib diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/1000.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/1000.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/1000.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/1000.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/aleatoric_1000.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/aleatoric_1000.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/aleatoric_1000.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/aleatoric_1000.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/epistemic_1000.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/epistemic_1000.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/epistemic_1000.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/epistemic_1000.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/overall_1000.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/overall_1000.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/overall_1000.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/overall_1000.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/retinopathy.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/retinopathy.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/retinopathy.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/retinopathy.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/scattermat.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/scattermat.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/scattermat.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/scattermat.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/thumb.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/thumb.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/thumb.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/thumb.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_4.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_4.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_4.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_4.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_AP.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_AP.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_AP.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_AP.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_AT.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_AT.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_AT.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_AT.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_RH.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_RH.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_RH.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_RH.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_V.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_V.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_V.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/images/uc_V.png diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/index.Rmd b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/index.Rmd similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/index.Rmd rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/index.Rmd diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/index.md b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/index.md similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/index.md rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/index.md diff --git a/content/blog/ai/2018-11-12-uncertainty_estimates_dropout/thumbnail.png b/content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/thumbnail.png similarity index 100% rename from content/blog/ai/2018-11-12-uncertainty_estimates_dropout/thumbnail.png rename to content/blog/ported/ai/2018-11-12-uncertainty_estimates_dropout/thumbnail.png diff --git a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/bibliography.bib b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/bibliography.bib similarity index 100% rename from content/blog/ai/2018-11-26-embeddings-fun-and-profit/bibliography.bib rename to content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/bibliography.bib diff --git a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/ethicschoice.png b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/ethicschoice.png similarity index 100% rename from content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/ethicschoice.png rename to content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/ethicschoice.png diff --git a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/jobsatisfaction.png b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/jobsatisfaction.png similarity index 100% rename from content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/jobsatisfaction.png rename to content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/jobsatisfaction.png diff --git a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/mikolov.png b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/mikolov.png similarity index 100% rename from content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/mikolov.png rename to content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/mikolov.png diff --git a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/out.png b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/out.png similarity index 100% rename from content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/out.png rename to content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/out.png diff --git a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/so_one_hot.png b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/so_one_hot.png similarity index 100% rename from content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/so_one_hot.png rename to content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/so_one_hot.png diff --git a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/thumb.png b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/thumb.png similarity index 100% rename from content/blog/ai/2018-11-26-embeddings-fun-and-profit/images/thumb.png rename to content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/images/thumb.png diff --git a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/index.Rmd b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/index.Rmd similarity index 99% rename from content/blog/ai/2018-11-26-embeddings-fun-and-profit/index.Rmd rename to content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/index.Rmd index 835cb5d53..884aed3b3 100644 --- a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/index.Rmd +++ b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/index.Rmd @@ -36,7 +36,7 @@ What's useful about embeddings? Depending on who you ask, answers may vary. For Others will probably bring up _entity embeddings_, the magic tool that helped win the Rossmann competition[@GuoB16] and was greatly popularized by [fast.ai's deep learning course](https://course.fast.ai/). Here, the idea is to make use of data that is not normally helpful in prediction, like high-dimensional categorical variables. -Another (related) idea, also widely spread by fast.ai and explained in [this blog](/blog/ai/2018-09-26-embeddings-recommender/), is to apply embeddings to collaborative filtering. This basically builds up entity embeddings of users and items based on the criterion how well these "match" (as indicated by existing ratings). +Another (related) idea, also widely spread by fast.ai and explained in [this blog](/blog/2018-09-26_keydana2018embeddings-recommender/), is to apply embeddings to collaborative filtering. This basically builds up entity embeddings of users and items based on the criterion how well these "match" (as indicated by existing ratings). So what are embeddings good for? The way we see it, embeddings are what you make of them. The goal in this post is to provide examples of how to use embeddings to uncover relationships and improve prediction. The examples are just that - examples, chosen to demonstrate a method. The most interesting thing really will be what you make of these methods in _your_ area of work or interest. diff --git a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/index.md b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/index.md similarity index 99% rename from content/blog/ai/2018-11-26-embeddings-fun-and-profit/index.md rename to content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/index.md index 1db040b84..1555c7854 100644 --- a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/index.md +++ b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/index.md @@ -39,7 +39,7 @@ What's useful about embeddings? Depending on who you ask, answers may vary. For Others will probably bring up *entity embeddings*, the magic tool that helped win the Rossmann competition(Guo and Berkhahn 2016) and was greatly popularized by [fast.ai's deep learning course](https://course.fast.ai/). Here, the idea is to make use of data that is not normally helpful in prediction, like high-dimensional categorical variables. -Another (related) idea, also widely spread by fast.ai and explained in [this blog](/blog/ai/2018-09-26-embeddings-recommender/), is to apply embeddings to collaborative filtering. This basically builds up entity embeddings of users and items based on the criterion how well these "match" (as indicated by existing ratings). +Another (related) idea, also widely spread by fast.ai and explained in [this blog](/blog/2018-09-26_keydana2018embeddings-recommender/), is to apply embeddings to collaborative filtering. This basically builds up entity embeddings of users and items based on the criterion how well these "match" (as indicated by existing ratings). So what are embeddings good for? The way we see it, embeddings are what you make of them. The goal in this post is to provide examples of how to use embeddings to uncover relationships and improve prediction. The examples are just that - examples, chosen to demonstrate a method. The most interesting thing really will be what you make of these methods in *your* area of work or interest. diff --git a/content/blog/ai/2018-11-26-embeddings-fun-and-profit/thumbnail.png b/content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/thumbnail.png similarity index 100% rename from content/blog/ai/2018-11-26-embeddings-fun-and-profit/thumbnail.png rename to content/blog/ported/ai/2018-11-26-embeddings-fun-and-profit/thumbnail.png diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/bibliography.bib b/content/blog/ported/ai/2018-12-18-object-detection-concepts/bibliography.bib similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/bibliography.bib rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/bibliography.bib diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/images/aeroplanes.jpeg b/content/blog/ported/ai/2018-12-18-object-detection-concepts/images/aeroplanes.jpeg similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/images/aeroplanes.jpeg rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/images/aeroplanes.jpeg diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/images/anchors.png b/content/blog/ported/ai/2018-12-18-object-detection-concepts/images/anchors.png similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/images/anchors.png rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/images/anchors.png diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/images/box_centers.png b/content/blog/ported/ai/2018-12-18-object-detection-concepts/images/box_centers.png similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/images/box_centers.png rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/images/box_centers.png diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/images/focal.png b/content/blog/ported/ai/2018-12-18-object-detection-concepts/images/focal.png similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/images/focal.png rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/images/focal.png diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/images/grid_centers.png b/content/blog/ported/ai/2018-12-18-object-detection-concepts/images/grid_centers.png similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/images/grid_centers.png rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/images/grid_centers.png diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/images/img_wgrid.jpeg b/content/blog/ported/ai/2018-12-18-object-detection-concepts/images/img_wgrid.jpeg similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/images/img_wgrid.jpeg rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/images/img_wgrid.jpeg diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/images/more_boxes.jpeg b/content/blog/ported/ai/2018-12-18-object-detection-concepts/images/more_boxes.jpeg similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/images/more_boxes.jpeg rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/images/more_boxes.jpeg diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/images/results.jpg b/content/blog/ported/ai/2018-12-18-object-detection-concepts/images/results.jpg similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/images/results.jpg rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/images/results.jpg diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/images/xent.png b/content/blog/ported/ai/2018-12-18-object-detection-concepts/images/xent.png similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/images/xent.png rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/images/xent.png diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/index.Rmd b/content/blog/ported/ai/2018-12-18-object-detection-concepts/index.Rmd similarity index 99% rename from content/blog/ai/2018-12-18-object-detection-concepts/index.Rmd rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/index.Rmd index 0ba72926b..d3a2d33da 100644 --- a/content/blog/ai/2018-12-18-object-detection-concepts/index.Rmd +++ b/content/blog/ported/ai/2018-12-18-object-detection-concepts/index.Rmd @@ -48,7 +48,7 @@ library(ggplot2) library(stringr) ``` -A few weeks ago, we provided an introduction to the task of [naming and locating objects in images](/blog/ai/2018-11-05-naming-locating-objects/). +A few weeks ago, we provided an introduction to the task of [naming and locating objects in images](/blog/2018-11-05_keydana2018naminglocatingobjects/). Crucially, we confined ourselves to detecting a single object in an image. Reading that article, you might have thought "can't we just extend this approach to several objects"? The short answer is, not in a straightforward way. We'll see a longer answer shortly. In this post, we want to detail one viable approach, explaining (and coding) the steps involved. We won't, however, end up with a production-ready model. So if you read on, you won't have a model you can export and put on your smartphone, for use in the wild. You should, however, have learned a bit about how this - object detection - is even possible. After all, it might look like magic! @@ -87,7 +87,7 @@ In this post, we show how to code a _very basic_ single-shot approach, inspired ## A basic single-shot detector -We're using the same dataset as in [Naming and locating objects in images](/blog/ai/2018-11-05-naming-locating-objects/) - Pascal VOC, the 2007 edition - and we start out with the same preprocessing steps, up and until we have an object `imageinfo` that contains, in every row, information about a single object in an image.^[We won't need `imageinfo_maxbb` in this post.] +We're using the same dataset as in [Naming and locating objects in images](/blog/2018-11-05_keydana2018naminglocatingobjects/) - Pascal VOC, the 2007 edition - and we start out with the same preprocessing steps, up and until we have an object `imageinfo` that contains, in every row, information about a single object in an image.^[We won't need `imageinfo_maxbb` in this post.] ### Further preprocessing diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/index.md b/content/blog/ported/ai/2018-12-18-object-detection-concepts/index.md similarity index 99% rename from content/blog/ai/2018-12-18-object-detection-concepts/index.md rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/index.md index 8d752146f..4d484e4df 100644 --- a/content/blog/ai/2018-12-18-object-detection-concepts/index.md +++ b/content/blog/ported/ai/2018-12-18-object-detection-concepts/index.md @@ -32,7 +32,7 @@ math: true -A few weeks ago, we provided an introduction to the task of [naming and locating objects in images](/blog/ai/2018-11-05-naming-locating-objects/). +A few weeks ago, we provided an introduction to the task of [naming and locating objects in images](/blog/2018-11-05_keydana2018naminglocatingobjects/). Crucially, we confined ourselves to detecting a single object in an image. Reading that article, you might have thought "can't we just extend this approach to several objects"? The short answer is, not in a straightforward way. We'll see a longer answer shortly. In this post, we want to detail one viable approach, explaining (and coding) the steps involved. We won't, however, end up with a production-ready model. So if you read on, you won't have a model you can export and put on your smartphone, for use in the wild. You should, however, have learned a bit about how this - object detection - is even possible. After all, it might look like magic! @@ -71,7 +71,7 @@ In this post, we show how to code a *very basic* single-shot approach, inspired ## A basic single-shot detector -We're using the same dataset as in [Naming and locating objects in images](/blog/ai/2018-11-05-naming-locating-objects/) - Pascal VOC, the 2007 edition - and we start out with the same preprocessing steps, up and until we have an object `imageinfo` that contains, in every row, information about a single object in an image.[^1] +We're using the same dataset as in [Naming and locating objects in images](/blog/2018-11-05_keydana2018naminglocatingobjects/) - Pascal VOC, the 2007 edition - and we start out with the same preprocessing steps, up and until we have an object `imageinfo` that contains, in every row, information about a single object in an image.[^1] ### Further preprocessing diff --git a/content/blog/ai/2018-12-18-object-detection-concepts/thumbnail.jpg b/content/blog/ported/ai/2018-12-18-object-detection-concepts/thumbnail.jpg similarity index 100% rename from content/blog/ai/2018-12-18-object-detection-concepts/thumbnail.jpg rename to content/blog/ported/ai/2018-12-18-object-detection-concepts/thumbnail.jpg diff --git a/content/blog/ai/2019-01-08-getting-started-with-tf-probability/bibliography.bib b/content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/bibliography.bib similarity index 100% rename from content/blog/ai/2019-01-08-getting-started-with-tf-probability/bibliography.bib rename to content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/bibliography.bib diff --git a/content/blog/ai/2019-01-08-getting-started-with-tf-probability/images/kmnist_examples.png b/content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/images/kmnist_examples.png similarity index 100% rename from content/blog/ai/2019-01-08-getting-started-with-tf-probability/images/kmnist_examples.png rename to content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/images/kmnist_examples.png diff --git a/content/blog/ai/2019-01-08-getting-started-with-tf-probability/images/results.png b/content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/images/results.png similarity index 100% rename from content/blog/ai/2019-01-08-getting-started-with-tf-probability/images/results.png rename to content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/images/results.png diff --git a/content/blog/ai/2019-01-08-getting-started-with-tf-probability/images/thumb.png b/content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/images/thumb.png similarity index 100% rename from content/blog/ai/2019-01-08-getting-started-with-tf-probability/images/thumb.png rename to content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/images/thumb.png diff --git a/content/blog/ai/2019-01-08-getting-started-with-tf-probability/index.Rmd b/content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/index.Rmd similarity index 98% rename from content/blog/ai/2019-01-08-getting-started-with-tf-probability/index.Rmd rename to content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/index.Rmd index 2c27a6098..b7b079532 100644 --- a/content/blog/ai/2019-01-08-getting-started-with-tf-probability/index.Rmd +++ b/content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/index.Rmd @@ -42,7 +42,7 @@ With the abundance of great libraries, in R, for statistical computing, why woul Now imagine all these working seamlessly with the TensorFlow framework - core, Keras, contributed modules - and also, running distributed and on GPU. The field of possible applications is vast - and far too diverse to cover as a whole in an introductory blog post. Instead, our aim here is to provide a first introduction to _TFP_, focusing on direct applicability to and interoperability with deep learning. -We'll quickly show how to get started with one of the basic building blocks: `distributions`. Then, we'll build a variational autoencoder similar to that in [Representation learning with MMD-VAE](/blog/ai/2018-10-22-mmd-vae/). This time though, we'll make use of _TFP_ to sample from the prior and approximate posterior distributions. +We'll quickly show how to get started with one of the basic building blocks: `distributions`. Then, we'll build a variational autoencoder similar to that in [Representation learning with MMD-VAE](/blog/2018-10-22_keydana2018mmdvae/). This time though, we'll make use of _TFP_ to sample from the prior and approximate posterior distributions. We'll regard this post as a "proof on concept" for using _TFP_ with Keras - from R - and plan to follow up with more elaborate examples from the area of semi-supervised representation learning. @@ -248,7 +248,7 @@ With this basic understanding of _TFP_ distributions, we're ready to see them us # Variational autoencoder using _TFP_ -We'll take the (not so) deep convolutional architecture from [Representation learning with MMD-VAE](/blog/ai/2018-10-22-mmd-vae/) and use `distributions` for sampling and computing probabilities. Optionally, our new VAE will be able to _learn the prior distribution_. +We'll take the (not so) deep convolutional architecture from [Representation learning with MMD-VAE](/blog/2018-10-22_keydana2018mmdvae/) and use `distributions` for sampling and computing probabilities. Optionally, our new VAE will be able to _learn the prior distribution_. Concretely, the following exposition will consist of three parts. First, we present common code applicable to both a VAE with a static prior, and one that learns the parameters of the prior distribution. diff --git a/content/blog/ai/2019-01-08-getting-started-with-tf-probability/index.md b/content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/index.md similarity index 98% rename from content/blog/ai/2019-01-08-getting-started-with-tf-probability/index.md rename to content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/index.md index b0f51b391..c1cd6e1cf 100644 --- a/content/blog/ai/2019-01-08-getting-started-with-tf-probability/index.md +++ b/content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/index.md @@ -42,7 +42,7 @@ With the abundance of great libraries, in R, for statistical computing, why woul Now imagine all these working seamlessly with the TensorFlow framework - core, Keras, contributed modules - and also, running distributed and on GPU. The field of possible applications is vast - and far too diverse to cover as a whole in an introductory blog post. Instead, our aim here is to provide a first introduction to *TFP*, focusing on direct applicability to and interoperability with deep learning. -We'll quickly show how to get started with one of the basic building blocks: `distributions`. Then, we'll build a variational autoencoder similar to that in [Representation learning with MMD-VAE](/blog/ai/2018-10-22-mmd-vae/). This time though, we'll make use of *TFP* to sample from the prior and approximate posterior distributions. +We'll quickly show how to get started with one of the basic building blocks: `distributions`. Then, we'll build a variational autoencoder similar to that in [Representation learning with MMD-VAE](/blog/2018-10-22_keydana2018mmdvae/). This time though, we'll make use of *TFP* to sample from the prior and approximate posterior distributions. We'll regard this post as a "proof on concept" for using *TFP* with Keras - from R - and plan to follow up with more elaborate examples from the area of semi-supervised representation learning. @@ -228,7 +228,7 @@ With this basic understanding of *TFP* distributions, we're ready to see them us # Variational autoencoder using *TFP* -We'll take the (not so) deep convolutional architecture from [Representation learning with MMD-VAE](/blog/ai/2018-10-22-mmd-vae/) and use `distributions` for sampling and computing probabilities. Optionally, our new VAE will be able to *learn the prior distribution*. +We'll take the (not so) deep convolutional architecture from [Representation learning with MMD-VAE](/blog/2018-10-22_keydana2018mmdvae/) and use `distributions` for sampling and computing probabilities. Optionally, our new VAE will be able to *learn the prior distribution*. Concretely, the following exposition will consist of three parts. First, we present common code applicable to both a VAE with a static prior, and one that learns the parameters of the prior distribution. diff --git a/content/blog/ai/2019-01-08-getting-started-with-tf-probability/thumbnail.png b/content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/thumbnail.png similarity index 100% rename from content/blog/ai/2019-01-08-getting-started-with-tf-probability/thumbnail.png rename to content/blog/ported/ai/2019-01-08-getting-started-with-tf-probability/thumbnail.png diff --git a/content/blog/ai/2019-01-24-vq-vae/bibliography.bib b/content/blog/ported/ai/2019-01-24-vq-vae/bibliography.bib similarity index 100% rename from content/blog/ai/2019-01-24-vq-vae/bibliography.bib rename to content/blog/ported/ai/2019-01-24-vq-vae/bibliography.bib diff --git a/content/blog/ai/2019-01-24-vq-vae/images/epoch_9.png b/content/blog/ported/ai/2019-01-24-vq-vae/images/epoch_9.png similarity index 100% rename from content/blog/ai/2019-01-24-vq-vae/images/epoch_9.png rename to content/blog/ported/ai/2019-01-24-vq-vae/images/epoch_9.png diff --git a/content/blog/ai/2019-01-24-vq-vae/images/thumb1.png b/content/blog/ported/ai/2019-01-24-vq-vae/images/thumb1.png similarity index 100% rename from content/blog/ai/2019-01-24-vq-vae/images/thumb1.png rename to content/blog/ported/ai/2019-01-24-vq-vae/images/thumb1.png diff --git a/content/blog/ai/2019-01-24-vq-vae/index.Rmd b/content/blog/ported/ai/2019-01-24-vq-vae/index.Rmd similarity index 97% rename from content/blog/ai/2019-01-24-vq-vae/index.Rmd rename to content/blog/ported/ai/2019-01-24-vq-vae/index.Rmd index a43a3684f..a53dcf4a0 100644 --- a/content/blog/ai/2019-01-24-vq-vae/index.Rmd +++ b/content/blog/ported/ai/2019-01-24-vq-vae/index.Rmd @@ -33,7 +33,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -About two weeks ago, we [introduced TensorFlow Probability (TFP)](/blog/ai/2019-01-08-getting-started-with-tf-probability/), showing how to create and sample from _distributions_ and put them to use in a Variational Autoencoder (VAE) that learns its prior. Today, we move on to a different specimen in the VAE model zoo: the Vector Quantised Variational Autoencoder (VQ-VAE) described in _Neural Discrete Representation Learning_ [@abs-1711-00937]. This model differs from most VAEs in that its approximate posterior is not continuous, but discrete - hence the "quantised" in the article's title. We'll quickly look at what this means, and then dive directly into the code, combining Keras layers, eager execution, and TFP. +About two weeks ago, we [introduced TensorFlow Probability (TFP)](/blog/2019-01-08_keydana2019tfprobability/), showing how to create and sample from _distributions_ and put them to use in a Variational Autoencoder (VAE) that learns its prior. Today, we move on to a different specimen in the VAE model zoo: the Vector Quantised Variational Autoencoder (VQ-VAE) described in _Neural Discrete Representation Learning_ [@abs-1711-00937]. This model differs from most VAEs in that its approximate posterior is not continuous, but discrete - hence the "quantised" in the article's title. We'll quickly look at what this means, and then dive directly into the code, combining Keras layers, eager execution, and TFP. # Discrete codes diff --git a/content/blog/ai/2019-01-24-vq-vae/index.md b/content/blog/ported/ai/2019-01-24-vq-vae/index.md similarity index 97% rename from content/blog/ai/2019-01-24-vq-vae/index.md rename to content/blog/ported/ai/2019-01-24-vq-vae/index.md index 72e80208a..8c49c6826 100644 --- a/content/blog/ai/2019-01-24-vq-vae/index.md +++ b/content/blog/ported/ai/2019-01-24-vq-vae/index.md @@ -33,7 +33,7 @@ tags: -About two weeks ago, we [introduced TensorFlow Probability (TFP)](/blog/ai/2019-01-08-getting-started-with-tf-probability/), showing how to create and sample from *distributions* and put them to use in a Variational Autoencoder (VAE) that learns its prior. Today, we move on to a different specimen in the VAE model zoo: the Vector Quantised Variational Autoencoder (VQ-VAE) described in *Neural Discrete Representation Learning* (Oord et al. 2017). This model differs from most VAEs in that its approximate posterior is not continuous, but discrete - hence the "quantised" in the article's title. We'll quickly look at what this means, and then dive directly into the code, combining Keras layers, eager execution, and TFP. +About two weeks ago, we [introduced TensorFlow Probability (TFP)](/blog/2019-01-08_keydana2019tfprobability/), showing how to create and sample from *distributions* and put them to use in a Variational Autoencoder (VAE) that learns its prior. Today, we move on to a different specimen in the VAE model zoo: the Vector Quantised Variational Autoencoder (VQ-VAE) described in *Neural Discrete Representation Learning* (Oord et al. 2017). This model differs from most VAEs in that its approximate posterior is not continuous, but discrete - hence the "quantised" in the article's title. We'll quickly look at what this means, and then dive directly into the code, combining Keras layers, eager execution, and TFP. # Discrete codes diff --git a/content/blog/ai/2019-01-24-vq-vae/thumbnail.png b/content/blog/ported/ai/2019-01-24-vq-vae/thumbnail.png similarity index 100% rename from content/blog/ai/2019-01-24-vq-vae/thumbnail.png rename to content/blog/ported/ai/2019-01-24-vq-vae/thumbnail.png diff --git a/content/blog/ai/2019-02-07-audio-background/bibliography.bib b/content/blog/ported/ai/2019-02-07-audio-background/bibliography.bib similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/bibliography.bib rename to content/blog/ported/ai/2019-02-07-audio-background/bibliography.bib diff --git a/content/blog/ai/2019-02-07-audio-background/images/aliasing.png b/content/blog/ported/ai/2019-02-07-audio-background/images/aliasing.png similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/images/aliasing.png rename to content/blog/ported/ai/2019-02-07-audio-background/images/aliasing.png diff --git a/content/blog/ai/2019-02-07-audio-background/images/bandwidth_1_2.png b/content/blog/ported/ai/2019-02-07-audio-background/images/bandwidth_1_2.png similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/images/bandwidth_1_2.png rename to content/blog/ported/ai/2019-02-07-audio-background/images/bandwidth_1_2.png diff --git a/content/blog/ai/2019-02-07-audio-background/images/bandwidth_2_2.png b/content/blog/ported/ai/2019-02-07-audio-background/images/bandwidth_2_2.png similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/images/bandwidth_2_2.png rename to content/blog/ported/ai/2019-02-07-audio-background/images/bandwidth_2_2.png diff --git a/content/blog/ai/2019-02-07-audio-background/images/seven2.png b/content/blog/ported/ai/2019-02-07-audio-background/images/seven2.png similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/images/seven2.png rename to content/blog/ported/ai/2019-02-07-audio-background/images/seven2.png diff --git a/content/blog/ai/2019-02-07-audio-background/images/seven_16000_2.png b/content/blog/ported/ai/2019-02-07-audio-background/images/seven_16000_2.png similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/images/seven_16000_2.png rename to content/blog/ported/ai/2019-02-07-audio-background/images/seven_16000_2.png diff --git a/content/blog/ai/2019-02-07-audio-background/images/seven_30_2.png b/content/blog/ported/ai/2019-02-07-audio-background/images/seven_30_2.png similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/images/seven_30_2.png rename to content/blog/ported/ai/2019-02-07-audio-background/images/seven_30_2.png diff --git a/content/blog/ai/2019-02-07-audio-background/images/sin8_16_32_64_2.png b/content/blog/ported/ai/2019-02-07-audio-background/images/sin8_16_32_64_2.png similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/images/sin8_16_32_64_2.png rename to content/blog/ported/ai/2019-02-07-audio-background/images/sin8_16_32_64_2.png diff --git a/content/blog/ai/2019-02-07-audio-background/images/waves2.png b/content/blog/ported/ai/2019-02-07-audio-background/images/waves2.png similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/images/waves2.png rename to content/blog/ported/ai/2019-02-07-audio-background/images/waves2.png diff --git a/content/blog/ai/2019-02-07-audio-background/images/waves2.png.original b/content/blog/ported/ai/2019-02-07-audio-background/images/waves2.png.original similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/images/waves2.png.original rename to content/blog/ported/ai/2019-02-07-audio-background/images/waves2.png.original diff --git a/content/blog/ai/2019-02-07-audio-background/images/windows2.png b/content/blog/ported/ai/2019-02-07-audio-background/images/windows2.png similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/images/windows2.png rename to content/blog/ported/ai/2019-02-07-audio-background/images/windows2.png diff --git a/content/blog/ai/2019-02-07-audio-background/index.Rmd b/content/blog/ported/ai/2019-02-07-audio-background/index.Rmd similarity index 98% rename from content/blog/ai/2019-02-07-audio-background/index.Rmd rename to content/blog/ported/ai/2019-02-07-audio-background/index.Rmd index e2bde2d15..75af573cd 100644 --- a/content/blog/ai/2019-02-07-audio-background/index.Rmd +++ b/content/blog/ported/ai/2019-02-07-audio-background/index.Rmd @@ -129,7 +129,7 @@ Back to our original task of speech classification. Now that we've gained a bit # Preprocessing for audio classification using TensorFlow Code will be represented in snippets according to the functionality it provides, so we may directly map it to what was explained conceptually above. -A complete example is available [here](https://github.com/skeydan/audio_classification/blob/master/audio_classification_tf.R). The complete example builds on Daniel's [original code](/blog/ai/2018-06-06-simple-audio-classification-keras/) as much as possible ^[In particular, we're leaving the convnet and training code itself nearly unchanged.], with two exceptions: +A complete example is available [here](https://github.com/skeydan/audio_classification/blob/master/audio_classification_tf.R). The complete example builds on Daniel's [original code](/blog/2018-06-06_simple-audio-classification-keras/) as much as possible ^[In particular, we're leaving the convnet and training code itself nearly unchanged.], with two exceptions: - The code runs in eager as well as in static graph mode. If you decide you only ever need eager mode, there are a few places that can be simplified. This is partly related to the fact that in eager mode, TensorFlow operations in place of tensors return values, which we can directly pass on to TensorFlow functions expecting values, not tensors. In addition, less conversion code is needed when manipulating intermediate values in R. diff --git a/content/blog/ai/2019-02-07-audio-background/index.md b/content/blog/ported/ai/2019-02-07-audio-background/index.md similarity index 99% rename from content/blog/ai/2019-02-07-audio-background/index.md rename to content/blog/ported/ai/2019-02-07-audio-background/index.md index 461c9e51f..00b5390a8 100644 --- a/content/blog/ai/2019-02-07-audio-background/index.md +++ b/content/blog/ported/ai/2019-02-07-audio-background/index.md @@ -127,7 +127,7 @@ Back to our original task of speech classification. Now that we've gained a bit # Preprocessing for audio classification using TensorFlow Code will be represented in snippets according to the functionality it provides, so we may directly map it to what was explained conceptually above. -A complete example is available [here](https://github.com/skeydan/audio_classification/blob/master/audio_classification_tf.R). The complete example builds on Daniel's [original code](/blog/ai/2018-06-06-simple-audio-classification-keras/) as much as possible [^6], with two exceptions: +A complete example is available [here](https://github.com/skeydan/audio_classification/blob/master/audio_classification_tf.R). The complete example builds on Daniel's [original code](/blog/2018-06-06_simple-audio-classification-keras/) as much as possible [^6], with two exceptions: - The code runs in eager as well as in static graph mode. If you decide you only ever need eager mode, there are a few places that can be simplified. This is partly related to the fact that in eager mode, TensorFlow operations in place of tensors return values, which we can directly pass on to TensorFlow functions expecting values, not tensors. In addition, less conversion code is needed when manipulating intermediate values in R. diff --git a/content/blog/ai/2019-02-07-audio-background/thumbnail.png b/content/blog/ported/ai/2019-02-07-audio-background/thumbnail.png similarity index 100% rename from content/blog/ai/2019-02-07-audio-background/thumbnail.png rename to content/blog/ported/ai/2019-02-07-audio-background/thumbnail.png diff --git a/content/blog/ai/2019-03-15-concepts-way-to-dl/images/prev.jpg b/content/blog/ported/ai/2019-03-15-concepts-way-to-dl/images/prev.jpg similarity index 100% rename from content/blog/ai/2019-03-15-concepts-way-to-dl/images/prev.jpg rename to content/blog/ported/ai/2019-03-15-concepts-way-to-dl/images/prev.jpg diff --git a/content/blog/ai/2019-03-15-concepts-way-to-dl/index.Rmd b/content/blog/ported/ai/2019-03-15-concepts-way-to-dl/index.Rmd similarity index 98% rename from content/blog/ai/2019-03-15-concepts-way-to-dl/index.Rmd rename to content/blog/ported/ai/2019-03-15-concepts-way-to-dl/index.Rmd index efbb58844..8a3f953a0 100644 --- a/content/blog/ai/2019-03-15-concepts-way-to-dl/index.Rmd +++ b/content/blog/ported/ai/2019-03-15-concepts-way-to-dl/index.Rmd @@ -98,7 +98,7 @@ $$\frac{e^{z_i}}{\sum_j{e^{z_j}}}$$ it is "just a softmax". Again, my inspiration for this comes from Jeremy Howard, who I remember demonstrating, in one of the fastai lectures, that this is how you read a paper. -Let's turn to a more complex example. Last year's article on [Attention-based Neural Machine Translation with Keras](/blog/ai/2018-07-30-attention-layer/) included a short exposition of _attention_, featuring four steps: +Let's turn to a more complex example. Last year's article on [Attention-based Neural Machine Translation with Keras](/blog/2018-07-30_attention-layer/) included a short exposition of _attention_, featuring four steps: (1) Scoring encoder hidden states as to inasmuch they are a fit to the current decoder hidden state. @@ -172,7 +172,7 @@ $$ In the same way, reflection, rotation, and projection matrices are presented via their _actions_. The same goes for one of the most interesting topics in linear algebra from the point of view of the data scientist: matrix factorizations. $LU$, $QR$, eigendecomposition, $SVD$ are all characterized by _what they do_. ^[Although, if this were the paragraph about _abstractions_, Gilbert Strang's books would yield perfect examples as well.] -Who are the agents in neural networks? Activation functions are agents; this is where we have to mention `softmax` for the third time: Its strategy was described in [Winner takes all: A look at activations and cost functions](/blog/ai/2018-10-11-activations-intro/). +Who are the agents in neural networks? Activation functions are agents; this is where we have to mention `softmax` for the third time: Its strategy was described in [Winner takes all: A look at activations and cost functions](/blog/2018-10-11_keydana2018activationsintro/). Also, optimizers are agents, and this is where we finally include some code. The explicit training loop used in all of the eager execution blog posts so far diff --git a/content/blog/ai/2019-03-15-concepts-way-to-dl/index.md b/content/blog/ported/ai/2019-03-15-concepts-way-to-dl/index.md similarity index 98% rename from content/blog/ai/2019-03-15-concepts-way-to-dl/index.md rename to content/blog/ported/ai/2019-03-15-concepts-way-to-dl/index.md index c49068eb8..bd43ef9c6 100644 --- a/content/blog/ai/2019-03-15-concepts-way-to-dl/index.md +++ b/content/blog/ported/ai/2019-03-15-concepts-way-to-dl/index.md @@ -97,7 +97,7 @@ $$\frac{e^{z_i}}{\sum_j{e^{z_j}}}$$ it is "just a softmax". Again, my inspiration for this comes from Jeremy Howard, who I remember demonstrating, in one of the fastai lectures, that this is how you read a paper. -Let's turn to a more complex example. Last year's article on [Attention-based Neural Machine Translation with Keras](/blog/ai/2018-07-30-attention-layer/) included a short exposition of *attention*, featuring four steps: +Let's turn to a more complex example. Last year's article on [Attention-based Neural Machine Translation with Keras](/blog/2018-07-30_attention-layer/) included a short exposition of *attention*, featuring four steps: 1. Scoring encoder hidden states as to inasmuch they are a fit to the current decoder hidden state. @@ -169,7 +169,7 @@ $$\mathbf{PA} = \left[\begin{array} In the same way, reflection, rotation, and projection matrices are presented via their *actions*. The same goes for one of the most interesting topics in linear algebra from the point of view of the data scientist: matrix factorizations. $LU$, $QR$, eigendecomposition, $SVD$ are all characterized by *what they do*. [^13] -Who are the agents in neural networks? Activation functions are agents; this is where we have to mention `softmax` for the third time: Its strategy was described in [Winner takes all: A look at activations and cost functions](/blog/ai/2018-10-11-activations-intro/). +Who are the agents in neural networks? Activation functions are agents; this is where we have to mention `softmax` for the third time: Its strategy was described in [Winner takes all: A look at activations and cost functions](/blog/2018-10-11_keydana2018activationsintro/). Also, optimizers are agents, and this is where we finally include some code. The explicit training loop used in all of the eager execution blog posts so far diff --git a/content/blog/ai/2019-03-15-concepts-way-to-dl/thumbnail.jpg b/content/blog/ported/ai/2019-03-15-concepts-way-to-dl/thumbnail.jpg similarity index 100% rename from content/blog/ai/2019-03-15-concepts-way-to-dl/thumbnail.jpg rename to content/blog/ported/ai/2019-03-15-concepts-way-to-dl/thumbnail.jpg diff --git a/content/blog/ai/2019-04-05-bijectors-flows/bibliography.bib b/content/blog/ported/ai/2019-04-05-bijectors-flows/bibliography.bib similarity index 100% rename from content/blog/ai/2019-04-05-bijectors-flows/bibliography.bib rename to content/blog/ported/ai/2019-04-05-bijectors-flows/bibliography.bib diff --git a/content/blog/ai/2019-04-05-bijectors-flows/images/flows.png b/content/blog/ported/ai/2019-04-05-bijectors-flows/images/flows.png similarity index 100% rename from content/blog/ai/2019-04-05-bijectors-flows/images/flows.png rename to content/blog/ported/ai/2019-04-05-bijectors-flows/images/flows.png diff --git a/content/blog/ai/2019-04-05-bijectors-flows/images/normal_samples.png b/content/blog/ported/ai/2019-04-05-bijectors-flows/images/normal_samples.png similarity index 100% rename from content/blog/ai/2019-04-05-bijectors-flows/images/normal_samples.png rename to content/blog/ported/ai/2019-04-05-bijectors-flows/images/normal_samples.png diff --git a/content/blog/ai/2019-04-05-bijectors-flows/index.Rmd b/content/blog/ported/ai/2019-04-05-bijectors-flows/index.Rmd similarity index 100% rename from content/blog/ai/2019-04-05-bijectors-flows/index.Rmd rename to content/blog/ported/ai/2019-04-05-bijectors-flows/index.Rmd diff --git a/content/blog/ai/2019-04-05-bijectors-flows/index.md b/content/blog/ported/ai/2019-04-05-bijectors-flows/index.md similarity index 100% rename from content/blog/ai/2019-04-05-bijectors-flows/index.md rename to content/blog/ported/ai/2019-04-05-bijectors-flows/index.md diff --git a/content/blog/ai/2019-04-05-bijectors-flows/thumbnail.png b/content/blog/ported/ai/2019-04-05-bijectors-flows/thumbnail.png similarity index 100% rename from content/blog/ai/2019-04-05-bijectors-flows/thumbnail.png rename to content/blog/ported/ai/2019-04-05-bijectors-flows/thumbnail.png diff --git a/content/blog/ai/2019-04-16-autokeras/bibliography.bib b/content/blog/ported/ai/2019-04-16-autokeras/bibliography.bib similarity index 100% rename from content/blog/ai/2019-04-16-autokeras/bibliography.bib rename to content/blog/ported/ai/2019-04-16-autokeras/bibliography.bib diff --git a/content/blog/ai/2019-04-16-autokeras/images/img_1.jpg b/content/blog/ported/ai/2019-04-16-autokeras/images/img_1.jpg similarity index 100% rename from content/blog/ai/2019-04-16-autokeras/images/img_1.jpg rename to content/blog/ported/ai/2019-04-16-autokeras/images/img_1.jpg diff --git a/content/blog/ai/2019-04-16-autokeras/images/mnist_ggplotted_num.png b/content/blog/ported/ai/2019-04-16-autokeras/images/mnist_ggplotted_num.png similarity index 100% rename from content/blog/ai/2019-04-16-autokeras/images/mnist_ggplotted_num.png rename to content/blog/ported/ai/2019-04-16-autokeras/images/mnist_ggplotted_num.png diff --git a/content/blog/ai/2019-04-16-autokeras/images/some_mnist_nums.png b/content/blog/ported/ai/2019-04-16-autokeras/images/some_mnist_nums.png similarity index 100% rename from content/blog/ai/2019-04-16-autokeras/images/some_mnist_nums.png rename to content/blog/ported/ai/2019-04-16-autokeras/images/some_mnist_nums.png diff --git a/content/blog/ai/2019-04-16-autokeras/images/thumbnail.jpg b/content/blog/ported/ai/2019-04-16-autokeras/images/thumbnail.jpg similarity index 100% rename from content/blog/ai/2019-04-16-autokeras/images/thumbnail.jpg rename to content/blog/ported/ai/2019-04-16-autokeras/images/thumbnail.jpg diff --git a/content/blog/ai/2019-04-16-autokeras/index.Rmd b/content/blog/ported/ai/2019-04-16-autokeras/index.Rmd similarity index 100% rename from content/blog/ai/2019-04-16-autokeras/index.Rmd rename to content/blog/ported/ai/2019-04-16-autokeras/index.Rmd diff --git a/content/blog/ai/2019-04-16-autokeras/index.md b/content/blog/ported/ai/2019-04-16-autokeras/index.md similarity index 100% rename from content/blog/ai/2019-04-16-autokeras/index.md rename to content/blog/ported/ai/2019-04-16-autokeras/index.md diff --git a/content/blog/ai/2019-04-16-autokeras/thumbnail.jpg b/content/blog/ported/ai/2019-04-16-autokeras/thumbnail.jpg similarity index 100% rename from content/blog/ai/2019-04-16-autokeras/thumbnail.jpg rename to content/blog/ported/ai/2019-04-16-autokeras/thumbnail.jpg diff --git a/content/blog/ai/2019-04-24-autoregressive-flows/bibliography.bib b/content/blog/ported/ai/2019-04-24-autoregressive-flows/bibliography.bib similarity index 100% rename from content/blog/ai/2019-04-24-autoregressive-flows/bibliography.bib rename to content/blog/ported/ai/2019-04-24-autoregressive-flows/bibliography.bib diff --git a/content/blog/ai/2019-04-24-autoregressive-flows/images/made.png b/content/blog/ported/ai/2019-04-24-autoregressive-flows/images/made.png similarity index 100% rename from content/blog/ai/2019-04-24-autoregressive-flows/images/made.png rename to content/blog/ported/ai/2019-04-24-autoregressive-flows/images/made.png diff --git a/content/blog/ai/2019-04-24-autoregressive-flows/images/maf_results.png b/content/blog/ported/ai/2019-04-24-autoregressive-flows/images/maf_results.png similarity index 100% rename from content/blog/ai/2019-04-24-autoregressive-flows/images/maf_results.png rename to content/blog/ported/ai/2019-04-24-autoregressive-flows/images/maf_results.png diff --git a/content/blog/ai/2019-04-24-autoregressive-flows/index.Rmd b/content/blog/ported/ai/2019-04-24-autoregressive-flows/index.Rmd similarity index 96% rename from content/blog/ai/2019-04-24-autoregressive-flows/index.Rmd rename to content/blog/ported/ai/2019-04-24-autoregressive-flows/index.Rmd index 94b91cb3b..56a4d3387 100644 --- a/content/blog/ai/2019-04-24-autoregressive-flows/index.Rmd +++ b/content/blog/ported/ai/2019-04-24-autoregressive-flows/index.Rmd @@ -33,7 +33,7 @@ tags: knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -In the [first part of this mini-series on autoregressive flow models](/blog/ai/2019-04-05-bijectors-flows/), we looked at _bijectors_ in TensorFlow Probability (TFP), and saw how to use them for sampling and density estimation. We singled out the _affine bijector_ to demonstrate the mechanics of flow construction: We start from a distribution that is easy to sample from, and that allows for straightforward calculation of its density. Then, we attach some number of invertible transformations, optimizing for data-likelihood under the final transformed distribution. The efficiency of that (log)likelihood calculation is where normalizing flows excel: Loglikelihood under the (unknown) target distribution is obtained as a sum of the density under the base distribution of the inverse-transformed data plus the absolute log determinant of the inverse Jacobian. +In the [first part of this mini-series on autoregressive flow models](/blog/2019-04-05_keydana2019flows/), we looked at _bijectors_ in TensorFlow Probability (TFP), and saw how to use them for sampling and density estimation. We singled out the _affine bijector_ to demonstrate the mechanics of flow construction: We start from a distribution that is easy to sample from, and that allows for straightforward calculation of its density. Then, we attach some number of invertible transformations, optimizing for data-likelihood under the final transformed distribution. The efficiency of that (log)likelihood calculation is where normalizing flows excel: Loglikelihood under the (unknown) target distribution is obtained as a sum of the density under the base distribution of the inverse-transformed data plus the absolute log determinant of the inverse Jacobian. Now, an affine flow will seldom be powerful enough to model nonlinear, complex transformations. In constrast, autoregressive models have shown substantive success in density estimation as well as sample generation. Combined with more involved architectures, feature engineering, and extensive compute, the concept of autoregressivity has powered -- and is powering -- state-of-the-art architectures in areas such as image, speech and video modeling. @@ -499,7 +499,7 @@ With these training results, we regard the proof of concept as basically success _Batch normalization_ here was obligatory - and this might go for flows in general. The permutation bijectors, on the other hand, did not make much of a difference on this dataset. Overall the impression is that for flows, we might either need a "bag of tricks" (like is commonly said about GANs), or more involved architectures (see "Outlook" below). -Finally, we wind up with an experiment, coming back to our favorite audio data, already featured in two posts: [Simple Audio Classification with Keras](/blog/ai/2018-06-06-simple-audio-classification-keras/) and [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/ai/2019-02-07-audio-background/). +Finally, we wind up with an experiment, coming back to our favorite audio data, already featured in two posts: [Simple Audio Classification with Keras](/blog/2018-06-06_simple-audio-classification-keras/) and [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/2019-02-07_keydana2019audiobackground/). ## Analysing audio data with MAF @@ -556,7 +556,7 @@ df_train <- df_[idx_train, ] df_test <- df_[-idx_train, ] ``` -Following the approach detailed in [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/ai/2019-02-07-audio-background/), we'd like to train the network on spectrograms instead of the raw time domain data. +Following the approach detailed in [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/2019-02-07_keydana2019audiobackground/), we'd like to train the network on spectrograms instead of the raw time domain data. Using the same settings for `frame_length` and `frame_step` of the Short Term Fourier Transform as in that post, we'd arrive at data shaped `number of frames x number of FFT coefficients`. To make this work with the `masked_dense()` employed in `tfb_masked_autoregressive_flow()`, the data would then have to be flattened, yielding an impressive 25186 features in the joint distribution. With the architecture defined as above in the GAS example, this lead to the network not making much progress. Neither did leaving the data in time domain form, with 16000 features in the joint distribution. Thus, we decided to work with the FFT coefficients computed over the complete window instead, resulting in 257 joint features.^[We quickly experimented with a higher number of FFT coefficients, but the approach did not seem that promising.] diff --git a/content/blog/ai/2019-04-24-autoregressive-flows/index.md b/content/blog/ported/ai/2019-04-24-autoregressive-flows/index.md similarity index 96% rename from content/blog/ai/2019-04-24-autoregressive-flows/index.md rename to content/blog/ported/ai/2019-04-24-autoregressive-flows/index.md index f954703d1..7a39bc86d 100644 --- a/content/blog/ai/2019-04-24-autoregressive-flows/index.md +++ b/content/blog/ported/ai/2019-04-24-autoregressive-flows/index.md @@ -34,7 +34,7 @@ math: true -In the [first part of this mini-series on autoregressive flow models](/blog/ai/2019-04-05-bijectors-flows/), we looked at *bijectors* in TensorFlow Probability (TFP), and saw how to use them for sampling and density estimation. We singled out the *affine bijector* to demonstrate the mechanics of flow construction: We start from a distribution that is easy to sample from, and that allows for straightforward calculation of its density. Then, we attach some number of invertible transformations, optimizing for data-likelihood under the final transformed distribution. The efficiency of that (log)likelihood calculation is where normalizing flows excel: Loglikelihood under the (unknown) target distribution is obtained as a sum of the density under the base distribution of the inverse-transformed data plus the absolute log determinant of the inverse Jacobian. +In the [first part of this mini-series on autoregressive flow models](/blog/2019-04-05_keydana2019flows/), we looked at *bijectors* in TensorFlow Probability (TFP), and saw how to use them for sampling and density estimation. We singled out the *affine bijector* to demonstrate the mechanics of flow construction: We start from a distribution that is easy to sample from, and that allows for straightforward calculation of its density. Then, we attach some number of invertible transformations, optimizing for data-likelihood under the final transformed distribution. The efficiency of that (log)likelihood calculation is where normalizing flows excel: Loglikelihood under the (unknown) target distribution is obtained as a sum of the density under the base distribution of the inverse-transformed data plus the absolute log determinant of the inverse Jacobian. Now, an affine flow will seldom be powerful enough to model nonlinear, complex transformations. In constrast, autoregressive models have shown substantive success in density estimation as well as sample generation. Combined with more involved architectures, feature engineering, and extensive compute, the concept of autoregressivity has powered -- and is powering -- state-of-the-art architectures in areas such as image, speech and video modeling. @@ -477,7 +477,7 @@ With these training results, we regard the proof of concept as basically success *Batch normalization* here was obligatory - and this might go for flows in general. The permutation bijectors, on the other hand, did not make much of a difference on this dataset. Overall the impression is that for flows, we might either need a "bag of tricks" (like is commonly said about GANs), or more involved architectures (see "Outlook" below). -Finally, we wind up with an experiment, coming back to our favorite audio data, already featured in two posts: [Simple Audio Classification with Keras](/blog/ai/2018-06-06-simple-audio-classification-keras/) and [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/ai/2019-02-07-audio-background/). +Finally, we wind up with an experiment, coming back to our favorite audio data, already featured in two posts: [Simple Audio Classification with Keras](/blog/2018-06-06_simple-audio-classification-keras/) and [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/2019-02-07_keydana2019audiobackground/). ## Analysing audio data with MAF @@ -534,7 +534,7 @@ df_train <- df_[idx_train, ] df_test <- df_[-idx_train, ] ``` -Following the approach detailed in [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/ai/2019-02-07-audio-background/), we'd like to train the network on spectrograms instead of the raw time domain data. +Following the approach detailed in [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/2019-02-07_keydana2019audiobackground/), we'd like to train the network on spectrograms instead of the raw time domain data. Using the same settings for `frame_length` and `frame_step` of the Short Term Fourier Transform as in that post, we'd arrive at data shaped `number of frames x number of FFT coefficients`. To make this work with the `masked_dense()` employed in `tfb_masked_autoregressive_flow()`, the data would then have to be flattened, yielding an impressive 25186 features in the joint distribution. With the architecture defined as above in the GAS example, this lead to the network not making much progress. Neither did leaving the data in time domain form, with 16000 features in the joint distribution. Thus, we decided to work with the FFT coefficients computed over the complete window instead, resulting in 257 joint features.[^4] diff --git a/content/blog/ai/2019-04-24-autoregressive-flows/thumbnail.png b/content/blog/ported/ai/2019-04-24-autoregressive-flows/thumbnail.png similarity index 100% rename from content/blog/ai/2019-04-24-autoregressive-flows/thumbnail.png rename to content/blog/ported/ai/2019-04-24-autoregressive-flows/thumbnail.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/forest_plot.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/forest_plot.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/forest_plot.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/forest_plot.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/logits.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/logits.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/logits.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/logits.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/posteriors.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/posteriors.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/posteriors.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/posteriors.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/shrinkage.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/shrinkage.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/shrinkage.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/shrinkage.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/surv_probs.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/surv_probs.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/surv_probs.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/surv_probs.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/tadpoles.jpg b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/tadpoles.jpg similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/tadpoles.jpg rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/tadpoles.jpg diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/tadpoles_t.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/tadpoles_t.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/tadpoles_t.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/tadpoles_t.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/thumb.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/thumb.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/thumb.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/thumb.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_a_1.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_a_1.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_a_1.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_a_1.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_a_bar.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_a_bar.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_a_bar.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_a_bar.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_sigma.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_sigma.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_sigma.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/images/traceplot_sigma.png diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/index.Rmd b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/index.Rmd similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/index.Rmd rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/index.Rmd diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/index.md b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/index.md similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/index.md rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/index.md diff --git a/content/blog/ai/2019-05-06-tadpoles-on-tensorflow/thumbnail.png b/content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/thumbnail.png similarity index 100% rename from content/blog/ai/2019-05-06-tadpoles-on-tensorflow/thumbnail.png rename to content/blog/ported/ai/2019-05-06-tadpoles-on-tensorflow/thumbnail.png diff --git a/content/blog/ai/2019-05-24-varying-slopes/images/lkj.png b/content/blog/ported/ai/2019-05-24-varying-slopes/images/lkj.png similarity index 100% rename from content/blog/ai/2019-05-24-varying-slopes/images/lkj.png rename to content/blog/ported/ai/2019-05-24-varying-slopes/images/lkj.png diff --git a/content/blog/ai/2019-05-24-varying-slopes/images/shrinkage1.png b/content/blog/ported/ai/2019-05-24-varying-slopes/images/shrinkage1.png similarity index 100% rename from content/blog/ai/2019-05-24-varying-slopes/images/shrinkage1.png rename to content/blog/ported/ai/2019-05-24-varying-slopes/images/shrinkage1.png diff --git a/content/blog/ai/2019-05-24-varying-slopes/images/shrinkage2.png b/content/blog/ported/ai/2019-05-24-varying-slopes/images/shrinkage2.png similarity index 100% rename from content/blog/ai/2019-05-24-varying-slopes/images/shrinkage2.png rename to content/blog/ported/ai/2019-05-24-varying-slopes/images/shrinkage2.png diff --git a/content/blog/ai/2019-05-24-varying-slopes/images/thumb.png b/content/blog/ported/ai/2019-05-24-varying-slopes/images/thumb.png similarity index 100% rename from content/blog/ai/2019-05-24-varying-slopes/images/thumb.png rename to content/blog/ported/ai/2019-05-24-varying-slopes/images/thumb.png diff --git a/content/blog/ai/2019-05-24-varying-slopes/images/trace.png b/content/blog/ported/ai/2019-05-24-varying-slopes/images/trace.png similarity index 100% rename from content/blog/ai/2019-05-24-varying-slopes/images/trace.png rename to content/blog/ported/ai/2019-05-24-varying-slopes/images/trace.png diff --git a/content/blog/ai/2019-05-24-varying-slopes/index.Rmd b/content/blog/ported/ai/2019-05-24-varying-slopes/index.Rmd similarity index 97% rename from content/blog/ai/2019-05-24-varying-slopes/index.Rmd rename to content/blog/ported/ai/2019-05-24-varying-slopes/index.Rmd index c39001158..a7de77647 100644 --- a/content/blog/ai/2019-05-24-varying-slopes/index.Rmd +++ b/content/blog/ported/ai/2019-05-24-varying-slopes/index.Rmd @@ -31,7 +31,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -In a [previous post](/blog/ai/2019-01-08-getting-started-with-tf-probability/), we showed how to use [tfprobability](https://rstudio.github.io/tfprobability/) -- the R interface to TensorFlow Probability -- to build a _multilevel_, or _partial pooling_ model of tadpole survival in differently sized (and thus, differing in inhabitant number) tanks. +In a [previous post](/blog/2019-01-08_keydana2019tfprobability/), we showed how to use [tfprobability](https://rstudio.github.io/tfprobability/) -- the R interface to TensorFlow Probability -- to build a _multilevel_, or _partial pooling_ model of tadpole survival in differently sized (and thus, differing in inhabitant number) tanks. A completely _pooled_ model would have resulted in a global estimate of survival count, irrespective of tank, while an _unpooled_ model would have learned to predict survival count for each tank separately. The former approach does not take into account different circumstances; the latter does not make use of common information. (Also, it clearly has no predictive use unless we want to make predictions for the very same entities we used to train the model.) @@ -152,7 +152,7 @@ On to building the model. ## The model -As in the [previous post on multi-level modeling](/blog/ai/2019-05-06-tadpoles-on-tensorflow/), we use [tfd_joint_distribution_sequential](https://rstudio.github.io/tfprobability/reference/tfd_joint_distribution_sequential.html) to define the model and [Hamiltonian Monte Carlo](https://rstudio.github.io/tfprobability/reference/mcmc_hamiltonian_monte_carlo.html) for sampling. Consider taking a look at the first section of that post for a quick reminder of the overall procedure. +As in the [previous post on multi-level modeling](/blog/2019-05-06_keydana2019tadpoles/), we use [tfd_joint_distribution_sequential](https://rstudio.github.io/tfprobability/reference/tfd_joint_distribution_sequential.html) to define the model and [Hamiltonian Monte Carlo](https://rstudio.github.io/tfprobability/reference/mcmc_hamiltonian_monte_carlo.html) for sampling. Consider taking a look at the first section of that post for a quick reminder of the overall procedure. Before we code the model, let's quickly get library loading out of the way. Importantly, again just like in the previous post, we need to install a `master` build of TensorFlow Probability, as we're making use of very new features not yet available in the current release version. The same goes for the R packages `tensorflow` and `tfprobability`: Please install the respective development versions from github. diff --git a/content/blog/ai/2019-05-24-varying-slopes/index.md b/content/blog/ported/ai/2019-05-24-varying-slopes/index.md similarity index 97% rename from content/blog/ai/2019-05-24-varying-slopes/index.md rename to content/blog/ported/ai/2019-05-24-varying-slopes/index.md index 2adb35405..d64535b8b 100644 --- a/content/blog/ai/2019-05-24-varying-slopes/index.md +++ b/content/blog/ported/ai/2019-05-24-varying-slopes/index.md @@ -31,7 +31,7 @@ tags: -In a [previous post](/blog/ai/2019-01-08-getting-started-with-tf-probability/), we showed how to use [tfprobability](https://rstudio.github.io/tfprobability/) -- the R interface to TensorFlow Probability -- to build a *multilevel*, or *partial pooling* model of tadpole survival in differently sized (and thus, differing in inhabitant number) tanks. +In a [previous post](/blog/2019-01-08_keydana2019tfprobability/), we showed how to use [tfprobability](https://rstudio.github.io/tfprobability/) -- the R interface to TensorFlow Probability -- to build a *multilevel*, or *partial pooling* model of tadpole survival in differently sized (and thus, differing in inhabitant number) tanks. A completely *pooled* model would have resulted in a global estimate of survival count, irrespective of tank, while an *unpooled* model would have learned to predict survival count for each tank separately. The former approach does not take into account different circumstances; the latter does not make use of common information. (Also, it clearly has no predictive use unless we want to make predictions for the very same entities we used to train the model.) @@ -148,7 +148,7 @@ On to building the model. ## The model -As in the [previous post on multi-level modeling](/blog/ai/2019-05-06-tadpoles-on-tensorflow/), we use [tfd_joint_distribution_sequential](https://rstudio.github.io/tfprobability/reference/tfd_joint_distribution_sequential.html) to define the model and [Hamiltonian Monte Carlo](https://rstudio.github.io/tfprobability/reference/mcmc_hamiltonian_monte_carlo.html) for sampling. Consider taking a look at the first section of that post for a quick reminder of the overall procedure. +As in the [previous post on multi-level modeling](/blog/2019-05-06_keydana2019tadpoles/), we use [tfd_joint_distribution_sequential](https://rstudio.github.io/tfprobability/reference/tfd_joint_distribution_sequential.html) to define the model and [Hamiltonian Monte Carlo](https://rstudio.github.io/tfprobability/reference/mcmc_hamiltonian_monte_carlo.html) for sampling. Consider taking a look at the first section of that post for a quick reminder of the overall procedure. Before we code the model, let's quickly get library loading out of the way. Importantly, again just like in the previous post, we need to install a `master` build of TensorFlow Probability, as we're making use of very new features not yet available in the current release version. The same goes for the R packages `tensorflow` and `tfprobability`: Please install the respective development versions from github. diff --git a/content/blog/ai/2019-05-24-varying-slopes/thumbnail.png b/content/blog/ported/ai/2019-05-24-varying-slopes/thumbnail.png similarity index 100% rename from content/blog/ai/2019-05-24-varying-slopes/thumbnail.png rename to content/blog/ported/ai/2019-05-24-varying-slopes/thumbnail.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_aleatoric_linear_8.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_aleatoric_linear_8.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_aleatoric_linear_8.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_aleatoric_linear_8.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_aleatoric_relu_8.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_aleatoric_relu_8.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_aleatoric_relu_8.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_aleatoric_relu_8.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale0.01.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale0.01.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale0.01.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale0.01.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale_all.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale_all.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale_all.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale_all.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale_all.png.original b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale_all.png.original similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale_all.png.original rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_both_scale_all.png.original diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_100epochs.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_100epochs.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_100epochs.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_100epochs.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_linear_kl150.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_linear_kl150.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_linear_kl150.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_linear_kl150.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_relu.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_relu.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_relu.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_relu.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_variations.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_variations.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_variations.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/g_epistemic_variations.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/simdata.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/simdata.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/simdata.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/simdata.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_aleatoric.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_aleatoric.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_aleatoric.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_aleatoric.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_allpreds_all.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_allpreds_all.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_allpreds_all.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_allpreds_all.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_allpreds_all.png.original b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_allpreds_all.png.original similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_allpreds_all.png.original rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_allpreds_all.png.original diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_both.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_both.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_both.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_both.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_epistemic.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_epistemic.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_epistemic.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/images/uci_epistemic.png diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/index.Rmd b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/index.Rmd similarity index 98% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/index.Rmd rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/index.Rmd index fa4393578..841ef03f3 100644 --- a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/index.Rmd +++ b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/index.Rmd @@ -34,7 +34,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -About six months ago, we showed [how to create a custom wrapper](/blog/ai/2018-11-12-uncertainty_estimates_dropout/) to obtain uncertainty estimates from a Keras network. Today we present a less laborious, as well faster-running way using [tfprobability](https://rstudio.github.io/tfprobability/), the R wrapper to TensorFlow Probability. Like most posts on this blog, this one won't be short, so let's quickly state what you can expect in return of reading time. +About six months ago, we showed [how to create a custom wrapper](/blog/2018-11-12_keydana2018dropoutuncertainty/) to obtain uncertainty estimates from a Keras network. Today we present a less laborious, as well faster-running way using [tfprobability](https://rstudio.github.io/tfprobability/), the R wrapper to TensorFlow Probability. Like most posts on this blog, this one won't be short, so let's quickly state what you can expect in return of reading time. ## What to expect from this post @@ -496,7 +496,7 @@ knitr::include_graphics("images/g_both_scale_all.png") Evidently, this is another parameter we should be prepared to experiment with. -Now that we've introduced all three types of presenting uncertainty -- aleatoric only, epistemic only, or both -- let's see them on the aforementioned [Combined Cycle Power Plant Data Set](http://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant). Please see [our previous post on uncertainty](/blog/ai/2018-11-12-uncertainty_estimates_dropout/) for a quick characterization, as well as visualization, of the dataset. +Now that we've introduced all three types of presenting uncertainty -- aleatoric only, epistemic only, or both -- let's see them on the aforementioned [Combined Cycle Power Plant Data Set](http://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant). Please see [our previous post on uncertainty](/blog/2018-11-12_keydana2018dropoutuncertainty/) for a quick characterization, as well as visualization, of the dataset. ## Combined Cycle Power Plant Data Set diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/index.md b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/index.md similarity index 98% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/index.md rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/index.md index 30f471217..ae9a0b502 100644 --- a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/index.md +++ b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/index.md @@ -34,7 +34,7 @@ tags: -About six months ago, we showed [how to create a custom wrapper](/blog/ai/2018-11-12-uncertainty_estimates_dropout/) to obtain uncertainty estimates from a Keras network. Today we present a less laborious, as well faster-running way using [tfprobability](https://rstudio.github.io/tfprobability/), the R wrapper to TensorFlow Probability. Like most posts on this blog, this one won't be short, so let's quickly state what you can expect in return of reading time. +About six months ago, we showed [how to create a custom wrapper](/blog/2018-11-12_keydana2018dropoutuncertainty/) to obtain uncertainty estimates from a Keras network. Today we present a less laborious, as well faster-running way using [tfprobability](https://rstudio.github.io/tfprobability/), the R wrapper to TensorFlow Probability. Like most posts on this blog, this one won't be short, so let's quickly state what you can expect in return of reading time. ## What to expect from this post @@ -482,7 +482,7 @@ Keeping everything else constant, here we vary that parameter between `0.01` and Evidently, this is another parameter we should be prepared to experiment with. -Now that we've introduced all three types of presenting uncertainty -- aleatoric only, epistemic only, or both -- let's see them on the aforementioned [Combined Cycle Power Plant Data Set](http://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant). Please see [our previous post on uncertainty](/blog/ai/2018-11-12-uncertainty_estimates_dropout/) for a quick characterization, as well as visualization, of the dataset. +Now that we've introduced all three types of presenting uncertainty -- aleatoric only, epistemic only, or both -- let's see them on the aforementioned [Combined Cycle Power Plant Data Set](http://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant). Please see [our previous post on uncertainty](/blog/2018-11-12_keydana2018dropoutuncertainty/) for a quick characterization, as well as visualization, of the dataset. ## Combined Cycle Power Plant Data Set diff --git a/content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/thumbnail.png b/content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/thumbnail.png similarity index 100% rename from content/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/thumbnail.png rename to content/blog/ported/ai/2019-06-05-uncertainty-estimates-tfprobability/thumbnail.png diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/bibliography.bib b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/bibliography.bib similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/bibliography.bib rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/bibliography.bib diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/data/capm.txt b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/data/capm.txt similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/data/capm.txt rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/data/capm.txt diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp.png b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp.png similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp.png rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp.png diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp_components.png b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp_components.png similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp_components.png rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp_components.png diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp_forecast.png b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp_forecast.png similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp_forecast.png rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/airp_forecast.png diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_filtered.png b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_filtered.png similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_filtered.png rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_filtered.png diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_forecast.png b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_forecast.png similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_forecast.png rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_forecast.png diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_overview.png b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_overview.png similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_overview.png rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_overview.png diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_smoothed.png b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_smoothed.png similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_smoothed.png rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/capm_smoothed.png diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/thumb.png b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/thumb.png similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/images/thumb.png rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/images/thumb.png diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/index.Rmd b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/index.Rmd similarity index 99% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/index.Rmd rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/index.Rmd index 365648940..56ec331c4 100644 --- a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/index.Rmd +++ b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/index.Rmd @@ -379,7 +379,7 @@ Curious about the results? We'll see them in a second, but before let's just qui #### Putting it all together (the HMC edition) -`tfprobability` provides [sts_fit_with_hmc](https://rstudio.github.io/tfprobability/reference/sts_fit_with_hmc.html) to fit a DLM using Hamiltonian Monte Carlo. Recent posts (e.g., [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/ai/2019-05-24-varying-slopes/)) showed how to set up HMC to fit hierarchical models; here a single function does it all. +`tfprobability` provides [sts_fit_with_hmc](https://rstudio.github.io/tfprobability/reference/sts_fit_with_hmc.html) to fit a DLM using Hamiltonian Monte Carlo. Recent posts (e.g., [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/2019-05-24_keydana2019cafes/)) showed how to set up HMC to fit hierarchical models; here a single function does it all. Here is `fit_with_hmc`, wrapping `sts_fit_with_hmc` as well as the (unchanged) techniques for obtaining forecasts and smoothed/filtered parameters: diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/index.md b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/index.md similarity index 99% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/index.md rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/index.md index 95df59f26..9781ed9f5 100644 --- a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/index.md +++ b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/index.md @@ -363,7 +363,7 @@ Curious about the results? We'll see them in a second, but before let's just qui #### Putting it all together (the HMC edition) -`tfprobability` provides [sts_fit_with_hmc](https://rstudio.github.io/tfprobability/reference/sts_fit_with_hmc.html) to fit a DLM using Hamiltonian Monte Carlo. Recent posts (e.g., [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/ai/2019-05-24-varying-slopes/)) showed how to set up HMC to fit hierarchical models; here a single function does it all. +`tfprobability` provides [sts_fit_with_hmc](https://rstudio.github.io/tfprobability/reference/sts_fit_with_hmc.html) to fit a DLM using Hamiltonian Monte Carlo. Recent posts (e.g., [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/2019-05-24_keydana2019cafes/)) showed how to set up HMC to fit hierarchical models; here a single function does it all. Here is `fit_with_hmc`, wrapping `sts_fit_with_hmc` as well as the (unchanged) techniques for obtaining forecasts and smoothed/filtered parameters: diff --git a/content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/thumbnail.png b/content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/thumbnail.png similarity index 100% rename from content/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/thumbnail.png rename to content/blog/ported/ai/2019-06-25-dynamic_linear_models_tfprobability/thumbnail.png diff --git a/content/blog/ai/2019-07-09-feature-columns/bibliography.bib b/content/blog/ported/ai/2019-07-09-feature-columns/bibliography.bib similarity index 100% rename from content/blog/ai/2019-07-09-feature-columns/bibliography.bib rename to content/blog/ported/ai/2019-07-09-feature-columns/bibliography.bib diff --git a/content/blog/ai/2019-07-09-feature-columns/images/feature_cols_hier.png b/content/blog/ported/ai/2019-07-09-feature-columns/images/feature_cols_hier.png similarity index 100% rename from content/blog/ai/2019-07-09-feature-columns/images/feature_cols_hier.png rename to content/blog/ported/ai/2019-07-09-feature-columns/images/feature_cols_hier.png diff --git a/content/blog/ai/2019-07-09-feature-columns/index.Rmd b/content/blog/ported/ai/2019-07-09-feature-columns/index.Rmd similarity index 99% rename from content/blog/ai/2019-07-09-feature-columns/index.Rmd rename to content/blog/ported/ai/2019-07-09-feature-columns/index.Rmd index bd9459add..4df4ee17b 100644 --- a/content/blog/ai/2019-07-09-feature-columns/index.Rmd +++ b/content/blog/ported/ai/2019-07-09-feature-columns/index.Rmd @@ -39,7 +39,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) It's 2019; no one doubts the effectiveness of deep learning in computer vision. Or natural language processing. With "normal", Excel-style, a.k.a. _tabular_ data however, the situation is different. -Basically there are two cases: One, you have numeric data only. Then, creating the network is straightforward, and all will be about optimization and hyperparameter search. Two, you have a mix of numeric and categorical data, where categorical could be anything from ordered-numeric to symbolic (e.g., text). In this latter case, with categorical data entering the picture, there is an extremely nice idea you can make use of: _embed_ what are equidistant symbols into a high-dimensional, numeric representation. In that new representation, we can define a distance metric that allows us to make statements like "cycling is closer to running than to baseball", or "`r emo::ji("smiley")` is closer to `r emo::ji("joy")` than to `r emo::ji("angry")`". When not dealing with language data, this technique is referred to as _entity embeddings_ ^[see e.g. [Entity embeddings for fun and profit](/blog/ai/2018-11-26-embeddings-fun-and-profit/)]. +Basically there are two cases: One, you have numeric data only. Then, creating the network is straightforward, and all will be about optimization and hyperparameter search. Two, you have a mix of numeric and categorical data, where categorical could be anything from ordered-numeric to symbolic (e.g., text). In this latter case, with categorical data entering the picture, there is an extremely nice idea you can make use of: _embed_ what are equidistant symbols into a high-dimensional, numeric representation. In that new representation, we can define a distance metric that allows us to make statements like "cycling is closer to running than to baseball", or "`r emo::ji("smiley")` is closer to `r emo::ji("joy")` than to `r emo::ji("angry")`". When not dealing with language data, this technique is referred to as _entity embeddings_ ^[see e.g. [Entity embeddings for fun and profit](/blog/2018-11-26_keydana2018dembeddingsfunandprofit/)]. Nice as this sounds, why don't we see entity embeddings used all the time? Well, creating a Keras network that processes a mix of numeric and categorical data used to require a bit of an effort. With TensorFlow's new _feature columns_, usable from R through a combination of `tfdatasets` and `keras`, there is a much easier way to achieve this. What's more, `tfdatasets` follows the popular [recipes](https://cran.r-project.org/web/packages/recipes/index.html) idiom to initialize, refine, and apply a feature specification `%>%`-style. And finally, there are ready-made steps for bucketizing a numeric column, or hashing it, or creating _crossed columns_ to capture interactions. diff --git a/content/blog/ai/2019-07-09-feature-columns/index.md b/content/blog/ported/ai/2019-07-09-feature-columns/index.md similarity index 99% rename from content/blog/ai/2019-07-09-feature-columns/index.md rename to content/blog/ported/ai/2019-07-09-feature-columns/index.md index fcd49688f..3332e0760 100644 --- a/content/blog/ai/2019-07-09-feature-columns/index.md +++ b/content/blog/ported/ai/2019-07-09-feature-columns/index.md @@ -561,7 +561,7 @@ Just as a sanity check, the final loss on the validation set for this code was ~ Yan, Lian, Robert H Dodier, Michael Mozer, and Richard H Wolniewicz. 2003. "Optimizing Classifier Performance via an Approximation to the Wilcoxon-Mann-Whitney Statistic." *Proceedings of the 20th International Conference on Machine Learning (ICML-03)*, 848--55. -[^1]: see e.g. [Entity embeddings for fun and profit](/blog/ai/2018-11-26-embeddings-fun-and-profit/) +[^1]: see e.g. [Entity embeddings for fun and profit](/blog/2018-11-26_keydana2018dembeddingsfunandprofit/) [^2]: Having mentioned, above, that these really may be continuous or ordinal, from now on we'll just call them numeric as we won't make further use of the distinction. However, fitting ordinal data with neural networks is definitely a topic that would deserve its own post. diff --git a/content/blog/ai/2019-07-09-feature-columns/thumbnail.png b/content/blog/ported/ai/2019-07-09-feature-columns/thumbnail.png similarity index 100% rename from content/blog/ai/2019-07-09-feature-columns/thumbnail.png rename to content/blog/ported/ai/2019-07-09-feature-columns/thumbnail.png diff --git a/content/blog/ai/2019-07-31-censored-data/images/chains.png b/content/blog/ported/ai/2019-07-31-censored-data/images/chains.png similarity index 100% rename from content/blog/ai/2019-07-31-censored-data/images/chains.png rename to content/blog/ported/ai/2019-07-31-censored-data/images/chains.png diff --git a/content/blog/ai/2019-07-31-censored-data/images/mcmc_preds.png b/content/blog/ported/ai/2019-07-31-censored-data/images/mcmc_preds.png similarity index 100% rename from content/blog/ai/2019-07-31-censored-data/images/mcmc_preds.png rename to content/blog/ported/ai/2019-07-31-censored-data/images/mcmc_preds.png diff --git a/content/blog/ai/2019-07-31-censored-data/images/survreg_pred.png b/content/blog/ported/ai/2019-07-31-censored-data/images/survreg_pred.png similarity index 100% rename from content/blog/ai/2019-07-31-censored-data/images/survreg_pred.png rename to content/blog/ported/ai/2019-07-31-censored-data/images/survreg_pred.png diff --git a/content/blog/ai/2019-07-31-censored-data/images/synopsis.png b/content/blog/ported/ai/2019-07-31-censored-data/images/synopsis.png similarity index 100% rename from content/blog/ai/2019-07-31-censored-data/images/synopsis.png rename to content/blog/ported/ai/2019-07-31-censored-data/images/synopsis.png diff --git a/content/blog/ai/2019-07-31-censored-data/images/thumb_cropped.png b/content/blog/ported/ai/2019-07-31-censored-data/images/thumb_cropped.png similarity index 100% rename from content/blog/ai/2019-07-31-censored-data/images/thumb_cropped.png rename to content/blog/ported/ai/2019-07-31-censored-data/images/thumb_cropped.png diff --git a/content/blog/ai/2019-07-31-censored-data/index.Rmd b/content/blog/ported/ai/2019-07-31-censored-data/index.Rmd similarity index 98% rename from content/blog/ai/2019-07-31-censored-data/index.Rmd rename to content/blog/ported/ai/2019-07-31-censored-data/index.Rmd index bcd058a54..07ac7c42b 100644 --- a/content/blog/ai/2019-07-31-censored-data/index.Rmd +++ b/content/blog/ported/ai/2019-07-31-censored-data/index.Rmd @@ -264,7 +264,7 @@ So now, back to work. We need to create a model. ## The model -As explained in the introduction, for completed checks duration is modeled using an exponential PDF. This is as straightforward as adding [tfd_exponential()](https://rstudio.github.io/tfprobability/reference/tfd_exponential.html) to the model function, [tfd_joint_distribution_sequential()](https://rstudio.github.io/tfprobability/reference/tfd_joint_distribution_sequential.html). ^[For a first introduction to MCMC sampling with `tfprobability`, see [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/ai/2019-05-06-tadpoles-on-tensorflow/)]For the censored portion, we need the exponential CCDF. This one is not, as of today, easily added to the model. What we can do though is calculate its value ourselves and add it to the "main" model likelihood. We'll see this below when discussing sampling; for now it means the model definition ends up straightforward as it only covers the non-censored data. It is made of just the said exponential PDF and priors for the regression parameters. +As explained in the introduction, for completed checks duration is modeled using an exponential PDF. This is as straightforward as adding [tfd_exponential()](https://rstudio.github.io/tfprobability/reference/tfd_exponential.html) to the model function, [tfd_joint_distribution_sequential()](https://rstudio.github.io/tfprobability/reference/tfd_joint_distribution_sequential.html). ^[For a first introduction to MCMC sampling with `tfprobability`, see [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/2019-05-06_keydana2019tadpoles/)]For the censored portion, we need the exponential CCDF. This one is not, as of today, easily added to the model. What we can do though is calculate its value ourselves and add it to the "main" model likelihood. We'll see this below when discussing sampling; for now it means the model definition ends up straightforward as it only covers the non-censored data. It is made of just the said exponential PDF and priors for the regression parameters. As for the latter, we use 0-centered, Gaussian priors for all parameters. Standard deviations of 1 turned out to work well. As the priors are all the same, instead of listing a bunch of `tfd_normal`s, we can create them all at once as diff --git a/content/blog/ai/2019-07-31-censored-data/index.md b/content/blog/ported/ai/2019-07-31-censored-data/index.md similarity index 99% rename from content/blog/ai/2019-07-31-censored-data/index.md rename to content/blog/ported/ai/2019-07-31-censored-data/index.md index 263b6d77c..abca1c92e 100644 --- a/content/blog/ai/2019-07-31-censored-data/index.md +++ b/content/blog/ported/ai/2019-07-31-censored-data/index.md @@ -597,4 +597,4 @@ We've shown how to model censored data -- or rather, a frequent subtype thereof [^2]: Here and in the following tables, we report the unnormalized, original values as contained in `check_times`. -[^3]: For a first introduction to MCMC sampling with `tfprobability`, see [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/ai/2019-05-06-tadpoles-on-tensorflow/) +[^3]: For a first introduction to MCMC sampling with `tfprobability`, see [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/2019-05-06_keydana2019tadpoles/) diff --git a/content/blog/ai/2019-07-31-censored-data/thumbnail.png b/content/blog/ported/ai/2019-07-31-censored-data/thumbnail.png similarity index 100% rename from content/blog/ai/2019-07-31-censored-data/thumbnail.png rename to content/blog/ported/ai/2019-07-31-censored-data/thumbnail.png diff --git a/content/blog/ai/2019-08-23-unet/bibliography.bib b/content/blog/ported/ai/2019-08-23-unet/bibliography.bib similarity index 100% rename from content/blog/ai/2019-08-23-unet/bibliography.bib rename to content/blog/ported/ai/2019-08-23-unet/bibliography.bib diff --git a/content/blog/ai/2019-08-23-unet/images/examples.png b/content/blog/ported/ai/2019-08-23-unet/images/examples.png similarity index 100% rename from content/blog/ai/2019-08-23-unet/images/examples.png rename to content/blog/ported/ai/2019-08-23-unet/images/examples.png diff --git a/content/blog/ai/2019-08-23-unet/images/mask.png b/content/blog/ported/ai/2019-08-23-unet/images/mask.png similarity index 100% rename from content/blog/ai/2019-08-23-unet/images/mask.png rename to content/blog/ported/ai/2019-08-23-unet/images/mask.png diff --git a/content/blog/ai/2019-08-23-unet/images/predictions.png b/content/blog/ported/ai/2019-08-23-unet/images/predictions.png similarity index 100% rename from content/blog/ai/2019-08-23-unet/images/predictions.png rename to content/blog/ported/ai/2019-08-23-unet/images/predictions.png diff --git a/content/blog/ai/2019-08-23-unet/images/transformed.png b/content/blog/ported/ai/2019-08-23-unet/images/transformed.png similarity index 100% rename from content/blog/ai/2019-08-23-unet/images/transformed.png rename to content/blog/ported/ai/2019-08-23-unet/images/transformed.png diff --git a/content/blog/ai/2019-08-23-unet/images/unet.png b/content/blog/ported/ai/2019-08-23-unet/images/unet.png similarity index 100% rename from content/blog/ai/2019-08-23-unet/images/unet.png rename to content/blog/ported/ai/2019-08-23-unet/images/unet.png diff --git a/content/blog/ai/2019-08-23-unet/index.Rmd b/content/blog/ported/ai/2019-08-23-unet/index.Rmd similarity index 100% rename from content/blog/ai/2019-08-23-unet/index.Rmd rename to content/blog/ported/ai/2019-08-23-unet/index.Rmd diff --git a/content/blog/ai/2019-08-23-unet/index.md b/content/blog/ported/ai/2019-08-23-unet/index.md similarity index 100% rename from content/blog/ai/2019-08-23-unet/index.md rename to content/blog/ported/ai/2019-08-23-unet/index.md diff --git a/content/blog/ai/2019-08-23-unet/thumbnail.png b/content/blog/ported/ai/2019-08-23-unet/thumbnail.png similarity index 100% rename from content/blog/ai/2019-08-23-unet/thumbnail.png rename to content/blog/ported/ai/2019-08-23-unet/thumbnail.png diff --git a/content/blog/ai/2019-08-29-using-tf-from-r/images/thumb.png b/content/blog/ported/ai/2019-08-29-using-tf-from-r/images/thumb.png similarity index 100% rename from content/blog/ai/2019-08-29-using-tf-from-r/images/thumb.png rename to content/blog/ported/ai/2019-08-29-using-tf-from-r/images/thumb.png diff --git a/content/blog/ai/2019-08-29-using-tf-from-r/index.Rmd b/content/blog/ported/ai/2019-08-29-using-tf-from-r/index.Rmd similarity index 99% rename from content/blog/ai/2019-08-29-using-tf-from-r/index.Rmd rename to content/blog/ported/ai/2019-08-29-using-tf-from-r/index.Rmd index 0f0218bed..c50ca2356 100644 --- a/content/blog/ai/2019-08-29-using-tf-from-r/index.Rmd +++ b/content/blog/ported/ai/2019-08-29-using-tf-from-r/index.Rmd @@ -120,7 +120,7 @@ CustomCallback <- R6::R6Class("CustomCallback", ``` This is because `keras` defines an actual Python class, `RCallback`, and maps your R6 class' methods to it. -Another example is [custom models](https://tensorflow.rstudio.com/keras/articles/custom_models.html), introduced on this blog [about a year ago](/blog/ai/2018-07-30-attention-layer/). +Another example is [custom models](https://tensorflow.rstudio.com/keras/articles/custom_models.html), introduced on this blog [about a year ago](/blog/2018-07-30_attention-layer/). These models can be trained with custom training loops. In R, you use `keras_model_custom` to create one, for example, like this: ```{r} diff --git a/content/blog/ai/2019-08-29-using-tf-from-r/index.md b/content/blog/ported/ai/2019-08-29-using-tf-from-r/index.md similarity index 99% rename from content/blog/ai/2019-08-29-using-tf-from-r/index.md rename to content/blog/ported/ai/2019-08-29-using-tf-from-r/index.md index b96a72d4d..178cd4ffe 100644 --- a/content/blog/ai/2019-08-29-using-tf-from-r/index.md +++ b/content/blog/ported/ai/2019-08-29-using-tf-from-r/index.md @@ -114,7 +114,7 @@ CustomCallback <- R6::R6Class("CustomCallback", ``` This is because `keras` defines an actual Python class, `RCallback`, and maps your R6 class' methods to it. -Another example is [custom models](https://tensorflow.rstudio.com/keras/articles/custom_models.html), introduced on this blog [about a year ago](/blog/ai/2018-07-30-attention-layer/). +Another example is [custom models](https://tensorflow.rstudio.com/keras/articles/custom_models.html), introduced on this blog [about a year ago](/blog/2018-07-30_attention-layer/). These models can be trained with custom training loops. In R, you use `keras_model_custom` to create one, for example, like this: ``` r diff --git a/content/blog/ai/2019-08-29-using-tf-from-r/thumbnail.png b/content/blog/ported/ai/2019-08-29-using-tf-from-r/thumbnail.png similarity index 100% rename from content/blog/ai/2019-08-29-using-tf-from-r/thumbnail.png rename to content/blog/ported/ai/2019-08-29-using-tf-from-r/thumbnail.png diff --git a/content/blog/ai/2019-09-30-bert-r/images/bert.png b/content/blog/ported/ai/2019-09-30-bert-r/images/bert.png similarity index 100% rename from content/blog/ai/2019-09-30-bert-r/images/bert.png rename to content/blog/ported/ai/2019-09-30-bert-r/images/bert.png diff --git a/content/blog/ai/2019-09-30-bert-r/images/emb.png b/content/blog/ported/ai/2019-09-30-bert-r/images/emb.png similarity index 100% rename from content/blog/ai/2019-09-30-bert-r/images/emb.png rename to content/blog/ported/ai/2019-09-30-bert-r/images/emb.png diff --git a/content/blog/ai/2019-09-30-bert-r/index.Rmd b/content/blog/ported/ai/2019-09-30-bert-r/index.Rmd similarity index 99% rename from content/blog/ai/2019-09-30-bert-r/index.Rmd rename to content/blog/ported/ai/2019-09-30-bert-r/index.Rmd index 977bdac12..a9fa7b609 100644 --- a/content/blog/ai/2019-09-30-bert-r/index.Rmd +++ b/content/blog/ported/ai/2019-09-30-bert-r/index.Rmd @@ -33,7 +33,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) _Today, we’re happy to feature a guest post written by Turgut Abdullayev, showing how to use BERT from R. Turgut is a data scientist at AccessBank Azerbaijan. Currently, he is pursuing a Ph.D. in economics at Baku State University, Azerbaijan._ -[In the previous post, Sigrid Keydana](/blog/ai/2019-08-29-using-tf-from-r/) explained the logic behind the [reticulate package](https://rstudio.github.io/reticulate/) and how it enables interoperability between Python and R. So, this time we will build a classification model with [BERT](https://github.com/google-research/bert), taking into account one of the powerful capabilities of the reticulate package -- calling Python from R via importing Python modules. +[In the previous post, Sigrid Keydana](/blog/2019-08-29_keydana2019tffromr/) explained the logic behind the [reticulate package](https://rstudio.github.io/reticulate/) and how it enables interoperability between Python and R. So, this time we will build a classification model with [BERT](https://github.com/google-research/bert), taking into account one of the powerful capabilities of the reticulate package -- calling Python from R via importing Python modules. Before we start, make sure that the Python version used is 3, as Python 2 can introduce lots of difficulties while working with BERT, such as Unicode issues related to the input text. diff --git a/content/blog/ai/2019-09-30-bert-r/index.md b/content/blog/ported/ai/2019-09-30-bert-r/index.md similarity index 99% rename from content/blog/ai/2019-09-30-bert-r/index.md rename to content/blog/ported/ai/2019-09-30-bert-r/index.md index 8823415f2..30ca4f628 100644 --- a/content/blog/ai/2019-09-30-bert-r/index.md +++ b/content/blog/ported/ai/2019-09-30-bert-r/index.md @@ -33,7 +33,7 @@ slug: bert-r *Today, we're happy to feature a guest post written by Turgut Abdullayev, showing how to use BERT from R. Turgut is a data scientist at AccessBank Azerbaijan. Currently, he is pursuing a Ph.D. in economics at Baku State University, Azerbaijan.* -[In the previous post, Sigrid Keydana](/blog/ai/2019-08-29-using-tf-from-r/) explained the logic behind the [reticulate package](https://rstudio.github.io/reticulate/) and how it enables interoperability between Python and R. So, this time we will build a classification model with [BERT](https://github.com/google-research/bert), taking into account one of the powerful capabilities of the reticulate package -- calling Python from R via importing Python modules. +[In the previous post, Sigrid Keydana](/blog/2019-08-29_keydana2019tffromr/) explained the logic behind the [reticulate package](https://rstudio.github.io/reticulate/) and how it enables interoperability between Python and R. So, this time we will build a classification model with [BERT](https://github.com/google-research/bert), taking into account one of the powerful capabilities of the reticulate package -- calling Python from R via importing Python modules. Before we start, make sure that the Python version used is 3, as Python 2 can introduce lots of difficulties while working with BERT, such as Unicode issues related to the input text. diff --git a/content/blog/ai/2019-09-30-bert-r/thumbnail.png b/content/blog/ported/ai/2019-09-30-bert-r/thumbnail.png similarity index 100% rename from content/blog/ai/2019-09-30-bert-r/thumbnail.png rename to content/blog/ported/ai/2019-09-30-bert-r/thumbnail.png diff --git a/content/blog/ai/2019-10-03-intro-to-hmc/bibliography.bib b/content/blog/ported/ai/2019-10-03-intro-to-hmc/bibliography.bib similarity index 100% rename from content/blog/ai/2019-10-03-intro-to-hmc/bibliography.bib rename to content/blog/ported/ai/2019-10-03-intro-to-hmc/bibliography.bib diff --git a/content/blog/ai/2019-10-03-intro-to-hmc/images/comments.png b/content/blog/ported/ai/2019-10-03-intro-to-hmc/images/comments.png similarity index 100% rename from content/blog/ai/2019-10-03-intro-to-hmc/images/comments.png rename to content/blog/ported/ai/2019-10-03-intro-to-hmc/images/comments.png diff --git a/content/blog/ai/2019-10-03-intro-to-hmc/images/mb.png b/content/blog/ported/ai/2019-10-03-intro-to-hmc/images/mb.png similarity index 100% rename from content/blog/ai/2019-10-03-intro-to-hmc/images/mb.png rename to content/blog/ported/ai/2019-10-03-intro-to-hmc/images/mb.png diff --git a/content/blog/ai/2019-10-03-intro-to-hmc/images/planet.png b/content/blog/ported/ai/2019-10-03-intro-to-hmc/images/planet.png similarity index 100% rename from content/blog/ai/2019-10-03-intro-to-hmc/images/planet.png rename to content/blog/ported/ai/2019-10-03-intro-to-hmc/images/planet.png diff --git a/content/blog/ai/2019-10-03-intro-to-hmc/index.Rmd b/content/blog/ported/ai/2019-10-03-intro-to-hmc/index.Rmd similarity index 94% rename from content/blog/ai/2019-10-03-intro-to-hmc/index.Rmd rename to content/blog/ported/ai/2019-10-03-intro-to-hmc/index.Rmd index 645cb6656..6d5c60d96 100644 --- a/content/blog/ai/2019-10-03-intro-to-hmc/index.Rmd +++ b/content/blog/ported/ai/2019-10-03-intro-to-hmc/index.Rmd @@ -32,7 +32,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) Why a _very (meaning: VERY!) first conceptual introduction to Hamiltonian Monte Carlo_ (HMC) on this blog? -Well, in our endeavor to feature the various capabilities of TensorFlow Probability (TFP) / [tfprobability](https://rstudio.github.io/tfprobability/), we started showing examples ^[See e.g. [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/ai/2019-05-06-tadpoles-on-tensorflow/) and [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/ai/2019-05-24-varying-slopes/)] of how to fit hierarchical models, using one of TFP's joint distribution classes ^[[tfd_joint_distribution_sequential](https://rstudio.github.io/tfprobability/reference/tfd_joint_distribution_sequential.html)] and HMC. The technical aspects being complex enough in themselves, we never gave an introduction to the "math side of things". Here we are trying to make up for this. +Well, in our endeavor to feature the various capabilities of TensorFlow Probability (TFP) / [tfprobability](https://rstudio.github.io/tfprobability/), we started showing examples ^[See e.g. [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/2019-05-06_keydana2019tadpoles/) and [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/2019-05-24_keydana2019cafes/)] of how to fit hierarchical models, using one of TFP's joint distribution classes ^[[tfd_joint_distribution_sequential](https://rstudio.github.io/tfprobability/reference/tfd_joint_distribution_sequential.html)] and HMC. The technical aspects being complex enough in themselves, we never gave an introduction to the "math side of things". Here we are trying to make up for this. Seeing how it is impossible, in a short blog post, to provide an introduction to Bayesian modeling and Markov Chain Monte Carlo in general, and how there are so many excellent texts doing this already, we will presuppose some prior knowledge. Our specific focus then is on the latest and greatest, the magic buzzwords, the famous incantations: Hamiltonian Monte Carlo, _leapfrog_ steps, NUTS -- as always, trying to demystify, to make things as understandable as possible. In that spirit, welcome to a "glossary with a narrative". @@ -82,7 +82,7 @@ In theory, straightforward(-ish) methods exist that could be used to generate sa ## HMC -So HMC is popular because compared to random-walk-based algorithms, it is a _lot_ more efficient. Unfortunately, it is also a lot more difficult to "get". ^[By "get [it]" I mean the subjective feeling of understanding what's going on; not more and not less.] As discussed in [Math, code, concepts: A third road to deep learning](/blog/ai/2019-03-15-concepts-way-to-dl/), there seem to be (at least) three languages to express an algorithm: Math; code (including pseudo-code, which may or may not be on the verge to math notation); and one I call _conceptual_ which spans the whole range from very abstract to very concrete, even visual. To me personally, HMC is different from most other cases in that even though I find the conceptual explanations fascinating, they result in less "perceived understanding" than either the equations or the code. For people with backgrounds in physics, statistical mechanics and/or differential geometry this will probably be different! +So HMC is popular because compared to random-walk-based algorithms, it is a _lot_ more efficient. Unfortunately, it is also a lot more difficult to "get". ^[By "get [it]" I mean the subjective feeling of understanding what's going on; not more and not less.] As discussed in [Math, code, concepts: A third road to deep learning](/blog/2019-03-15_keydana2019mathcodeconcepts/), there seem to be (at least) three languages to express an algorithm: Math; code (including pseudo-code, which may or may not be on the verge to math notation); and one I call _conceptual_ which spans the whole range from very abstract to very concrete, even visual. To me personally, HMC is different from most other cases in that even though I find the conceptual explanations fascinating, they result in less "perceived understanding" than either the equations or the code. For people with backgrounds in physics, statistical mechanics and/or differential geometry this will probably be different! In any case, physical analogies make for the best start. diff --git a/content/blog/ai/2019-10-03-intro-to-hmc/index.md b/content/blog/ported/ai/2019-10-03-intro-to-hmc/index.md similarity index 96% rename from content/blog/ai/2019-10-03-intro-to-hmc/index.md rename to content/blog/ported/ai/2019-10-03-intro-to-hmc/index.md index fd2fbc0a6..0b9816f91 100644 --- a/content/blog/ai/2019-10-03-intro-to-hmc/index.md +++ b/content/blog/ported/ai/2019-10-03-intro-to-hmc/index.md @@ -70,7 +70,7 @@ In theory, straightforward(-ish) methods exist that could be used to generate sa ## HMC -So HMC is popular because compared to random-walk-based algorithms, it is a *lot* more efficient. Unfortunately, it is also a lot more difficult to "get". [^6] As discussed in [Math, code, concepts: A third road to deep learning](/blog/ai/2019-03-15-concepts-way-to-dl/), there seem to be (at least) three languages to express an algorithm: Math; code (including pseudo-code, which may or may not be on the verge to math notation); and one I call *conceptual* which spans the whole range from very abstract to very concrete, even visual. To me personally, HMC is different from most other cases in that even though I find the conceptual explanations fascinating, they result in less "perceived understanding" than either the equations or the code. For people with backgrounds in physics, statistical mechanics and/or differential geometry this will probably be different! +So HMC is popular because compared to random-walk-based algorithms, it is a *lot* more efficient. Unfortunately, it is also a lot more difficult to "get". [^6] As discussed in [Math, code, concepts: A third road to deep learning](/blog/2019-03-15_keydana2019mathcodeconcepts/), there seem to be (at least) three languages to express an algorithm: Math; code (including pseudo-code, which may or may not be on the verge to math notation); and one I call *conceptual* which spans the whole range from very abstract to very concrete, even visual. To me personally, HMC is different from most other cases in that even though I find the conceptual explanations fascinating, they result in less "perceived understanding" than either the equations or the code. For people with backgrounds in physics, statistical mechanics and/or differential geometry this will probably be different! In any case, physical analogies make for the best start. @@ -276,7 +276,7 @@ McElreath, Richard. 2016. *Statistical Rethinking: A Bayesian Course with Exampl Neal, Radford M. 2012. "MCMC using Hamiltonian dynamics." *arXiv e-Prints*, June, arXiv:1206.1901. . -[^1]: See e.g. [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/ai/2019-05-06-tadpoles-on-tensorflow/) and [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/ai/2019-05-24-varying-slopes/) +[^1]: See e.g. [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/2019-05-06_keydana2019tadpoles/) and [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/2019-05-24_keydana2019cafes/) [^2]: [tfd_joint_distribution_sequential](https://rstudio.github.io/tfprobability/reference/tfd_joint_distribution_sequential.html) diff --git a/content/blog/ai/2019-10-03-intro-to-hmc/thumbnail.png b/content/blog/ported/ai/2019-10-03-intro-to-hmc/thumbnail.png similarity index 100% rename from content/blog/ai/2019-10-03-intro-to-hmc/thumbnail.png rename to content/blog/ported/ai/2019-10-03-intro-to-hmc/thumbnail.png diff --git a/content/blog/ai/2019-10-08-tf2-whatchanges/images/thumb.png b/content/blog/ported/ai/2019-10-08-tf2-whatchanges/images/thumb.png similarity index 100% rename from content/blog/ai/2019-10-08-tf2-whatchanges/images/thumb.png rename to content/blog/ported/ai/2019-10-08-tf2-whatchanges/images/thumb.png diff --git a/content/blog/ai/2019-10-08-tf2-whatchanges/index.Rmd b/content/blog/ported/ai/2019-10-08-tf2-whatchanges/index.Rmd similarity index 93% rename from content/blog/ai/2019-10-08-tf2-whatchanges/index.Rmd rename to content/blog/ported/ai/2019-10-08-tf2-whatchanges/index.Rmd index abb9a56fa..61a6a8c65 100644 --- a/content/blog/ai/2019-10-08-tf2-whatchanges/index.Rmd +++ b/content/blog/ported/ai/2019-10-08-tf2-whatchanges/index.Rmd @@ -30,7 +30,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -The wait is over -- TensorFlow 2.0 (TF 2) is now officially here! What does this mean for us, users of R packages `keras` and/or `tensorflow`, which, as we know, [rely on the Python TensorFlow backend](/blog/ai/2019-08-29-using-tf-from-r/)? +The wait is over -- TensorFlow 2.0 (TF 2) is now officially here! What does this mean for us, users of R packages `keras` and/or `tensorflow`, which, as we know, [rely on the Python TensorFlow backend](/blog/2019-08-29_keydana2019tffromr/)? Before we go into details and explanations, here is an _all-clear_, for the concerned user who fears their `keras` code might become obsolete (it won't). @@ -69,7 +69,7 @@ That's it for some background. In sum, we're happy most existing code will run j ## TF 2 in a nutshell, from an R perspective -In fact, the most evident-on-user-level change is something we wrote several posts about, more than a year ago ^[See [More flexible models with TensorFlow eager execution and Keras](/blog/ai/2018-10-02-eager-wrapup/) for an overview and annotated links.]. By then, _eager execution_ was a brand-new option that had to be turned on explicitly; TF 2 now makes it the default. Along with it came _custom models_ (a.k.a. subclassed models, in Python land) and _custom training_, making use of `tf$GradientTape`. Let's talk about what those termini refer to, and how they are relevant to R users. +In fact, the most evident-on-user-level change is something we wrote several posts about, more than a year ago ^[See [More flexible models with TensorFlow eager execution and Keras](/blog/2018-10-02_keydana2018eager-wrapup/) for an overview and annotated links.]. By then, _eager execution_ was a brand-new option that had to be turned on explicitly; TF 2 now makes it the default. Along with it came _custom models_ (a.k.a. subclassed models, in Python land) and _custom training_, making use of `tf$GradientTape`. Let's talk about what those termini refer to, and how they are relevant to R users. ### Eager Execution @@ -119,7 +119,7 @@ So that's eager execution. In our last year's _Eager_-category blog posts, it wa As a `keras` user, probably you're familiar with the _sequential_ and _functional_ styles of building a model. Custom models allow for even greater flexibility than functional-style ones. Check out the [documentation](https://tensorflow.rstudio.com/keras/articles/custom_models.html) for how to create one. -Last year's series on eager execution has plenty of examples using custom models, featuring not just their flexibility, but another important aspect as well: the way they allow for modular, easily-intelligible code. ^[For example, see [Generating images with Keras and TensorFlow eager execution](/blog/ai/2018-08-26-eager-dcgan/) on GANs, [Neural style transfer with eager execution and Keras](/blog/ai/2018-09-10-eager-style-transfer/) on neural style transfer, or [Representation learning with MMD-VAE](/blog/ai/2018-10-22-mmd-vae/) on Variational Autoencoders.] +Last year's series on eager execution has plenty of examples using custom models, featuring not just their flexibility, but another important aspect as well: the way they allow for modular, easily-intelligible code. ^[For example, see [Generating images with Keras and TensorFlow eager execution](/blog/2018-08-26_keydana2018eagerdcgan/) on GANs, [Neural style transfer with eager execution and Keras](/blog/2018-09-10_keydana2018eagerstyletransfer/) on neural style transfer, or [Representation learning with MMD-VAE](/blog/2018-10-22_keydana2018mmdvae/) on Variational Autoencoders.] Encoder-decoder scenarios are a natural match. If you have seen, or written, "old-style" code for a Generative Adversarial Network (GAN), imagine something like this instead: @@ -226,7 +226,7 @@ For 2 years now, the [tfdatasets](https://tensorflow.rstudio.com/tools/tfdataset Logically, there are three steps involved: -1. First, data has to be loaded from some place. This could be a csv file, a directory containing images, or other sources. In this recent example from [Image segmentation with U-Net](/blog/ai/2019-08-23-unet/), information about file names was first stored into an R `tibble`, and then [tensor_slices_dataset](https://tensorflow.rstudio.com/tools/tfdatasets/reference/tensor_slices_dataset.html) was used to create a `dataset` from it: +1. First, data has to be loaded from some place. This could be a csv file, a directory containing images, or other sources. In this recent example from [Image segmentation with U-Net](/blog/2019-08-23_falbelkeydana2019unet/), information about file names was first stored into an R `tibble`, and then [tensor_slices_dataset](https://tensorflow.rstudio.com/tools/tfdatasets/reference/tensor_slices_dataset.html) was used to create a `dataset` from it: ```{r} data <- tibble( @@ -309,7 +309,7 @@ spec <- feature_spec(hearts, target ~ .) %>% spec %>% fit() ``` -What happened here is that we told TensorFlow, please take all numeric columns (besides a few ones listed exprès) and scale them; take column `thal`, treat it as categorical and create an embedding for it; discretize `age` according to the given ranges; and finally, create a _crossed column_ to capture interaction between `thal` and that discretized age-range column. ^[`step_indicator_column` is there (twice) for technical reasons. Our [post on feature columns](/blog/ai/2019-07-09-feature-columns/) explains.] +What happened here is that we told TensorFlow, please take all numeric columns (besides a few ones listed exprès) and scale them; take column `thal`, treat it as categorical and create an embedding for it; discretize `age` according to the given ranges; and finally, create a _crossed column_ to capture interaction between `thal` and that discretized age-range column. ^[`step_indicator_column` is there (twice) for technical reasons. Our [post on feature columns](/blog/2019-07-09_falbelkeydana2019featurecols/) explains.] This is nice, but when creating the model, we'll still have to define all those layers, right? (Which would be pretty cumbersome, having to figure out all the right dimensions...) Luckily, we don't have to. In sync with `tfdatasets`, `keras` now provides [layer_dense_features](https://tensorflow.rstudio.com/keras/reference/layer_dense_features.html) to create a layer tailor-made to accommodate the specification. @@ -324,7 +324,7 @@ output <- input %>% layer_dense(units = 1, activation = "sigmoid") ``` -From then on, it's just normal `keras` `compile` and `fit`. See the [vignette](https://tensorflow.rstudio.com/tools/tfdatasets/articles/feature_columns.html) for the complete example. There also is a [post on feature columns](/blog/ai/2019-07-09-feature-columns/) explaining more of how this works, and illustrating the time-and-nerve-saving effect by comparing with the pre-feature-spec way of working with heterogeneous datasets. +From then on, it's just normal `keras` `compile` and `fit`. See the [vignette](https://tensorflow.rstudio.com/tools/tfdatasets/articles/feature_columns.html) for the complete example. There also is a [post on feature columns](/blog/2019-07-09_falbelkeydana2019featurecols/) explaining more of how this works, and illustrating the time-and-nerve-saving effect by comparing with the pre-feature-spec way of working with heterogeneous datasets. As a last item on the topics of preprocessing and feature engineering, let's look at a promising thing to come in what we hope is the near future. @@ -390,7 +390,7 @@ Both usage modes illustrate the high potential of working with Hub modules. Just As explained above, the default execution mode in TF 2 is eager. For performance reasons however, in many cases it will be desirable to compile parts of your code into a graph. Calls to Keras layers, for example, are run in graph mode. -To compile a function into a graph, wrap it in a call to `tf_function`, as done e.g. in the post [Modeling censored data with tfprobability](/blog/ai/2019-07-31-censored-data/): +To compile a function into a graph, wrap it in a call to `tf_function`, as done e.g. in the post [Modeling censored data with tfprobability](/blog/2019-07-31_keydana2019tfpcensored/): ```{r} run_mcmc <- function(kernel) { diff --git a/content/blog/ai/2019-10-08-tf2-whatchanges/index.md b/content/blog/ported/ai/2019-10-08-tf2-whatchanges/index.md similarity index 95% rename from content/blog/ai/2019-10-08-tf2-whatchanges/index.md rename to content/blog/ported/ai/2019-10-08-tf2-whatchanges/index.md index f6c3948c6..ad2210ff0 100644 --- a/content/blog/ai/2019-10-08-tf2-whatchanges/index.md +++ b/content/blog/ported/ai/2019-10-08-tf2-whatchanges/index.md @@ -31,7 +31,7 @@ tags: -The wait is over -- TensorFlow 2.0 (TF 2) is now officially here! What does this mean for us, users of R packages `keras` and/or `tensorflow`, which, as we know, [rely on the Python TensorFlow backend](/blog/ai/2019-08-29-using-tf-from-r/)? +The wait is over -- TensorFlow 2.0 (TF 2) is now officially here! What does this mean for us, users of R packages `keras` and/or `tensorflow`, which, as we know, [rely on the Python TensorFlow backend](/blog/2019-08-29_keydana2019tffromr/)? Before we go into details and explanations, here is an *all-clear*, for the concerned user who fears their `keras` code might become obsolete (it won't). @@ -219,7 +219,7 @@ For 2 years now, the [tfdatasets](https://tensorflow.rstudio.com/tools/tfdataset Logically, there are three steps involved: -1. First, data has to be loaded from some place. This could be a csv file, a directory containing images, or other sources. In this recent example from [Image segmentation with U-Net](/blog/ai/2019-08-23-unet/), information about file names was first stored into an R `tibble`, and then [tensor_slices_dataset](https://tensorflow.rstudio.com/tools/tfdatasets/reference/tensor_slices_dataset.html) was used to create a `dataset` from it: +1. First, data has to be loaded from some place. This could be a csv file, a directory containing images, or other sources. In this recent example from [Image segmentation with U-Net](/blog/2019-08-23_falbelkeydana2019unet/), information about file names was first stored into an R `tibble`, and then [tensor_slices_dataset](https://tensorflow.rstudio.com/tools/tfdatasets/reference/tensor_slices_dataset.html) was used to create a `dataset` from it: ``` r data <- tibble( @@ -312,7 +312,7 @@ output <- input %>% layer_dense(units = 1, activation = "sigmoid") ``` -From then on, it's just normal `keras` `compile` and `fit`. See the [vignette](https://tensorflow.rstudio.com/tools/tfdatasets/articles/feature_columns.html) for the complete example. There also is a [post on feature columns](/blog/ai/2019-07-09-feature-columns/) explaining more of how this works, and illustrating the time-and-nerve-saving effect by comparing with the pre-feature-spec way of working with heterogeneous datasets. +From then on, it's just normal `keras` `compile` and `fit`. See the [vignette](https://tensorflow.rstudio.com/tools/tfdatasets/articles/feature_columns.html) for the complete example. There also is a [post on feature columns](/blog/2019-07-09_falbelkeydana2019featurecols/) explaining more of how this works, and illustrating the time-and-nerve-saving effect by comparing with the pre-feature-spec way of working with heterogeneous datasets. As a last item on the topics of preprocessing and feature engineering, let's look at a promising thing to come in what we hope is the near future. @@ -376,7 +376,7 @@ Both usage modes illustrate the high potential of working with Hub modules. Just As explained above, the default execution mode in TF 2 is eager. For performance reasons however, in many cases it will be desirable to compile parts of your code into a graph. Calls to Keras layers, for example, are run in graph mode. -To compile a function into a graph, wrap it in a call to `tf_function`, as done e.g. in the post [Modeling censored data with tfprobability](/blog/ai/2019-07-31-censored-data/): +To compile a function into a graph, wrap it in a call to `tf_function`, as done e.g. in the post [Modeling censored data with tfprobability](/blog/2019-07-31_keydana2019tfpcensored/): ``` r run_mcmc <- function(kernel) { @@ -412,15 +412,15 @@ In any case, stay tuned for upcoming posts showing some of the above-mentioned f [^3]: E.g., parameters like *learning_rate* may have to be adapted. -[^4]: See [More flexible models with TensorFlow eager execution and Keras](/blog/ai/2018-10-02-eager-wrapup/) for an overview and annotated links. +[^4]: See [More flexible models with TensorFlow eager execution and Keras](/blog/2018-10-02_keydana2018eager-wrapup/) for an overview and annotated links. [^5]: Here the nominal input is an R vector that gets converted to a Python list by `reticulate`, and to a tensor by TensorFlow. [^6]: This is still a tensor though. To continue working with its values in R, we need to convert it to R using `as.numeric`, `as.matrix`, `as.array` etc. -[^7]: For example, see [Generating images with Keras and TensorFlow eager execution](/blog/ai/2018-08-26-eager-dcgan/) on GANs, [Neural style transfer with eager execution and Keras](/blog/ai/2018-09-10-eager-style-transfer/) on neural style transfer, or [Representation learning with MMD-VAE](/blog/ai/2018-10-22-mmd-vae/) on Variational Autoencoders. +[^7]: For example, see [Generating images with Keras and TensorFlow eager execution](/blog/2018-08-26_keydana2018eagerdcgan/) on GANs, [Neural style transfer with eager execution and Keras](/blog/2018-09-10_keydana2018eagerstyletransfer/) on neural style transfer, or [Representation learning with MMD-VAE](/blog/2018-10-22_keydana2018mmdvae/) on Variational Autoencoders. -[^8]: `step_indicator_column` is there (twice) for technical reasons. Our [post on feature columns](/blog/ai/2019-07-09-feature-columns/) explains. +[^8]: `step_indicator_column` is there (twice) for technical reasons. Our [post on feature columns](/blog/2019-07-09_falbelkeydana2019featurecols/) explains. [^9]: As readers working in e.g. image segmentation will know, data augmentation is not as easy as just using `image_data_generator` on the input images, as analogous distortions have to be applied to the masks. diff --git a/content/blog/ai/2019-10-08-tf2-whatchanges/thumbnail.png b/content/blog/ported/ai/2019-10-08-tf2-whatchanges/thumbnail.png similarity index 100% rename from content/blog/ai/2019-10-08-tf2-whatchanges/thumbnail.png rename to content/blog/ported/ai/2019-10-08-tf2-whatchanges/thumbnail.png diff --git a/content/blog/ai/2019-10-23-gpt-2/bibliography.bib b/content/blog/ported/ai/2019-10-23-gpt-2/bibliography.bib similarity index 100% rename from content/blog/ai/2019-10-23-gpt-2/bibliography.bib rename to content/blog/ported/ai/2019-10-23-gpt-2/bibliography.bib diff --git a/content/blog/ai/2019-10-23-gpt-2/images/thumb.jpg b/content/blog/ported/ai/2019-10-23-gpt-2/images/thumb.jpg similarity index 100% rename from content/blog/ai/2019-10-23-gpt-2/images/thumb.jpg rename to content/blog/ported/ai/2019-10-23-gpt-2/images/thumb.jpg diff --git a/content/blog/ai/2019-10-23-gpt-2/index.Rmd b/content/blog/ported/ai/2019-10-23-gpt-2/index.Rmd similarity index 98% rename from content/blog/ai/2019-10-23-gpt-2/index.Rmd rename to content/blog/ported/ai/2019-10-23-gpt-2/index.Rmd index 3d30a4fdb..b78a36987 100644 --- a/content/blog/ai/2019-10-23-gpt-2/index.Rmd +++ b/content/blog/ported/ai/2019-10-23-gpt-2/index.Rmd @@ -91,7 +91,7 @@ In our experiments, we'll be using the biggest as-yet released pretrained model, ## Sampling options with GPT-2 -Whenever a new token is to be predicted, a _softmax_ is taken over the vocabulary ^[For an introduction to how softmax activation behaves, see [Winner takes all: A look at activations and cost functions](/blog/ai/2018-10-11-activations-intro/).]. Directly taking the softmax output amounts to maximum likelihood estimation. In reality, however, always choosing the maximum likelihood estimate results in highly repetitive output. +Whenever a new token is to be predicted, a _softmax_ is taken over the vocabulary ^[For an introduction to how softmax activation behaves, see [Winner takes all: A look at activations and cost functions](/blog/2018-10-11_keydana2018activationsintro/).]. Directly taking the softmax output amounts to maximum likelihood estimation. In reality, however, always choosing the maximum likelihood estimate results in highly repetitive output. A natural option seems to be using the softmax outputs as probabilities: Instead of just taking the _argmax_, we sample from the output distribution. Unfortunately, this procedure has negative ramifications of its own. In a big vocabulary, very improbable words together make up a substantial part of the probability mass; at every step of generation, there is thus a non-negligible probability that an improbable word may be chosen. This word will now exert great influence on what is chosen next. In that manner, highly improbable sequences can build up. diff --git a/content/blog/ai/2019-10-23-gpt-2/index.md b/content/blog/ported/ai/2019-10-23-gpt-2/index.md similarity index 99% rename from content/blog/ai/2019-10-23-gpt-2/index.md rename to content/blog/ported/ai/2019-10-23-gpt-2/index.md index 52888a673..1ede957c6 100644 --- a/content/blog/ai/2019-10-23-gpt-2/index.md +++ b/content/blog/ported/ai/2019-10-23-gpt-2/index.md @@ -325,7 +325,7 @@ Vaswani, Ashish, Noam Shazeer, Niki Parmar, et al. 2017. "Attention Is All You N [^3]: For a detailed, and exceptionally visual, explanation of the Transformer, *the* place to go is [Jay Alammar's post](https://jalammar.github.io/illustrated-transformer/). Also check out [The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning](http://jalammar.github.io/illustrated-bert/), the article that might be held mainly responsible for the pervasive sesame-streetification of NLP. -[^4]: For an introduction to how softmax activation behaves, see [Winner takes all: A look at activations and cost functions](/blog/ai/2018-10-11-activations-intro/). +[^4]: For an introduction to how softmax activation behaves, see [Winner takes all: A look at activations and cost functions](/blog/2018-10-11_keydana2018activationsintro/). [^5]: $k$ is the Boltzmann constant diff --git a/content/blog/ai/2019-10-23-gpt-2/thumbnail.jpg b/content/blog/ported/ai/2019-10-23-gpt-2/thumbnail.jpg similarity index 100% rename from content/blog/ai/2019-10-23-gpt-2/thumbnail.jpg rename to content/blog/ported/ai/2019-10-23-gpt-2/thumbnail.jpg diff --git a/content/blog/ai/2019-11-07-tfp-cran/images/airp_components.png b/content/blog/ported/ai/2019-11-07-tfp-cran/images/airp_components.png similarity index 100% rename from content/blog/ai/2019-11-07-tfp-cran/images/airp_components.png rename to content/blog/ported/ai/2019-11-07-tfp-cran/images/airp_components.png diff --git a/content/blog/ai/2019-11-07-tfp-cran/images/capm_filtered.png b/content/blog/ported/ai/2019-11-07-tfp-cran/images/capm_filtered.png similarity index 100% rename from content/blog/ai/2019-11-07-tfp-cran/images/capm_filtered.png rename to content/blog/ported/ai/2019-11-07-tfp-cran/images/capm_filtered.png diff --git a/content/blog/ai/2019-11-07-tfp-cran/images/g_aleatoric_relu_8.png b/content/blog/ported/ai/2019-11-07-tfp-cran/images/g_aleatoric_relu_8.png similarity index 100% rename from content/blog/ai/2019-11-07-tfp-cran/images/g_aleatoric_relu_8.png rename to content/blog/ported/ai/2019-11-07-tfp-cran/images/g_aleatoric_relu_8.png diff --git a/content/blog/ai/2019-11-07-tfp-cran/images/g_epistemic_linear_kl150.png b/content/blog/ported/ai/2019-11-07-tfp-cran/images/g_epistemic_linear_kl150.png similarity index 100% rename from content/blog/ai/2019-11-07-tfp-cran/images/g_epistemic_linear_kl150.png rename to content/blog/ported/ai/2019-11-07-tfp-cran/images/g_epistemic_linear_kl150.png diff --git a/content/blog/ai/2019-11-07-tfp-cran/images/simdata.png b/content/blog/ported/ai/2019-11-07-tfp-cran/images/simdata.png similarity index 100% rename from content/blog/ai/2019-11-07-tfp-cran/images/simdata.png rename to content/blog/ported/ai/2019-11-07-tfp-cran/images/simdata.png diff --git a/content/blog/ai/2019-11-07-tfp-cran/images/tfprobability.png b/content/blog/ported/ai/2019-11-07-tfp-cran/images/tfprobability.png similarity index 100% rename from content/blog/ai/2019-11-07-tfp-cran/images/tfprobability.png rename to content/blog/ported/ai/2019-11-07-tfp-cran/images/tfprobability.png diff --git a/content/blog/ai/2019-11-07-tfp-cran/index.Rmd b/content/blog/ported/ai/2019-11-07-tfp-cran/index.Rmd similarity index 89% rename from content/blog/ai/2019-11-07-tfp-cran/index.Rmd rename to content/blog/ported/ai/2019-11-07-tfp-cran/index.Rmd index 9d0675243..407de6168 100644 --- a/content/blog/ai/2019-11-07-tfp-cran/index.Rmd +++ b/content/blog/ported/ai/2019-11-07-tfp-cran/index.Rmd @@ -85,9 +85,9 @@ We'll quickly introduce three well-known ones here, but wouldn't be surprised if ### Variational autoencoders, the elegant way -Variational autoencoders are a prime example of something that got way easier to code when TF-2 style custom models and custom training appeared (TF-2 _style_, not TF-2, as these techniques actually became available more than a year before TF 2 was finally released). ^[See [Representation learning with MMD-VAE](/blog/ai/2018-10-22-mmd-vae/) for an example.] +Variational autoencoders are a prime example of something that got way easier to code when TF-2 style custom models and custom training appeared (TF-2 _style_, not TF-2, as these techniques actually became available more than a year before TF 2 was finally released). ^[See [Representation learning with MMD-VAE](/blog/2018-10-22_keydana2018mmdvae/) for an example.] -Evolutionarily, the next step was to use TFP distributions ^[Done so, for example, in [Getting started with TensorFlow Probability from R](/blog/ai/2019-01-08-getting-started-with-tf-probability/).], but back in the time some fiddling was required, as distributions could not yet alias as layers. +Evolutionarily, the next step was to use TFP distributions ^[Done so, for example, in [Getting started with TensorFlow Probability from R](/blog/2019-01-08_keydana2019tfprobability/).], but back in the time some fiddling was required, as distributions could not yet alias as layers. Due to those hybrids though, we now can do something like this ^[For a complete running example, see the [tfprobability README](https://rstudio.github.io/tfprobability/).]: @@ -145,7 +145,7 @@ knitr::include_graphics("images/g_aleatoric_relu_8.png") ``` -Please see [Adding uncertainty estimates to Keras models with tfprobability](/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/) for a detailed explanation. +Please see [Adding uncertainty estimates to Keras models with tfprobability](/blog/2019-06-05_keydana2019uncertaintytfp/) for a detailed explanation. Using a normal distribution layer as the output, we can capture irreducible variability in the data, also known as _aleatoric uncertainty_. A different type of probabilistic layer allows to model what is called _epistemic uncertainty_. @@ -178,18 +178,18 @@ Variational layers for non-dense layers exist, and we'll see an example next wee ## Use case 2: Fitting Bayesian models with Monte Carlo methods -In sciences where data aren't abound, Markov Chain Monte Carlo (MCMC) methods are common. We've shown some examples how to this with TFP ([Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/ai/2019-05-06-tadpoles-on-tensorflow/), [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/ai/2019-05-24-varying-slopes/), [Modeling censored data with tfprobability](/blog/ai/2019-07-31-censored-data/), best read in this order), as well as tried to explain, in an accessible way, some of the background ([On leapfrogs, crashing satellites, and going nuts: A very first conceptual introduction to Hamiltonian Monte Carlo](/blog/ai/2019-10-03-intro-to-hmc/)). +In sciences where data aren't abound, Markov Chain Monte Carlo (MCMC) methods are common. We've shown some examples how to this with TFP ([Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/2019-05-06_keydana2019tadpoles/), [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/2019-05-24_keydana2019cafes/), [Modeling censored data with tfprobability](/blog/2019-07-31_keydana2019tfpcensored/), best read in this order), as well as tried to explain, in an accessible way, some of the background ([On leapfrogs, crashing satellites, and going nuts: A very first conceptual introduction to Hamiltonian Monte Carlo](/blog/2019-10-03_keydana2019hmc/)). MCMC software may roughly be divided into two flavors: "low-level" and "high-level". Low-level software, like [Stan](https://mc-stan.org/) -- or TFP, for that matter -- requires you to write code in either some programming language, or in a DSL that is pretty close in syntax and semantics to an existing programming language. High-level tools, on the other hand, are DSLs that resemble the way you'd express a model using mathematical notation. (Put differently, the former read like C or Python; the latter read like LaTeX.) -In general, low-level software tends to offer more flexibility, while high-level interfaces may be more convenient to use and easier to learn. To start with MCMC in TFP, we recommend checking out the first of the posts listed above, [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/ai/2019-05-06-tadpoles-on-tensorflow/). If you prefer a higher-level interface, you might be interested in [greta](https://greta-stats.org/), which is built on TFP. +In general, low-level software tends to offer more flexibility, while high-level interfaces may be more convenient to use and easier to learn. To start with MCMC in TFP, we recommend checking out the first of the posts listed above, [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/2019-05-06_keydana2019tadpoles/). If you prefer a higher-level interface, you might be interested in [greta](https://greta-stats.org/), which is built on TFP. Our last use case is of a Bayesian nature as well. ## Use case 3: State space models -State space models are a perhaps lesser used, but highly conceptually attractive way of performing inference and prediction on signals evolving in time. [Dynamic linear models with tfprobability](/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/) is an introduction to dynamic linear models with TFP, showcasing two of their (many) great strengths: ease of performing dynamic regression and additive (de)composition. +State space models are a perhaps lesser used, but highly conceptually attractive way of performing inference and prediction on signals evolving in time. [Dynamic linear models with tfprobability](/blog/2019-06-24_keydana2019dlmtfp/) is an introduction to dynamic linear models with TFP, showcasing two of their (many) great strengths: ease of performing dynamic regression and additive (de)composition. In dynamic regression, coefficients are allowed to vary over time. Here is an example from the above-mentioned post showing, for both a single predictor and the regression intercept, the filtered (in the sense of Kálmán filtering) estimates over time: @@ -213,7 +213,7 @@ That is it for our tour of use cases. To wrap up, let's talk about the basic bui No probabilistic framework without probability distributions -- that's for sure. In release 0.8, TFP has [about 80 distributions](https://rstudio.github.io/tfprobability/reference/index.html#section-distributions). But what are bijectors? -Bijectors are invertible, differentiable maps. [Getting into the flow: Bijectors in TensorFlow Probability](/blog/ai/2019-04-05-bijectors-flows/) introduces the main ideas and shows how to chain such bijective transformations into a _flow_. Bijectors are being used by TFP internally all the time, and as a user too you'll likely encounter situations where you need them. +Bijectors are invertible, differentiable maps. [Getting into the flow: Bijectors in TensorFlow Probability](/blog/2019-04-05_keydana2019flows/) introduces the main ideas and shows how to chain such bijective transformations into a _flow_. Bijectors are being used by TFP internally all the time, and as a user too you'll likely encounter situations where you need them. One example is doing MCMC (for example, Hamiltonian Monte Carlo) with TFP. In your model, you might have a prior on a standard deviation. Standard deviations are positive, so you'd like to specify, for example, an exponential distribution for it, resulting in exclusively positive values. But Hamiltonian Monte Carlo has to run in unconstrained space to work. This is where a bijector comes in, mapping between the two spaces used for model specification and sampling. diff --git a/content/blog/ai/2019-11-07-tfp-cran/index.md b/content/blog/ported/ai/2019-11-07-tfp-cran/index.md similarity index 90% rename from content/blog/ai/2019-11-07-tfp-cran/index.md rename to content/blog/ported/ai/2019-11-07-tfp-cran/index.md index 09c941118..99ae19781 100644 --- a/content/blog/ai/2019-11-07-tfp-cran/index.md +++ b/content/blog/ported/ai/2019-11-07-tfp-cran/index.md @@ -144,7 +144,7 @@ the network's predictions show the same spread: -Please see [Adding uncertainty estimates to Keras models with tfprobability](/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/) for a detailed explanation. +Please see [Adding uncertainty estimates to Keras models with tfprobability](/blog/2019-06-05_keydana2019uncertaintytfp/) for a detailed explanation. Using a normal distribution layer as the output, we can capture irreducible variability in the data, also known as *aleatoric uncertainty*. A different type of probabilistic layer allows to model what is called *epistemic uncertainty*. @@ -177,17 +177,17 @@ Variational layers for non-dense layers exist, and we'll see an example next wee ## Use case 2: Fitting Bayesian models with Monte Carlo methods -In sciences where data aren't abound, Markov Chain Monte Carlo (MCMC) methods are common. We've shown some examples how to this with TFP ([Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/ai/2019-05-06-tadpoles-on-tensorflow/), [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/ai/2019-05-24-varying-slopes/), [Modeling censored data with tfprobability](/blog/ai/2019-07-31-censored-data/), best read in this order), as well as tried to explain, in an accessible way, some of the background ([On leapfrogs, crashing satellites, and going nuts: A very first conceptual introduction to Hamiltonian Monte Carlo](/blog/ai/2019-10-03-intro-to-hmc/)). +In sciences where data aren't abound, Markov Chain Monte Carlo (MCMC) methods are common. We've shown some examples how to this with TFP ([Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/2019-05-06_keydana2019tadpoles/), [Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability](/blog/2019-05-24_keydana2019cafes/), [Modeling censored data with tfprobability](/blog/2019-07-31_keydana2019tfpcensored/), best read in this order), as well as tried to explain, in an accessible way, some of the background ([On leapfrogs, crashing satellites, and going nuts: A very first conceptual introduction to Hamiltonian Monte Carlo](/blog/2019-10-03_keydana2019hmc/)). MCMC software may roughly be divided into two flavors: "low-level" and "high-level". Low-level software, like [Stan](https://mc-stan.org/) -- or TFP, for that matter -- requires you to write code in either some programming language, or in a DSL that is pretty close in syntax and semantics to an existing programming language. High-level tools, on the other hand, are DSLs that resemble the way you'd express a model using mathematical notation. (Put differently, the former read like C or Python; the latter read like LaTeX.) -In general, low-level software tends to offer more flexibility, while high-level interfaces may be more convenient to use and easier to learn. To start with MCMC in TFP, we recommend checking out the first of the posts listed above, [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/ai/2019-05-06-tadpoles-on-tensorflow/). If you prefer a higher-level interface, you might be interested in [greta](https://greta-stats.org/), which is built on TFP. +In general, low-level software tends to offer more flexibility, while high-level interfaces may be more convenient to use and easier to learn. To start with MCMC in TFP, we recommend checking out the first of the posts listed above, [Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability](/blog/2019-05-06_keydana2019tadpoles/). If you prefer a higher-level interface, you might be interested in [greta](https://greta-stats.org/), which is built on TFP. Our last use case is of a Bayesian nature as well. ## Use case 3: State space models -State space models are a perhaps lesser used, but highly conceptually attractive way of performing inference and prediction on signals evolving in time. [Dynamic linear models with tfprobability](/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/) is an introduction to dynamic linear models with TFP, showcasing two of their (many) great strengths: ease of performing dynamic regression and additive (de)composition. +State space models are a perhaps lesser used, but highly conceptually attractive way of performing inference and prediction on signals evolving in time. [Dynamic linear models with tfprobability](/blog/2019-06-24_keydana2019dlmtfp/) is an introduction to dynamic linear models with TFP, showcasing two of their (many) great strengths: ease of performing dynamic regression and additive (de)composition. In dynamic regression, coefficients are allowed to vary over time. Here is an example from the above-mentioned post showing, for both a single predictor and the regression intercept, the filtered (in the sense of Kálmán filtering) estimates over time: @@ -211,7 +211,7 @@ That is it for our tour of use cases. To wrap up, let's talk about the basic bui No probabilistic framework without probability distributions -- that's for sure. In release 0.8, TFP has [about 80 distributions](https://rstudio.github.io/tfprobability/reference/index.html#section-distributions). But what are bijectors? -Bijectors are invertible, differentiable maps. [Getting into the flow: Bijectors in TensorFlow Probability](/blog/ai/2019-04-05-bijectors-flows/) introduces the main ideas and shows how to chain such bijective transformations into a *flow*. Bijectors are being used by TFP internally all the time, and as a user too you'll likely encounter situations where you need them. +Bijectors are invertible, differentiable maps. [Getting into the flow: Bijectors in TensorFlow Probability](/blog/2019-04-05_keydana2019flows/) introduces the main ideas and shows how to chain such bijective transformations into a *flow*. Bijectors are being used by TFP internally all the time, and as a user too you'll likely encounter situations where you need them. One example is doing MCMC (for example, Hamiltonian Monte Carlo) with TFP. In your model, you might have a prior on a standard deviation. Standard deviations are positive, so you'd like to specify, for example, an exponential distribution for it, resulting in exclusively positive values. But Hamiltonian Monte Carlo has to run in unconstrained space to work. This is where a bijector comes in, mapping between the two spaces used for model specification and sampling. @@ -252,8 +252,8 @@ Thanks for reading! [^1]: By default, just sampling from the distribution -- but this is something the user can influence if desired, making use of the `convert_to_tensor_fn` argument. -[^2]: See [Representation learning with MMD-VAE](/blog/ai/2018-10-22-mmd-vae/) for an example. +[^2]: See [Representation learning with MMD-VAE](/blog/2018-10-22_keydana2018mmdvae/) for an example. -[^3]: Done so, for example, in [Getting started with TensorFlow Probability from R](/blog/ai/2019-01-08-getting-started-with-tf-probability/). +[^3]: Done so, for example, in [Getting started with TensorFlow Probability from R](/blog/2019-01-08_keydana2019tfprobability/). [^4]: For a complete running example, see the [tfprobability README](https://rstudio.github.io/tfprobability/). diff --git a/content/blog/ai/2019-11-07-tfp-cran/thumbnail.png b/content/blog/ported/ai/2019-11-07-tfp-cran/thumbnail.png similarity index 100% rename from content/blog/ai/2019-11-07-tfp-cran/thumbnail.png rename to content/blog/ported/ai/2019-11-07-tfp-cran/thumbnail.png diff --git a/content/blog/ai/2019-11-13-variational-convnet/bibliography.bib b/content/blog/ported/ai/2019-11-13-variational-convnet/bibliography.bib similarity index 100% rename from content/blog/ai/2019-11-13-variational-convnet/bibliography.bib rename to content/blog/ported/ai/2019-11-13-variational-convnet/bibliography.bib diff --git a/content/blog/ai/2019-11-13-variational-convnet/images/bbb.png b/content/blog/ported/ai/2019-11-13-variational-convnet/images/bbb.png similarity index 100% rename from content/blog/ai/2019-11-13-variational-convnet/images/bbb.png rename to content/blog/ported/ai/2019-11-13-variational-convnet/images/bbb.png diff --git a/content/blog/ai/2019-11-13-variational-convnet/images/confusion.png b/content/blog/ported/ai/2019-11-13-variational-convnet/images/confusion.png similarity index 100% rename from content/blog/ai/2019-11-13-variational-convnet/images/confusion.png rename to content/blog/ported/ai/2019-11-13-variational-convnet/images/confusion.png diff --git a/content/blog/ai/2019-11-13-variational-convnet/images/history.png b/content/blog/ported/ai/2019-11-13-variational-convnet/images/history.png similarity index 100% rename from content/blog/ai/2019-11-13-variational-convnet/images/history.png rename to content/blog/ported/ai/2019-11-13-variational-convnet/images/history.png diff --git a/content/blog/ai/2019-11-13-variational-convnet/images/raw-data.png b/content/blog/ported/ai/2019-11-13-variational-convnet/images/raw-data.png similarity index 100% rename from content/blog/ai/2019-11-13-variational-convnet/images/raw-data.png rename to content/blog/ported/ai/2019-11-13-variational-convnet/images/raw-data.png diff --git a/content/blog/ai/2019-11-13-variational-convnet/index.Rmd b/content/blog/ported/ai/2019-11-13-variational-convnet/index.Rmd similarity index 94% rename from content/blog/ai/2019-11-13-variational-convnet/index.Rmd rename to content/blog/ported/ai/2019-11-13-variational-convnet/index.Rmd index 42ed39d4b..8f0b465a8 100644 --- a/content/blog/ai/2019-11-13-variational-convnet/index.Rmd +++ b/content/blog/ported/ai/2019-11-13-variational-convnet/index.Rmd @@ -34,13 +34,13 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -A bit more than a year ago, in his beautiful [guest post](/blog/ai/2018-07-17-activity-detection/), Nick Strayer showed how to classify a set of everyday activities using smartphone-recorded gyroscope and accelerometer data. Accuracy was very good, but Nick went on to inspect classification results more closely. Were there activities more prone to misclassification than others? And how about those erroneous results: Did the network report them with equal, or less confidence than those that were correct? +A bit more than a year ago, in his beautiful [guest post](/blog/2018-07-17_activity-detection/), Nick Strayer showed how to classify a set of everyday activities using smartphone-recorded gyroscope and accelerometer data. Accuracy was very good, but Nick went on to inspect classification results more closely. Were there activities more prone to misclassification than others? And how about those erroneous results: Did the network report them with equal, or less confidence than those that were correct? -Technically, when we speak of _confidence_ in that manner, we're referring to the _score_ obtained for the "winning" class after softmax activation ^[see [Winner takes all: A look at activations and cost functions](/blog/ai/2018-10-11-activations-intro/)]. If that winning score is 0.9, we might say "the network is sure that's a gentoo penguin"; if it's 0.2, we'd instead conclude "to the network, neither option seemed fitting, but cheetah looked best". +Technically, when we speak of _confidence_ in that manner, we're referring to the _score_ obtained for the "winning" class after softmax activation ^[see [Winner takes all: A look at activations and cost functions](/blog/2018-10-11_keydana2018activationsintro/)]. If that winning score is 0.9, we might say "the network is sure that's a gentoo penguin"; if it's 0.2, we'd instead conclude "to the network, neither option seemed fitting, but cheetah looked best". This use of "confidence" is convincing, but it has nothing to do with confidence -- or credibility, or prediction, what have you -- intervals. What we'd really like to be able to do is put distributions over the network's weights and make it _Bayesian_. Using _tfprobability_'s variational Keras-compatible layers, this is something we actually can do. -[Adding uncertainty estimates to Keras models with tfprobability](/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/) shows how to use a variational dense layer to obtain estimates of epistemic uncertainty. In this post, we modify the convnet used in Nick's post to be variational throughout. Before we start, let's quickly summarize the task. +[Adding uncertainty estimates to Keras models with tfprobability](/blog/2019-06-05_keydana2019uncertaintytfp/) shows how to use a variational dense layer to obtain estimates of epistemic uncertainty. In this post, we modify the convnet used in Nick's post to be variational throughout. Before we start, let's quickly summarize the task. ## The task @@ -335,7 +335,7 @@ one_shot_sds <- tfd_stddev(one_shot_preds) %>% gather(class, sd, -obs) ``` -The standard deviations thus obtained could be said to reflect the overall _predictive uncertainty_. We can estimate another kind of uncertainty, called _epistemic_ ^[see [Adding uncertainty estimates to Keras models with tfprobability](/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/)], by making a number of passes through the network and then, calculating -- again, per test sample -- the standard deviations of the predicted means. +The standard deviations thus obtained could be said to reflect the overall _predictive uncertainty_. We can estimate another kind of uncertainty, called _epistemic_ ^[see [Adding uncertainty estimates to Keras models with tfprobability](/blog/2019-06-05_keydana2019uncertaintytfp/)], by making a number of passes through the network and then, calculating -- again, per test sample -- the standard deviations of the predicted means. ```{r} @@ -498,7 +498,7 @@ Thanks for reading! ### Appendix -To be executed before running this post's code. Copied from [Classifying physical activity from smartphone data](/blog/ai/2018-07-17-activity-detection/). +To be executed before running this post's code. Copied from [Classifying physical activity from smartphone data](/blog/2018-07-17_activity-detection/). ```{r} library(keras) diff --git a/content/blog/ai/2019-11-13-variational-convnet/index.md b/content/blog/ported/ai/2019-11-13-variational-convnet/index.md similarity index 96% rename from content/blog/ai/2019-11-13-variational-convnet/index.md rename to content/blog/ported/ai/2019-11-13-variational-convnet/index.md index d6a65c1e0..2fd265c5b 100644 --- a/content/blog/ai/2019-11-13-variational-convnet/index.md +++ b/content/blog/ported/ai/2019-11-13-variational-convnet/index.md @@ -33,13 +33,13 @@ tags: -A bit more than a year ago, in his beautiful [guest post](/blog/ai/2018-07-17-activity-detection/), Nick Strayer showed how to classify a set of everyday activities using smartphone-recorded gyroscope and accelerometer data. Accuracy was very good, but Nick went on to inspect classification results more closely. Were there activities more prone to misclassification than others? And how about those erroneous results: Did the network report them with equal, or less confidence than those that were correct? +A bit more than a year ago, in his beautiful [guest post](/blog/2018-07-17_activity-detection/), Nick Strayer showed how to classify a set of everyday activities using smartphone-recorded gyroscope and accelerometer data. Accuracy was very good, but Nick went on to inspect classification results more closely. Were there activities more prone to misclassification than others? And how about those erroneous results: Did the network report them with equal, or less confidence than those that were correct? Technically, when we speak of *confidence* in that manner, we're referring to the *score* obtained for the "winning" class after softmax activation [^1]. If that winning score is 0.9, we might say "the network is sure that's a gentoo penguin"; if it's 0.2, we'd instead conclude "to the network, neither option seemed fitting, but cheetah looked best". This use of "confidence" is convincing, but it has nothing to do with confidence -- or credibility, or prediction, what have you -- intervals. What we'd really like to be able to do is put distributions over the network's weights and make it *Bayesian*. Using *tfprobability*'s variational Keras-compatible layers, this is something we actually can do. -[Adding uncertainty estimates to Keras models with tfprobability](/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/) shows how to use a variational dense layer to obtain estimates of epistemic uncertainty. In this post, we modify the convnet used in Nick's post to be variational throughout. Before we start, let's quickly summarize the task. +[Adding uncertainty estimates to Keras models with tfprobability](/blog/2019-06-05_keydana2019uncertaintytfp/) shows how to use a variational dense layer to obtain estimates of epistemic uncertainty. In this post, we modify the convnet used in Nick's post to be variational throughout. Before we start, let's quickly summarize the task. ## The task @@ -462,7 +462,7 @@ Thanks for reading! ### Appendix -To be executed before running this post's code. Copied from [Classifying physical activity from smartphone data](/blog/ai/2018-07-17-activity-detection/). +To be executed before running this post's code. Copied from [Classifying physical activity from smartphone data](/blog/2018-07-17_activity-detection/). ``` r library(keras) @@ -587,10 +587,10 @@ one_hot_classes <- . %>% Reyes-Ortiz, Jorge-L., Luca Oneto, Albert Samà, Xavier Parra, and Davide Anguita. 2016. "Transition-Aware Human Activity Recognition Using Smartphones." *Neurocomput.* (Amsterdam, The Netherlands, The Netherlands) 171 (C): 754--67. . -[^1]: see [Winner takes all: A look at activations and cost functions](/blog/ai/2018-10-11-activations-intro/) +[^1]: see [Winner takes all: A look at activations and cost functions](/blog/2018-10-11_keydana2018activationsintro/) [^2]: or two, depending on the application -[^3]: see [Adding uncertainty estimates to Keras models with tfprobability](/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/) +[^3]: see [Adding uncertainty estimates to Keras models with tfprobability](/blog/2019-06-05_keydana2019uncertaintytfp/) [^4]: e.g., [layer_conv_1d_reparameterization](https://rstudio.github.io/tfprobability/reference/layer_conv_1d_reparameterization.html), [layer_dense_local_reparameterization](https://rstudio.github.io/tfprobability/reference/layer_dense_local_reparameterization.html) diff --git a/content/blog/ai/2019-11-13-variational-convnet/thumbnail.png b/content/blog/ported/ai/2019-11-13-variational-convnet/thumbnail.png similarity index 100% rename from content/blog/ai/2019-11-13-variational-convnet/thumbnail.png rename to content/blog/ported/ai/2019-11-13-variational-convnet/thumbnail.png diff --git a/content/blog/ai/2019-11-27-gettingstarted-2020/images/website.png b/content/blog/ported/ai/2019-11-27-gettingstarted-2020/images/website.png similarity index 100% rename from content/blog/ai/2019-11-27-gettingstarted-2020/images/website.png rename to content/blog/ported/ai/2019-11-27-gettingstarted-2020/images/website.png diff --git a/content/blog/ai/2019-11-27-gettingstarted-2020/index.Rmd b/content/blog/ported/ai/2019-11-27-gettingstarted-2020/index.Rmd similarity index 98% rename from content/blog/ai/2019-11-27-gettingstarted-2020/index.Rmd rename to content/blog/ported/ai/2019-11-27-gettingstarted-2020/index.Rmd index 16438aaf8..9a161b8c6 100644 --- a/content/blog/ai/2019-11-27-gettingstarted-2020/index.Rmd +++ b/content/blog/ported/ai/2019-11-27-gettingstarted-2020/index.Rmd @@ -31,7 +31,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -If you've been thinking about diving into deep learning for a while -- using R, preferentially --, now is a good time. For TensorFlow / Keras, one of the predominant deep learning frameworks on the market, last year was a year of substantial changes; for users, this sometimes would mean ambiguity and confusion about the "right" (or: recommended) way to do things. By now, [TensorFlow 2.0](/blog/ai/2019-10-08-tf2-whatchanges/) has been the current stable release for about two months; the mists have cleared away, and patterns have emerged, enabling leaner, more modular code that accomplishes a lot in just a few lines. +If you've been thinking about diving into deep learning for a while -- using R, preferentially --, now is a good time. For TensorFlow / Keras, one of the predominant deep learning frameworks on the market, last year was a year of substantial changes; for users, this sometimes would mean ambiguity and confusion about the "right" (or: recommended) way to do things. By now, [TensorFlow 2.0](/blog/2019-10-08_keydana2019tf2/) has been the current stable release for about two months; the mists have cleared away, and patterns have emerged, enabling leaner, more modular code that accomplishes a lot in just a few lines. To give the new features the space they deserve, and assemble central contributions from related packages all in one place, we have significantly remodeled the [TensorFlow for R website](https://tensorflow.rstudio.com/). So this post really has two objectives. diff --git a/content/blog/ai/2019-11-27-gettingstarted-2020/index.md b/content/blog/ported/ai/2019-11-27-gettingstarted-2020/index.md similarity index 98% rename from content/blog/ai/2019-11-27-gettingstarted-2020/index.md rename to content/blog/ported/ai/2019-11-27-gettingstarted-2020/index.md index c24acc27b..6b4dad7c1 100644 --- a/content/blog/ai/2019-11-27-gettingstarted-2020/index.md +++ b/content/blog/ported/ai/2019-11-27-gettingstarted-2020/index.md @@ -31,7 +31,7 @@ tags: -If you've been thinking about diving into deep learning for a while -- using R, preferentially --, now is a good time. For TensorFlow / Keras, one of the predominant deep learning frameworks on the market, last year was a year of substantial changes; for users, this sometimes would mean ambiguity and confusion about the "right" (or: recommended) way to do things. By now, [TensorFlow 2.0](/blog/ai/2019-10-08-tf2-whatchanges/) has been the current stable release for about two months; the mists have cleared away, and patterns have emerged, enabling leaner, more modular code that accomplishes a lot in just a few lines. +If you've been thinking about diving into deep learning for a while -- using R, preferentially --, now is a good time. For TensorFlow / Keras, one of the predominant deep learning frameworks on the market, last year was a year of substantial changes; for users, this sometimes would mean ambiguity and confusion about the "right" (or: recommended) way to do things. By now, [TensorFlow 2.0](/blog/2019-10-08_keydana2019tf2/) has been the current stable release for about two months; the mists have cleared away, and patterns have emerged, enabling leaner, more modular code that accomplishes a lot in just a few lines. To give the new features the space they deserve, and assemble central contributions from related packages all in one place, we have significantly remodeled the [TensorFlow for R website](https://tensorflow.rstudio.com/). So this post really has two objectives. diff --git a/content/blog/ai/2019-11-27-gettingstarted-2020/thumbnail.png b/content/blog/ported/ai/2019-11-27-gettingstarted-2020/thumbnail.png similarity index 100% rename from content/blog/ai/2019-11-27-gettingstarted-2020/thumbnail.png rename to content/blog/ported/ai/2019-11-27-gettingstarted-2020/thumbnail.png diff --git a/content/blog/ai/2019-12-10-variational-gaussian-process/bibliography.bib b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/bibliography.bib similarity index 100% rename from content/blog/ai/2019-12-10-variational-gaussian-process/bibliography.bib rename to content/blog/ported/ai/2019-12-10-variational-gaussian-process/bibliography.bib diff --git a/content/blog/ai/2019-12-10-variational-gaussian-process/images/history.png b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/history.png similarity index 100% rename from content/blog/ai/2019-12-10-variational-gaussian-process/images/history.png rename to content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/history.png diff --git a/content/blog/ai/2019-12-10-variational-gaussian-process/images/kernel_cookbook.png b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/kernel_cookbook.png similarity index 100% rename from content/blog/ai/2019-12-10-variational-gaussian-process/images/kernel_cookbook.png rename to content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/kernel_cookbook.png diff --git a/content/blog/ai/2019-12-10-variational-gaussian-process/images/pairs.png b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/pairs.png similarity index 100% rename from content/blog/ai/2019-12-10-variational-gaussian-process/images/pairs.png rename to content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/pairs.png diff --git a/content/blog/ai/2019-12-10-variational-gaussian-process/images/preds.png b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/preds.png similarity index 100% rename from content/blog/ai/2019-12-10-variational-gaussian-process/images/preds.png rename to content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/preds.png diff --git a/content/blog/ai/2019-12-10-variational-gaussian-process/images/preds2.png b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/preds2.png similarity index 100% rename from content/blog/ai/2019-12-10-variational-gaussian-process/images/preds2.png rename to content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/preds2.png diff --git a/content/blog/ai/2019-12-10-variational-gaussian-process/images/visreg.png b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/visreg.png similarity index 100% rename from content/blog/ai/2019-12-10-variational-gaussian-process/images/visreg.png rename to content/blog/ported/ai/2019-12-10-variational-gaussian-process/images/visreg.png diff --git a/content/blog/ai/2019-12-10-variational-gaussian-process/index.Rmd b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/index.Rmd similarity index 98% rename from content/blog/ai/2019-12-10-variational-gaussian-process/index.Rmd rename to content/blog/ported/ai/2019-12-10-variational-gaussian-process/index.Rmd index 97360fdb0..782c82944 100644 --- a/content/blog/ai/2019-12-10-variational-gaussian-process/index.Rmd +++ b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/index.Rmd @@ -47,7 +47,7 @@ In this post, that "in some sense" gets very concrete. We'll see a Keras network The task will be "simple" multivariate regression. As an aside, this "bringing together communities" -- or ways of thinking, or solution strategies -- makes for a good overall characterization of TensorFlow Probability as well. -^[So far, we have seen uses of TensorFlow Probability for such different applications as [adding uncertainty estimates to neural networks](/blog/ai/2019-11-13-variational-convnet/), [Bayesian model estimation using Hamiltonian Monte Carlo](/blog/ai/2019-05-24-varying-slopes/), or [linear-Gaussian state space models](/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/).] +^[So far, we have seen uses of TensorFlow Probability for such different applications as [adding uncertainty estimates to neural networks](/blog/2019-11-13_keydana2019variationalconv/), [Bayesian model estimation using Hamiltonian Monte Carlo](/blog/2019-05-24_keydana2019cafes/), or [linear-Gaussian state space models](/blog/2019-06-24_keydana2019dlmtfp/).] ## Gaussian Processes @@ -429,7 +429,7 @@ tfp$math$psd_kernels$ExponentiatedQuadratic( ) ``` -make much of a difference to the end result. ^[This may sound like a matter of course; it isn't necessarily, as shown by prior experiments with variational layers e.g. in [Adding uncertainty estimates to Keras models with tfprobability](/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/).] +make much of a difference to the end result. ^[This may sound like a matter of course; it isn't necessarily, as shown by prior experiments with variational layers e.g. in [Adding uncertainty estimates to Keras models with tfprobability](/blog/2019-06-05_keydana2019uncertaintytfp/).] ## Predictions diff --git a/content/blog/ai/2019-12-10-variational-gaussian-process/index.md b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/index.md similarity index 98% rename from content/blog/ai/2019-12-10-variational-gaussian-process/index.md rename to content/blog/ported/ai/2019-12-10-variational-gaussian-process/index.md index 91103c85c..dfc38426a 100644 --- a/content/blog/ai/2019-12-10-variational-gaussian-process/index.md +++ b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/index.md @@ -553,7 +553,7 @@ Titsias, Michalis. 2009. "Variational Learning of Inducing Variables in Sparse G [^1]: In the book, it's "two communities", not "two cultures"; we choose L. Breiman's (Breiman 2001) more punchy expression just ... because. -[^2]: So far, we have seen uses of TensorFlow Probability for such different applications as [adding uncertainty estimates to neural networks](/blog/ai/2019-11-13-variational-convnet/), [Bayesian model estimation using Hamiltonian Monte Carlo](/blog/ai/2019-05-24-varying-slopes/), or [linear-Gaussian state space models](/blog/ai/2019-06-25-dynamic_linear_models_tfprobability/). +[^2]: So far, we have seen uses of TensorFlow Probability for such different applications as [adding uncertainty estimates to neural networks](/blog/2019-11-13_keydana2019variationalconv/), [Bayesian model estimation using Hamiltonian Monte Carlo](/blog/2019-05-24_keydana2019cafes/), or [linear-Gaussian state space models](/blog/2019-06-24_keydana2019dlmtfp/). [^3]: See David Duvenaud's https://www.cs.toronto.edu/~duvenaud/cookbook/ for an excellent synopsis of kernels and kernel composition. @@ -561,4 +561,4 @@ Titsias, Michalis. 2009. "Variational Learning of Inducing Variables in Sparse G [^5]: Performance being used in the sense of "lower regression error", not running speed. As to the latter, there definitely is a (negative) relationship between number of inducing points and training speed. -[^6]: This may sound like a matter of course; it isn't necessarily, as shown by prior experiments with variational layers e.g. in [Adding uncertainty estimates to Keras models with tfprobability](/blog/ai/2019-06-05-uncertainty-estimates-tfprobability/). +[^6]: This may sound like a matter of course; it isn't necessarily, as shown by prior experiments with variational layers e.g. in [Adding uncertainty estimates to Keras models with tfprobability](/blog/2019-06-05_keydana2019uncertaintytfp/). diff --git a/content/blog/ai/2019-12-10-variational-gaussian-process/thumbnail.png b/content/blog/ported/ai/2019-12-10-variational-gaussian-process/thumbnail.png similarity index 100% rename from content/blog/ai/2019-12-10-variational-gaussian-process/thumbnail.png rename to content/blog/ported/ai/2019-12-10-variational-gaussian-process/thumbnail.png diff --git a/content/blog/ai/2019-12-18-tfhub-0.7.0/images/grace-hopper.jpg b/content/blog/ported/ai/2019-12-18-tfhub-0.7.0/images/grace-hopper.jpg similarity index 100% rename from content/blog/ai/2019-12-18-tfhub-0.7.0/images/grace-hopper.jpg rename to content/blog/ported/ai/2019-12-18-tfhub-0.7.0/images/grace-hopper.jpg diff --git a/content/blog/ai/2019-12-18-tfhub-0.7.0/images/tfhub.png b/content/blog/ported/ai/2019-12-18-tfhub-0.7.0/images/tfhub.png similarity index 100% rename from content/blog/ai/2019-12-18-tfhub-0.7.0/images/tfhub.png rename to content/blog/ported/ai/2019-12-18-tfhub-0.7.0/images/tfhub.png diff --git a/content/blog/ai/2019-12-18-tfhub-0.7.0/index.Rmd b/content/blog/ported/ai/2019-12-18-tfhub-0.7.0/index.Rmd similarity index 100% rename from content/blog/ai/2019-12-18-tfhub-0.7.0/index.Rmd rename to content/blog/ported/ai/2019-12-18-tfhub-0.7.0/index.Rmd diff --git a/content/blog/ai/2019-12-18-tfhub-0.7.0/index.md b/content/blog/ported/ai/2019-12-18-tfhub-0.7.0/index.md similarity index 100% rename from content/blog/ai/2019-12-18-tfhub-0.7.0/index.md rename to content/blog/ported/ai/2019-12-18-tfhub-0.7.0/index.md diff --git a/content/blog/ai/2019-12-18-tfhub-0.7.0/thumbnail.png b/content/blog/ported/ai/2019-12-18-tfhub-0.7.0/thumbnail.png similarity index 100% rename from content/blog/ai/2019-12-18-tfhub-0.7.0/thumbnail.png rename to content/blog/ported/ai/2019-12-18-tfhub-0.7.0/thumbnail.png diff --git a/content/blog/ai/2019-12-20-differential-privacy/bibliography.bib b/content/blog/ported/ai/2019-12-20-differential-privacy/bibliography.bib similarity index 100% rename from content/blog/ai/2019-12-20-differential-privacy/bibliography.bib rename to content/blog/ported/ai/2019-12-20-differential-privacy/bibliography.bib diff --git a/content/blog/ai/2019-12-20-differential-privacy/images/baseline.png b/content/blog/ported/ai/2019-12-20-differential-privacy/images/baseline.png similarity index 100% rename from content/blog/ai/2019-12-20-differential-privacy/images/baseline.png rename to content/blog/ported/ai/2019-12-20-differential-privacy/images/baseline.png diff --git a/content/blog/ai/2019-12-20-differential-privacy/images/cat.jpg b/content/blog/ported/ai/2019-12-20-differential-privacy/images/cat.jpg similarity index 100% rename from content/blog/ai/2019-12-20-differential-privacy/images/cat.jpg rename to content/blog/ported/ai/2019-12-20-differential-privacy/images/cat.jpg diff --git a/content/blog/ai/2019-12-20-differential-privacy/images/cat.png b/content/blog/ported/ai/2019-12-20-differential-privacy/images/cat.png similarity index 100% rename from content/blog/ai/2019-12-20-differential-privacy/images/cat.png rename to content/blog/ported/ai/2019-12-20-differential-privacy/images/cat.png diff --git a/content/blog/ai/2019-12-20-differential-privacy/images/dp.png b/content/blog/ported/ai/2019-12-20-differential-privacy/images/dp.png similarity index 100% rename from content/blog/ai/2019-12-20-differential-privacy/images/dp.png rename to content/blog/ported/ai/2019-12-20-differential-privacy/images/dp.png diff --git a/content/blog/ai/2019-12-20-differential-privacy/index.Rmd b/content/blog/ported/ai/2019-12-20-differential-privacy/index.Rmd similarity index 100% rename from content/blog/ai/2019-12-20-differential-privacy/index.Rmd rename to content/blog/ported/ai/2019-12-20-differential-privacy/index.Rmd diff --git a/content/blog/ai/2019-12-20-differential-privacy/index.md b/content/blog/ported/ai/2019-12-20-differential-privacy/index.md similarity index 100% rename from content/blog/ai/2019-12-20-differential-privacy/index.md rename to content/blog/ported/ai/2019-12-20-differential-privacy/index.md diff --git a/content/blog/ai/2019-12-20-differential-privacy/thumbnail.png b/content/blog/ported/ai/2019-12-20-differential-privacy/thumbnail.png similarity index 100% rename from content/blog/ai/2019-12-20-differential-privacy/thumbnail.png rename to content/blog/ported/ai/2019-12-20-differential-privacy/thumbnail.png diff --git a/content/blog/ai/2020-01-13-mixed-precision-training/images/fma.png b/content/blog/ported/ai/2020-01-13-mixed-precision-training/images/fma.png similarity index 100% rename from content/blog/ai/2020-01-13-mixed-precision-training/images/fma.png rename to content/blog/ported/ai/2020-01-13-mixed-precision-training/images/fma.png diff --git a/content/blog/ai/2020-01-13-mixed-precision-training/images/fma2.png b/content/blog/ported/ai/2020-01-13-mixed-precision-training/images/fma2.png similarity index 100% rename from content/blog/ai/2020-01-13-mixed-precision-training/images/fma2.png rename to content/blog/ported/ai/2020-01-13-mixed-precision-training/images/fma2.png diff --git a/content/blog/ai/2020-01-13-mixed-precision-training/images/results.jpg b/content/blog/ported/ai/2020-01-13-mixed-precision-training/images/results.jpg similarity index 100% rename from content/blog/ai/2020-01-13-mixed-precision-training/images/results.jpg rename to content/blog/ported/ai/2020-01-13-mixed-precision-training/images/results.jpg diff --git a/content/blog/ai/2020-01-13-mixed-precision-training/images/tc.png b/content/blog/ported/ai/2020-01-13-mixed-precision-training/images/tc.png similarity index 100% rename from content/blog/ai/2020-01-13-mixed-precision-training/images/tc.png rename to content/blog/ported/ai/2020-01-13-mixed-precision-training/images/tc.png diff --git a/content/blog/ai/2020-01-13-mixed-precision-training/index.Rmd b/content/blog/ported/ai/2020-01-13-mixed-precision-training/index.Rmd similarity index 100% rename from content/blog/ai/2020-01-13-mixed-precision-training/index.Rmd rename to content/blog/ported/ai/2020-01-13-mixed-precision-training/index.Rmd diff --git a/content/blog/ai/2020-01-13-mixed-precision-training/index.md b/content/blog/ported/ai/2020-01-13-mixed-precision-training/index.md similarity index 100% rename from content/blog/ai/2020-01-13-mixed-precision-training/index.md rename to content/blog/ported/ai/2020-01-13-mixed-precision-training/index.md diff --git a/content/blog/ai/2020-01-13-mixed-precision-training/thumbnail.png b/content/blog/ported/ai/2020-01-13-mixed-precision-training/thumbnail.png similarity index 100% rename from content/blog/ai/2020-01-13-mixed-precision-training/thumbnail.png rename to content/blog/ported/ai/2020-01-13-mixed-precision-training/thumbnail.png diff --git a/content/blog/ai/2020-01-24-numpy-broadcasting/images/thumb.jpg b/content/blog/ported/ai/2020-01-24-numpy-broadcasting/images/thumb.jpg similarity index 100% rename from content/blog/ai/2020-01-24-numpy-broadcasting/images/thumb.jpg rename to content/blog/ported/ai/2020-01-24-numpy-broadcasting/images/thumb.jpg diff --git a/content/blog/ai/2020-01-24-numpy-broadcasting/index.Rmd b/content/blog/ported/ai/2020-01-24-numpy-broadcasting/index.Rmd similarity index 100% rename from content/blog/ai/2020-01-24-numpy-broadcasting/index.Rmd rename to content/blog/ported/ai/2020-01-24-numpy-broadcasting/index.Rmd diff --git a/content/blog/ai/2020-01-24-numpy-broadcasting/index.md b/content/blog/ported/ai/2020-01-24-numpy-broadcasting/index.md similarity index 100% rename from content/blog/ai/2020-01-24-numpy-broadcasting/index.md rename to content/blog/ported/ai/2020-01-24-numpy-broadcasting/index.md diff --git a/content/blog/ai/2020-01-24-numpy-broadcasting/thumbnail.jpg b/content/blog/ported/ai/2020-01-24-numpy-broadcasting/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-01-24-numpy-broadcasting/thumbnail.jpg rename to content/blog/ported/ai/2020-01-24-numpy-broadcasting/thumbnail.jpg diff --git a/content/blog/ai/2020-02-19-kl-divergence/bibliography.bib b/content/blog/ported/ai/2020-02-19-kl-divergence/bibliography.bib similarity index 100% rename from content/blog/ai/2020-02-19-kl-divergence/bibliography.bib rename to content/blog/ported/ai/2020-02-19-kl-divergence/bibliography.bib diff --git a/content/blog/ai/2020-02-19-kl-divergence/images/dedeo.png b/content/blog/ported/ai/2020-02-19-kl-divergence/images/dedeo.png similarity index 100% rename from content/blog/ai/2020-02-19-kl-divergence/images/dedeo.png rename to content/blog/ported/ai/2020-02-19-kl-divergence/images/dedeo.png diff --git a/content/blog/ai/2020-02-19-kl-divergence/images/ultimatemachine.jpg b/content/blog/ported/ai/2020-02-19-kl-divergence/images/ultimatemachine.jpg similarity index 100% rename from content/blog/ai/2020-02-19-kl-divergence/images/ultimatemachine.jpg rename to content/blog/ported/ai/2020-02-19-kl-divergence/images/ultimatemachine.jpg diff --git a/content/blog/ai/2020-02-19-kl-divergence/index.Rmd b/content/blog/ported/ai/2020-02-19-kl-divergence/index.Rmd similarity index 98% rename from content/blog/ai/2020-02-19-kl-divergence/index.Rmd rename to content/blog/ported/ai/2020-02-19-kl-divergence/index.Rmd index 696777361..5a5b14839 100644 --- a/content/blog/ai/2020-02-19-kl-divergence/index.Rmd +++ b/content/blog/ported/ai/2020-02-19-kl-divergence/index.Rmd @@ -30,7 +30,7 @@ tags: knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -Among deep learning practitioners, _Kullback-Leibler divergence_ (KL divergence) is perhaps best known for its role in training variational autoencoders (VAEs) ^[See [Representation learning with MMD-VAE](/blog/ai/2018-10-22-mmd-vae/) for an introduction.]. To learn an informative latent space, we don't just optimize for good reconstruction. Rather, we also impose a prior on the latent distribution, and aim to keep them close -- often, by minimizing KL divergence. +Among deep learning practitioners, _Kullback-Leibler divergence_ (KL divergence) is perhaps best known for its role in training variational autoencoders (VAEs) ^[See [Representation learning with MMD-VAE](/blog/2018-10-22_keydana2018mmdvae/) for an introduction.]. To learn an informative latent space, we don't just optimize for good reconstruction. Rather, we also impose a prior on the latent distribution, and aim to keep them close -- often, by minimizing KL divergence. In this role, KL divergence acts like a watchdog; it is a constraining, regularizing factor, and if anthropomorphized, would seem stern and severe. If we leave it at that, however, we've seen just one side of its character, and are missing out on its complement, a picture of playfulness, adventure, and curiosity. In this post, we'll take a look at that other side. diff --git a/content/blog/ai/2020-02-19-kl-divergence/index.md b/content/blog/ported/ai/2020-02-19-kl-divergence/index.md similarity index 99% rename from content/blog/ai/2020-02-19-kl-divergence/index.md rename to content/blog/ported/ai/2020-02-19-kl-divergence/index.md index 64e5c88e9..97711898f 100644 --- a/content/blog/ai/2020-02-19-kl-divergence/index.md +++ b/content/blog/ported/ai/2020-02-19-kl-divergence/index.md @@ -200,7 +200,7 @@ Sun, Yi, Faustino J. Gomez, and Juergen Schmidhuber. 2011. "Planning to Be Surpr Zanardo, Enrico. 2017. "HOW TO MEASURE DISAGREEMENT ?" -[^1]: See [Representation learning with MMD-VAE](/blog/ai/2018-10-22-mmd-vae/) for an introduction. +[^1]: See [Representation learning with MMD-VAE](/blog/2018-10-22_keydana2018mmdvae/) for an introduction. [^2]: As you probably guessed, these epitheta are not to be taken entirely seriously... diff --git a/content/blog/ai/2020-02-19-kl-divergence/thumbnail.jpg b/content/blog/ported/ai/2020-02-19-kl-divergence/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-02-19-kl-divergence/thumbnail.jpg rename to content/blog/ported/ai/2020-02-19-kl-divergence/thumbnail.jpg diff --git a/content/blog/ai/2020-04-01-rstudio-ai-blog/bibliography.bib b/content/blog/ported/ai/2020-04-01-rstudio-ai-blog/bibliography.bib similarity index 100% rename from content/blog/ai/2020-04-01-rstudio-ai-blog/bibliography.bib rename to content/blog/ported/ai/2020-04-01-rstudio-ai-blog/bibliography.bib diff --git a/content/blog/ai/2020-04-01-rstudio-ai-blog/images/thumb.jpg b/content/blog/ported/ai/2020-04-01-rstudio-ai-blog/images/thumb.jpg similarity index 100% rename from content/blog/ai/2020-04-01-rstudio-ai-blog/images/thumb.jpg rename to content/blog/ported/ai/2020-04-01-rstudio-ai-blog/images/thumb.jpg diff --git a/content/blog/ai/2020-04-01-rstudio-ai-blog/index.Rmd b/content/blog/ported/ai/2020-04-01-rstudio-ai-blog/index.Rmd similarity index 100% rename from content/blog/ai/2020-04-01-rstudio-ai-blog/index.Rmd rename to content/blog/ported/ai/2020-04-01-rstudio-ai-blog/index.Rmd diff --git a/content/blog/ai/2020-04-01-rstudio-ai-blog/index.md b/content/blog/ported/ai/2020-04-01-rstudio-ai-blog/index.md similarity index 100% rename from content/blog/ai/2020-04-01-rstudio-ai-blog/index.md rename to content/blog/ported/ai/2020-04-01-rstudio-ai-blog/index.md diff --git a/content/blog/ai/2020-04-01-rstudio-ai-blog/thumbnail.jpg b/content/blog/ported/ai/2020-04-01-rstudio-ai-blog/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-04-01-rstudio-ai-blog/thumbnail.jpg rename to content/blog/ported/ai/2020-04-01-rstudio-ai-blog/thumbnail.jpg diff --git a/content/blog/ai/2020-04-08-tf-federated-intro/bibliography.bib b/content/blog/ported/ai/2020-04-08-tf-federated-intro/bibliography.bib similarity index 100% rename from content/blog/ai/2020-04-08-tf-federated-intro/bibliography.bib rename to content/blog/ported/ai/2020-04-08-tf-federated-intro/bibliography.bib diff --git a/content/blog/ai/2020-04-08-tf-federated-intro/images/federated_learning.png b/content/blog/ported/ai/2020-04-08-tf-federated-intro/images/federated_learning.png similarity index 100% rename from content/blog/ai/2020-04-08-tf-federated-intro/images/federated_learning.png rename to content/blog/ported/ai/2020-04-08-tf-federated-intro/images/federated_learning.png diff --git a/content/blog/ai/2020-04-08-tf-federated-intro/images/kmnist_examples.png b/content/blog/ported/ai/2020-04-08-tf-federated-intro/images/kmnist_examples.png similarity index 100% rename from content/blog/ai/2020-04-08-tf-federated-intro/images/kmnist_examples.png rename to content/blog/ported/ai/2020-04-08-tf-federated-intro/images/kmnist_examples.png diff --git a/content/blog/ai/2020-04-08-tf-federated-intro/index.Rmd b/content/blog/ported/ai/2020-04-08-tf-federated-intro/index.Rmd similarity index 99% rename from content/blog/ai/2020-04-08-tf-federated-intro/index.Rmd rename to content/blog/ported/ai/2020-04-08-tf-federated-intro/index.Rmd index 1158f416a..a13fb7d90 100644 --- a/content/blog/ai/2020-04-08-tf-federated-intro/index.Rmd +++ b/content/blog/ported/ai/2020-04-08-tf-federated-intro/index.Rmd @@ -134,7 +134,7 @@ still remains. The model -- especially a high-capacity one, with many parameters -- could still memorize individual training data. Here is where *differential privacy* comes into play. In differential privacy, noise is added to the gradients to decouple them from actual training examples. ([This -post](/blog/ai/2019-12-20-differential-privacy/) +post](/blog/2019-12-20_keydana2019diffpriv/) gives an introduction to differential privacy with TensorFlow, from R.) As of this writing, TFF's federal averaging mechanism [@McMahanMRA16] does not diff --git a/content/blog/ai/2020-04-08-tf-federated-intro/index.md b/content/blog/ported/ai/2020-04-08-tf-federated-intro/index.md similarity index 99% rename from content/blog/ai/2020-04-08-tf-federated-intro/index.md rename to content/blog/ported/ai/2020-04-08-tf-federated-intro/index.md index 4842100f0..63d6e8e15 100644 --- a/content/blog/ai/2020-04-08-tf-federated-intro/index.md +++ b/content/blog/ported/ai/2020-04-08-tf-federated-intro/index.md @@ -135,7 +135,7 @@ still remains. The model -- especially a high-capacity one, with many parameters -- could still memorize individual training data. Here is where *differential privacy* comes into play. In differential privacy, noise is added to the gradients to decouple them from actual training examples. ([This -post](/blog/ai/2019-12-20-differential-privacy/) +post](/blog/2019-12-20_keydana2019diffpriv/) gives an introduction to differential privacy with TensorFlow, from R.) As of this writing, TFF's federal averaging mechanism (McMahan et al. 2016) does not diff --git a/content/blog/ai/2020-04-08-tf-federated-intro/thumbnail.png b/content/blog/ported/ai/2020-04-08-tf-federated-intro/thumbnail.png similarity index 100% rename from content/blog/ai/2020-04-08-tf-federated-intro/thumbnail.png rename to content/blog/ported/ai/2020-04-08-tf-federated-intro/thumbnail.png diff --git a/content/blog/ai/2020-04-13-pins-04/images/digitalocean-spaces-pins-versioned.png b/content/blog/ported/ai/2020-04-13-pins-04/images/digitalocean-spaces-pins-versioned.png similarity index 100% rename from content/blog/ai/2020-04-13-pins-04/images/digitalocean-spaces-pins-versioned.png rename to content/blog/ported/ai/2020-04-13-pins-04/images/digitalocean-spaces-pins-versioned.png diff --git a/content/blog/ai/2020-04-13-pins-04/images/digitalocean-spaces-pins-versioned.png.original b/content/blog/ported/ai/2020-04-13-pins-04/images/digitalocean-spaces-pins-versioned.png.original similarity index 100% rename from content/blog/ai/2020-04-13-pins-04/images/digitalocean-spaces-pins-versioned.png.original rename to content/blog/ported/ai/2020-04-13-pins-04/images/digitalocean-spaces-pins-versioned.png.original diff --git a/content/blog/ai/2020-04-13-pins-04/images/thumb.jpg b/content/blog/ported/ai/2020-04-13-pins-04/images/thumb.jpg similarity index 100% rename from content/blog/ai/2020-04-13-pins-04/images/thumb.jpg rename to content/blog/ported/ai/2020-04-13-pins-04/images/thumb.jpg diff --git a/content/blog/ai/2020-04-13-pins-04/index.Rmd b/content/blog/ported/ai/2020-04-13-pins-04/index.Rmd similarity index 100% rename from content/blog/ai/2020-04-13-pins-04/index.Rmd rename to content/blog/ported/ai/2020-04-13-pins-04/index.Rmd diff --git a/content/blog/ai/2020-04-13-pins-04/index.md b/content/blog/ported/ai/2020-04-13-pins-04/index.md similarity index 100% rename from content/blog/ai/2020-04-13-pins-04/index.md rename to content/blog/ported/ai/2020-04-13-pins-04/index.md diff --git a/content/blog/ai/2020-04-13-pins-04/thumbnail.jpg b/content/blog/ported/ai/2020-04-13-pins-04/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-04-13-pins-04/thumbnail.jpg rename to content/blog/ported/ai/2020-04-13-pins-04/thumbnail.jpg diff --git a/content/blog/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-backend-foreach-package.png b/content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-backend-foreach-package.png similarity index 100% rename from content/blog/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-backend-foreach-package.png rename to content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-backend-foreach-package.png diff --git a/content/blog/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-backend-foreach-package.png.original b/content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-backend-foreach-package.png.original similarity index 100% rename from content/blog/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-backend-foreach-package.png.original rename to content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-backend-foreach-package.png.original diff --git a/content/blog/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-databricks-connect-rstudio.png b/content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-databricks-connect-rstudio.png similarity index 100% rename from content/blog/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-databricks-connect-rstudio.png rename to content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-databricks-connect-rstudio.png diff --git a/content/blog/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-databricks-connect-rstudio.png.original b/content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-databricks-connect-rstudio.png.original similarity index 100% rename from content/blog/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-databricks-connect-rstudio.png.original rename to content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/images/spark-databricks-connect-rstudio.png.original diff --git a/content/blog/ai/2020-04-21-sparklyr-1.2.0-released/images/sparklyr.png b/content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/images/sparklyr.png similarity index 100% rename from content/blog/ai/2020-04-21-sparklyr-1.2.0-released/images/sparklyr.png rename to content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/images/sparklyr.png diff --git a/content/blog/ai/2020-04-21-sparklyr-1.2.0-released/index.Rmd b/content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/index.Rmd similarity index 100% rename from content/blog/ai/2020-04-21-sparklyr-1.2.0-released/index.Rmd rename to content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/index.Rmd diff --git a/content/blog/ai/2020-04-21-sparklyr-1.2.0-released/index.md b/content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/index.md similarity index 100% rename from content/blog/ai/2020-04-21-sparklyr-1.2.0-released/index.md rename to content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/index.md diff --git a/content/blog/ai/2020-04-21-sparklyr-1.2.0-released/thumbnail.png b/content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/thumbnail.png similarity index 100% rename from content/blog/ai/2020-04-21-sparklyr-1.2.0-released/thumbnail.png rename to content/blog/ported/ai/2020-04-21-sparklyr-1.2.0-released/thumbnail.png diff --git a/content/blog/ai/2020-04-29-encrypted_keras_with_syft/bibliography.bib b/content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/bibliography.bib similarity index 100% rename from content/blog/ai/2020-04-29-encrypted_keras_with_syft/bibliography.bib rename to content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/bibliography.bib diff --git a/content/blog/ai/2020-04-29-encrypted_keras_with_syft/images/thumb.jpg b/content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/images/thumb.jpg similarity index 100% rename from content/blog/ai/2020-04-29-encrypted_keras_with_syft/images/thumb.jpg rename to content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/images/thumb.jpg diff --git a/content/blog/ai/2020-04-29-encrypted_keras_with_syft/index.Rmd b/content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/index.Rmd similarity index 98% rename from content/blog/ai/2020-04-29-encrypted_keras_with_syft/index.Rmd rename to content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/index.Rmd index 4b5b92b6f..e5c50af57 100644 --- a/content/blog/ai/2020-04-29-encrypted_keras_with_syft/index.Rmd +++ b/content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/index.Rmd @@ -60,7 +60,7 @@ regulations. So, the first requirement is: The data has to stay where it is; e.g #### Federated learning This first *sine qua non* is addressed by [federated -learning](/blog/ai/2020-04-08-tf-federated-intro/) [@McMahanMRA16]. Federated learning is +learning](/blog/2020-04-08_keydanatffederatedintro/) [@McMahanMRA16]. Federated learning is not "just" desirable for privacy reasons. On the contrary, in many use cases, it may be the only viable way (like with smartphones or sensors, which collect gigantic amounts of data). In federated learning, each participant receives a copy of the model, trains on their own data, and sends back the gradients obtained to the central server, where gradients are averaged @@ -170,7 +170,7 @@ So with encryption available on an all-you-need basis, are we completely safe, p still leak information. For example, in some cases it is possible to perform *model inversion* [\@abs-1805-04049], that is, with just black-box access to a model, train an *attack model* that allows reconstructing some of the original training data. Needless to say, this kind of leakage has to be avoided. [Differential -privacy](/blog/ai/2019-12-20-differential-privacy/) [@Dwork2006], [@dwork2006differential] +privacy](/blog/2019-12-20_keydana2019diffpriv/) [@Dwork2006], [@dwork2006differential] demands that results obtained from querying a model be independent from the presence or absence, in the dataset employed for training, of a single individual. In general, this is ensured by adding noise to the answer to every query. In training deep learning models, we add noise to the gradients, as well as clip them according to some chosen norm. @@ -416,7 +416,7 @@ setting up a Syft/TFE cluster of workers that together, provide the infrastructu client data. In case you've read our previous post on [TensorFlow -Federated](/blog/ai/2019-12-20-differential-privacy/) -- that, too, a framework under +Federated](/blog/2019-12-20_keydana2019diffpriv/) -- that, too, a framework under development -- you may have gotten an impression similar to the one I got: Setting up Syft was a lot more straightforward, concepts were easy to grasp, and surprisingly little code was required. As we may gather from a [recent blog post](https://blog.openmined.org/introducing-pysyft-tensorflow/), integration of Syft with TensorFlow Federated and TensorFlow diff --git a/content/blog/ai/2020-04-29-encrypted_keras_with_syft/index.md b/content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/index.md similarity index 98% rename from content/blog/ai/2020-04-29-encrypted_keras_with_syft/index.md rename to content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/index.md index 141ede9aa..fa1e43b43 100644 --- a/content/blog/ai/2020-04-29-encrypted_keras_with_syft/index.md +++ b/content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/index.md @@ -56,7 +56,7 @@ regulations. So, the first requirement is: The data has to stay where it is; e.g #### Federated learning This first *sine qua non* is addressed by [federated -learning](/blog/ai/2020-04-08-tf-federated-intro/) (McMahan et al. 2016). Federated learning is +learning](/blog/2020-04-08_keydanatffederatedintro/) (McMahan et al. 2016). Federated learning is not "just" desirable for privacy reasons. On the contrary, in many use cases, it may be the only viable way (like with smartphones or sensors, which collect gigantic amounts of data). In federated learning, each participant receives a copy of the model, trains on their own data, and sends back the gradients obtained to the central server, where gradients are averaged @@ -166,7 +166,7 @@ So with encryption available on an all-you-need basis, are we completely safe, p still leak information. For example, in some cases it is possible to perform *model inversion* \[@abs-1805-04049\], that is, with just black-box access to a model, train an *attack model* that allows reconstructing some of the original training data. Needless to say, this kind of leakage has to be avoided. [Differential -privacy](/blog/ai/2019-12-20-differential-privacy/) (Dwork et al. 2006), (Dwork 2006) +privacy](/blog/2019-12-20_keydana2019diffpriv/) (Dwork et al. 2006), (Dwork 2006) demands that results obtained from querying a model be independent from the presence or absence, in the dataset employed for training, of a single individual. In general, this is ensured by adding noise to the answer to every query. In training deep learning models, we add noise to the gradients, as well as clip them according to some chosen norm. @@ -410,7 +410,7 @@ setting up a Syft/TFE cluster of workers that together, provide the infrastructu client data. In case you've read our previous post on [TensorFlow -Federated](/blog/ai/2019-12-20-differential-privacy/) -- that, too, a framework under +Federated](/blog/2019-12-20_keydana2019diffpriv/) -- that, too, a framework under development -- you may have gotten an impression similar to the one I got: Setting up Syft was a lot more straightforward, concepts were easy to grasp, and surprisingly little code was required. As we may gather from a [recent blog post](https://blog.openmined.org/introducing-pysyft-tensorflow/), integration of Syft with TensorFlow Federated and TensorFlow diff --git a/content/blog/ai/2020-04-29-encrypted_keras_with_syft/thumbnail.jpg b/content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-04-29-encrypted_keras_with_syft/thumbnail.jpg rename to content/blog/ported/ai/2020-04-29-encrypted_keras_with_syft/thumbnail.jpg diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/bibliography.bib b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/bibliography.bib similarity index 100% rename from content/blog/ai/2020-05-15-model-inversion-attacks/bibliography.bib rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/bibliography.bib diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/images/actual_test_images.png b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/actual_test_images.png similarity index 100% rename from content/blog/ai/2020-05-15-model-inversion-attacks/images/actual_test_images.png rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/actual_test_images.png diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/images/attacker_ds.png b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/attacker_ds.png similarity index 100% rename from content/blog/ai/2020-05-15-model-inversion-attacks/images/attacker_ds.png rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/attacker_ds.png diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_12.5.png b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_12.5.png similarity index 100% rename from content/blog/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_12.5.png rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_12.5.png diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_4.0.png b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_4.0.png similarity index 100% rename from content/blog/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_4.0.png rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_4.0.png diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_84.7.png b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_84.7.png similarity index 100% rename from content/blog/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_84.7.png rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/intercepted_eps_84.7.png diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/images/recon_noeps_dropout.png b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/recon_noeps_dropout.png similarity index 100% rename from content/blog/ai/2020-05-15-model-inversion-attacks/images/recon_noeps_dropout.png rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/recon_noeps_dropout.png diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/images/results.png b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/results.png similarity index 100% rename from content/blog/ai/2020-05-15-model-inversion-attacks/images/results.png rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/results.png diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/images/training_set_images.png b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/training_set_images.png similarity index 100% rename from content/blog/ai/2020-05-15-model-inversion-attacks/images/training_set_images.png rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/images/training_set_images.png diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/index.Rmd b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/index.Rmd similarity index 99% rename from content/blog/ai/2020-05-15-model-inversion-attacks/index.Rmd rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/index.Rmd index 25f19bbca..29ed22e1b 100644 --- a/content/blog/ai/2020-05-15-model-inversion-attacks/index.Rmd +++ b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/index.Rmd @@ -62,7 +62,7 @@ In this post, we'll demonstrate such a model inversion attack, basically porting [notebook](https://github.com/OpenMined/PySyft/blob/master/examples/tutorials/advanced/privacy_attacks/Tutorial%201%20-%20Black%20box%20model%20inversion.ipynb%20Sy) found in the [PySyft](https://github.com/OpenMined/PySyft) repository. We then experiment with different levels of $\epsilon$-privacy, exploring impact on reconstruction success. This second part will make use of TensorFlow Privacy, -introduced in a [previous blog post](/blog/ai/2019-12-20-differential-privacy/). +introduced in a [previous blog post](/blog/2019-12-20_keydana2019diffpriv/). ## Part 1: Model inversion in action diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/index.md b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/index.md similarity index 99% rename from content/blog/ai/2020-05-15-model-inversion-attacks/index.md rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/index.md index c75c8e2a2..7cfff07ed 100644 --- a/content/blog/ai/2020-05-15-model-inversion-attacks/index.md +++ b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/index.md @@ -59,7 +59,7 @@ In this post, we'll demonstrate such a model inversion attack, basically porting [notebook](https://github.com/OpenMined/PySyft/blob/master/examples/tutorials/advanced/privacy_attacks/Tutorial%201%20-%20Black%20box%20model%20inversion.ipynb%20Sy) found in the [PySyft](https://github.com/OpenMined/PySyft) repository. We then experiment with different levels of $\epsilon$-privacy, exploring impact on reconstruction success. This second part will make use of TensorFlow Privacy, -introduced in a [previous blog post](/blog/ai/2019-12-20-differential-privacy/). +introduced in a [previous blog post](/blog/2019-12-20_keydana2019diffpriv/). ## Part 1: Model inversion in action diff --git a/content/blog/ai/2020-05-15-model-inversion-attacks/thumbnail.png b/content/blog/ported/ai/2020-05-15-model-inversion-attacks/thumbnail.png similarity index 100% rename from content/blog/ai/2020-05-15-model-inversion-attacks/thumbnail.png rename to content/blog/ported/ai/2020-05-15-model-inversion-attacks/thumbnail.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/bibliography.bib b/content/blog/ported/ai/2020-05-29-pixelcnn/bibliography.bib similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/bibliography.bib rename to content/blog/ported/ai/2020-05-29-pixelcnn/bibliography.bib diff --git a/content/blog/ai/2020-05-29-pixelcnn/images/draw_134.png b/content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_134.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/images/draw_134.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_134.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/images/draw_218.png b/content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_218.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/images/draw_218.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_218.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/images/draw_246.png b/content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_246.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/images/draw_246.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_246.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/images/draw_29.png b/content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_29.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/images/draw_29.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_29.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/images/draw_43.png b/content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_43.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/images/draw_43.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_43.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/images/draw_49.png b/content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_49.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/images/draw_49.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/images/draw_49.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/images/high-level.png b/content/blog/ported/ai/2020-05-29-pixelcnn/images/high-level.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/images/high-level.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/images/high-level.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/images/layer.png b/content/blog/ported/ai/2020-05-29-pixelcnn/images/layer.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/images/layer.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/images/layer.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/images/stacks.png b/content/blog/ported/ai/2020-05-29-pixelcnn/images/stacks.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/images/stacks.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/images/stacks.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/images/thumb.png b/content/blog/ported/ai/2020-05-29-pixelcnn/images/thumb.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/images/thumb.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/images/thumb.png diff --git a/content/blog/ai/2020-05-29-pixelcnn/index.Rmd b/content/blog/ported/ai/2020-05-29-pixelcnn/index.Rmd similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/index.Rmd rename to content/blog/ported/ai/2020-05-29-pixelcnn/index.Rmd diff --git a/content/blog/ai/2020-05-29-pixelcnn/index.md b/content/blog/ported/ai/2020-05-29-pixelcnn/index.md similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/index.md rename to content/blog/ported/ai/2020-05-29-pixelcnn/index.md diff --git a/content/blog/ai/2020-05-29-pixelcnn/thumbnail.png b/content/blog/ported/ai/2020-05-29-pixelcnn/thumbnail.png similarity index 100% rename from content/blog/ai/2020-05-29-pixelcnn/thumbnail.png rename to content/blog/ported/ai/2020-05-29-pixelcnn/thumbnail.png diff --git a/content/blog/ai/2020-06-24-deep-attractors/bibliography.bib b/content/blog/ported/ai/2020-06-24-deep-attractors/bibliography.bib similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/bibliography.bib rename to content/blog/ported/ai/2020-06-24-deep-attractors/bibliography.bib diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/2cycle.png b/content/blog/ported/ai/2020-06-24-deep-attractors/images/2cycle.png similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/2cycle.png rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/2cycle.png diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/chaos.png b/content/blog/ported/ai/2020-06-24-deep-attractors/images/chaos.png similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/chaos.png rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/chaos.png diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/chaos2.png b/content/blog/ported/ai/2020-06-24-deep-attractors/images/chaos2.png similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/chaos2.png rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/chaos2.png diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/chaos3.png b/content/blog/ported/ai/2020-06-24-deep-attractors/images/chaos3.png similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/chaos3.png rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/chaos3.png diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/fnn.png b/content/blog/ported/ai/2020-06-24-deep-attractors/images/fnn.png similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/fnn.png rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/fnn.png diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/lorenz_attractors.png b/content/blog/ported/ai/2020-06-24-deep-attractors/images/lorenz_attractors.png similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/lorenz_attractors.png rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/lorenz_attractors.png diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/lorenz_attractors.xcf b/content/blog/ported/ai/2020-06-24-deep-attractors/images/lorenz_attractors.xcf similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/lorenz_attractors.xcf rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/lorenz_attractors.xcf diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/obs.png b/content/blog/ported/ai/2020-06-24-deep-attractors/images/obs.png similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/obs.png rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/obs.png diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/predicted_attractors.png b/content/blog/ported/ai/2020-06-24-deep-attractors/images/predicted_attractors.png similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/predicted_attractors.png rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/predicted_attractors.png diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/single_fixedpoint.png b/content/blog/ported/ai/2020-06-24-deep-attractors/images/single_fixedpoint.png similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/single_fixedpoint.png rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/single_fixedpoint.png diff --git a/content/blog/ai/2020-06-24-deep-attractors/images/x_z.gif b/content/blog/ported/ai/2020-06-24-deep-attractors/images/x_z.gif similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/images/x_z.gif rename to content/blog/ported/ai/2020-06-24-deep-attractors/images/x_z.gif diff --git a/content/blog/ai/2020-06-24-deep-attractors/index.Rmd b/content/blog/ported/ai/2020-06-24-deep-attractors/index.Rmd similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/index.Rmd rename to content/blog/ported/ai/2020-06-24-deep-attractors/index.Rmd diff --git a/content/blog/ai/2020-06-24-deep-attractors/index.md b/content/blog/ported/ai/2020-06-24-deep-attractors/index.md similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/index.md rename to content/blog/ported/ai/2020-06-24-deep-attractors/index.md diff --git a/content/blog/ai/2020-06-24-deep-attractors/thumbnail.gif b/content/blog/ported/ai/2020-06-24-deep-attractors/thumbnail.gif similarity index 100% rename from content/blog/ai/2020-06-24-deep-attractors/thumbnail.gif rename to content/blog/ported/ai/2020-06-24-deep-attractors/thumbnail.gif diff --git a/content/blog/ai/2020-07-16-sparklyr-1.3.0-released/images/sparklyr-1.3.jpg b/content/blog/ported/ai/2020-07-16-sparklyr-1.3.0-released/images/sparklyr-1.3.jpg similarity index 100% rename from content/blog/ai/2020-07-16-sparklyr-1.3.0-released/images/sparklyr-1.3.jpg rename to content/blog/ported/ai/2020-07-16-sparklyr-1.3.0-released/images/sparklyr-1.3.jpg diff --git a/content/blog/ai/2020-07-16-sparklyr-1.3.0-released/index.Rmd b/content/blog/ported/ai/2020-07-16-sparklyr-1.3.0-released/index.Rmd similarity index 99% rename from content/blog/ai/2020-07-16-sparklyr-1.3.0-released/index.Rmd rename to content/blog/ported/ai/2020-07-16-sparklyr-1.3.0-released/index.Rmd index 5cef38a9c..8cfbe2254 100644 --- a/content/blog/ai/2020-07-16-sparklyr-1.3.0-released/index.Rmd +++ b/content/blog/ported/ai/2020-07-16-sparklyr-1.3.0-released/index.Rmd @@ -211,6 +211,6 @@ We are also grateful for valuable input on the sparklyr 1.3 roadmap, [#2434](htt Please note if you believe you are missing from the acknowledgement above, it may be because your contribution has been considered part of the next sparklyr release rather than part of the current release. We do make every effort to ensure all contributors are mentioned in this section. In case you believe there is a mistake, please feel free to contact the author of this blog post via e-mail (yitao at rstudio dot com) and request a correction. -If you wish to learn more about `sparklyr`, we recommend visiting [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and some of the previous release posts such as [sparklyr 1.2](/blog/ai/2020-04-21-sparklyr-1.2.0-released/) and [sparklyr 1.1](/blog/2020-01-29_sparklyr-1-1/). +If you wish to learn more about `sparklyr`, we recommend visiting [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and some of the previous release posts such as [sparklyr 1.2](/blog/2020-04-21_sparklyr-1.2/) and [sparklyr 1.1](/blog/2020-01-29_sparklyr-1-1/). Thanks for reading! diff --git a/content/blog/ai/2020-07-16-sparklyr-1.3.0-released/index.md b/content/blog/ported/ai/2020-07-16-sparklyr-1.3.0-released/index.md similarity index 99% rename from content/blog/ai/2020-07-16-sparklyr-1.3.0-released/index.md rename to content/blog/ported/ai/2020-07-16-sparklyr-1.3.0-released/index.md index f6ec977e6..03c67ba27 100644 --- a/content/blog/ai/2020-07-16-sparklyr-1.3.0-released/index.md +++ b/content/blog/ported/ai/2020-07-16-sparklyr-1.3.0-released/index.md @@ -198,6 +198,6 @@ We are also grateful for valuable input on the sparklyr 1.3 roadmap, [#2434](htt Please note if you believe you are missing from the acknowledgement above, it may be because your contribution has been considered part of the next sparklyr release rather than part of the current release. We do make every effort to ensure all contributors are mentioned in this section. In case you believe there is a mistake, please feel free to contact the author of this blog post via e-mail (yitao at rstudio dot com) and request a correction. -If you wish to learn more about `sparklyr`, we recommend visiting [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and some of the previous release posts such as [sparklyr 1.2](/blog/ai/2020-04-21-sparklyr-1.2.0-released/) and [sparklyr 1.1](/blog/2020-01-29_sparklyr-1-1/). +If you wish to learn more about `sparklyr`, we recommend visiting [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and some of the previous release posts such as [sparklyr 1.2](/blog/2020-04-21_sparklyr-1.2/) and [sparklyr 1.1](/blog/2020-01-29_sparklyr-1-1/). Thanks for reading! diff --git a/content/blog/ai/2020-07-16-sparklyr-1.3.0-released/thumbnail.jpg b/content/blog/ported/ai/2020-07-16-sparklyr-1.3.0-released/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-07-16-sparklyr-1.3.0-released/thumbnail.jpg rename to content/blog/ported/ai/2020-07-16-sparklyr-1.3.0-released/thumbnail.jpg diff --git a/content/blog/ai/2020-07-20-fnn-lstm/bibliography.bib b/content/blog/ported/ai/2020-07-20-fnn-lstm/bibliography.bib similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/bibliography.bib rename to content/blog/ported/ai/2020-07-20-fnn-lstm/bibliography.bib diff --git a/content/blog/ai/2020-07-20-fnn-lstm/data/ecg.csv b/content/blog/ported/ai/2020-07-20-fnn-lstm/data/ecg.csv similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/data/ecg.csv rename to content/blog/ported/ai/2020-07-20-fnn-lstm/data/ecg.csv diff --git a/content/blog/ai/2020-07-20-fnn-lstm/data/electricity.csv b/content/blog/ported/ai/2020-07-20-fnn-lstm/data/electricity.csv similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/data/electricity.csv rename to content/blog/ported/ai/2020-07-20-fnn-lstm/data/electricity.csv diff --git a/content/blog/ai/2020-07-20-fnn-lstm/data/geyser.csv b/content/blog/ported/ai/2020-07-20-fnn-lstm/data/geyser.csv similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/data/geyser.csv rename to content/blog/ported/ai/2020-07-20-fnn-lstm/data/geyser.csv diff --git a/content/blog/ai/2020-07-20-fnn-lstm/data/mouse.csv b/content/blog/ported/ai/2020-07-20-fnn-lstm/data/mouse.csv similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/data/mouse.csv rename to content/blog/ported/ai/2020-07-20-fnn-lstm/data/mouse.csv diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/ecg_mses.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/ecg_mses.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/ecg_mses.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/ecg_mses.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/ecg_predictions.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/ecg_predictions.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/ecg_predictions.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/ecg_predictions.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/ecg_ts.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/ecg_ts.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/ecg_ts.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/ecg_ts.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/electricity_mses.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/electricity_mses.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/electricity_mses.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/electricity_mses.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/electricity_predictions.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/electricity_predictions.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/electricity_predictions.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/electricity_predictions.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/electricity_ts.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/electricity_ts.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/electricity_ts.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/electricity_ts.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/geyser_mses.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/geyser_mses.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/geyser_mses.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/geyser_mses.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/geyser_preds.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/geyser_preds.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/geyser_preds.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/geyser_preds.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/geyser_ts.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/geyser_ts.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/geyser_ts.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/geyser_ts.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/mouse_mses.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/mouse_mses.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/mouse_mses.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/mouse_mses.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/mouse_predictions.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/mouse_predictions.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/mouse_predictions.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/mouse_predictions.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/mouse_ts.png b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/mouse_ts.png similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/mouse_ts.png rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/mouse_ts.png diff --git a/content/blog/ai/2020-07-20-fnn-lstm/images/old_faithful.jpg b/content/blog/ported/ai/2020-07-20-fnn-lstm/images/old_faithful.jpg similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/images/old_faithful.jpg rename to content/blog/ported/ai/2020-07-20-fnn-lstm/images/old_faithful.jpg diff --git a/content/blog/ai/2020-07-20-fnn-lstm/index.Rmd b/content/blog/ported/ai/2020-07-20-fnn-lstm/index.Rmd similarity index 99% rename from content/blog/ai/2020-07-20-fnn-lstm/index.Rmd rename to content/blog/ported/ai/2020-07-20-fnn-lstm/index.Rmd index 44b5d2eec..ee0a69f78 100644 --- a/content/blog/ai/2020-07-20-fnn-lstm/index.Rmd +++ b/content/blog/ported/ai/2020-07-20-fnn-lstm/index.Rmd @@ -33,7 +33,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` Today, we pick up on the plan alluded to in the conclusion of the recent [Deep attractors: Where deep learning meets -chaos](/blog/ai/2020-06-24-deep-attractors/): employ that same technique to generate *forecasts* for +chaos](/blog/2020-06-24_keydanadeepattractors/): employ that same technique to generate *forecasts* for empirical time series data. "That same technique", which for conciseness, I'll take the liberty of referring to as FNN-LSTM, is due to William Gilpin's @@ -58,7 +58,7 @@ This is where Gilpin's idea comes in: Train an autoencoder, whose intermediate r attractor. Not just any MSE-optimized autoencoder though. The latent representation is regularized by *false nearest neighbors* (FNN) loss, a technique commonly used with delay coordinate embedding to determine an adequate embedding dimension. False neighbors are those who are close in `n`-dimensional space, but significantly farther apart in `n+1`-dimensional space. -In the aforementioned introductory [post](/blog/ai/2020-06-24-deep-attractors/), we showed how this +In the aforementioned introductory [post](/blog/2020-06-24_keydanadeepattractors/), we showed how this technique allowed to reconstruct the attractor of the (synthetic) Lorenz system. Now, we want to move on to prediction. We first describe the setup, including model definitions, training procedures, and data preparation. Then, we tell you how it diff --git a/content/blog/ai/2020-07-20-fnn-lstm/index.md b/content/blog/ported/ai/2020-07-20-fnn-lstm/index.md similarity index 99% rename from content/blog/ai/2020-07-20-fnn-lstm/index.md rename to content/blog/ported/ai/2020-07-20-fnn-lstm/index.md index 24252b8b6..8fc5da8d3 100644 --- a/content/blog/ai/2020-07-20-fnn-lstm/index.md +++ b/content/blog/ported/ai/2020-07-20-fnn-lstm/index.md @@ -34,7 +34,7 @@ tags: Today, we pick up on the plan alluded to in the conclusion of the recent [Deep attractors: Where deep learning meets -chaos](/blog/ai/2020-06-24-deep-attractors/): employ that same technique to generate *forecasts* for +chaos](/blog/2020-06-24_keydanadeepattractors/): employ that same technique to generate *forecasts* for empirical time series data. "That same technique", which for conciseness, I'll take the liberty of referring to as FNN-LSTM, is due to William Gilpin's @@ -57,7 +57,7 @@ This is where Gilpin's idea comes in: Train an autoencoder, whose intermediate r attractor. Not just any MSE-optimized autoencoder though. The latent representation is regularized by *false nearest neighbors* (FNN) loss, a technique commonly used with delay coordinate embedding to determine an adequate embedding dimension. False neighbors are those who are close in `n`-dimensional space, but significantly farther apart in `n+1`-dimensional space. -In the aforementioned introductory [post](/blog/ai/2020-06-24-deep-attractors/), we showed how this +In the aforementioned introductory [post](/blog/2020-06-24_keydanadeepattractors/), we showed how this technique allowed to reconstruct the attractor of the (synthetic) Lorenz system. Now, we want to move on to prediction. We first describe the setup, including model definitions, training procedures, and data preparation. Then, we tell you how it diff --git a/content/blog/ai/2020-07-20-fnn-lstm/thumbnail.jpg b/content/blog/ported/ai/2020-07-20-fnn-lstm/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-07-20-fnn-lstm/thumbnail.jpg rename to content/blog/ported/ai/2020-07-20-fnn-lstm/thumbnail.jpg diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/bibliography.bib b/content/blog/ported/ai/2020-07-29-parallelized-sampling/bibliography.bib similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/bibliography.bib rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/bibliography.bib diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/images/d1.jpg b/content/blog/ported/ai/2020-07-29-parallelized-sampling/images/d1.jpg similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/images/d1.jpg rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/images/d1.jpg diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/images/d2.jpg b/content/blog/ported/ai/2020-07-29-parallelized-sampling/images/d2.jpg similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/images/d2.jpg rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/images/d2.jpg diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/images/d3.jpg b/content/blog/ported/ai/2020-07-29-parallelized-sampling/images/d3.jpg similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/images/d3.jpg rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/images/d3.jpg diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/images/dice.jpg b/content/blog/ported/ai/2020-07-29-parallelized-sampling/images/dice.jpg similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/images/dice.jpg rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/images/dice.jpg diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/images/tree.jpg b/content/blog/ported/ai/2020-07-29-parallelized-sampling/images/tree.jpg similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/images/tree.jpg rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/images/tree.jpg diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/images/viz.png b/content/blog/ported/ai/2020-07-29-parallelized-sampling/images/viz.png similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/images/viz.png rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/images/viz.png diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/images/viz.png.original b/content/blog/ported/ai/2020-07-29-parallelized-sampling/images/viz.png.original similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/images/viz.png.original rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/images/viz.png.original diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/index.Rmd b/content/blog/ported/ai/2020-07-29-parallelized-sampling/index.Rmd similarity index 98% rename from content/blog/ai/2020-07-29-parallelized-sampling/index.Rmd rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/index.Rmd index cc6406d5c..12a6fb882 100644 --- a/content/blog/ai/2020-07-29-parallelized-sampling/index.Rmd +++ b/content/blog/ported/ai/2020-07-29-parallelized-sampling/index.Rmd @@ -395,6 +395,6 @@ First and foremost, the author wishes to thank [\@ajing](https://github.com/ajin Special thanks also goes to Javier ([\@javierluraschi](https://github.com/javierluraschi)) for reviewing the [implementation](https://github.com/sparklyr/sparklyr/pull/2606) of all exponential-variate based sampling algorithms in `sparklyr`, and to Mara ([\@batpigandme](https://github.com/batpigandme)), Sigrid ([\@Sigrid](https://github.com/skeydan)), and Javier ([\@javierluraschi](https://github.com/javierluraschi)) for their valuable editorial suggestions. -We hope you have enjoyed reading this blog post! If you wish to learn more about `sparklyr`, we recommend visiting [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and some of the previous release posts such as [sparklyr 1.3](/blog/2020-07-16_sparklyr-1-3/) and [sparklyr 1.2](/blog/ai/2020-04-21-sparklyr-1.2.0-released/). Also, your contributions to `sparklyr` are more than welcome. Please send your pull requests through [here](https://github.com/sparklyr/sparklyr/pulls) and file any bug report or feature request in [here](https://github.com/sparklyr/sparklyr). +We hope you have enjoyed reading this blog post! If you wish to learn more about `sparklyr`, we recommend visiting [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and some of the previous release posts such as [sparklyr 1.3](/blog/2020-07-16_sparklyr-1-3/) and [sparklyr 1.2](/blog/2020-04-21_sparklyr-1.2/). Also, your contributions to `sparklyr` are more than welcome. Please send your pull requests through [here](https://github.com/sparklyr/sparklyr/pulls) and file any bug report or feature request in [here](https://github.com/sparklyr/sparklyr). Thanks for reading! diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/index.md b/content/blog/ported/ai/2020-07-29-parallelized-sampling/index.md similarity index 98% rename from content/blog/ai/2020-07-29-parallelized-sampling/index.md rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/index.md index 9068dad22..fe3966a0d 100644 --- a/content/blog/ai/2020-07-29-parallelized-sampling/index.md +++ b/content/blog/ported/ai/2020-07-29-parallelized-sampling/index.md @@ -390,7 +390,7 @@ First and foremost, the author wishes to thank [@ajing](https://github.com/ajing Special thanks also goes to Javier ([@javierluraschi](https://github.com/javierluraschi)) for reviewing the [implementation](https://github.com/sparklyr/sparklyr/pull/2606) of all exponential-variate based sampling algorithms in `sparklyr`, and to Mara ([@batpigandme](https://github.com/batpigandme)), Sigrid ([@Sigrid](https://github.com/skeydan)), and Javier ([@javierluraschi](https://github.com/javierluraschi)) for their valuable editorial suggestions. -We hope you have enjoyed reading this blog post! If you wish to learn more about `sparklyr`, we recommend visiting [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and some of the previous release posts such as [sparklyr 1.3](/blog/2020-07-16_sparklyr-1-3/) and [sparklyr 1.2](/blog/ai/2020-04-21-sparklyr-1.2.0-released/). Also, your contributions to `sparklyr` are more than welcome. Please send your pull requests through [here](https://github.com/sparklyr/sparklyr/pulls) and file any bug report or feature request in [here](https://github.com/sparklyr/sparklyr). +We hope you have enjoyed reading this blog post! If you wish to learn more about `sparklyr`, we recommend visiting [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and some of the previous release posts such as [sparklyr 1.3](/blog/2020-07-16_sparklyr-1-3/) and [sparklyr 1.2](/blog/2020-04-21_sparklyr-1.2/). Also, your contributions to `sparklyr` are more than welcome. Please send your pull requests through [here](https://github.com/sparklyr/sparklyr/pulls) and file any bug report or feature request in [here](https://github.com/sparklyr/sparklyr). Thanks for reading! diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/proof.pdf b/content/blog/ported/ai/2020-07-29-parallelized-sampling/proof.pdf similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/proof.pdf rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/proof.pdf diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/proof.tex b/content/blog/ported/ai/2020-07-29-parallelized-sampling/proof.tex similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/proof.tex rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/proof.tex diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/samplingutils.scala b/content/blog/ported/ai/2020-07-29-parallelized-sampling/samplingutils.scala similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/samplingutils.scala rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/samplingutils.scala diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/test_plan b/content/blog/ported/ai/2020-07-29-parallelized-sampling/test_plan similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/test_plan rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/test_plan diff --git a/content/blog/ai/2020-07-29-parallelized-sampling/thumbnail.jpg b/content/blog/ported/ai/2020-07-29-parallelized-sampling/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-07-29-parallelized-sampling/thumbnail.jpg rename to content/blog/ported/ai/2020-07-29-parallelized-sampling/thumbnail.jpg diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/files/dino.jpg b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/files/dino.jpg similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/files/dino.jpg rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/files/dino.jpg diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/files/res.csv b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/files/res.csv similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/files/res.csv rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/files/res.csv diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/index.Rmd b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/index.Rmd similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/index.Rmd rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/index.Rmd diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/index.md b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/index.md similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/index.md rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/index.md diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/css/crosstalk.min.css b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/css/crosstalk.min.css similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/css/crosstalk.min.css rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/css/crosstalk.min.css diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.js b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.js similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.js rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.js diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.js.map b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.js.map similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.js.map rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.js.map diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.min.js b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.min.js similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.min.js rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.min.js diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.min.js.map b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.min.js.map similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.min.js.map rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/js/crosstalk.min.js.map diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/scss/crosstalk.scss b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/scss/crosstalk.scss similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/scss/crosstalk.scss rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/crosstalk-1.2.2/scss/crosstalk.scss diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/datatables-binding-0.34.0/datatables.js b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/datatables-binding-0.34.0/datatables.js similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/datatables-binding-0.34.0/datatables.js rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/datatables-binding-0.34.0/datatables.js diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/datatables-css-0.0.0/datatables-crosstalk.css b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/datatables-css-0.0.0/datatables-crosstalk.css similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/datatables-css-0.0.0/datatables-crosstalk.css rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/datatables-css-0.0.0/datatables-crosstalk.css diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/css/jquery.dataTables.extra.css b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/css/jquery.dataTables.extra.css similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/css/jquery.dataTables.extra.css rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/css/jquery.dataTables.extra.css diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/css/jquery.dataTables.min.css b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/css/jquery.dataTables.min.css similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/css/jquery.dataTables.min.css rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/css/jquery.dataTables.min.css diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/js/jquery.dataTables.min.js b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/js/jquery.dataTables.min.js similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/js/jquery.dataTables.min.js rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/dt-core-1.13.6/js/jquery.dataTables.min.js diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/htmltools-fill-0.5.9/fill.css b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/htmltools-fill-0.5.9/fill.css similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/htmltools-fill-0.5.9/fill.css rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/htmltools-fill-0.5.9/fill.css diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/htmlwidgets-1.6.4/htmlwidgets.js b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/htmlwidgets-1.6.4/htmlwidgets.js similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/htmlwidgets-1.6.4/htmlwidgets.js rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/htmlwidgets-1.6.4/htmlwidgets.js diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.js b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.js similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.js rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.js diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.min.js b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.min.js similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.min.js rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.min.js diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.min.map b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.min.map similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.min.map rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/state-of-the-art-nlp-models-from-r_files/libs/jquery-3.6.0/jquery-3.6.0.min.map diff --git a/content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/thumbnail.jpg b/content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-07-30-state-of-the-art-nlp-models-from-r/thumbnail.jpg rename to content/blog/ported/ai/2020-07-30-state-of-the-art-nlp-models-from-r/thumbnail.jpg diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/bibliography.bib b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/bibliography.bib similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/bibliography.bib rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/bibliography.bib diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/kb.jpg b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/kb.jpg similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/kb.jpg rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/kb.jpg diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/mses.png b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/mses.png similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/mses.png rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/mses.png diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_1.png b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_1.png similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_1.png rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_1.png diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_1_nofnn.png b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_1_nofnn.png similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_1_nofnn.png rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_1_nofnn.png diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.5.png b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.5.png similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.5.png rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.5.png diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.5_nofnn.png b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.5_nofnn.png similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.5_nofnn.png rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.5_nofnn.png diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.png b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.png similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.png rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2.png diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2_nofnn.png b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2_nofnn.png similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2_nofnn.png rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/noise_2_nofnn.png diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/roessler.png b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/roessler.png similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/roessler.png rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/roessler.png diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/roessler_noise.png b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/roessler_noise.png similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/roessler_noise.png rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/images/roessler_noise.png diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.Rmd b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.Rmd similarity index 98% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.Rmd rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.Rmd index d1acd52b2..8e3e7a10f 100644 --- a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.Rmd +++ b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.Rmd @@ -36,7 +36,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` This post did not end up quite the way I'd imagined. A quick follow-up on the recent [Time series prediction with -FNN-LSTM](/blog/ai/2020-07-20-fnn-lstm/), it was supposed to demonstrate how *noisy* time series (so common in +FNN-LSTM](/blog/2020-07-20_keydanafnnlstm/), it was supposed to demonstrate how *noisy* time series (so common in practice) could profit from a change in architecture: Instead of FNN-LSTM, an LSTM autoencoder regularized by false nearest neighbors (FNN) loss, use FNN-VAE, a variational autoencoder constrained by the same. However, FNN-VAE did not seem to handle noise better than FNN-LSTM. No plot, no post, then? @@ -58,11 +58,11 @@ to pursue in their own experimentation? This post is the third in a mini-series. -In [Deep attractors: Where deep learning meets chaos](/blog/ai/2020-06-24-deep-attractors/), we +In [Deep attractors: Where deep learning meets chaos](/blog/2020-06-24_keydanadeepattractors/), we explained, with a substantial detour into chaos theory, the idea of FNN loss, introduced in [@gilpin2020deep]. Please consult that first post for theoretical background and intuitions behind the technique. -The subsequent post, [Time series prediction with FNN-LSTM](/blog/ai/2020-07-20-fnn-lstm/), showed +The subsequent post, [Time series prediction with FNN-LSTM](/blog/2020-07-20_keydanafnnlstm/), showed how to use an LSTM autoencoder, constrained by FNN loss, for forecasting (as opposed to reconstructing an attractor). The results were stunning: In multi-step prediction (12-120 steps, with that number varying by dataset), the short-term forecasts were drastically improved by adding in FNN regularization. See that second post for experimental setup and results on four very different, non-synthetic datasets. diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.md b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.md similarity index 98% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.md rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.md index 58597425a..9059e6f37 100644 --- a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.md +++ b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/index.md @@ -34,7 +34,7 @@ tags: This post did not end up quite the way I'd imagined. A quick follow-up on the recent [Time series prediction with -FNN-LSTM](/blog/ai/2020-07-20-fnn-lstm/), it was supposed to demonstrate how *noisy* time series (so common in +FNN-LSTM](/blog/2020-07-20_keydanafnnlstm/), it was supposed to demonstrate how *noisy* time series (so common in practice) could profit from a change in architecture: Instead of FNN-LSTM, an LSTM autoencoder regularized by false nearest neighbors (FNN) loss, use FNN-VAE, a variational autoencoder constrained by the same. However, FNN-VAE did not seem to handle noise better than FNN-LSTM. No plot, no post, then? @@ -56,11 +56,11 @@ to pursue in their own experimentation? This post is the third in a mini-series. -In [Deep attractors: Where deep learning meets chaos](/blog/ai/2020-06-24-deep-attractors/), we +In [Deep attractors: Where deep learning meets chaos](/blog/2020-06-24_keydanadeepattractors/), we explained, with a substantial detour into chaos theory, the idea of FNN loss, introduced in (Gilpin 2020). Please consult that first post for theoretical background and intuitions behind the technique. -The subsequent post, [Time series prediction with FNN-LSTM](/blog/ai/2020-07-20-fnn-lstm/), showed +The subsequent post, [Time series prediction with FNN-LSTM](/blog/2020-07-20_keydanafnnlstm/), showed how to use an LSTM autoencoder, constrained by FNN loss, for forecasting (as opposed to reconstructing an attractor). The results were stunning: In multi-step prediction (12-120 steps, with that number varying by dataset), the short-term forecasts were drastically improved by adding in FNN regularization. See that second post for experimental setup and results on four very different, non-synthetic datasets. diff --git a/content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/thumbnail.jpg b/content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/thumbnail.jpg rename to content/blog/ported/ai/2020-07-31-fnn-vae-for-noisy-timeseries/thumbnail.jpg diff --git a/content/blog/ai/2020-08-18-deepfake/files/frame_1.jpg b/content/blog/ported/ai/2020-08-18-deepfake/files/frame_1.jpg similarity index 100% rename from content/blog/ai/2020-08-18-deepfake/files/frame_1.jpg rename to content/blog/ported/ai/2020-08-18-deepfake/files/frame_1.jpg diff --git a/content/blog/ai/2020-08-18-deepfake/files/frame_1_face.png b/content/blog/ported/ai/2020-08-18-deepfake/files/frame_1_face.png similarity index 100% rename from content/blog/ai/2020-08-18-deepfake/files/frame_1_face.png rename to content/blog/ported/ai/2020-08-18-deepfake/files/frame_1_face.png diff --git a/content/blog/ai/2020-08-18-deepfake/files/frame_2.jpg b/content/blog/ported/ai/2020-08-18-deepfake/files/frame_2.jpg similarity index 100% rename from content/blog/ai/2020-08-18-deepfake/files/frame_2.jpg rename to content/blog/ported/ai/2020-08-18-deepfake/files/frame_2.jpg diff --git a/content/blog/ai/2020-08-18-deepfake/files/self.gif b/content/blog/ported/ai/2020-08-18-deepfake/files/self.gif similarity index 100% rename from content/blog/ai/2020-08-18-deepfake/files/self.gif rename to content/blog/ported/ai/2020-08-18-deepfake/files/self.gif diff --git a/content/blog/ai/2020-08-18-deepfake/index.Rmd b/content/blog/ported/ai/2020-08-18-deepfake/index.Rmd similarity index 100% rename from content/blog/ai/2020-08-18-deepfake/index.Rmd rename to content/blog/ported/ai/2020-08-18-deepfake/index.Rmd diff --git a/content/blog/ai/2020-08-18-deepfake/index.md b/content/blog/ported/ai/2020-08-18-deepfake/index.md similarity index 100% rename from content/blog/ai/2020-08-18-deepfake/index.md rename to content/blog/ported/ai/2020-08-18-deepfake/index.md diff --git a/content/blog/ai/2020-08-18-deepfake/thumbnail.jpg b/content/blog/ported/ai/2020-08-18-deepfake/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-08-18-deepfake/thumbnail.jpg rename to content/blog/ported/ai/2020-08-18-deepfake/thumbnail.jpg diff --git a/content/blog/ai/2020-08-24-training-imagenet-with-r/bibliography.bib b/content/blog/ported/ai/2020-08-24-training-imagenet-with-r/bibliography.bib similarity index 100% rename from content/blog/ai/2020-08-24-training-imagenet-with-r/bibliography.bib rename to content/blog/ported/ai/2020-08-24-training-imagenet-with-r/bibliography.bib diff --git a/content/blog/ai/2020-08-24-training-imagenet-with-r/images/fishing-net.jpg b/content/blog/ported/ai/2020-08-24-training-imagenet-with-r/images/fishing-net.jpg similarity index 100% rename from content/blog/ai/2020-08-24-training-imagenet-with-r/images/fishing-net.jpg rename to content/blog/ported/ai/2020-08-24-training-imagenet-with-r/images/fishing-net.jpg diff --git a/content/blog/ai/2020-08-24-training-imagenet-with-r/index.Rmd b/content/blog/ported/ai/2020-08-24-training-imagenet-with-r/index.Rmd similarity index 100% rename from content/blog/ai/2020-08-24-training-imagenet-with-r/index.Rmd rename to content/blog/ported/ai/2020-08-24-training-imagenet-with-r/index.Rmd diff --git a/content/blog/ai/2020-08-24-training-imagenet-with-r/index.md b/content/blog/ported/ai/2020-08-24-training-imagenet-with-r/index.md similarity index 100% rename from content/blog/ai/2020-08-24-training-imagenet-with-r/index.md rename to content/blog/ported/ai/2020-08-24-training-imagenet-with-r/index.md diff --git a/content/blog/ai/2020-08-24-training-imagenet-with-r/thumbnail.jpg b/content/blog/ported/ai/2020-08-24-training-imagenet-with-r/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-08-24-training-imagenet-with-r/thumbnail.jpg rename to content/blog/ported/ai/2020-08-24-training-imagenet-with-r/thumbnail.jpg diff --git a/content/blog/ai/2020-09-01-weather-prediction/bibliography.bib b/content/blog/ported/ai/2020-09-01-weather-prediction/bibliography.bib similarity index 100% rename from content/blog/ai/2020-09-01-weather-prediction/bibliography.bib rename to content/blog/ported/ai/2020-09-01-weather-prediction/bibliography.bib diff --git a/content/blog/ai/2020-09-01-weather-prediction/images/history.png b/content/blog/ported/ai/2020-09-01-weather-prediction/images/history.png similarity index 100% rename from content/blog/ai/2020-09-01-weather-prediction/images/history.png rename to content/blog/ported/ai/2020-09-01-weather-prediction/images/history.png diff --git a/content/blog/ai/2020-09-01-weather-prediction/images/thumb.png b/content/blog/ported/ai/2020-09-01-weather-prediction/images/thumb.png similarity index 100% rename from content/blog/ai/2020-09-01-weather-prediction/images/thumb.png rename to content/blog/ported/ai/2020-09-01-weather-prediction/images/thumb.png diff --git a/content/blog/ai/2020-09-01-weather-prediction/images/viz.png b/content/blog/ported/ai/2020-09-01-weather-prediction/images/viz.png similarity index 100% rename from content/blog/ai/2020-09-01-weather-prediction/images/viz.png rename to content/blog/ported/ai/2020-09-01-weather-prediction/images/viz.png diff --git a/content/blog/ai/2020-09-01-weather-prediction/index.Rmd b/content/blog/ported/ai/2020-09-01-weather-prediction/index.Rmd similarity index 100% rename from content/blog/ai/2020-09-01-weather-prediction/index.Rmd rename to content/blog/ported/ai/2020-09-01-weather-prediction/index.Rmd diff --git a/content/blog/ai/2020-09-01-weather-prediction/index.md b/content/blog/ported/ai/2020-09-01-weather-prediction/index.md similarity index 100% rename from content/blog/ai/2020-09-01-weather-prediction/index.md rename to content/blog/ported/ai/2020-09-01-weather-prediction/index.md diff --git a/content/blog/ai/2020-09-01-weather-prediction/thumbnail.png b/content/blog/ported/ai/2020-09-01-weather-prediction/thumbnail.png similarity index 100% rename from content/blog/ai/2020-09-01-weather-prediction/thumbnail.png rename to content/blog/ported/ai/2020-09-01-weather-prediction/thumbnail.png diff --git a/content/blog/ai/2020-09-07-sparklyr-flint/images/thumb.png b/content/blog/ported/ai/2020-09-07-sparklyr-flint/images/thumb.png similarity index 100% rename from content/blog/ai/2020-09-07-sparklyr-flint/images/thumb.png rename to content/blog/ported/ai/2020-09-07-sparklyr-flint/images/thumb.png diff --git a/content/blog/ai/2020-09-07-sparklyr-flint/index.Rmd b/content/blog/ported/ai/2020-09-07-sparklyr-flint/index.Rmd similarity index 100% rename from content/blog/ai/2020-09-07-sparklyr-flint/index.Rmd rename to content/blog/ported/ai/2020-09-07-sparklyr-flint/index.Rmd diff --git a/content/blog/ai/2020-09-07-sparklyr-flint/index.md b/content/blog/ported/ai/2020-09-07-sparklyr-flint/index.md similarity index 100% rename from content/blog/ai/2020-09-07-sparklyr-flint/index.md rename to content/blog/ported/ai/2020-09-07-sparklyr-flint/index.md diff --git a/content/blog/ai/2020-09-07-sparklyr-flint/thumbnail.png b/content/blog/ported/ai/2020-09-07-sparklyr-flint/thumbnail.png similarity index 100% rename from content/blog/ai/2020-09-07-sparklyr-flint/thumbnail.png rename to content/blog/ported/ai/2020-09-07-sparklyr-flint/thumbnail.png diff --git a/content/blog/ai/2020-09-29-introducing-torch-for-r/bibliography.bib b/content/blog/ported/ai/2020-09-29-introducing-torch-for-r/bibliography.bib similarity index 100% rename from content/blog/ai/2020-09-29-introducing-torch-for-r/bibliography.bib rename to content/blog/ported/ai/2020-09-29-introducing-torch-for-r/bibliography.bib diff --git a/content/blog/ai/2020-09-29-introducing-torch-for-r/images/kmnist.png b/content/blog/ported/ai/2020-09-29-introducing-torch-for-r/images/kmnist.png similarity index 100% rename from content/blog/ai/2020-09-29-introducing-torch-for-r/images/kmnist.png rename to content/blog/ported/ai/2020-09-29-introducing-torch-for-r/images/kmnist.png diff --git a/content/blog/ai/2020-09-29-introducing-torch-for-r/images/pt.png b/content/blog/ported/ai/2020-09-29-introducing-torch-for-r/images/pt.png similarity index 100% rename from content/blog/ai/2020-09-29-introducing-torch-for-r/images/pt.png rename to content/blog/ported/ai/2020-09-29-introducing-torch-for-r/images/pt.png diff --git a/content/blog/ai/2020-09-29-introducing-torch-for-r/index.Rmd b/content/blog/ported/ai/2020-09-29-introducing-torch-for-r/index.Rmd similarity index 100% rename from content/blog/ai/2020-09-29-introducing-torch-for-r/index.Rmd rename to content/blog/ported/ai/2020-09-29-introducing-torch-for-r/index.Rmd diff --git a/content/blog/ai/2020-09-29-introducing-torch-for-r/index.md b/content/blog/ported/ai/2020-09-29-introducing-torch-for-r/index.md similarity index 100% rename from content/blog/ai/2020-09-29-introducing-torch-for-r/index.md rename to content/blog/ported/ai/2020-09-29-introducing-torch-for-r/index.md diff --git a/content/blog/ai/2020-09-29-introducing-torch-for-r/thumbnail.png b/content/blog/ported/ai/2020-09-29-introducing-torch-for-r/thumbnail.png similarity index 100% rename from content/blog/ai/2020-09-29-introducing-torch-for-r/thumbnail.png rename to content/blog/ported/ai/2020-09-29-introducing-torch-for-r/thumbnail.png diff --git a/content/blog/ai/2020-09-30-sparklyr-1.4.0-released/images/scaled.png b/content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/images/scaled.png similarity index 100% rename from content/blog/ai/2020-09-30-sparklyr-1.4.0-released/images/scaled.png rename to content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/images/scaled.png diff --git a/content/blog/ai/2020-09-30-sparklyr-1.4.0-released/images/skewed.png b/content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/images/skewed.png similarity index 100% rename from content/blog/ai/2020-09-30-sparklyr-1.4.0-released/images/skewed.png rename to content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/images/skewed.png diff --git a/content/blog/ai/2020-09-30-sparklyr-1.4.0-released/images/sparklyr-1.4.jpg b/content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/images/sparklyr-1.4.jpg similarity index 100% rename from content/blog/ai/2020-09-30-sparklyr-1.4.0-released/images/sparklyr-1.4.jpg rename to content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/images/sparklyr-1.4.jpg diff --git a/content/blog/ai/2020-09-30-sparklyr-1.4.0-released/index.Rmd b/content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/index.Rmd similarity index 96% rename from content/blog/ai/2020-09-30-sparklyr-1.4.0-released/index.Rmd rename to content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/index.Rmd index 5806ab4bb..8141463d8 100644 --- a/content/blog/ai/2020-09-30-sparklyr-1.4.0-released/index.Rmd +++ b/content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/index.Rmd @@ -88,7 +88,7 @@ will return a random subset of size 5 from the Spark dataframe `mtcars_sdf`. More importantly, the sampling algorithm implemented in `sparklyr` 1.4 is something that fits perfectly into the MapReduce paradigm: as we have split our `mtcars` data into 4 partitions of `mtcars_sdf` by specifying `repartition = 4L`, the algorithm will first process each partition independently and in parallel, selecting a sample set of size up to 5 from each, and then reduce all 4 sample sets into a final sample set of size 5 by choosing records having the top 5 highest sampling priorities among all. -How is such parallelization possible, especially for the sampling without replacement scenario, where the desired result is defined as the outcome of a sequential process? A detailed answer to this question is in [this blog post](/blog/ai/2020-07-29-parallelized-sampling/), which includes a definition of the problem (in particular, the exact meaning of sampling weights in term of probabilities), a high-level explanation of the current solution and the motivation behind it, and also, some mathematical details all hidden in one link to a PDF file, so that non-math-oriented readers can get the gist of everything else without getting scared away, while math-oriented readers can enjoy working out all the integrals themselves before peeking at the answer. +How is such parallelization possible, especially for the sampling without replacement scenario, where the desired result is defined as the outcome of a sequential process? A detailed answer to this question is in [this blog post](/blog/2020-07-29_parallelized-sampling/), which includes a definition of the problem (in particular, the exact meaning of sampling weights in term of probabilities), a high-level explanation of the current solution and the motivation behind it, and also, some mathematical details all hidden in one link to a PDF file, so that non-math-oriented readers can get the gist of everything else without getting scared away, while math-oriented readers can enjoy working out all the integrals themselves before peeking at the answer. ## Tidyr Verbs @@ -376,6 +376,6 @@ We also appreciate bug reports, feature requests, and valuable other feedback ab Last but not least, the author of this blog post is extremely grateful for fantastic editorial suggestions from [\@javierluraschi](https://github.com/javierluraschi), [\@batpigandme](https://github.com/batpigandme), and [\@skeydan](https://github.com/skeydan). -If you wish to learn more about `sparklyr`, we recommend checking out [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and also some of the previous release posts such as [sparklyr 1.3](/blog/2020-07-16_sparklyr-1-3/) and [sparklyr 1.2](/blog/ai/2020-04-21-sparklyr-1.2.0-released/). +If you wish to learn more about `sparklyr`, we recommend checking out [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and also some of the previous release posts such as [sparklyr 1.3](/blog/2020-07-16_sparklyr-1-3/) and [sparklyr 1.2](/blog/2020-04-21_sparklyr-1.2/). Thanks for reading! diff --git a/content/blog/ai/2020-09-30-sparklyr-1.4.0-released/index.md b/content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/index.md similarity index 96% rename from content/blog/ai/2020-09-30-sparklyr-1.4.0-released/index.md rename to content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/index.md index fd171997d..62d3e963c 100644 --- a/content/blog/ai/2020-09-30-sparklyr-1.4.0-released/index.md +++ b/content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/index.md @@ -88,7 +88,7 @@ will return a random subset of size 5 from the Spark dataframe `mtcars_sdf`. More importantly, the sampling algorithm implemented in `sparklyr` 1.4 is something that fits perfectly into the MapReduce paradigm: as we have split our `mtcars` data into 4 partitions of `mtcars_sdf` by specifying `repartition = 4L`, the algorithm will first process each partition independently and in parallel, selecting a sample set of size up to 5 from each, and then reduce all 4 sample sets into a final sample set of size 5 by choosing records having the top 5 highest sampling priorities among all. -How is such parallelization possible, especially for the sampling without replacement scenario, where the desired result is defined as the outcome of a sequential process? A detailed answer to this question is in [this blog post](/blog/ai/2020-07-29-parallelized-sampling/), which includes a definition of the problem (in particular, the exact meaning of sampling weights in term of probabilities), a high-level explanation of the current solution and the motivation behind it, and also, some mathematical details all hidden in one link to a PDF file, so that non-math-oriented readers can get the gist of everything else without getting scared away, while math-oriented readers can enjoy working out all the integrals themselves before peeking at the answer. +How is such parallelization possible, especially for the sampling without replacement scenario, where the desired result is defined as the outcome of a sequential process? A detailed answer to this question is in [this blog post](/blog/2020-07-29_parallelized-sampling/), which includes a definition of the problem (in particular, the exact meaning of sampling weights in term of probabilities), a high-level explanation of the current solution and the motivation behind it, and also, some mathematical details all hidden in one link to a PDF file, so that non-math-oriented readers can get the gist of everything else without getting scared away, while math-oriented readers can enjoy working out all the integrals themselves before peeking at the answer. ## Tidyr Verbs @@ -358,6 +358,6 @@ We also appreciate bug reports, feature requests, and valuable other feedback ab Last but not least, the author of this blog post is extremely grateful for fantastic editorial suggestions from [@javierluraschi](https://github.com/javierluraschi), [@batpigandme](https://github.com/batpigandme), and [@skeydan](https://github.com/skeydan). -If you wish to learn more about `sparklyr`, we recommend checking out [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and also some of the previous release posts such as [sparklyr 1.3](/blog/2020-07-16_sparklyr-1-3/) and [sparklyr 1.2](/blog/ai/2020-04-21-sparklyr-1.2.0-released/). +If you wish to learn more about `sparklyr`, we recommend checking out [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and also some of the previous release posts such as [sparklyr 1.3](/blog/2020-07-16_sparklyr-1-3/) and [sparklyr 1.2](/blog/2020-04-21_sparklyr-1.2/). Thanks for reading! diff --git a/content/blog/ai/2020-09-30-sparklyr-1.4.0-released/thumbnail.jpg b/content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-09-30-sparklyr-1.4.0-released/thumbnail.jpg rename to content/blog/ported/ai/2020-09-30-sparklyr-1.4.0-released/thumbnail.jpg diff --git a/content/blog/ai/2020-10-01-torch-network-from-scratch/images/pic.jpg b/content/blog/ported/ai/2020-10-01-torch-network-from-scratch/images/pic.jpg similarity index 100% rename from content/blog/ai/2020-10-01-torch-network-from-scratch/images/pic.jpg rename to content/blog/ported/ai/2020-10-01-torch-network-from-scratch/images/pic.jpg diff --git a/content/blog/ai/2020-10-01-torch-network-from-scratch/index.Rmd b/content/blog/ported/ai/2020-10-01-torch-network-from-scratch/index.Rmd similarity index 100% rename from content/blog/ai/2020-10-01-torch-network-from-scratch/index.Rmd rename to content/blog/ported/ai/2020-10-01-torch-network-from-scratch/index.Rmd diff --git a/content/blog/ai/2020-10-01-torch-network-from-scratch/index.md b/content/blog/ported/ai/2020-10-01-torch-network-from-scratch/index.md similarity index 100% rename from content/blog/ai/2020-10-01-torch-network-from-scratch/index.md rename to content/blog/ported/ai/2020-10-01-torch-network-from-scratch/index.md diff --git a/content/blog/ai/2020-10-01-torch-network-from-scratch/thumbnail.jpg b/content/blog/ported/ai/2020-10-01-torch-network-from-scratch/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-10-01-torch-network-from-scratch/thumbnail.jpg rename to content/blog/ported/ai/2020-10-01-torch-network-from-scratch/thumbnail.jpg diff --git a/content/blog/ai/2020-10-05-torch-network-with-autograd/images/preview.jpg b/content/blog/ported/ai/2020-10-05-torch-network-with-autograd/images/preview.jpg similarity index 100% rename from content/blog/ai/2020-10-05-torch-network-with-autograd/images/preview.jpg rename to content/blog/ported/ai/2020-10-05-torch-network-with-autograd/images/preview.jpg diff --git a/content/blog/ai/2020-10-05-torch-network-with-autograd/index.Rmd b/content/blog/ported/ai/2020-10-05-torch-network-with-autograd/index.Rmd similarity index 99% rename from content/blog/ai/2020-10-05-torch-network-with-autograd/index.Rmd rename to content/blog/ported/ai/2020-10-05-torch-network-with-autograd/index.Rmd index d1b7f83f7..d3e5da37e 100644 --- a/content/blog/ai/2020-10-05-torch-network-with-autograd/index.Rmd +++ b/content/blog/ported/ai/2020-10-05-torch-network-with-autograd/index.Rmd @@ -30,7 +30,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` Last week, we saw how to code [a simple network from -scratch](/blog/ai/2020-10-01-torch-network-from-scratch), +scratch](/blog/2020-10-01_keydanatorchnetworkfromscratch/), using nothing but `torch` *tensors*. Predictions, loss, gradients, weight updates -- all these things we've been computing ourselves. Today, we make a significant change: Namely, we spare ourselves the diff --git a/content/blog/ai/2020-10-05-torch-network-with-autograd/index.md b/content/blog/ported/ai/2020-10-05-torch-network-with-autograd/index.md similarity index 99% rename from content/blog/ai/2020-10-05-torch-network-with-autograd/index.md rename to content/blog/ported/ai/2020-10-05-torch-network-with-autograd/index.md index 6f93a2bae..b25788edc 100644 --- a/content/blog/ai/2020-10-05-torch-network-with-autograd/index.md +++ b/content/blog/ported/ai/2020-10-05-torch-network-with-autograd/index.md @@ -29,7 +29,7 @@ tags: Last week, we saw how to code [a simple network from -scratch](/blog/ai/2020-10-01-torch-network-from-scratch), +scratch](/blog/2020-10-01_keydanatorchnetworkfromscratch/), using nothing but `torch` *tensors*. Predictions, loss, gradients, weight updates -- all these things we've been computing ourselves. Today, we make a significant change: Namely, we spare ourselves the diff --git a/content/blog/ai/2020-10-05-torch-network-with-autograd/thumbnail.jpg b/content/blog/ported/ai/2020-10-05-torch-network-with-autograd/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-10-05-torch-network-with-autograd/thumbnail.jpg rename to content/blog/ported/ai/2020-10-05-torch-network-with-autograd/thumbnail.jpg diff --git a/content/blog/ai/2020-10-07-torch-modules/images/preview.jpg b/content/blog/ported/ai/2020-10-07-torch-modules/images/preview.jpg similarity index 100% rename from content/blog/ai/2020-10-07-torch-modules/images/preview.jpg rename to content/blog/ported/ai/2020-10-07-torch-modules/images/preview.jpg diff --git a/content/blog/ai/2020-10-07-torch-modules/index.Rmd b/content/blog/ported/ai/2020-10-07-torch-modules/index.Rmd similarity index 98% rename from content/blog/ai/2020-10-07-torch-modules/index.Rmd rename to content/blog/ported/ai/2020-10-07-torch-modules/index.Rmd index a4aa42edb..f9f6c0cf3 100644 --- a/content/blog/ai/2020-10-07-torch-modules/index.Rmd +++ b/content/blog/ported/ai/2020-10-07-torch-modules/index.Rmd @@ -30,11 +30,11 @@ tags: knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -[Initially](/blog/ai/2020-10-01-torch-network-from-scratch), +[Initially](/blog/2020-10-01_keydanatorchnetworkfromscratch/), we started learning about `torch` basics by coding a simple neural network from scratch, making use of just a single of `torch`'s features: *tensors*. -[Then](/blog/ai/2020-10-05-torch-network-with-autograd), +[Then](/blog/2020-10-05_keydanatorchnetworkwithautograd/), we immensely simplified the task, replacing manual backpropagation with *autograd*. Today, we *modularize* the network - in both the habitual and a very literal sense: Low-level matrix operations are swapped out diff --git a/content/blog/ai/2020-10-07-torch-modules/index.md b/content/blog/ported/ai/2020-10-07-torch-modules/index.md similarity index 98% rename from content/blog/ai/2020-10-07-torch-modules/index.md rename to content/blog/ported/ai/2020-10-07-torch-modules/index.md index eb201688b..722d3f7f7 100644 --- a/content/blog/ai/2020-10-07-torch-modules/index.md +++ b/content/blog/ported/ai/2020-10-07-torch-modules/index.md @@ -29,11 +29,11 @@ math: true -[Initially](/blog/ai/2020-10-01-torch-network-from-scratch), +[Initially](/blog/2020-10-01_keydanatorchnetworkfromscratch/), we started learning about `torch` basics by coding a simple neural network from scratch, making use of just a single of `torch`'s features: *tensors*. -[Then](/blog/ai/2020-10-05-torch-network-with-autograd), +[Then](/blog/2020-10-05_keydanatorchnetworkwithautograd/), we immensely simplified the task, replacing manual backpropagation with *autograd*. Today, we *modularize* the network - in both the habitual and a very literal sense: Low-level matrix operations are swapped out diff --git a/content/blog/ai/2020-10-07-torch-modules/thumbnail.jpg b/content/blog/ported/ai/2020-10-07-torch-modules/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-10-07-torch-modules/thumbnail.jpg rename to content/blog/ported/ai/2020-10-07-torch-modules/thumbnail.jpg diff --git a/content/blog/ai/2020-10-09-torch-optim/bibliography.bib b/content/blog/ported/ai/2020-10-09-torch-optim/bibliography.bib similarity index 100% rename from content/blog/ai/2020-10-09-torch-optim/bibliography.bib rename to content/blog/ported/ai/2020-10-09-torch-optim/bibliography.bib diff --git a/content/blog/ai/2020-10-09-torch-optim/images/preview.jpg b/content/blog/ported/ai/2020-10-09-torch-optim/images/preview.jpg similarity index 100% rename from content/blog/ai/2020-10-09-torch-optim/images/preview.jpg rename to content/blog/ported/ai/2020-10-09-torch-optim/images/preview.jpg diff --git a/content/blog/ai/2020-10-09-torch-optim/index.Rmd b/content/blog/ported/ai/2020-10-09-torch-optim/index.Rmd similarity index 91% rename from content/blog/ai/2020-10-09-torch-optim/index.Rmd rename to content/blog/ported/ai/2020-10-09-torch-optim/index.Rmd index 9e7795281..0130e90ca 100644 --- a/content/blog/ai/2020-10-09-torch-optim/index.Rmd +++ b/content/blog/ported/ai/2020-10-09-torch-optim/index.Rmd @@ -31,11 +31,11 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -This is the fourth and last installment in a series introducing `torch` basics. Initially, we [focused on *tensors*](/blog/ai/2020-10-01-torch-network-from-scratch/). To illustrate their power, we coded a complete (if toy-size) neural network from scratch. We didn't make use of any of `torch`'s higher-level capabilities -- not even *autograd*, its automatic-differentiation feature. +This is the fourth and last installment in a series introducing `torch` basics. Initially, we [focused on *tensors*](/blog/2020-10-01_keydanatorchnetworkfromscratch/). To illustrate their power, we coded a complete (if toy-size) neural network from scratch. We didn't make use of any of `torch`'s higher-level capabilities -- not even *autograd*, its automatic-differentiation feature. -This changed in the [follow-up post](/blog/ai/2020-10-05-torch-network-with-autograd). No more thinking about derivatives and the chain rule; a single call to `backward()` did it all. +This changed in the [follow-up post](/blog/2020-10-05_keydanatorchnetworkwithautograd/). No more thinking about derivatives and the chain rule; a single call to `backward()` did it all. -[In the third post](/blog/ai/2020-10-07-torch-modules), the code again saw a major simplification. Instead of tediously assembling a DAG[^1] by hand, we let *modules* take care of the logic. +[In the third post](/blog/2020-10-07_keydanatorchmodules/), the code again saw a major simplification. Instead of tediously assembling a DAG[^1] by hand, we let *modules* take care of the logic. [^1]: directed acyclic graph diff --git a/content/blog/ai/2020-10-09-torch-optim/index.md b/content/blog/ported/ai/2020-10-09-torch-optim/index.md similarity index 91% rename from content/blog/ai/2020-10-09-torch-optim/index.md rename to content/blog/ported/ai/2020-10-09-torch-optim/index.md index 2726e3197..e177fbeb0 100644 --- a/content/blog/ai/2020-10-09-torch-optim/index.md +++ b/content/blog/ported/ai/2020-10-09-torch-optim/index.md @@ -28,11 +28,11 @@ tags: -This is the fourth and last installment in a series introducing `torch` basics. Initially, we [focused on *tensors*](/blog/ai/2020-10-01-torch-network-from-scratch/). To illustrate their power, we coded a complete (if toy-size) neural network from scratch. We didn't make use of any of `torch`'s higher-level capabilities -- not even *autograd*, its automatic-differentiation feature. +This is the fourth and last installment in a series introducing `torch` basics. Initially, we [focused on *tensors*](/blog/2020-10-01_keydanatorchnetworkfromscratch/). To illustrate their power, we coded a complete (if toy-size) neural network from scratch. We didn't make use of any of `torch`'s higher-level capabilities -- not even *autograd*, its automatic-differentiation feature. -This changed in the [follow-up post](/blog/ai/2020-10-05-torch-network-with-autograd). No more thinking about derivatives and the chain rule; a single call to `backward()` did it all. +This changed in the [follow-up post](/blog/2020-10-05_keydanatorchnetworkwithautograd/). No more thinking about derivatives and the chain rule; a single call to `backward()` did it all. -[In the third post](/blog/ai/2020-10-07-torch-modules), the code again saw a major simplification. Instead of tediously assembling a DAG[^1] by hand, we let *modules* take care of the logic. +[In the third post](/blog/2020-10-07_keydanatorchmodules/), the code again saw a major simplification. Instead of tediously assembling a DAG[^1] by hand, we let *modules* take care of the logic. Based on that last state, there are just two more things to do. For one, we still compute the loss by hand. And secondly, even though we get the gradients all nicely computed from *autograd*, we still loop over the model's parameters, updating them all ourselves. You won't be surprised to hear that none of this is necessary. diff --git a/content/blog/ai/2020-10-09-torch-optim/thumbnail.jpg b/content/blog/ported/ai/2020-10-09-torch-optim/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-10-09-torch-optim/thumbnail.jpg rename to content/blog/ported/ai/2020-10-09-torch-optim/thumbnail.jpg diff --git a/content/blog/ai/2020-10-12-sparklyr-flint-0.2.0-released/images/sparklyr-flint-0.2.jpg b/content/blog/ported/ai/2020-10-12-sparklyr-flint-0.2.0-released/images/sparklyr-flint-0.2.jpg similarity index 100% rename from content/blog/ai/2020-10-12-sparklyr-flint-0.2.0-released/images/sparklyr-flint-0.2.jpg rename to content/blog/ported/ai/2020-10-12-sparklyr-flint-0.2.0-released/images/sparklyr-flint-0.2.jpg diff --git a/content/blog/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.Rmd b/content/blog/ported/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.Rmd similarity index 98% rename from content/blog/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.Rmd rename to content/blog/ported/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.Rmd index 7d95c27cf..46dd9802e 100644 --- a/content/blog/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.Rmd +++ b/content/blog/ported/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.Rmd @@ -29,7 +29,7 @@ tags: ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = FALSE) ``` -Since [`sparklyr.flint`](https://cran.r-project.org/web/packages/sparklyr.flint/index.html), a [`sparklyr`](https://sparklyr.ai) extension for leveraging [Flint](https://github.com/twosigma/flint) time series functionalities through `sparklyr`, was [introduced](/blog/ai/2020-09-07-sparklyr-flint) in September, we have made a number of enhancements to it, and have successfully submitted `sparklyr.flint` 0.2 to CRAN. +Since [`sparklyr.flint`](https://cran.r-project.org/web/packages/sparklyr.flint/index.html), a [`sparklyr`](https://sparklyr.ai) extension for leveraging [Flint](https://github.com/twosigma/flint) time series functionalities through `sparklyr`, was [introduced](/blog/2020-09-07_sparklyr.flint-0.1.1/) in September, we have made a number of enhancements to it, and have successfully submitted `sparklyr.flint` 0.2 to CRAN. In this blog post, we highlight the following new features and improvements from `sparklyr.flint` 0.2: diff --git a/content/blog/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.md b/content/blog/ported/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.md similarity index 98% rename from content/blog/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.md rename to content/blog/ported/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.md index 5cfc7d88f..8d5c7c2c3 100644 --- a/content/blog/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.md +++ b/content/blog/ported/ai/2020-10-12-sparklyr-flint-0.2.0-released/index.md @@ -33,7 +33,7 @@ math: true -Since [`sparklyr.flint`](https://cran.r-project.org/web/packages/sparklyr.flint/index.html), a [`sparklyr`](https://sparklyr.ai) extension for leveraging [Flint](https://github.com/twosigma/flint) time series functionalities through `sparklyr`, was [introduced](/blog/ai/2020-09-07-sparklyr-flint) in September, we have made a number of enhancements to it, and have successfully submitted `sparklyr.flint` 0.2 to CRAN. +Since [`sparklyr.flint`](https://cran.r-project.org/web/packages/sparklyr.flint/index.html), a [`sparklyr`](https://sparklyr.ai) extension for leveraging [Flint](https://github.com/twosigma/flint) time series functionalities through `sparklyr`, was [introduced](/blog/2020-09-07_sparklyr.flint-0.1.1/) in September, we have made a number of enhancements to it, and have successfully submitted `sparklyr.flint` 0.2 to CRAN. In this blog post, we highlight the following new features and improvements from `sparklyr.flint` 0.2: diff --git a/content/blog/ai/2020-10-12-sparklyr-flint-0.2.0-released/thumbnail.jpg b/content/blog/ported/ai/2020-10-12-sparklyr-flint-0.2.0-released/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-10-12-sparklyr-flint-0.2.0-released/thumbnail.jpg rename to content/blog/ported/ai/2020-10-12-sparklyr-flint-0.2.0-released/thumbnail.jpg diff --git a/content/blog/ai/2020-10-19-torch-image-classification/bibliography.bib b/content/blog/ported/ai/2020-10-19-torch-image-classification/bibliography.bib similarity index 100% rename from content/blog/ai/2020-10-19-torch-image-classification/bibliography.bib rename to content/blog/ported/ai/2020-10-19-torch-image-classification/bibliography.bib diff --git a/content/blog/ai/2020-10-19-torch-image-classification/images/image_classif_birds.png b/content/blog/ported/ai/2020-10-19-torch-image-classification/images/image_classif_birds.png similarity index 100% rename from content/blog/ai/2020-10-19-torch-image-classification/images/image_classif_birds.png rename to content/blog/ported/ai/2020-10-19-torch-image-classification/images/image_classif_birds.png diff --git a/content/blog/ai/2020-10-19-torch-image-classification/images/lr_finder.png b/content/blog/ported/ai/2020-10-19-torch-image-classification/images/lr_finder.png similarity index 100% rename from content/blog/ai/2020-10-19-torch-image-classification/images/lr_finder.png rename to content/blog/ported/ai/2020-10-19-torch-image-classification/images/lr_finder.png diff --git a/content/blog/ai/2020-10-19-torch-image-classification/images/one_cycle_lr.png b/content/blog/ported/ai/2020-10-19-torch-image-classification/images/one_cycle_lr.png similarity index 100% rename from content/blog/ai/2020-10-19-torch-image-classification/images/one_cycle_lr.png rename to content/blog/ported/ai/2020-10-19-torch-image-classification/images/one_cycle_lr.png diff --git a/content/blog/ai/2020-10-19-torch-image-classification/index.Rmd b/content/blog/ported/ai/2020-10-19-torch-image-classification/index.Rmd similarity index 97% rename from content/blog/ai/2020-10-19-torch-image-classification/index.Rmd rename to content/blog/ported/ai/2020-10-19-torch-image-classification/index.Rmd index a1e6b4d5f..7ad9cefb2 100644 --- a/content/blog/ai/2020-10-19-torch-image-classification/index.Rmd +++ b/content/blog/ported/ai/2020-10-19-torch-image-classification/index.Rmd @@ -30,7 +30,7 @@ tags: knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -In recent posts, we've been exploring essential `torch` functionality: [tensors](/blog/ai/2020-10-01-torch-network-from-scratch/), the sine qua non of every deep learning framework; [autograd](/blog/ai/2020-10-05-torch-network-with-autograd), `torch`'s implementation of reverse-mode automatic differentiation; [modules](/blog/ai/2020-10-07-torch-modules), composable building blocks of neural networks; and [optimizers](/blog/ai/2020-10-09-torch-optim/), the -- well -- optimization algorithms that `torch` provides. +In recent posts, we've been exploring essential `torch` functionality: [tensors](/blog/2020-10-01_keydanatorchnetworkfromscratch/), the sine qua non of every deep learning framework; [autograd](/blog/2020-10-05_keydanatorchnetworkwithautograd/), `torch`'s implementation of reverse-mode automatic differentiation; [modules](/blog/2020-10-07_keydanatorchmodules/), composable building blocks of neural networks; and [optimizers](/blog/2020-10-09_keydanatorchoptim/), the -- well -- optimization algorithms that `torch` provides. But we haven't really had our "hello world" moment yet, at least not if by "hello world" you mean the inevitable *deep learning experience of classifying pets*. Cat or dog? Beagle or boxer? Chinook or Chihuahua? We'll distinguish ourselves by asking a (slightly) different question: What kind of bird? diff --git a/content/blog/ai/2020-10-19-torch-image-classification/index.md b/content/blog/ported/ai/2020-10-19-torch-image-classification/index.md similarity index 97% rename from content/blog/ai/2020-10-19-torch-image-classification/index.md rename to content/blog/ported/ai/2020-10-19-torch-image-classification/index.md index b4711be04..8a2a34ece 100644 --- a/content/blog/ai/2020-10-19-torch-image-classification/index.md +++ b/content/blog/ported/ai/2020-10-19-torch-image-classification/index.md @@ -31,7 +31,7 @@ tags: -In recent posts, we've been exploring essential `torch` functionality: [tensors](/blog/ai/2020-10-01-torch-network-from-scratch/), the sine qua non of every deep learning framework; [autograd](/blog/ai/2020-10-05-torch-network-with-autograd), `torch`'s implementation of reverse-mode automatic differentiation; [modules](/blog/ai/2020-10-07-torch-modules), composable building blocks of neural networks; and [optimizers](/blog/ai/2020-10-09-torch-optim/), the -- well -- optimization algorithms that `torch` provides. +In recent posts, we've been exploring essential `torch` functionality: [tensors](/blog/2020-10-01_keydanatorchnetworkfromscratch/), the sine qua non of every deep learning framework; [autograd](/blog/2020-10-05_keydanatorchnetworkwithautograd/), `torch`'s implementation of reverse-mode automatic differentiation; [modules](/blog/2020-10-07_keydanatorchmodules/), composable building blocks of neural networks; and [optimizers](/blog/2020-10-09_keydanatorchoptim/), the -- well -- optimization algorithms that `torch` provides. But we haven't really had our "hello world" moment yet, at least not if by "hello world" you mean the inevitable *deep learning experience of classifying pets*. Cat or dog? Beagle or boxer? Chinook or Chihuahua? We'll distinguish ourselves by asking a (slightly) different question: What kind of bird? diff --git a/content/blog/ai/2020-10-19-torch-image-classification/thumbnail.png b/content/blog/ported/ai/2020-10-19-torch-image-classification/thumbnail.png similarity index 100% rename from content/blog/ai/2020-10-19-torch-image-classification/thumbnail.png rename to content/blog/ported/ai/2020-10-19-torch-image-classification/thumbnail.png diff --git a/content/blog/ai/2020-11-03-torch-tabular/images/cap-shape.png b/content/blog/ported/ai/2020-11-03-torch-tabular/images/cap-shape.png similarity index 100% rename from content/blog/ai/2020-11-03-torch-tabular/images/cap-shape.png rename to content/blog/ported/ai/2020-11-03-torch-tabular/images/cap-shape.png diff --git a/content/blog/ai/2020-11-03-torch-tabular/images/preview.jpeg b/content/blog/ported/ai/2020-11-03-torch-tabular/images/preview.jpeg similarity index 100% rename from content/blog/ai/2020-11-03-torch-tabular/images/preview.jpeg rename to content/blog/ported/ai/2020-11-03-torch-tabular/images/preview.jpeg diff --git a/content/blog/ai/2020-11-03-torch-tabular/index.Rmd b/content/blog/ported/ai/2020-11-03-torch-tabular/index.Rmd similarity index 100% rename from content/blog/ai/2020-11-03-torch-tabular/index.Rmd rename to content/blog/ported/ai/2020-11-03-torch-tabular/index.Rmd diff --git a/content/blog/ai/2020-11-03-torch-tabular/index.md b/content/blog/ported/ai/2020-11-03-torch-tabular/index.md similarity index 100% rename from content/blog/ai/2020-11-03-torch-tabular/index.md rename to content/blog/ported/ai/2020-11-03-torch-tabular/index.md diff --git a/content/blog/ai/2020-11-03-torch-tabular/thumbnail.jpeg b/content/blog/ported/ai/2020-11-03-torch-tabular/thumbnail.jpeg similarity index 100% rename from content/blog/ai/2020-11-03-torch-tabular/thumbnail.jpeg rename to content/blog/ported/ai/2020-11-03-torch-tabular/thumbnail.jpeg diff --git a/content/blog/ai/2020-11-30-torch-brain-segmentation/bibliography.bib b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/bibliography.bib similarity index 100% rename from content/blog/ai/2020-11-30-torch-brain-segmentation/bibliography.bib rename to content/blog/ported/ai/2020-11-30-torch-brain-segmentation/bibliography.bib diff --git a/content/blog/ai/2020-11-30-torch-brain-segmentation/images/brainseg_augmentation.png b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/images/brainseg_augmentation.png similarity index 100% rename from content/blog/ai/2020-11-30-torch-brain-segmentation/images/brainseg_augmentation.png rename to content/blog/ported/ai/2020-11-30-torch-brain-segmentation/images/brainseg_augmentation.png diff --git a/content/blog/ai/2020-11-30-torch-brain-segmentation/images/eval_masks.png b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/images/eval_masks.png similarity index 100% rename from content/blog/ai/2020-11-30-torch-brain-segmentation/images/eval_masks.png rename to content/blog/ported/ai/2020-11-30-torch-brain-segmentation/images/eval_masks.png diff --git a/content/blog/ai/2020-11-30-torch-brain-segmentation/images/scan_and_mask.png b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/images/scan_and_mask.png similarity index 100% rename from content/blog/ai/2020-11-30-torch-brain-segmentation/images/scan_and_mask.png rename to content/blog/ported/ai/2020-11-30-torch-brain-segmentation/images/scan_and_mask.png diff --git a/content/blog/ai/2020-11-30-torch-brain-segmentation/images/scans.png b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/images/scans.png similarity index 100% rename from content/blog/ai/2020-11-30-torch-brain-segmentation/images/scans.png rename to content/blog/ported/ai/2020-11-30-torch-brain-segmentation/images/scans.png diff --git a/content/blog/ai/2020-11-30-torch-brain-segmentation/images/unet.png b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/images/unet.png similarity index 100% rename from content/blog/ai/2020-11-30-torch-brain-segmentation/images/unet.png rename to content/blog/ported/ai/2020-11-30-torch-brain-segmentation/images/unet.png diff --git a/content/blog/ai/2020-11-30-torch-brain-segmentation/index.Rmd b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/index.Rmd similarity index 99% rename from content/blog/ai/2020-11-30-torch-brain-segmentation/index.Rmd rename to content/blog/ported/ai/2020-11-30-torch-brain-segmentation/index.Rmd index 5ebf50f29..7cd11075b 100644 --- a/content/blog/ai/2020-11-30-torch-brain-segmentation/index.Rmd +++ b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/index.Rmd @@ -533,7 +533,7 @@ calc_dice_loss <- function(y_pred, y_true) { dice_weight <- 0.3 ``` -Optimization uses stochastic gradient descent (SGD), together with the one-cycle learning rate scheduler introduced in the context of [image classification with torch](/blog/ai/2020-10-19-torch-image-classification/). +Optimization uses stochastic gradient descent (SGD), together with the one-cycle learning rate scheduler introduced in the context of [image classification with torch](/blog/2020-10-19_keydanatorchimageclassification/). ```{r} optimizer <- optim_sgd(model$parameters, lr = 0.1, momentum = 0.9) diff --git a/content/blog/ai/2020-11-30-torch-brain-segmentation/index.md b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/index.md similarity index 99% rename from content/blog/ai/2020-11-30-torch-brain-segmentation/index.md rename to content/blog/ported/ai/2020-11-30-torch-brain-segmentation/index.md index 7a464c589..a2f600d19 100644 --- a/content/blog/ai/2020-11-30-torch-brain-segmentation/index.md +++ b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/index.md @@ -521,7 +521,7 @@ calc_dice_loss <- function(y_pred, y_true) { dice_weight <- 0.3 ``` -Optimization uses stochastic gradient descent (SGD), together with the one-cycle learning rate scheduler introduced in the context of [image classification with torch](/blog/ai/2020-10-19-torch-image-classification/). +Optimization uses stochastic gradient descent (SGD), together with the one-cycle learning rate scheduler introduced in the context of [image classification with torch](/blog/2020-10-19_keydanatorchimageclassification/). ``` r optimizer <- optim_sgd(model$parameters, lr = 0.1, momentum = 0.9) diff --git a/content/blog/ai/2020-11-30-torch-brain-segmentation/thumbnail.png b/content/blog/ported/ai/2020-11-30-torch-brain-segmentation/thumbnail.png similarity index 100% rename from content/blog/ai/2020-11-30-torch-brain-segmentation/thumbnail.png rename to content/blog/ported/ai/2020-11-30-torch-brain-segmentation/thumbnail.png diff --git a/content/blog/ai/2020-12-14-sparklyr-1.5.0-released/images/sparklyr-1.5.jpg b/content/blog/ported/ai/2020-12-14-sparklyr-1.5.0-released/images/sparklyr-1.5.jpg similarity index 100% rename from content/blog/ai/2020-12-14-sparklyr-1.5.0-released/images/sparklyr-1.5.jpg rename to content/blog/ported/ai/2020-12-14-sparklyr-1.5.0-released/images/sparklyr-1.5.jpg diff --git a/content/blog/ai/2020-12-14-sparklyr-1.5.0-released/index.Rmd b/content/blog/ported/ai/2020-12-14-sparklyr-1.5.0-released/index.Rmd similarity index 99% rename from content/blog/ai/2020-12-14-sparklyr-1.5.0-released/index.Rmd rename to content/blog/ported/ai/2020-12-14-sparklyr-1.5.0-released/index.Rmd index f7ed20016..8de06e2d0 100644 --- a/content/blog/ai/2020-12-14-sparklyr-1.5.0-released/index.Rmd +++ b/content/blog/ported/ai/2020-12-14-sparklyr-1.5.0-released/index.Rmd @@ -528,7 +528,7 @@ and [\@skeydan](https://github.com/skeydan) for their valuable editorial inputs. If you wish to learn more about `sparklyr`, check out [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and some of the previous release posts such as -[sparklyr 1.4](/blog/ai/2020-09-30-sparklyr-1.4.0-released) and +[sparklyr 1.4](/blog/2020-09-30_sparklyr-1.4/) and [sparklyr 1.3](/blog/2020-07-16_sparklyr-1-3/). Thanks for reading! diff --git a/content/blog/ai/2020-12-14-sparklyr-1.5.0-released/index.md b/content/blog/ported/ai/2020-12-14-sparklyr-1.5.0-released/index.md similarity index 99% rename from content/blog/ai/2020-12-14-sparklyr-1.5.0-released/index.md rename to content/blog/ported/ai/2020-12-14-sparklyr-1.5.0-released/index.md index d825939d1..69196d258 100644 --- a/content/blog/ai/2020-12-14-sparklyr-1.5.0-released/index.md +++ b/content/blog/ported/ai/2020-12-14-sparklyr-1.5.0-released/index.md @@ -506,7 +506,7 @@ and [@skeydan](https://github.com/skeydan) for their valuable editorial inputs. If you wish to learn more about `sparklyr`, check out [sparklyr.ai](https://sparklyr.ai), [spark.rstudio.com](https://spark.rstudio.com), and some of the previous release posts such as -[sparklyr 1.4](/blog/ai/2020-09-30-sparklyr-1.4.0-released) and +[sparklyr 1.4](/blog/2020-09-30_sparklyr-1.4/) and [sparklyr 1.3](/blog/2020-07-16_sparklyr-1-3/). Thanks for reading! diff --git a/content/blog/ai/2020-12-14-sparklyr-1.5.0-released/thumbnail.jpg b/content/blog/ported/ai/2020-12-14-sparklyr-1.5.0-released/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-12-14-sparklyr-1.5.0-released/thumbnail.jpg rename to content/blog/ported/ai/2020-12-14-sparklyr-1.5.0-released/thumbnail.jpg diff --git a/content/blog/ai/2020-12-15-torch-0.2.0-released/images/torch.jpg b/content/blog/ported/ai/2020-12-15-torch-0.2.0-released/images/torch.jpg similarity index 100% rename from content/blog/ai/2020-12-15-torch-0.2.0-released/images/torch.jpg rename to content/blog/ported/ai/2020-12-15-torch-0.2.0-released/images/torch.jpg diff --git a/content/blog/ai/2020-12-15-torch-0.2.0-released/images/torch.jpg.original b/content/blog/ported/ai/2020-12-15-torch-0.2.0-released/images/torch.jpg.original similarity index 100% rename from content/blog/ai/2020-12-15-torch-0.2.0-released/images/torch.jpg.original rename to content/blog/ported/ai/2020-12-15-torch-0.2.0-released/images/torch.jpg.original diff --git a/content/blog/ai/2020-12-15-torch-0.2.0-released/index.Rmd b/content/blog/ported/ai/2020-12-15-torch-0.2.0-released/index.Rmd similarity index 100% rename from content/blog/ai/2020-12-15-torch-0.2.0-released/index.Rmd rename to content/blog/ported/ai/2020-12-15-torch-0.2.0-released/index.Rmd diff --git a/content/blog/ai/2020-12-15-torch-0.2.0-released/index.md b/content/blog/ported/ai/2020-12-15-torch-0.2.0-released/index.md similarity index 100% rename from content/blog/ai/2020-12-15-torch-0.2.0-released/index.md rename to content/blog/ported/ai/2020-12-15-torch-0.2.0-released/index.md diff --git a/content/blog/ai/2020-12-15-torch-0.2.0-released/thumbnail.jpg b/content/blog/ported/ai/2020-12-15-torch-0.2.0-released/thumbnail.jpg similarity index 100% rename from content/blog/ai/2020-12-15-torch-0.2.0-released/thumbnail.jpg rename to content/blog/ported/ai/2020-12-15-torch-0.2.0-released/thumbnail.jpg diff --git a/content/blog/ai/2020-12-15-torch-0.2.0-released/thumbnail.jpg.original b/content/blog/ported/ai/2020-12-15-torch-0.2.0-released/thumbnail.jpg.original similarity index 100% rename from content/blog/ai/2020-12-15-torch-0.2.0-released/thumbnail.jpg.original rename to content/blog/ported/ai/2020-12-15-torch-0.2.0-released/thumbnail.jpg.original diff --git a/content/blog/ai/2020-12-17-torch-convlstm/images/preview.jpeg b/content/blog/ported/ai/2020-12-17-torch-convlstm/images/preview.jpeg similarity index 100% rename from content/blog/ai/2020-12-17-torch-convlstm/images/preview.jpeg rename to content/blog/ported/ai/2020-12-17-torch-convlstm/images/preview.jpeg diff --git a/content/blog/ai/2020-12-17-torch-convlstm/index.Rmd b/content/blog/ported/ai/2020-12-17-torch-convlstm/index.Rmd similarity index 100% rename from content/blog/ai/2020-12-17-torch-convlstm/index.Rmd rename to content/blog/ported/ai/2020-12-17-torch-convlstm/index.Rmd diff --git a/content/blog/ai/2020-12-17-torch-convlstm/index.md b/content/blog/ported/ai/2020-12-17-torch-convlstm/index.md similarity index 100% rename from content/blog/ai/2020-12-17-torch-convlstm/index.md rename to content/blog/ported/ai/2020-12-17-torch-convlstm/index.md diff --git a/content/blog/ai/2020-12-17-torch-convlstm/thumbnail.jpeg b/content/blog/ported/ai/2020-12-17-torch-convlstm/thumbnail.jpeg similarity index 100% rename from content/blog/ai/2020-12-17-torch-convlstm/thumbnail.jpeg rename to content/blog/ported/ai/2020-12-17-torch-convlstm/thumbnail.jpeg diff --git a/content/blog/ai/2021-02-02-enso-prediction/bibliography.bib b/content/blog/ported/ai/2021-02-02-enso-prediction/bibliography.bib similarity index 100% rename from content/blog/ai/2021-02-02-enso-prediction/bibliography.bib rename to content/blog/ported/ai/2021-02-02-enso-prediction/bibliography.bib diff --git a/content/blog/ai/2021-02-02-enso-prediction/images/enso.png b/content/blog/ported/ai/2021-02-02-enso-prediction/images/enso.png similarity index 100% rename from content/blog/ai/2021-02-02-enso-prediction/images/enso.png rename to content/blog/ported/ai/2021-02-02-enso-prediction/images/enso.png diff --git a/content/blog/ai/2021-02-02-enso-prediction/images/pic.jpg b/content/blog/ported/ai/2021-02-02-enso-prediction/images/pic.jpg similarity index 100% rename from content/blog/ai/2021-02-02-enso-prediction/images/pic.jpg rename to content/blog/ported/ai/2021-02-02-enso-prediction/images/pic.jpg diff --git a/content/blog/ai/2021-02-02-enso-prediction/images/preds.png b/content/blog/ported/ai/2021-02-02-enso-prediction/images/preds.png similarity index 100% rename from content/blog/ai/2021-02-02-enso-prediction/images/preds.png rename to content/blog/ported/ai/2021-02-02-enso-prediction/images/preds.png diff --git a/content/blog/ai/2021-02-02-enso-prediction/index.Rmd b/content/blog/ported/ai/2021-02-02-enso-prediction/index.Rmd similarity index 99% rename from content/blog/ai/2021-02-02-enso-prediction/index.Rmd rename to content/blog/ported/ai/2021-02-02-enso-prediction/index.Rmd index 9ec2f481b..538adadf4 100644 --- a/content/blog/ai/2021-02-02-enso-prediction/index.Rmd +++ b/content/blog/ported/ai/2021-02-02-enso-prediction/index.Rmd @@ -34,7 +34,7 @@ tags: knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -Today, we use the convLSTM introduced in a [previous](/blog/ai/2020-12-17-torch-convlstm/) post to predict [El Niño-Southern Oscillation (ENSO).](https://en.wikipedia.org/wiki/El_Ni%C3%B1o%E2%80%93Southern_Oscillation) +Today, we use the convLSTM introduced in a [previous](/blog/2020-12-17_keydanatorchconvlstm/) post to predict [El Niño-Southern Oscillation (ENSO).](https://en.wikipedia.org/wiki/El_Ni%C3%B1o%E2%80%93Southern_Oscillation) # El Niño, la Niña @@ -370,7 +370,7 @@ Next, we proceed to model creation. # Model -The model's main ingredient is the convLSTM introduced in a [prior post](/blog/ai/2020-12-17-torch-convlstm/). For convenience, we reproduce the code in the appendix. +The model's main ingredient is the convLSTM introduced in a [prior post](/blog/2020-12-17_keydanatorchconvlstm/). For convenience, we reproduce the code in the appendix. Besides the convLSTM, the model makes use of three convolutional layers, a batchnorm layer and five linear layers. The logic is the following. @@ -2278,7 +2278,7 @@ To be put into a text file for use with `purrr::walk( … download.file … )`. ## A2: `convlstm` code -For an in-depth explanation of `convlstm`, see [the blog post](/blog/ai/2020-12-17-torch-convlstm/). +For an in-depth explanation of `convlstm`, see [the blog post](/blog/2020-12-17_keydanatorchconvlstm/). ```{r} library(torch) diff --git a/content/blog/ai/2021-02-02-enso-prediction/index.md b/content/blog/ported/ai/2021-02-02-enso-prediction/index.md similarity index 99% rename from content/blog/ai/2021-02-02-enso-prediction/index.md rename to content/blog/ported/ai/2021-02-02-enso-prediction/index.md index e7332e165..69b885b79 100644 --- a/content/blog/ai/2021-02-02-enso-prediction/index.md +++ b/content/blog/ported/ai/2021-02-02-enso-prediction/index.md @@ -35,7 +35,7 @@ tags: -Today, we use the convLSTM introduced in a [previous](/blog/ai/2020-12-17-torch-convlstm/) post to predict [El Niño-Southern Oscillation (ENSO).](https://en.wikipedia.org/wiki/El_Ni%C3%B1o%E2%80%93Southern_Oscillation) +Today, we use the convLSTM introduced in a [previous](/blog/2020-12-17_keydanatorchconvlstm/) post to predict [El Niño-Southern Oscillation (ENSO).](https://en.wikipedia.org/wiki/El_Ni%C3%B1o%E2%80%93Southern_Oscillation) # El Niño, la Niña @@ -357,7 +357,7 @@ Next, we proceed to model creation. # Model -The model's main ingredient is the convLSTM introduced in a [prior post](/blog/ai/2020-12-17-torch-convlstm/). For convenience, we reproduce the code in the appendix. +The model's main ingredient is the convLSTM introduced in a [prior post](/blog/2020-12-17_keydanatorchconvlstm/). For convenience, we reproduce the code in the appendix. Besides the convLSTM, the model makes use of three convolutional layers, a batchnorm layer and five linear layers. The logic is the following. @@ -2263,7 +2263,7 @@ To be put into a text file for use with `purrr::walk( … download.file … )`. ## A2: `convlstm` code -For an in-depth explanation of `convlstm`, see [the blog post](/blog/ai/2020-12-17-torch-convlstm/). +For an in-depth explanation of `convlstm`, see [the blog post](/blog/2020-12-17_keydanatorchconvlstm/). ``` r library(torch) diff --git a/content/blog/ai/2021-02-02-enso-prediction/thumbnail.jpg b/content/blog/ported/ai/2021-02-02-enso-prediction/thumbnail.jpg similarity index 100% rename from content/blog/ai/2021-02-02-enso-prediction/thumbnail.jpg rename to content/blog/ported/ai/2021-02-02-enso-prediction/thumbnail.jpg diff --git a/content/blog/ai/2021-02-04-simple-audio-classification-with-torch/images/alluvial.png b/content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/images/alluvial.png similarity index 100% rename from content/blog/ai/2021-02-04-simple-audio-classification-with-torch/images/alluvial.png rename to content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/images/alluvial.png diff --git a/content/blog/ai/2021-02-04-simple-audio-classification-with-torch/images/bedwave.png b/content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/images/bedwave.png similarity index 100% rename from content/blog/ai/2021-02-04-simple-audio-classification-with-torch/images/bedwave.png rename to content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/images/bedwave.png diff --git a/content/blog/ai/2021-02-04-simple-audio-classification-with-torch/images/preview.jpg b/content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/images/preview.jpg similarity index 100% rename from content/blog/ai/2021-02-04-simple-audio-classification-with-torch/images/preview.jpg rename to content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/images/preview.jpg diff --git a/content/blog/ai/2021-02-04-simple-audio-classification-with-torch/index.Rmd b/content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/index.Rmd similarity index 96% rename from content/blog/ai/2021-02-04-simple-audio-classification-with-torch/index.Rmd rename to content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/index.Rmd index c193851fa..8bb6084f6 100644 --- a/content/blog/ai/2021-02-04-simple-audio-classification-with-torch/index.Rmd +++ b/content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/index.Rmd @@ -31,7 +31,7 @@ tags: knitr::opts_chunk$set(echo = TRUE, eval = FALSE) ``` -This article translates [Daniel Falbel](https://github.com/dfalbel)'s ['Simple Audio Classification'](/blog/ai/2018-06-06-simple-audio-classification-keras/) article from `tensorflow/keras` to `torch/torchaudio`. The main goal is to introduce torchaudio and illustrate its contributions to the `torch` ecosystem. Here, we focus on a popular dataset, the audio loader and the spectrogram transformer. An interesting side product is the parallel between torch and tensorflow, showing sometimes the differences, sometimes the similarities between them. +This article translates [Daniel Falbel](https://github.com/dfalbel)'s ['Simple Audio Classification'](/blog/2018-06-06_simple-audio-classification-keras/) article from `tensorflow/keras` to `torch/torchaudio`. The main goal is to introduce torchaudio and illustrate its contributions to the `torch` ecosystem. Here, we focus on a popular dataset, the audio loader and the spectrogram transformer. An interesting side product is the parallel between torch and tensorflow, showing sometimes the differences, sometimes the similarities between them. diff --git a/content/blog/ai/2021-02-04-simple-audio-classification-with-torch/index.md b/content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/index.md similarity index 96% rename from content/blog/ai/2021-02-04-simple-audio-classification-with-torch/index.md rename to content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/index.md index 46a149a08..bef0d54bb 100644 --- a/content/blog/ai/2021-02-04-simple-audio-classification-with-torch/index.md +++ b/content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/index.md @@ -30,7 +30,7 @@ tags: -This article translates [Daniel Falbel](https://github.com/dfalbel)'s ['Simple Audio Classification'](/blog/ai/2018-06-06-simple-audio-classification-keras/) article from `tensorflow/keras` to `torch/torchaudio`. The main goal is to introduce torchaudio and illustrate its contributions to the `torch` ecosystem. Here, we focus on a popular dataset, the audio loader and the spectrogram transformer. An interesting side product is the parallel between torch and tensorflow, showing sometimes the differences, sometimes the similarities between them. +This article translates [Daniel Falbel](https://github.com/dfalbel)'s ['Simple Audio Classification'](/blog/2018-06-06_simple-audio-classification-keras/) article from `tensorflow/keras` to `torch/torchaudio`. The main goal is to introduce torchaudio and illustrate its contributions to the `torch` ecosystem. Here, we focus on a popular dataset, the audio loader and the spectrogram transformer. An interesting side product is the parallel between torch and tensorflow, showing sometimes the differences, sometimes the similarities between them. diff --git a/content/blog/ai/2021-02-04-simple-audio-classification-with-torch/thumbnail.jpg b/content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/thumbnail.jpg similarity index 100% rename from content/blog/ai/2021-02-04-simple-audio-classification-with-torch/thumbnail.jpg rename to content/blog/ported/ai/2021-02-04-simple-audio-classification-with-torch/thumbnail.jpg diff --git a/content/blog/ai/2021-02-11-tabnet/bibliography.bib b/content/blog/ported/ai/2021-02-11-tabnet/bibliography.bib similarity index 100% rename from content/blog/ai/2021-02-11-tabnet/bibliography.bib rename to content/blog/ported/ai/2021-02-11-tabnet/bibliography.bib diff --git a/content/blog/ai/2021-02-11-tabnet/images/agg_masks.png b/content/blog/ported/ai/2021-02-11-tabnet/images/agg_masks.png similarity index 100% rename from content/blog/ai/2021-02-11-tabnet/images/agg_masks.png rename to content/blog/ported/ai/2021-02-11-tabnet/images/agg_masks.png diff --git a/content/blog/ai/2021-02-11-tabnet/images/d.jpg b/content/blog/ported/ai/2021-02-11-tabnet/images/d.jpg similarity index 100% rename from content/blog/ai/2021-02-11-tabnet/images/d.jpg rename to content/blog/ported/ai/2021-02-11-tabnet/images/d.jpg diff --git a/content/blog/ai/2021-02-11-tabnet/images/masks_per_step.png b/content/blog/ported/ai/2021-02-11-tabnet/images/masks_per_step.png similarity index 100% rename from content/blog/ai/2021-02-11-tabnet/images/masks_per_step.png rename to content/blog/ported/ai/2021-02-11-tabnet/images/masks_per_step.png diff --git a/content/blog/ai/2021-02-11-tabnet/images/vip.png b/content/blog/ported/ai/2021-02-11-tabnet/images/vip.png similarity index 100% rename from content/blog/ai/2021-02-11-tabnet/images/vip.png rename to content/blog/ported/ai/2021-02-11-tabnet/images/vip.png diff --git a/content/blog/ai/2021-02-11-tabnet/index.Rmd b/content/blog/ported/ai/2021-02-11-tabnet/index.Rmd similarity index 100% rename from content/blog/ai/2021-02-11-tabnet/index.Rmd rename to content/blog/ported/ai/2021-02-11-tabnet/index.Rmd diff --git a/content/blog/ai/2021-02-11-tabnet/index.md b/content/blog/ported/ai/2021-02-11-tabnet/index.md similarity index 100% rename from content/blog/ai/2021-02-11-tabnet/index.md rename to content/blog/ported/ai/2021-02-11-tabnet/index.md diff --git a/content/blog/ai/2021-02-11-tabnet/thumbnail.jpg b/content/blog/ported/ai/2021-02-11-tabnet/thumbnail.jpg similarity index 100% rename from content/blog/ai/2021-02-11-tabnet/thumbnail.jpg rename to content/blog/ported/ai/2021-02-11-tabnet/thumbnail.jpg diff --git a/content/blog/ai/2021-02-17-survey/images/ai_opt.png b/content/blog/ported/ai/2021-02-17-survey/images/ai_opt.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/ai_opt.png rename to content/blog/ported/ai/2021-02-17-survey/images/ai_opt.png diff --git a/content/blog/ai/2021-02-17-survey/images/ai_worries.png b/content/blog/ported/ai/2021-02-17-survey/images/ai_worries.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/ai_worries.png rename to content/blog/ported/ai/2021-02-17-survey/images/ai_worries.png diff --git a/content/blog/ai/2021-02-17-survey/images/ai_worry.png b/content/blog/ported/ai/2021-02-17-survey/images/ai_worry.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/ai_worry.png rename to content/blog/ported/ai/2021-02-17-survey/images/ai_worry.png diff --git a/content/blog/ai/2021-02-17-survey/images/dl_acad.png b/content/blog/ported/ai/2021-02-17-survey/images/dl_acad.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/dl_acad.png rename to content/blog/ported/ai/2021-02-17-survey/images/dl_acad.png diff --git a/content/blog/ai/2021-02-17-survey/images/dl_appl.png b/content/blog/ported/ai/2021-02-17-survey/images/dl_appl.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/dl_appl.png rename to content/blog/ported/ai/2021-02-17-survey/images/dl_appl.png diff --git a/content/blog/ai/2021-02-17-survey/images/dl_ind.png b/content/blog/ported/ai/2021-02-17-survey/images/dl_ind.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/dl_ind.png rename to content/blog/ported/ai/2021-02-17-survey/images/dl_ind.png diff --git a/content/blog/ai/2021-02-17-survey/images/dl_lang.png b/content/blog/ported/ai/2021-02-17-survey/images/dl_lang.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/dl_lang.png rename to content/blog/ported/ai/2021-02-17-survey/images/dl_lang.png diff --git a/content/blog/ai/2021-02-17-survey/images/dl_skills.png b/content/blog/ported/ai/2021-02-17-survey/images/dl_skills.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/dl_skills.png rename to content/blog/ported/ai/2021-02-17-survey/images/dl_skills.png diff --git a/content/blog/ai/2021-02-17-survey/images/dl_sw.png b/content/blog/ported/ai/2021-02-17-survey/images/dl_sw.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/dl_sw.png rename to content/blog/ported/ai/2021-02-17-survey/images/dl_sw.png diff --git a/content/blog/ai/2021-02-17-survey/images/preview.jpg b/content/blog/ported/ai/2021-02-17-survey/images/preview.jpg similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/preview.jpg rename to content/blog/ported/ai/2021-02-17-survey/images/preview.jpg diff --git a/content/blog/ai/2021-02-17-survey/images/spark_appl.png b/content/blog/ported/ai/2021-02-17-survey/images/spark_appl.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/spark_appl.png rename to content/blog/ported/ai/2021-02-17-survey/images/spark_appl.png diff --git a/content/blog/ai/2021-02-17-survey/images/spark_ind.png b/content/blog/ported/ai/2021-02-17-survey/images/spark_ind.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/spark_ind.png rename to content/blog/ported/ai/2021-02-17-survey/images/spark_ind.png diff --git a/content/blog/ai/2021-02-17-survey/images/spark_lang.png b/content/blog/ported/ai/2021-02-17-survey/images/spark_lang.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/spark_lang.png rename to content/blog/ported/ai/2021-02-17-survey/images/spark_lang.png diff --git a/content/blog/ai/2021-02-17-survey/images/spark_skills.png b/content/blog/ported/ai/2021-02-17-survey/images/spark_skills.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/spark_skills.png rename to content/blog/ported/ai/2021-02-17-survey/images/spark_skills.png diff --git a/content/blog/ai/2021-02-17-survey/images/worry_appl.png b/content/blog/ported/ai/2021-02-17-survey/images/worry_appl.png similarity index 100% rename from content/blog/ai/2021-02-17-survey/images/worry_appl.png rename to content/blog/ported/ai/2021-02-17-survey/images/worry_appl.png diff --git a/content/blog/ai/2021-02-17-survey/index.Rmd b/content/blog/ported/ai/2021-02-17-survey/index.Rmd similarity index 96% rename from content/blog/ai/2021-02-17-survey/index.Rmd rename to content/blog/ported/ai/2021-02-17-survey/index.Rmd index ec8129264..9b98b8d40 100644 --- a/content/blog/ai/2021-02-17-survey/index.Rmd +++ b/content/blog/ported/ai/2021-02-17-survey/index.Rmd @@ -29,7 +29,7 @@ Thank you everyone who participated in our first *mlverse* survey! Wait: What even is the *mlverse*? -The mlverse originated as an abbreviation of *multiverse*[^1], which, on its part, came into being as an intended allusion to the well-known *tidyverse.* As such, although *mlverse* software aims for seamless interoperability with the tidyverse, or even integration when feasible (see our recent [post](/blog/ai/2021-02-11-tabnet/) featuring a wholly tidymodels-integrated `torch` network architecture), the priorities are probably a bit different: Often, mlverse software's raison d'être is to allow R users to do things that are commonly known to be done with other languages, such as Python. +The mlverse originated as an abbreviation of *multiverse*[^1], which, on its part, came into being as an intended allusion to the well-known *tidyverse.* As such, although *mlverse* software aims for seamless interoperability with the tidyverse, or even integration when feasible (see our recent [post](/blog/2021-02-11_keydanatabnet/) featuring a wholly tidymodels-integrated `torch` network architecture), the priorities are probably a bit different: Often, mlverse software's raison d'être is to allow R users to do things that are commonly known to be done with other languages, such as Python. [^1]: Calling it an abbreviation is, in fact, itself abbreviating things. The main motivation is more practical, as in: being able to obtain not-yet-reserved URLs and not-too-frequently-used hashtags. @@ -126,7 +126,7 @@ On the other hand, `torch`, a recent addition to *mlverse* software, is an R por Now, this is not the place for recommendations. Here are a few thoughts though. -Clearly, as one respondent remarked, as of today the `torch` ecosystem does not offer functionality on par with TensorFlow, and for that to change time and -- hopefully! more on that below -- your, the community's, help is needed. Why? Because `torch` is so young, for one; but also, there is a "systemic" reason! With TensorFlow, as we can access any symbol via the `tf` object, it is always possible, if inelegant, to do from R what you see done in Python. Respective R wrappers nonexistent[^5], quite a few blog posts (see, e.g., , or [A first look at federated learning with TensorFlow](/blog/ai/2020-04-08-tf-federated-intro/)) relied on this! +Clearly, as one respondent remarked, as of today the `torch` ecosystem does not offer functionality on par with TensorFlow, and for that to change time and -- hopefully! more on that below -- your, the community's, help is needed. Why? Because `torch` is so young, for one; but also, there is a "systemic" reason! With TensorFlow, as we can access any symbol via the `tf` object, it is always possible, if inelegant, to do from R what you see done in Python. Respective R wrappers nonexistent[^5], quite a few blog posts (see, e.g., , or [A first look at federated learning with TensorFlow](/blog/2020-04-08_keydanatffederatedintro/)) relied on this! [^5]: For TensorFlow Federated and PySyft, that is. @@ -136,7 +136,7 @@ Switching to the topic of `tensorflow`'s Python dependencies causing problems wi The second most frequent mention clearly was the wish for tighter `tidymodels` integration. Here, we wholeheartedly agree. As of today, there is no automated way to accomplish this for `torch` models generically, but it can be done for specific model implementations. -Last week, [torch, tidymodels, and high-energy physics](/blog/ai/2021-02-11-tabnet/) featured the first `tidymodels`-integrated `torch` package. And there's more to come. In fact, if you are developing a package in the `torch` ecosystem, why not consider doing the same? Should you run into problems, the growing `torch` community will be happy to help. +Last week, [torch, tidymodels, and high-energy physics](/blog/2021-02-11_keydanatabnet/) featured the first `tidymodels`-integrated `torch` package. And there's more to come. In fact, if you are developing a package in the `torch` ecosystem, why not consider doing the same? Should you run into problems, the growing `torch` community will be happy to help. ##### Documentation, examples, teaching materials diff --git a/content/blog/ai/2021-02-17-survey/index.md b/content/blog/ported/ai/2021-02-17-survey/index.md similarity index 96% rename from content/blog/ai/2021-02-17-survey/index.md rename to content/blog/ported/ai/2021-02-17-survey/index.md index 6a28dc146..7c5282738 100644 --- a/content/blog/ai/2021-02-17-survey/index.md +++ b/content/blog/ported/ai/2021-02-17-survey/index.md @@ -31,7 +31,7 @@ Thank you everyone who participated in our first *mlverse* survey! Wait: What even is the *mlverse*? -The mlverse originated as an abbreviation of *multiverse*[^1], which, on its part, came into being as an intended allusion to the well-known *tidyverse.* As such, although *mlverse* software aims for seamless interoperability with the tidyverse, or even integration when feasible (see our recent [post](/blog/ai/2021-02-11-tabnet/) featuring a wholly tidymodels-integrated `torch` network architecture), the priorities are probably a bit different: Often, mlverse software's raison d'être is to allow R users to do things that are commonly known to be done with other languages, such as Python. +The mlverse originated as an abbreviation of *multiverse*[^1], which, on its part, came into being as an intended allusion to the well-known *tidyverse.* As such, although *mlverse* software aims for seamless interoperability with the tidyverse, or even integration when feasible (see our recent [post](/blog/2021-02-11_keydanatabnet/) featuring a wholly tidymodels-integrated `torch` network architecture), the priorities are probably a bit different: Often, mlverse software's raison d'être is to allow R users to do things that are commonly known to be done with other languages, such as Python. As of today, *mlverse* development takes place mainly in two broad areas: deep learning, and distributed computing / ML automation. By its very nature, though, it is open to changing user interests and demands. Which leads us to the topic of this post. @@ -122,7 +122,7 @@ On the other hand, `torch`, a recent addition to *mlverse* software, is an R por Now, this is not the place for recommendations. Here are a few thoughts though. -Clearly, as one respondent remarked, as of today the `torch` ecosystem does not offer functionality on par with TensorFlow, and for that to change time and -- hopefully! more on that below -- your, the community's, help is needed. Why? Because `torch` is so young, for one; but also, there is a "systemic" reason! With TensorFlow, as we can access any symbol via the `tf` object, it is always possible, if inelegant, to do from R what you see done in Python. Respective R wrappers nonexistent[^5], quite a few blog posts (see, e.g., , or [A first look at federated learning with TensorFlow](/blog/ai/2020-04-08-tf-federated-intro/)) relied on this! +Clearly, as one respondent remarked, as of today the `torch` ecosystem does not offer functionality on par with TensorFlow, and for that to change time and -- hopefully! more on that below -- your, the community's, help is needed. Why? Because `torch` is so young, for one; but also, there is a "systemic" reason! With TensorFlow, as we can access any symbol via the `tf` object, it is always possible, if inelegant, to do from R what you see done in Python. Respective R wrappers nonexistent[^5], quite a few blog posts (see, e.g., , or [A first look at federated learning with TensorFlow](/blog/2020-04-08_keydanatffederatedintro/)) relied on this! Switching to the topic of `tensorflow`'s Python dependencies causing problems with installation, my experience (from GitHub issues, as well as my own) has been that difficulties are quite system-dependent. On some OSes, complications seem to appear more often than on others; and low-control (to the individual user) environments like HPC clusters can make things especially difficult. In any case though, I have to (unfortunately) admit that when installation problems appear, they can be very tricky to solve. @@ -130,7 +130,7 @@ Switching to the topic of `tensorflow`'s Python dependencies causing problems wi The second most frequent mention clearly was the wish for tighter `tidymodels` integration. Here, we wholeheartedly agree. As of today, there is no automated way to accomplish this for `torch` models generically, but it can be done for specific model implementations. -Last week, [torch, tidymodels, and high-energy physics](/blog/ai/2021-02-11-tabnet/) featured the first `tidymodels`-integrated `torch` package. And there's more to come. In fact, if you are developing a package in the `torch` ecosystem, why not consider doing the same? Should you run into problems, the growing `torch` community will be happy to help. +Last week, [torch, tidymodels, and high-energy physics](/blog/2021-02-11_keydanatabnet/) featured the first `tidymodels`-integrated `torch` package. And there's more to come. In fact, if you are developing a package in the `torch` ecosystem, why not consider doing the same? Should you run into problems, the growing `torch` community will be happy to help. ##### Documentation, examples, teaching materials diff --git a/content/blog/ai/2021-02-17-survey/thumbnail.jpg b/content/blog/ported/ai/2021-02-17-survey/thumbnail.jpg similarity index 100% rename from content/blog/ai/2021-02-17-survey/thumbnail.jpg rename to content/blog/ported/ai/2021-02-17-survey/thumbnail.jpg diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/bibliography.bib b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/bibliography.bib similarity index 100% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/bibliography.bib rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/bibliography.bib diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/Jan_2014.png b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/Jan_2014.png similarity index 100% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/Jan_2014.png rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/Jan_2014.png diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/jan_stl.png b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/jan_stl.png similarity index 100% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/jan_stl.png rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/jan_stl.png diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/july_2014.png b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/july_2014.png similarity index 100% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/july_2014.png rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/july_2014.png diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/july_stl.png b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/july_stl.png similarity index 100% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/july_stl.png rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/july_stl.png diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/loop_preds.png b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/loop_preds.png similarity index 100% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/loop_preds.png rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/loop_preds.png diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/one-step-preds.png b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/one-step-preds.png similarity index 100% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/one-step-preds.png rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/one-step-preds.png diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/preview.jpg b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/preview.jpg similarity index 100% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/preview.jpg rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/preview.jpg diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/rnn.png b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/rnn.png similarity index 100% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/images/rnn.png rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/images/rnn.png diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/index.Rmd b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/index.Rmd similarity index 98% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/index.Rmd rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/index.Rmd index 19d896240..7394f2013 100644 --- a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/index.Rmd +++ b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/index.Rmd @@ -388,11 +388,11 @@ At each $t$, a hidden state is generated, and so is an output. Normally, if our Indeed, return $o_{t+1}$ is what a Keras LSTM or GRU would do by default.[^1] Not so its `torch` counterparts. In `torch`, the output tensor comprises all of $o$. This is why, in step two above, we select the single time step we're interested in -- namely, the last one. -[^1]: By default means that if the optional `return_sequences` argument is not passed. See [here](/blog/ai/2020-12-17-torch-convlstm/#interlude-outputs-states-hidden-values-whats-what) for a systematic comparison of RNN return values for both `torch` and Keras. +[^1]: By default means that if the optional `return_sequences` argument is not passed. See [here](/blog/2020-12-17_keydanatorchconvlstm/#interlude-outputs-states-hidden-values-whats-what) for a systematic comparison of RNN return values for both `torch` and Keras. In later posts, we will make use of more than the last time step. Sometimes, we'll use the sequence of hidden states (the $h$s) instead of the outputs (the $o$s). So you may feel like asking, what if we used $h_{t+1}$ here instead of $o_{t+1}$? The answer is: With a GRU, this would not make a difference, as those two are identical. With LSTM though, it would, as LSTM keeps a second, namely, the "cell", state[^2]. -[^2]: Again, see [this post](/blog/ai/2020-12-17-torch-convlstm/#interlude-outputs-states-hidden-values-whats-what) for more details. +[^2]: Again, see [this post](/blog/2020-12-17_keydanatorchconvlstm/#interlude-outputs-states-hidden-values-whats-what) for more details. On to `initialize()`. For ease of experimentation, we instantiate either a GRU or an LSTM based on user input. Two things are worth noting: diff --git a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/index.md b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/index.md similarity index 98% rename from content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/index.md rename to content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/index.md index 754d1df3f..80df1d562 100644 --- a/content/blog/ai/2021-03-10-forecasting-time-series-with-torch_1/index.md +++ b/content/blog/ported/ai/2021-03-10-forecasting-time-series-with-torch_1/index.md @@ -716,6 +716,6 @@ Photo by -Please see our [introduction to the torch JIT compiler](/blog/ai/2021-08-10-jit-trace-module/). +Please see our [introduction to the torch JIT compiler](/blog/2021-08-10_keydanajittracemodule/). diff --git a/content/blog/ai/2021-10-29-segmentation-torch-android/index.md b/content/blog/ported/ai/2021-10-29-segmentation-torch-android/index.md similarity index 96% rename from content/blog/ai/2021-10-29-segmentation-torch-android/index.md rename to content/blog/ported/ai/2021-10-29-segmentation-torch-android/index.md index f06b6162d..f678e6fba 100644 --- a/content/blog/ai/2021-10-29-segmentation-torch-android/index.md +++ b/content/blog/ported/ai/2021-10-29-segmentation-torch-android/index.md @@ -39,7 +39,7 @@ The present post is not the first on this blog to treat that topic; and like all 2. It uses [luz](https://mlverse.github.io/luz/), `torch`'s high-level interface, to train the model. -3. It [JIT-traces](/blog/ai/2021-08-10-jit-trace-module/) the trained model and saves it for deployment on mobile devices. (JIT being the acronym commonly used for the `torch` just-in-time compiler.) +3. It [JIT-traces](/blog/2021-08-10_keydanajittracemodule/) the trained model and saves it for deployment on mobile devices. (JIT being the acronym commonly used for the `torch` just-in-time compiler.) 4. It includes proof-of-concept code (though not a discussion) of the saved model being run on Android. @@ -394,7 +394,7 @@ Tracing the trained model will convert it to a form that can be loaded in R-less @@ -439,6 +439,6 @@ Parkhi, Omkar M., Andrea Vedaldi, Andrew Zisserman, and C. V. Jawahar. 2012. "Ca Ronneberger, Olaf, Philipp Fischer, and Thomas Brox. 2015. "U-Net: Convolutional Networks for Biomedical Image Segmentation." *CoRR* abs/1505.04597. . -[^1]: Cf. [Brain image segmentation with torch](/blog/ai/2020-11-30-torch-brain-segmentation/) (using, non-surprisingly, `torch`), and [Image segmentation with U-Net](/blog/ai/2019-08-23-unet/) (using TensorFlow/Keras). +[^1]: Cf. [Brain image segmentation with torch](/blog/2020-11-30_keydanatorchtabular/) (using, non-surprisingly, `torch`), and [Image segmentation with U-Net](/blog/2019-08-23_falbelkeydana2019unet/) (using TensorFlow/Keras). [^2]: Ronneberger et al. (2015) diff --git a/content/blog/ai/2021-10-29-segmentation-torch-android/thumbnail.png b/content/blog/ported/ai/2021-10-29-segmentation-torch-android/thumbnail.png similarity index 100% rename from content/blog/ai/2021-10-29-segmentation-torch-android/thumbnail.png rename to content/blog/ported/ai/2021-10-29-segmentation-torch-android/thumbnail.png diff --git a/content/blog/ai/2021-11-18-keras-updates/images/preview.jpg b/content/blog/ported/ai/2021-11-18-keras-updates/images/preview.jpg similarity index 100% rename from content/blog/ai/2021-11-18-keras-updates/images/preview.jpg rename to content/blog/ported/ai/2021-11-18-keras-updates/images/preview.jpg diff --git a/content/blog/ai/2021-11-18-keras-updates/index.Rmd b/content/blog/ported/ai/2021-11-18-keras-updates/index.Rmd similarity index 97% rename from content/blog/ai/2021-11-18-keras-updates/index.Rmd rename to content/blog/ported/ai/2021-11-18-keras-updates/index.Rmd index 2aa3be970..d673c9098 100644 --- a/content/blog/ai/2021-11-18-keras-updates/index.Rmd +++ b/content/blog/ported/ai/2021-11-18-keras-updates/index.Rmd @@ -67,7 +67,7 @@ If you've used Keras in the past, you know what it's always been intended to be: [^3]: Provided stateless semantics is possible, in some context. This is anything but a matter of course, with an object-oriented language like Python in the background. -However, due to the way TensorFlow and Keras have developed on the Python side -- referring to the big architectural and semantic changes between versions 1.x and 2.x, first comprehensively characterized on this blog [here](/blog/ai/2019-10-08-tf2-whatchanges/) -- it has become more challenging to provide all of the functionality available on the Python side to the R user. In addition, maintaining compatibility with several versions of Python TensorFlow -- something R Keras has always done -- by necessity gets more and more challenging, the more wrappers and convenience functions you add. +However, due to the way TensorFlow and Keras have developed on the Python side -- referring to the big architectural and semantic changes between versions 1.x and 2.x, first comprehensively characterized on this blog [here](/blog/2019-10-08_keydana2019tf2/) -- it has become more challenging to provide all of the functionality available on the Python side to the R user. In addition, maintaining compatibility with several versions of Python TensorFlow -- something R Keras has always done -- by necessity gets more and more challenging, the more wrappers and convenience functions you add. So this is where we complement the above "make it R-like and natural, where possible" with "make it easy to port from Python, where necessary". With the new low-level functionality, you won't have to wait for R wrappers to make use of Python-defined objects. Instead, Python objects may be sub-classed directly from R; and any additional functionality you'd like to add to the subclass is defined in a Python-like syntax. What this means, concretely, is that translating Python code to R has become a lot easier. We'll catch a glimpse of this in the second of our three highlights. diff --git a/content/blog/ai/2021-11-18-keras-updates/index.md b/content/blog/ported/ai/2021-11-18-keras-updates/index.md similarity index 97% rename from content/blog/ai/2021-11-18-keras-updates/index.md rename to content/blog/ported/ai/2021-11-18-keras-updates/index.md index 9f9038146..edace8f5c 100644 --- a/content/blog/ai/2021-11-18-keras-updates/index.md +++ b/content/blog/ported/ai/2021-11-18-keras-updates/index.md @@ -64,7 +64,7 @@ Before we get to the promised highlights, a word on how we think about Keras. If you've used Keras in the past, you know what it's always been intended to be: a high-level library, making it easy (as far as such a thing *can* be easy) to train neural networks in R. Actually, it's not just about *ease*. Keras enables users to write natural-feeling, idiomatic-looking code. This, to a high degree, is achieved by its allowing for object composition though the pipe operator; it is also a consequence of its abundant wrappers, convenience functions, and functional (stateless) semantics.[^3] -However, due to the way TensorFlow and Keras have developed on the Python side -- referring to the big architectural and semantic changes between versions 1.x and 2.x, first comprehensively characterized on this blog [here](/blog/ai/2019-10-08-tf2-whatchanges/) -- it has become more challenging to provide all of the functionality available on the Python side to the R user. In addition, maintaining compatibility with several versions of Python TensorFlow -- something R Keras has always done -- by necessity gets more and more challenging, the more wrappers and convenience functions you add. +However, due to the way TensorFlow and Keras have developed on the Python side -- referring to the big architectural and semantic changes between versions 1.x and 2.x, first comprehensively characterized on this blog [here](/blog/2019-10-08_keydana2019tf2/) -- it has become more challenging to provide all of the functionality available on the Python side to the R user. In addition, maintaining compatibility with several versions of Python TensorFlow -- something R Keras has always done -- by necessity gets more and more challenging, the more wrappers and convenience functions you add. So this is where we complement the above "make it R-like and natural, where possible" with "make it easy to port from Python, where necessary". With the new low-level functionality, you won't have to wait for R wrappers to make use of Python-defined objects. Instead, Python objects may be sub-classed directly from R; and any additional functionality you'd like to add to the subclass is defined in a Python-like syntax. What this means, concretely, is that translating Python code to R has become a lot easier. We'll catch a glimpse of this in the second of our three highlights. diff --git a/content/blog/ai/2021-11-18-keras-updates/thumbnail.jpg b/content/blog/ported/ai/2021-11-18-keras-updates/thumbnail.jpg similarity index 100% rename from content/blog/ai/2021-11-18-keras-updates/thumbnail.jpg rename to content/blog/ported/ai/2021-11-18-keras-updates/thumbnail.jpg diff --git a/content/blog/ai/2021-12-09-keras-preprocessing-layers/images/preview.jpg b/content/blog/ported/ai/2021-12-09-keras-preprocessing-layers/images/preview.jpg similarity index 100% rename from content/blog/ai/2021-12-09-keras-preprocessing-layers/images/preview.jpg rename to content/blog/ported/ai/2021-12-09-keras-preprocessing-layers/images/preview.jpg diff --git a/content/blog/ai/2021-12-09-keras-preprocessing-layers/index.Rmd b/content/blog/ported/ai/2021-12-09-keras-preprocessing-layers/index.Rmd similarity index 100% rename from content/blog/ai/2021-12-09-keras-preprocessing-layers/index.Rmd rename to content/blog/ported/ai/2021-12-09-keras-preprocessing-layers/index.Rmd diff --git a/content/blog/ai/2021-12-09-keras-preprocessing-layers/index.md b/content/blog/ported/ai/2021-12-09-keras-preprocessing-layers/index.md similarity index 100% rename from content/blog/ai/2021-12-09-keras-preprocessing-layers/index.md rename to content/blog/ported/ai/2021-12-09-keras-preprocessing-layers/index.md diff --git a/content/blog/ai/2021-12-09-keras-preprocessing-layers/thumbnail.jpg b/content/blog/ported/ai/2021-12-09-keras-preprocessing-layers/thumbnail.jpg similarity index 100% rename from content/blog/ai/2021-12-09-keras-preprocessing-layers/thumbnail.jpg rename to content/blog/ported/ai/2021-12-09-keras-preprocessing-layers/thumbnail.jpg diff --git a/content/blog/ai/2022-04-27-torch-outside-the-box/images/preview.jpg b/content/blog/ported/ai/2022-04-27-torch-outside-the-box/images/preview.jpg similarity index 100% rename from content/blog/ai/2022-04-27-torch-outside-the-box/images/preview.jpg rename to content/blog/ported/ai/2022-04-27-torch-outside-the-box/images/preview.jpg diff --git a/content/blog/ai/2022-04-27-torch-outside-the-box/index.Rmd b/content/blog/ported/ai/2022-04-27-torch-outside-the-box/index.Rmd similarity index 94% rename from content/blog/ai/2022-04-27-torch-outside-the-box/index.Rmd rename to content/blog/ported/ai/2022-04-27-torch-outside-the-box/index.Rmd index b5bfe0489..b123643d1 100644 --- a/content/blog/ai/2022-04-27-torch-outside-the-box/index.Rmd +++ b/content/blog/ported/ai/2022-04-27-torch-outside-the-box/index.Rmd @@ -52,7 +52,7 @@ Now, what holds for `torch` applies to every R-side extension that adds custom c ### TorchScript: Allows for code generation "on the fly" -We've already encountered TorchScript in a [prior post](/blog/ai/2021-08-10-jit-trace-module), albeit from a different angle, and highlighting a different set of terms. In that post, we showed how you can train a model in R and *trace* it, resulting in an intermediate, optimized representation that may then be saved and loaded in a different (possibly R-less) environment. There, the conceptual focus was on the agent enabling this workflow: the PyTorch Just-in-time Compiler (JIT) which generates the representation in question. We quickly mentioned that on the Python-side, there is another way to invoke the JIT: not on an instantiated, "living" model, but on *scripted model-defining code*. It is that second way, accordingly named *scripting*, that is relevant in the current context. +We've already encountered TorchScript in a [prior post](/blog/2021-08-10_keydanajittracemodule/), albeit from a different angle, and highlighting a different set of terms. In that post, we showed how you can train a model in R and *trace* it, resulting in an intermediate, optimized representation that may then be saved and loaded in a different (possibly R-less) environment. There, the conceptual focus was on the agent enabling this workflow: the PyTorch Just-in-time Compiler (JIT) which generates the representation in question. We quickly mentioned that on the Python-side, there is another way to invoke the JIT: not on an instantiated, "living" model, but on *scripted model-defining code*. It is that second way, accordingly named *scripting*, that is relevant in the current context. Even though scripting is not available from R (unless the scripted code is written in Python[^2]), we still benefit from its existence. When Python-side extension libraries use TorchScript (instead of normal C++ code), *we don't need to add bindings to the respective functions on the R (C++) side*. Instead, everything is taken care of by PyTorch. diff --git a/content/blog/ai/2022-04-27-torch-outside-the-box/index.md b/content/blog/ported/ai/2022-04-27-torch-outside-the-box/index.md similarity index 94% rename from content/blog/ai/2022-04-27-torch-outside-the-box/index.md rename to content/blog/ported/ai/2022-04-27-torch-outside-the-box/index.md index 853e4928c..f2558fc83 100644 --- a/content/blog/ai/2022-04-27-torch-outside-the-box/index.md +++ b/content/blog/ported/ai/2022-04-27-torch-outside-the-box/index.md @@ -52,7 +52,7 @@ Now, what holds for `torch` applies to every R-side extension that adds custom c ### TorchScript: Allows for code generation "on the fly" -We've already encountered TorchScript in a [prior post](/blog/ai/2021-08-10-jit-trace-module), albeit from a different angle, and highlighting a different set of terms. In that post, we showed how you can train a model in R and *trace* it, resulting in an intermediate, optimized representation that may then be saved and loaded in a different (possibly R-less) environment. There, the conceptual focus was on the agent enabling this workflow: the PyTorch Just-in-time Compiler (JIT) which generates the representation in question. We quickly mentioned that on the Python-side, there is another way to invoke the JIT: not on an instantiated, "living" model, but on *scripted model-defining code*. It is that second way, accordingly named *scripting*, that is relevant in the current context. +We've already encountered TorchScript in a [prior post](/blog/2021-08-10_keydanajittracemodule/), albeit from a different angle, and highlighting a different set of terms. In that post, we showed how you can train a model in R and *trace* it, resulting in an intermediate, optimized representation that may then be saved and loaded in a different (possibly R-less) environment. There, the conceptual focus was on the agent enabling this workflow: the PyTorch Just-in-time Compiler (JIT) which generates the representation in question. We quickly mentioned that on the Python-side, there is another way to invoke the JIT: not on an instantiated, "living" model, but on *scripted model-defining code*. It is that second way, accordingly named *scripting*, that is relevant in the current context. Even though scripting is not available from R (unless the scripted code is written in Python[^2]), we still benefit from its existence. When Python-side extension libraries use TorchScript (instead of normal C++ code), *we don't need to add bindings to the respective functions on the R (C++) side*. Instead, everything is taken care of by PyTorch. diff --git a/content/blog/ai/2022-04-27-torch-outside-the-box/thumbnail.jpg b/content/blog/ported/ai/2022-04-27-torch-outside-the-box/thumbnail.jpg similarity index 100% rename from content/blog/ai/2022-04-27-torch-outside-the-box/thumbnail.jpg rename to content/blog/ported/ai/2022-04-27-torch-outside-the-box/thumbnail.jpg diff --git a/content/blog/ai/2022-05-18-torchopt/bibliography.bib b/content/blog/ported/ai/2022-05-18-torchopt/bibliography.bib similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/bibliography.bib rename to content/blog/ported/ai/2022-05-18-torchopt/bibliography.bib diff --git a/content/blog/ai/2022-05-18-torchopt/images/adahessian-steps-200.png b/content/blog/ported/ai/2022-05-18-torchopt/images/adahessian-steps-200.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/adahessian-steps-200.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/adahessian-steps-200.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/adahessian-steps-35.png b/content/blog/ported/ai/2022-05-18-torchopt/images/adahessian-steps-35.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/adahessian-steps-35.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/adahessian-steps-35.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/adamw-default-lr.png b/content/blog/ported/ai/2022-05-18-torchopt/images/adamw-default-lr.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/adamw-default-lr.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/adamw-default-lr.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-1300.png b/content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-1300.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-1300.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-1300.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-300.png b/content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-300.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-300.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-300.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-700.png b/content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-700.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-700.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-700.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-900.png b/content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-900.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-900.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.1-steps-900.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.1.png b/content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.1.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.1.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.1.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.7.png b/content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.7.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/adamw-lr-0.7.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/adamw-lr-0.7.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/lbfgs-steps-10.png b/content/blog/ported/ai/2022-05-18-torchopt/images/lbfgs-steps-10.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/lbfgs-steps-10.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/lbfgs-steps-10.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/lbfgs-steps-3.png b/content/blog/ported/ai/2022-05-18-torchopt/images/lbfgs-steps-3.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/lbfgs-steps-3.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/lbfgs-steps-3.png diff --git a/content/blog/ai/2022-05-18-torchopt/images/petals.png b/content/blog/ported/ai/2022-05-18-torchopt/images/petals.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/images/petals.png rename to content/blog/ported/ai/2022-05-18-torchopt/images/petals.png diff --git a/content/blog/ai/2022-05-18-torchopt/index.Rmd b/content/blog/ported/ai/2022-05-18-torchopt/index.Rmd similarity index 94% rename from content/blog/ai/2022-05-18-torchopt/index.Rmd rename to content/blog/ported/ai/2022-05-18-torchopt/index.Rmd index 009e7887a..5c445c9c7 100644 --- a/content/blog/ai/2022-05-18-torchopt/index.Rmd +++ b/content/blog/ported/ai/2022-05-18-torchopt/index.Rmd @@ -42,13 +42,13 @@ This blog post will introduce, in short and rather subjective form, one of these By the look of it, the package's reason of being is rather self-evident. `torch` itself does not -- nor should it -- implement all the newly-published, potentially-useful-for-your-purposes optimization algorithms out there.[^2] The algorithms assembled here, then, are probably exactly those the authors were most eager to experiment with in their own work. As of this writing, they comprise, amongst others, various members of the popular *ADA*\* and \**ADAM*\* families.[^3] And we may safely assume the list will grow over time. -[^2]: For why it shouldn't, and an overview of (some of) the things `torch` users can do, see also our recent post on [extending `torch`](/blog/ai/2022-04-27-torch-outside-the-box/). +[^2]: For why it shouldn't, and an overview of (some of) the things `torch` users can do, see also our recent post on [extending `torch`](/blog/2022-04-27_keydanatorchoutbox/). [^3]: See the [Readme](https://github.com/e-sensing/torchopt) for an up-to-date listing. I'm going to introduce the package by highlighting something that technically, is "merely" a utility function, but to the user, can be extremely helpful: the ability to, for an arbitrary optimizer and an arbitrary test function, plot the steps taken in optimization. -While it's true that I have no intent of comparing (let alone analyzing) different strategies, there is one that, to me, stands out in the list: ADAHESSIAN [@abs-2006-00719], a second-order algorithm designed to scale to large neural networks. I'm especially curious to see how it behaves as compared to L-BFGS, the second-order "classic" available from base `torch` we've had a [dedicated blog post](/blog/ai/2021-04-22-torch-for-optimization/) about last year. +While it's true that I have no intent of comparing (let alone analyzing) different strategies, there is one that, to me, stands out in the list: ADAHESSIAN [@abs-2006-00719], a second-order algorithm designed to scale to large neural networks. I'm especially curious to see how it behaves as compared to L-BFGS, the second-order "classic" available from base `torch` we've had a [dedicated blog post](/blog/2021-04-27_keydanatorchoptimization/) about last year. ## The way it works @@ -58,7 +58,7 @@ The utility function in question is named `test_optim()`. The only required argu - `steps`: To set the number of optimization steps. - `opt_hparams`: To modify optimizer hyperparameters; most notably, the learning rate. -Here, I'm going to use the `flower()` function that already prominently figured in the aforementioned post on [L-BFGS](/blog/ai/2021-04-22-torch-for-optimization/). It approaches its minimum as it gets closer and closer to `(0,0)` (but is undefined at the origin itself). +Here, I'm going to use the `flower()` function that already prominently figured in the aforementioned post on [L-BFGS](/blog/2021-04-27_keydanatorchoptimization/). It approaches its minimum as it gets closer and closer to `(0,0)` (but is undefined at the origin itself). Here it is: @@ -156,7 +156,7 @@ Another playful question that comes to mind is: Can we track how the optimizatio Who says you need chaos[^4] to produce a beautiful plot? -[^4]: Alluding to strange attractors here. If you're interested, you might want to check out the mini-series on chaos and deep learning: [Deep attractors: Where deep learning meets chaos](/blog/ai/2020-06-24-deep-attractors/), [Time series prediction with FNN-LSTM](/blog/ai/2020-07-20-fnn-lstm/), and [FNN-VAE for noisy time series forecasting](/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/). +[^4]: Alluding to strange attractors here. If you're interested, you might want to check out the mini-series on chaos and deep learning: [Deep attractors: Where deep learning meets chaos](/blog/2020-06-24_keydanadeepattractors/), [Time series prediction with FNN-LSTM](/blog/2020-07-20_keydanafnnlstm/), and [FNN-VAE for noisy time series forecasting](/blog/2020-07-31_keydanafnnvae/). ## A second-order optimizer for neural networks: ADAHESSIAN @@ -194,7 +194,7 @@ Now we've heard that argument twice already, it's time to verify the explicit as ## Best of the classics: Revisiting L-BFGS -To use `test_optim()` with L-BFGS, we need to take a little detour. If you've read the post on [L-BFGS](/blog/ai/2021-04-22-torch-for-optimization/), you may remember that with this optimizer, it is necessary to wrap both the call to the test function and the evaluation of the gradient in a closure. (The reason being that both have to be callable several times per iteration.) +To use `test_optim()` with L-BFGS, we need to take a little detour. If you've read the post on [L-BFGS](/blog/2021-04-27_keydanatorchoptimization/), you may remember that with this optimizer, it is necessary to wrap both the call to the test function and the evaluation of the gradient in a closure. (The reason being that both have to be callable several times per iteration.) Now, seeing how L-BFGS is a very special case, and few people are likely to use `test_optim()` with it in the future, it wouldn't seem worthwhile to make that function handle different cases. For this on-off test, I simply copied and modified the code as required. The result, `test_optim_lbfgs()`, is found in the [appendix](#appendix). diff --git a/content/blog/ai/2022-05-18-torchopt/index.md b/content/blog/ported/ai/2022-05-18-torchopt/index.md similarity index 95% rename from content/blog/ai/2022-05-18-torchopt/index.md rename to content/blog/ported/ai/2022-05-18-torchopt/index.md index e3797659f..638ed4ce7 100644 --- a/content/blog/ai/2022-05-18-torchopt/index.md +++ b/content/blog/ported/ai/2022-05-18-torchopt/index.md @@ -43,7 +43,7 @@ By the look of it, the package's reason of being is rather self-evident. `torch` I'm going to introduce the package by highlighting something that technically, is "merely" a utility function, but to the user, can be extremely helpful: the ability to, for an arbitrary optimizer and an arbitrary test function, plot the steps taken in optimization. -While it's true that I have no intent of comparing (let alone analyzing) different strategies, there is one that, to me, stands out in the list: ADAHESSIAN (Yao et al. 2020), a second-order algorithm designed to scale to large neural networks. I'm especially curious to see how it behaves as compared to L-BFGS, the second-order "classic" available from base `torch` we've had a [dedicated blog post](/blog/ai/2021-04-22-torch-for-optimization/) about last year. +While it's true that I have no intent of comparing (let alone analyzing) different strategies, there is one that, to me, stands out in the list: ADAHESSIAN (Yao et al. 2020), a second-order algorithm designed to scale to large neural networks. I'm especially curious to see how it behaves as compared to L-BFGS, the second-order "classic" available from base `torch` we've had a [dedicated blog post](/blog/2021-04-27_keydanatorchoptimization/) about last year. ## The way it works @@ -53,7 +53,7 @@ The utility function in question is named `test_optim()`. The only required argu - `steps`: To set the number of optimization steps. - `opt_hparams`: To modify optimizer hyperparameters; most notably, the learning rate. -Here, I'm going to use the `flower()` function that already prominently figured in the aforementioned post on [L-BFGS](/blog/ai/2021-04-22-torch-for-optimization/). It approaches its minimum as it gets closer and closer to `(0,0)` (but is undefined at the origin itself). +Here, I'm going to use the `flower()` function that already prominently figured in the aforementioned post on [L-BFGS](/blog/2021-04-27_keydanatorchoptimization/). It approaches its minimum as it gets closer and closer to `(0,0)` (but is undefined at the origin itself). Here it is: @@ -205,7 +205,7 @@ Now we've heard that argument twice already, it's time to verify the explicit as ## Best of the classics: Revisiting L-BFGS -To use `test_optim()` with L-BFGS, we need to take a little detour. If you've read the post on [L-BFGS](/blog/ai/2021-04-22-torch-for-optimization/), you may remember that with this optimizer, it is necessary to wrap both the call to the test function and the evaluation of the gradient in a closure. (The reason being that both have to be callable several times per iteration.) +To use `test_optim()` with L-BFGS, we need to take a little detour. If you've read the post on [L-BFGS](/blog/2021-04-27_keydanatorchoptimization/), you may remember that with this optimizer, it is necessary to wrap both the call to the test function and the evaluation of the gradient in a closure. (The reason being that both have to be callable several times per iteration.) Now, seeing how L-BFGS is a very special case, and few people are likely to use `test_optim()` with it in the future, it wouldn't seem worthwhile to make that function handle different cases. For this on-off test, I simply copied and modified the code as required. The result, `test_optim_lbfgs()`, is found in the [appendix](#appendix). @@ -385,8 +385,8 @@ Yao, Zhewei, Amir Gholami, Sheng Shen, Kurt Keutzer, and Michael W. Mahoney. 202 [^1]: For example, by creating an issue on GitHub, in either the [blog's repo](https://github.com/rstudio/ai-blog) or that of the respective software (e.g., [keras](https://github.com/rstudio/keras), [torch](https://github.com/mlverse/torch), ...) -[^2]: For why it shouldn't, and an overview of (some of) the things `torch` users can do, see also our recent post on [extending `torch`](/blog/ai/2022-04-27-torch-outside-the-box/). +[^2]: For why it shouldn't, and an overview of (some of) the things `torch` users can do, see also our recent post on [extending `torch`](/blog/2022-04-27_keydanatorchoutbox/). [^3]: See the [Readme](https://github.com/e-sensing/torchopt) for an up-to-date listing. -[^4]: Alluding to strange attractors here. If you're interested, you might want to check out the mini-series on chaos and deep learning: [Deep attractors: Where deep learning meets chaos](/blog/ai/2020-06-24-deep-attractors/), [Time series prediction with FNN-LSTM](/blog/ai/2020-07-20-fnn-lstm/), and [FNN-VAE for noisy time series forecasting](/blog/ai/2020-07-31-fnn-vae-for-noisy-timeseries/). +[^4]: Alluding to strange attractors here. If you're interested, you might want to check out the mini-series on chaos and deep learning: [Deep attractors: Where deep learning meets chaos](/blog/2020-06-24_keydanadeepattractors/), [Time series prediction with FNN-LSTM](/blog/2020-07-20_keydanafnnlstm/), and [FNN-VAE for noisy time series forecasting](/blog/2020-07-31_keydanafnnvae/). diff --git a/content/blog/ai/2022-05-18-torchopt/thumbnail.png b/content/blog/ported/ai/2022-05-18-torchopt/thumbnail.png similarity index 100% rename from content/blog/ai/2022-05-18-torchopt/thumbnail.png rename to content/blog/ported/ai/2022-05-18-torchopt/thumbnail.png diff --git a/content/blog/ai/2022-05-31-deep-learning-with-R-2e/images/cover.png b/content/blog/ported/ai/2022-05-31-deep-learning-with-R-2e/images/cover.png similarity index 100% rename from content/blog/ai/2022-05-31-deep-learning-with-R-2e/images/cover.png rename to content/blog/ported/ai/2022-05-31-deep-learning-with-R-2e/images/cover.png diff --git a/content/blog/ai/2022-05-31-deep-learning-with-R-2e/index.Rmd b/content/blog/ported/ai/2022-05-31-deep-learning-with-R-2e/index.Rmd similarity index 100% rename from content/blog/ai/2022-05-31-deep-learning-with-R-2e/index.Rmd rename to content/blog/ported/ai/2022-05-31-deep-learning-with-R-2e/index.Rmd diff --git a/content/blog/ai/2022-05-31-deep-learning-with-R-2e/index.md b/content/blog/ported/ai/2022-05-31-deep-learning-with-R-2e/index.md similarity index 100% rename from content/blog/ai/2022-05-31-deep-learning-with-R-2e/index.md rename to content/blog/ported/ai/2022-05-31-deep-learning-with-R-2e/index.md diff --git a/content/blog/ai/2022-05-31-deep-learning-with-R-2e/thumbnail.png b/content/blog/ported/ai/2022-05-31-deep-learning-with-R-2e/thumbnail.png similarity index 100% rename from content/blog/ai/2022-05-31-deep-learning-with-R-2e/thumbnail.png rename to content/blog/ported/ai/2022-05-31-deep-learning-with-R-2e/thumbnail.png diff --git a/content/blog/ai/2022-06-09-tf-2-9/images/chameleon.jpg b/content/blog/ported/ai/2022-06-09-tf-2-9/images/chameleon.jpg similarity index 100% rename from content/blog/ai/2022-06-09-tf-2-9/images/chameleon.jpg rename to content/blog/ported/ai/2022-06-09-tf-2-9/images/chameleon.jpg diff --git a/content/blog/ai/2022-06-09-tf-2-9/index.Rmd b/content/blog/ported/ai/2022-06-09-tf-2-9/index.Rmd similarity index 100% rename from content/blog/ai/2022-06-09-tf-2-9/index.Rmd rename to content/blog/ported/ai/2022-06-09-tf-2-9/index.Rmd diff --git a/content/blog/ai/2022-06-09-tf-2-9/index.md b/content/blog/ported/ai/2022-06-09-tf-2-9/index.md similarity index 100% rename from content/blog/ai/2022-06-09-tf-2-9/index.md rename to content/blog/ported/ai/2022-06-09-tf-2-9/index.md diff --git a/content/blog/ai/2022-06-09-tf-2-9/thumbnail.jpg b/content/blog/ported/ai/2022-06-09-tf-2-9/thumbnail.jpg similarity index 100% rename from content/blog/ai/2022-06-09-tf-2-9/thumbnail.jpg rename to content/blog/ported/ai/2022-06-09-tf-2-9/thumbnail.jpg diff --git a/content/blog/ai/2022-08-24-luz-0-3/bibliography.bib b/content/blog/ported/ai/2022-08-24-luz-0-3/bibliography.bib similarity index 100% rename from content/blog/ai/2022-08-24-luz-0-3/bibliography.bib rename to content/blog/ported/ai/2022-08-24-luz-0-3/bibliography.bib diff --git a/content/blog/ai/2022-08-24-luz-0-3/images/bulbs.jpeg b/content/blog/ported/ai/2022-08-24-luz-0-3/images/bulbs.jpeg similarity index 100% rename from content/blog/ai/2022-08-24-luz-0-3/images/bulbs.jpeg rename to content/blog/ported/ai/2022-08-24-luz-0-3/images/bulbs.jpeg diff --git a/content/blog/ai/2022-08-24-luz-0-3/images/bulbs.jpeg.original b/content/blog/ported/ai/2022-08-24-luz-0-3/images/bulbs.jpeg.original similarity index 100% rename from content/blog/ai/2022-08-24-luz-0-3/images/bulbs.jpeg.original rename to content/blog/ported/ai/2022-08-24-luz-0-3/images/bulbs.jpeg.original diff --git a/content/blog/ai/2022-08-24-luz-0-3/images/lr-finder.png b/content/blog/ported/ai/2022-08-24-luz-0-3/images/lr-finder.png similarity index 100% rename from content/blog/ai/2022-08-24-luz-0-3/images/lr-finder.png rename to content/blog/ported/ai/2022-08-24-luz-0-3/images/lr-finder.png diff --git a/content/blog/ai/2022-08-24-luz-0-3/index.Rmd b/content/blog/ported/ai/2022-08-24-luz-0-3/index.Rmd similarity index 99% rename from content/blog/ai/2022-08-24-luz-0-3/index.Rmd rename to content/blog/ported/ai/2022-08-24-luz-0-3/index.Rmd index 895798dea..88b45d5a3 100644 --- a/content/blog/ai/2022-08-24-luz-0-3/index.Rmd +++ b/content/blog/ported/ai/2022-08-24-luz-0-3/index.Rmd @@ -44,7 +44,7 @@ date back to that version. ## What's `luz`? Since it is [relatively new -package](/blog/ai/2021-06-17-luz/), we are +package](/blog/2021-06-17_keydanaluz/), we are starting this blog post with a quick recap of how `luz` works. If you already know what `luz` is, feel free to move on to the next section. diff --git a/content/blog/ai/2022-08-24-luz-0-3/index.md b/content/blog/ported/ai/2022-08-24-luz-0-3/index.md similarity index 99% rename from content/blog/ai/2022-08-24-luz-0-3/index.md rename to content/blog/ported/ai/2022-08-24-luz-0-3/index.md index 4a307792d..6098b236f 100644 --- a/content/blog/ai/2022-08-24-luz-0-3/index.md +++ b/content/blog/ported/ai/2022-08-24-luz-0-3/index.md @@ -41,7 +41,7 @@ date back to that version. ## What's `luz`? Since it is [relatively new -package](/blog/ai/2021-06-17-luz/), we are +package](/blog/2021-06-17_keydanaluz/), we are starting this blog post with a quick recap of how `luz` works. If you already know what `luz` is, feel free to move on to the next section. diff --git a/content/blog/ai/2022-08-24-luz-0-3/thumbnail.jpeg b/content/blog/ported/ai/2022-08-24-luz-0-3/thumbnail.jpeg similarity index 100% rename from content/blog/ai/2022-08-24-luz-0-3/thumbnail.jpeg rename to content/blog/ported/ai/2022-08-24-luz-0-3/thumbnail.jpeg diff --git a/content/blog/ai/2022-08-24-luz-0-3/thumbnail.jpeg.original b/content/blog/ported/ai/2022-08-24-luz-0-3/thumbnail.jpeg.original similarity index 100% rename from content/blog/ai/2022-08-24-luz-0-3/thumbnail.jpeg.original rename to content/blog/ported/ai/2022-08-24-luz-0-3/thumbnail.jpeg.original diff --git a/content/blog/ai/2022-09-29-r-text/img/ai_blog_word_plot.png b/content/blog/ported/ai/2022-09-29-r-text/img/ai_blog_word_plot.png similarity index 100% rename from content/blog/ai/2022-09-29-r-text/img/ai_blog_word_plot.png rename to content/blog/ported/ai/2022-09-29-r-text/img/ai_blog_word_plot.png diff --git a/content/blog/ai/2022-09-29-r-text/index.Rmd b/content/blog/ported/ai/2022-09-29-r-text/index.Rmd similarity index 100% rename from content/blog/ai/2022-09-29-r-text/index.Rmd rename to content/blog/ported/ai/2022-09-29-r-text/index.Rmd diff --git a/content/blog/ai/2022-09-29-r-text/index.md b/content/blog/ported/ai/2022-09-29-r-text/index.md similarity index 100% rename from content/blog/ai/2022-09-29-r-text/index.md rename to content/blog/ported/ai/2022-09-29-r-text/index.md diff --git a/content/blog/ai/2022-09-29-r-text/thumbnail.png b/content/blog/ported/ai/2022-09-29-r-text/thumbnail.png similarity index 100% rename from content/blog/ai/2022-09-29-r-text/thumbnail.png rename to content/blog/ported/ai/2022-09-29-r-text/thumbnail.png diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/bibliography.bib b/content/blog/ported/ai/2022-10-06-audio-classification-torch/bibliography.bib similarity index 100% rename from content/blog/ai/2022-10-06-audio-classification-torch/bibliography.bib rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/bibliography.bib diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/images/audio-alluvial-complex.png b/content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-alluvial-complex.png similarity index 100% rename from content/blog/ai/2022-10-06-audio-classification-torch/images/audio-alluvial-complex.png rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-alluvial-complex.png diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/images/audio-bird-dft.png b/content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-bird-dft.png similarity index 100% rename from content/blog/ai/2022-10-06-audio-classification-torch/images/audio-bird-dft.png rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-bird-dft.png diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/images/audio-bird-waveform.png b/content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-bird-waveform.png similarity index 100% rename from content/blog/ai/2022-10-06-audio-classification-torch/images/audio-bird-waveform.png rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-bird-waveform.png diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/images/audio-fit-complex.png b/content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-fit-complex.png similarity index 100% rename from content/blog/ai/2022-10-06-audio-classification-torch/images/audio-fit-complex.png rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-fit-complex.png diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/images/audio-lr-finder.png b/content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-lr-finder.png similarity index 100% rename from content/blog/ai/2022-10-06-audio-classification-torch/images/audio-lr-finder.png rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-lr-finder.png diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/images/audio-spectrogram.png b/content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-spectrogram.png similarity index 100% rename from content/blog/ai/2022-10-06-audio-classification-torch/images/audio-spectrogram.png rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/images/audio-spectrogram.png diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/images/squirrel.jpg b/content/blog/ported/ai/2022-10-06-audio-classification-torch/images/squirrel.jpg similarity index 100% rename from content/blog/ai/2022-10-06-audio-classification-torch/images/squirrel.jpg rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/images/squirrel.jpg diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/index.Rmd b/content/blog/ported/ai/2022-10-06-audio-classification-torch/index.Rmd similarity index 96% rename from content/blog/ai/2022-10-06-audio-classification-torch/index.Rmd rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/index.Rmd index c83bf417f..411633dc2 100644 --- a/content/blog/ai/2022-10-06-audio-classification-torch/index.Rmd +++ b/content/blog/ported/ai/2022-10-06-audio-classification-torch/index.Rmd @@ -33,7 +33,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE, fig.width = 6, fig.height = 6) ## Variations on a theme -[Simple audio classification with Keras](/blog/ai/2018-06-06-simple-audio-classification-keras/), [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/ai/2019-02-07-audio-background/), [Simple audio classification with torch](/blog/ai/2021-02-04-simple-audio-classification-with-torch/): No, this is not the first post on this blog that introduces speech classification using deep learning. With two of those posts (the "applied" ones) it shares the general setup, the type of deep-learning architecture employed, and the dataset used. With the third, it has in common the interest in the ideas and concepts involved. Each of these posts has a different focus -- should you read this one? +[Simple audio classification with Keras](/blog/2018-06-06_simple-audio-classification-keras/), [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/2019-02-07_keydana2019audiobackground/), [Simple audio classification with torch](/blog/2021-02-04_athossimpleaudioclassification/): No, this is not the first post on this blog that introduces speech classification using deep learning. With two of those posts (the "applied" ones) it shares the general setup, the type of deep-learning architecture employed, and the dataset used. With the third, it has in common the interest in the ideas and concepts involved. Each of these posts has a different focus -- should you read this one? Well, of course I can't say "no" -- all the more so because, here, you have an abbreviated and condensed version of the chapter on this topic in the forthcoming book from CRC Press, *Deep Learning and Scientific Computing with R `torch`*. By way of comparison with the previous post that used `torch`, written by the creator and maintainer of `torchaudio`, Athos Damiani, significant developments have taken place in the `torch` ecosystem, the end result being that the code got a lot easier (especially in the model training part). That said, let's end the preamble already, and plunge into the topic! diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/index.md b/content/blog/ported/ai/2022-10-06-audio-classification-torch/index.md similarity index 96% rename from content/blog/ai/2022-10-06-audio-classification-torch/index.md rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/index.md index b2ceb43e0..56c3bbd37 100644 --- a/content/blog/ai/2022-10-06-audio-classification-torch/index.md +++ b/content/blog/ported/ai/2022-10-06-audio-classification-torch/index.md @@ -32,7 +32,7 @@ tags: ## Variations on a theme -[Simple audio classification with Keras](/blog/ai/2018-06-06-simple-audio-classification-keras/), [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/ai/2019-02-07-audio-background/), [Simple audio classification with torch](/blog/ai/2021-02-04-simple-audio-classification-with-torch/): No, this is not the first post on this blog that introduces speech classification using deep learning. With two of those posts (the "applied" ones) it shares the general setup, the type of deep-learning architecture employed, and the dataset used. With the third, it has in common the interest in the ideas and concepts involved. Each of these posts has a different focus -- should you read this one? +[Simple audio classification with Keras](/blog/2018-06-06_simple-audio-classification-keras/), [Audio classification with Keras: Looking closer at the non-deep learning parts](/blog/2019-02-07_keydana2019audiobackground/), [Simple audio classification with torch](/blog/2021-02-04_athossimpleaudioclassification/): No, this is not the first post on this blog that introduces speech classification using deep learning. With two of those posts (the "applied" ones) it shares the general setup, the type of deep-learning architecture employed, and the dataset used. With the third, it has in common the interest in the ideas and concepts involved. Each of these posts has a different focus -- should you read this one? Well, of course I can't say "no" -- all the more so because, here, you have an abbreviated and condensed version of the chapter on this topic in the forthcoming book from CRC Press, *Deep Learning and Scientific Computing with R `torch`*. By way of comparison with the previous post that used `torch`, written by the creator and maintainer of `torchaudio`, Athos Damiani, significant developments have taken place in the `torch` ecosystem, the end result being that the code got a lot easier (especially in the model training part). That said, let's end the preamble already, and plunge into the topic! diff --git a/content/blog/ai/2022-10-06-audio-classification-torch/thumbnail.jpg b/content/blog/ported/ai/2022-10-06-audio-classification-torch/thumbnail.jpg similarity index 100% rename from content/blog/ai/2022-10-06-audio-classification-torch/thumbnail.jpg rename to content/blog/ported/ai/2022-10-06-audio-classification-torch/thumbnail.jpg diff --git a/content/blog/ai/2022-10-13-torch-linalg/images/squirrel.jpg b/content/blog/ported/ai/2022-10-13-torch-linalg/images/squirrel.jpg similarity index 100% rename from content/blog/ai/2022-10-13-torch-linalg/images/squirrel.jpg rename to content/blog/ported/ai/2022-10-13-torch-linalg/images/squirrel.jpg diff --git a/content/blog/ai/2022-10-13-torch-linalg/index.Rmd b/content/blog/ported/ai/2022-10-13-torch-linalg/index.Rmd similarity index 100% rename from content/blog/ai/2022-10-13-torch-linalg/index.Rmd rename to content/blog/ported/ai/2022-10-13-torch-linalg/index.Rmd diff --git a/content/blog/ai/2022-10-13-torch-linalg/index.md b/content/blog/ported/ai/2022-10-13-torch-linalg/index.md similarity index 100% rename from content/blog/ai/2022-10-13-torch-linalg/index.md rename to content/blog/ported/ai/2022-10-13-torch-linalg/index.md diff --git a/content/blog/ai/2022-10-13-torch-linalg/thumbnail.jpg b/content/blog/ported/ai/2022-10-13-torch-linalg/thumbnail.jpg similarity index 100% rename from content/blog/ai/2022-10-13-torch-linalg/thumbnail.jpg rename to content/blog/ported/ai/2022-10-13-torch-linalg/thumbnail.jpg diff --git a/content/blog/ai/2022-10-20-dft/images/dft-cos-1-rev-dft.png b/content/blog/ported/ai/2022-10-20-dft/images/dft-cos-1-rev-dft.png similarity index 100% rename from content/blog/ai/2022-10-20-dft/images/dft-cos-1-rev-dft.png rename to content/blog/ported/ai/2022-10-20-dft/images/dft-cos-1-rev-dft.png diff --git a/content/blog/ai/2022-10-20-dft/images/dft-cos-1-rev.png b/content/blog/ported/ai/2022-10-20-dft/images/dft-cos-1-rev.png similarity index 100% rename from content/blog/ai/2022-10-20-dft/images/dft-cos-1-rev.png rename to content/blog/ported/ai/2022-10-20-dft/images/dft-cos-1-rev.png diff --git a/content/blog/ai/2022-10-20-dft/images/dft-cos-32-rev.png b/content/blog/ported/ai/2022-10-20-dft/images/dft-cos-32-rev.png similarity index 100% rename from content/blog/ai/2022-10-20-dft/images/dft-cos-32-rev.png rename to content/blog/ported/ai/2022-10-20-dft/images/dft-cos-32-rev.png diff --git a/content/blog/ai/2022-10-20-dft/images/dft-cos-4-rev.png b/content/blog/ported/ai/2022-10-20-dft/images/dft-cos-4-rev.png similarity index 100% rename from content/blog/ai/2022-10-20-dft/images/dft-cos-4-rev.png rename to content/blog/ported/ai/2022-10-20-dft/images/dft-cos-4-rev.png diff --git a/content/blog/ai/2022-10-20-dft/images/dft-cos-mult-amplitude.png b/content/blog/ported/ai/2022-10-20-dft/images/dft-cos-mult-amplitude.png similarity index 100% rename from content/blog/ai/2022-10-20-dft/images/dft-cos-mult-amplitude.png rename to content/blog/ported/ai/2022-10-20-dft/images/dft-cos-mult-amplitude.png diff --git a/content/blog/ai/2022-10-20-dft/images/dft-cos-phase-pi12.png b/content/blog/ported/ai/2022-10-20-dft/images/dft-cos-phase-pi12.png similarity index 100% rename from content/blog/ai/2022-10-20-dft/images/dft-cos-phase-pi12.png rename to content/blog/ported/ai/2022-10-20-dft/images/dft-cos-phase-pi12.png diff --git a/content/blog/ai/2022-10-20-dft/images/dft-mix-of-sinuisoids.png b/content/blog/ported/ai/2022-10-20-dft/images/dft-mix-of-sinuisoids.png similarity index 100% rename from content/blog/ai/2022-10-20-dft/images/dft-mix-of-sinuisoids.png rename to content/blog/ported/ai/2022-10-20-dft/images/dft-mix-of-sinuisoids.png diff --git a/content/blog/ai/2022-10-20-dft/images/squirrel.jpg b/content/blog/ported/ai/2022-10-20-dft/images/squirrel.jpg similarity index 100% rename from content/blog/ai/2022-10-20-dft/images/squirrel.jpg rename to content/blog/ported/ai/2022-10-20-dft/images/squirrel.jpg diff --git a/content/blog/ai/2022-10-20-dft/index.Rmd b/content/blog/ported/ai/2022-10-20-dft/index.Rmd similarity index 100% rename from content/blog/ai/2022-10-20-dft/index.Rmd rename to content/blog/ported/ai/2022-10-20-dft/index.Rmd diff --git a/content/blog/ai/2022-10-20-dft/index.md b/content/blog/ported/ai/2022-10-20-dft/index.md similarity index 100% rename from content/blog/ai/2022-10-20-dft/index.md rename to content/blog/ported/ai/2022-10-20-dft/index.md diff --git a/content/blog/ai/2022-10-20-dft/thumbnail.jpg b/content/blog/ported/ai/2022-10-20-dft/thumbnail.jpg similarity index 100% rename from content/blog/ai/2022-10-20-dft/thumbnail.jpg rename to content/blog/ported/ai/2022-10-20-dft/thumbnail.jpg diff --git a/content/blog/ai/2022-10-25-torch-0-9/images/banner.jpeg b/content/blog/ported/ai/2022-10-25-torch-0-9/images/banner.jpeg similarity index 100% rename from content/blog/ai/2022-10-25-torch-0-9/images/banner.jpeg rename to content/blog/ported/ai/2022-10-25-torch-0-9/images/banner.jpeg diff --git a/content/blog/ai/2022-10-25-torch-0-9/images/banner.jpeg.original b/content/blog/ported/ai/2022-10-25-torch-0-9/images/banner.jpeg.original similarity index 100% rename from content/blog/ai/2022-10-25-torch-0-9/images/banner.jpeg.original rename to content/blog/ported/ai/2022-10-25-torch-0-9/images/banner.jpeg.original diff --git a/content/blog/ai/2022-10-25-torch-0-9/images/cpu-improve.png b/content/blog/ported/ai/2022-10-25-torch-0-9/images/cpu-improve.png similarity index 100% rename from content/blog/ai/2022-10-25-torch-0-9/images/cpu-improve.png rename to content/blog/ported/ai/2022-10-25-torch-0-9/images/cpu-improve.png diff --git a/content/blog/ai/2022-10-25-torch-0-9/images/cuda-improv.png b/content/blog/ported/ai/2022-10-25-torch-0-9/images/cuda-improv.png similarity index 100% rename from content/blog/ai/2022-10-25-torch-0-9/images/cuda-improv.png rename to content/blog/ported/ai/2022-10-25-torch-0-9/images/cuda-improv.png diff --git a/content/blog/ai/2022-10-25-torch-0-9/index.Rmd b/content/blog/ported/ai/2022-10-25-torch-0-9/index.Rmd similarity index 100% rename from content/blog/ai/2022-10-25-torch-0-9/index.Rmd rename to content/blog/ported/ai/2022-10-25-torch-0-9/index.Rmd diff --git a/content/blog/ai/2022-10-25-torch-0-9/index.md b/content/blog/ported/ai/2022-10-25-torch-0-9/index.md similarity index 100% rename from content/blog/ai/2022-10-25-torch-0-9/index.md rename to content/blog/ported/ai/2022-10-25-torch-0-9/index.md diff --git a/content/blog/ai/2022-10-25-torch-0-9/thumbnail.jpeg b/content/blog/ported/ai/2022-10-25-torch-0-9/thumbnail.jpeg similarity index 100% rename from content/blog/ai/2022-10-25-torch-0-9/thumbnail.jpeg rename to content/blog/ported/ai/2022-10-25-torch-0-9/thumbnail.jpeg diff --git a/content/blog/ai/2022-10-25-torch-0-9/thumbnail.jpeg.original b/content/blog/ported/ai/2022-10-25-torch-0-9/thumbnail.jpeg.original similarity index 100% rename from content/blog/ai/2022-10-25-torch-0-9/thumbnail.jpeg.original rename to content/blog/ported/ai/2022-10-25-torch-0-9/thumbnail.jpeg.original diff --git a/content/blog/ai/2022-10-27-wavelets/bibliography.bib b/content/blog/ported/ai/2022-10-27-wavelets/bibliography.bib similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/bibliography.bib rename to content/blog/ported/ai/2022-10-27-wavelets/bibliography.bib diff --git a/content/blog/ai/2022-10-27-wavelets/images/squirrel.jpg b/content/blog/ported/ai/2022-10-27-wavelets/images/squirrel.jpg similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/images/squirrel.jpg rename to content/blog/ported/ai/2022-10-27-wavelets/images/squirrel.jpg diff --git a/content/blog/ai/2022-10-27-wavelets/images/wav-K-omega.png b/content/blog/ported/ai/2022-10-27-wavelets/images/wav-K-omega.png similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/images/wav-K-omega.png rename to content/blog/ported/ai/2022-10-27-wavelets/images/wav-K-omega.png diff --git a/content/blog/ai/2022-10-27-wavelets/images/wav-chaffinch-fft.png b/content/blog/ported/ai/2022-10-27-wavelets/images/wav-chaffinch-fft.png similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/images/wav-chaffinch-fft.png rename to content/blog/ported/ai/2022-10-27-wavelets/images/wav-chaffinch-fft.png diff --git a/content/blog/ai/2022-10-27-wavelets/images/wav-chaffinch-spectrogram.png b/content/blog/ported/ai/2022-10-27-wavelets/images/wav-chaffinch-spectrogram.png similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/images/wav-chaffinch-spectrogram.png rename to content/blog/ported/ai/2022-10-27-wavelets/images/wav-chaffinch-spectrogram.png diff --git a/content/blog/ai/2022-10-27-wavelets/images/wav-chaffinch-waveletdiag.png b/content/blog/ported/ai/2022-10-27-wavelets/images/wav-chaffinch-waveletdiag.png similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/images/wav-chaffinch-waveletdiag.png rename to content/blog/ported/ai/2022-10-27-wavelets/images/wav-chaffinch-waveletdiag.png diff --git a/content/blog/ai/2022-10-27-wavelets/images/wav-chaffinch.png b/content/blog/ported/ai/2022-10-27-wavelets/images/wav-chaffinch.png similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/images/wav-chaffinch.png rename to content/blog/ported/ai/2022-10-27-wavelets/images/wav-chaffinch.png diff --git a/content/blog/ai/2022-10-27-wavelets/images/wav-morlet-example.png b/content/blog/ported/ai/2022-10-27-wavelets/images/wav-morlet-example.png similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/images/wav-morlet-example.png rename to content/blog/ported/ai/2022-10-27-wavelets/images/wav-morlet-example.png diff --git a/content/blog/ai/2022-10-27-wavelets/images/wav-signal-short-transform-largeK.png b/content/blog/ported/ai/2022-10-27-wavelets/images/wav-signal-short-transform-largeK.png similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/images/wav-signal-short-transform-largeK.png rename to content/blog/ported/ai/2022-10-27-wavelets/images/wav-signal-short-transform-largeK.png diff --git a/content/blog/ai/2022-10-27-wavelets/images/wav-signal-short-transform.png b/content/blog/ported/ai/2022-10-27-wavelets/images/wav-signal-short-transform.png similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/images/wav-signal-short-transform.png rename to content/blog/ported/ai/2022-10-27-wavelets/images/wav-signal-short-transform.png diff --git a/content/blog/ai/2022-10-27-wavelets/images/wav-signal-short.png b/content/blog/ported/ai/2022-10-27-wavelets/images/wav-signal-short.png similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/images/wav-signal-short.png rename to content/blog/ported/ai/2022-10-27-wavelets/images/wav-signal-short.png diff --git a/content/blog/ai/2022-10-27-wavelets/index.Rmd b/content/blog/ported/ai/2022-10-27-wavelets/index.Rmd similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/index.Rmd rename to content/blog/ported/ai/2022-10-27-wavelets/index.Rmd diff --git a/content/blog/ai/2022-10-27-wavelets/index.md b/content/blog/ported/ai/2022-10-27-wavelets/index.md similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/index.md rename to content/blog/ported/ai/2022-10-27-wavelets/index.md diff --git a/content/blog/ai/2022-10-27-wavelets/thumbnail.jpg b/content/blog/ported/ai/2022-10-27-wavelets/thumbnail.jpg similarity index 100% rename from content/blog/ai/2022-10-27-wavelets/thumbnail.jpg rename to content/blog/ported/ai/2022-10-27-wavelets/thumbnail.jpg diff --git a/content/blog/ai/2023-01-19-torchwavelets/bibliography.bib b/content/blog/ported/ai/2023-01-19-torchwavelets/bibliography.bib similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/bibliography.bib rename to content/blog/ported/ai/2023-01-19-torchwavelets/bibliography.bib diff --git a/content/blog/ai/2023-01-19-torchwavelets/images/preview.jpg b/content/blog/ported/ai/2023-01-19-torchwavelets/images/preview.jpg similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/images/preview.jpg rename to content/blog/ported/ai/2023-01-19-torchwavelets/images/preview.jpg diff --git a/content/blog/ai/2023-01-19-torchwavelets/images/scaleogram-ao.png b/content/blog/ported/ai/2023-01-19-torchwavelets/images/scaleogram-ao.png similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/images/scaleogram-ao.png rename to content/blog/ported/ai/2023-01-19-torchwavelets/images/scaleogram-ao.png diff --git a/content/blog/ai/2023-01-19-torchwavelets/images/scaleogram-enso.png b/content/blog/ported/ai/2023-01-19-torchwavelets/images/scaleogram-enso.png similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/images/scaleogram-enso.png rename to content/blog/ported/ai/2023-01-19-torchwavelets/images/scaleogram-enso.png diff --git a/content/blog/ai/2023-01-19-torchwavelets/images/scaleogram-nao.png b/content/blog/ported/ai/2023-01-19-torchwavelets/images/scaleogram-nao.png similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/images/scaleogram-nao.png rename to content/blog/ported/ai/2023-01-19-torchwavelets/images/scaleogram-nao.png diff --git a/content/blog/ai/2023-01-19-torchwavelets/images/spectrum-ao.png b/content/blog/ported/ai/2023-01-19-torchwavelets/images/spectrum-ao.png similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/images/spectrum-ao.png rename to content/blog/ported/ai/2023-01-19-torchwavelets/images/spectrum-ao.png diff --git a/content/blog/ai/2023-01-19-torchwavelets/images/spectrum-enso.png b/content/blog/ported/ai/2023-01-19-torchwavelets/images/spectrum-enso.png similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/images/spectrum-enso.png rename to content/blog/ported/ai/2023-01-19-torchwavelets/images/spectrum-enso.png diff --git a/content/blog/ai/2023-01-19-torchwavelets/images/spectrum-nao.png b/content/blog/ported/ai/2023-01-19-torchwavelets/images/spectrum-nao.png similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/images/spectrum-nao.png rename to content/blog/ported/ai/2023-01-19-torchwavelets/images/spectrum-nao.png diff --git a/content/blog/ai/2023-01-19-torchwavelets/images/stl-ao.png b/content/blog/ported/ai/2023-01-19-torchwavelets/images/stl-ao.png similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/images/stl-ao.png rename to content/blog/ported/ai/2023-01-19-torchwavelets/images/stl-ao.png diff --git a/content/blog/ai/2023-01-19-torchwavelets/images/stl-nao.png b/content/blog/ported/ai/2023-01-19-torchwavelets/images/stl-nao.png similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/images/stl-nao.png rename to content/blog/ported/ai/2023-01-19-torchwavelets/images/stl-nao.png diff --git a/content/blog/ai/2023-01-19-torchwavelets/images/stl_enso.png b/content/blog/ported/ai/2023-01-19-torchwavelets/images/stl_enso.png similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/images/stl_enso.png rename to content/blog/ported/ai/2023-01-19-torchwavelets/images/stl_enso.png diff --git a/content/blog/ai/2023-01-19-torchwavelets/index.Rmd b/content/blog/ported/ai/2023-01-19-torchwavelets/index.Rmd similarity index 98% rename from content/blog/ai/2023-01-19-torchwavelets/index.Rmd rename to content/blog/ported/ai/2023-01-19-torchwavelets/index.Rmd index e3e8d3026..8ae5603c0 100644 --- a/content/blog/ai/2023-01-19-torchwavelets/index.Rmd +++ b/content/blog/ported/ai/2023-01-19-torchwavelets/index.Rmd @@ -33,7 +33,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE, fig.width = 6, fig.height = 6) ``` -Recently, we showed how to use `torch` for [wavelet analysis](/blog/ai/2022-10-27-wavelets/). A member of the family of spectral analysis methods, wavelet analysis bears some similarity to the Fourier Transform, and specifically, to its popular two-dimensional application, the spectrogram. +Recently, we showed how to use `torch` for [wavelet analysis](/blog/2022-10-27_keydanatorchwavelets/). A member of the family of spectral analysis methods, wavelet analysis bears some similarity to the Fourier Transform, and specifically, to its popular two-dimensional application, the spectrogram. As explained in that book excerpt, though, there are significant differences. For the purposes of the current post, it suffices to know that frequency-domain patterns are discovered by having a little "wave" (that, really, can be of any shape) "slide" over the data, computing degree of match (or mismatch) in the neighborhood of every sample. @@ -204,7 +204,7 @@ The result is two-dimensional. The second dimension holds measurement times, i.e Namely, we have here the set of scales the transform has been computed for. If you're familiar with the Fourier Transform and its analogue, the spectrogram, you'll probably think in terms of time versus frequency. With wavelets, there is an additional parameter, the scale, that determines the spread of the analysis pattern. - + Some wavelets have both a scale and a frequency, in which case these can interact in complex ways. Others are defined such that no separate frequency appears. In the latter case, you immediately end up with the time vs. scale layout we see in wavelet diagrams (scaleograms). In the former, most software hides the complexity by merging scale and frequency into one, leaving just scale as a user-visible parameter. In `torchwavelets`, too, the wavelet frequency (if existent) has been "streamlined away". Consequently, we'll end up plotting time versus scale, as well. I'll say more when we actually see such a scaleogram. @@ -277,7 +277,7 @@ Summing up, the two-dimensional analysis nicely complements the more compressed In a nutshell, the spectrogram splits the data into several "windows", and computes the DFT independently on all of them. To compute the scaleogram, on the other hand, the analysis wavelet slides continuously over the data, resulting in a spectrum-equivalent for the neighborhood of each sample in the series. With the spectrogram, a fixed window size means that not all frequencies are resolved equally well: The higher frequencies appear more frequently in the interval than the lower ones, and thus, will allow for better resolution. Wavelet analysis, in contrast, is done on a set of scales deliberately arranged so as to capture a broad range of frequencies theoretically visible in a series of given length. - + ## Analysis: NAO diff --git a/content/blog/ai/2023-01-19-torchwavelets/index.md b/content/blog/ported/ai/2023-01-19-torchwavelets/index.md similarity index 98% rename from content/blog/ai/2023-01-19-torchwavelets/index.md rename to content/blog/ported/ai/2023-01-19-torchwavelets/index.md index da4123954..248fa8210 100644 --- a/content/blog/ai/2023-01-19-torchwavelets/index.md +++ b/content/blog/ported/ai/2023-01-19-torchwavelets/index.md @@ -33,7 +33,7 @@ tags: -Recently, we showed how to use `torch` for [wavelet analysis](/blog/ai/2022-10-27-wavelets/). A member of the family of spectral analysis methods, wavelet analysis bears some similarity to the Fourier Transform, and specifically, to its popular two-dimensional application, the spectrogram. +Recently, we showed how to use `torch` for [wavelet analysis](/blog/2022-10-27_keydanatorchwavelets/). A member of the family of spectral analysis methods, wavelet analysis bears some similarity to the Fourier Transform, and specifically, to its popular two-dimensional application, the spectrogram. As explained in that book excerpt, though, there are significant differences. For the purposes of the current post, it suffices to know that frequency-domain patterns are discovered by having a little "wave" (that, really, can be of any shape) "slide" over the data, computing degree of match (or mismatch) in the neighborhood of every sample. @@ -209,7 +209,7 @@ The result is two-dimensional. The second dimension holds measurement times, i.e Namely, we have here the set of scales the transform has been computed for. If you're familiar with the Fourier Transform and its analogue, the spectrogram, you'll probably think in terms of time versus frequency. With wavelets, there is an additional parameter, the scale, that determines the spread of the analysis pattern. Some wavelets have both a scale and a frequency, in which case these can interact in complex ways. Others are defined such that no separate frequency appears. In the latter case, you immediately end up with the time vs. scale layout we see in wavelet diagrams (scaleograms). In the former, most software hides the complexity by merging scale and frequency into one, leaving just scale as a user-visible parameter. In `torchwavelets`, too, the wavelet frequency (if existent) has been "streamlined away". Consequently, we'll end up plotting time versus scale, as well. I'll say more when we actually see such a scaleogram. @@ -287,7 +287,7 @@ Summing up, the two-dimensional analysis nicely complements the more compressed In a nutshell, the spectrogram splits the data into several "windows", and computes the DFT independently on all of them. To compute the scaleogram, on the other hand, the analysis wavelet slides continuously over the data, resulting in a spectrum-equivalent for the neighborhood of each sample in the series. With the spectrogram, a fixed window size means that not all frequencies are resolved equally well: The higher frequencies appear more frequently in the interval than the lower ones, and thus, will allow for better resolution. Wavelet analysis, in contrast, is done on a set of scales deliberately arranged so as to capture a broad range of frequencies theoretically visible in a series of given length. ## Analysis: NAO diff --git a/content/blog/ai/2023-01-19-torchwavelets/thumbnail.jpg b/content/blog/ported/ai/2023-01-19-torchwavelets/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-01-19-torchwavelets/thumbnail.jpg rename to content/blog/ported/ai/2023-01-19-torchwavelets/thumbnail.jpg diff --git a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/preview.jpg b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/preview.jpg similarity index 100% rename from content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/preview.jpg rename to content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/preview.jpg diff --git a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/sphere.png b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/sphere.png similarity index 100% rename from content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/sphere.png rename to content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/sphere.png diff --git a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/square1.png b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/square1.png similarity index 100% rename from content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/square1.png rename to content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/square1.png diff --git a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/square2.png b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/square2.png similarity index 100% rename from content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/square2.png rename to content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/square2.png diff --git a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/square3.png b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/square3.png similarity index 100% rename from content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/square3.png rename to content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/square3.png diff --git a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/square4.png b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/square4.png similarity index 100% rename from content/blog/ai/2023-03-09-group-equivariant-cnn-1/images/square4.png rename to content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/images/square4.png diff --git a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/index.Rmd b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/index.Rmd similarity index 98% rename from content/blog/ai/2023-03-09-group-equivariant-cnn-1/index.Rmd rename to content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/index.Rmd index 4befb4086..fe1160b05 100644 --- a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/index.Rmd +++ b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/index.Rmd @@ -31,7 +31,7 @@ tags: knitr::opts_chunk$set(echo = TRUE, eval = FALSE, fig.width = 6, fig.height = 6) ``` -This is the first in a series of posts on group-equivariant convolutional neural networks (GCNNs). Today, we keep it short, high-level, and conceptual; examples and implementations will follow. In looking at GCNNs, we are resuming a topic we first [wrote about](/blog/ai/2021-08-26-geometric-deep-learning/) in 2021: [Geometric Deep Learning](https://geometricdeeplearning.com/), a principled, math-driven approach to network design that, since then, has only risen in scope and impact. +This is the first in a series of posts on group-equivariant convolutional neural networks (GCNNs). Today, we keep it short, high-level, and conceptual; examples and implementations will follow. In looking at GCNNs, we are resuming a topic we first [wrote about](/blog/2021-08-26_keydanageometricdl/) in 2021: [Geometric Deep Learning](https://geometricdeeplearning.com/), a principled, math-driven approach to network design that, since then, has only risen in scope and impact. ## From alchemy to science: Geometric Deep Learning in two minutes diff --git a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/index.md b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/index.md similarity index 98% rename from content/blog/ai/2023-03-09-group-equivariant-cnn-1/index.md rename to content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/index.md index 9159282b2..d472be6b6 100644 --- a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/index.md +++ b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/index.md @@ -35,7 +35,7 @@ math: true -This is the first in a series of posts on group-equivariant convolutional neural networks (GCNNs). Today, we keep it short, high-level, and conceptual; examples and implementations will follow. In looking at GCNNs, we are resuming a topic we first [wrote about](/blog/ai/2021-08-26-geometric-deep-learning/) in 2021: [Geometric Deep Learning](https://geometricdeeplearning.com/), a principled, math-driven approach to network design that, since then, has only risen in scope and impact. +This is the first in a series of posts on group-equivariant convolutional neural networks (GCNNs). Today, we keep it short, high-level, and conceptual; examples and implementations will follow. In looking at GCNNs, we are resuming a topic we first [wrote about](/blog/2021-08-26_keydanageometricdl/) in 2021: [Geometric Deep Learning](https://geometricdeeplearning.com/), a principled, math-driven approach to network design that, since then, has only risen in scope and impact. ## From alchemy to science: Geometric Deep Learning in two minutes diff --git a/content/blog/ai/2023-03-09-group-equivariant-cnn-1/thumbnail.jpg b/content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-03-09-group-equivariant-cnn-1/thumbnail.jpg rename to content/blog/ported/ai/2023-03-09-group-equivariant-cnn-1/thumbnail.jpg diff --git a/content/blog/ai/2023-03-27-group-equivariant-cnn-2/images/preview.jpg b/content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/images/preview.jpg similarity index 100% rename from content/blog/ai/2023-03-27-group-equivariant-cnn-2/images/preview.jpg rename to content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/images/preview.jpg diff --git a/content/blog/ai/2023-03-27-group-equivariant-cnn-2/images/rotated-mnist.png b/content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/images/rotated-mnist.png similarity index 100% rename from content/blog/ai/2023-03-27-group-equivariant-cnn-2/images/rotated-mnist.png rename to content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/images/rotated-mnist.png diff --git a/content/blog/ai/2023-03-27-group-equivariant-cnn-2/images/z.jpg b/content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/images/z.jpg similarity index 100% rename from content/blog/ai/2023-03-27-group-equivariant-cnn-2/images/z.jpg rename to content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/images/z.jpg diff --git a/content/blog/ai/2023-03-27-group-equivariant-cnn-2/images/z2.jpg b/content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/images/z2.jpg similarity index 100% rename from content/blog/ai/2023-03-27-group-equivariant-cnn-2/images/z2.jpg rename to content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/images/z2.jpg diff --git a/content/blog/ai/2023-03-27-group-equivariant-cnn-2/index.Rmd b/content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/index.Rmd similarity index 97% rename from content/blog/ai/2023-03-27-group-equivariant-cnn-2/index.Rmd rename to content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/index.Rmd index 5dcacc608..9703194c5 100644 --- a/content/blog/ai/2023-03-27-group-equivariant-cnn-2/index.Rmd +++ b/content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/index.Rmd @@ -33,7 +33,7 @@ knitr::opts_chunk$set(echo = TRUE, eval = FALSE, fig.width = 6, fig.height = 6) Convolutional neural networks (CNNs) are great -- they're able to detect features in an image no matter where. Well, not exactly. They're not indifferent to just any kind of movement. Shifting up or down, or left or right, is fine; rotating around an axis is not. That's because of how convolution works: traverse by row, then traverse by column (or the other way round). If we want "more" (e.g., successful detection of an upside-down object), we need to extend convolution to an operation that is *rotation-equivariant*. An operation that is *equivariant* to some type of action will not only register the moved feature per se, but also, keep track of which concrete action made it appear where it is. -**This is the second post in a series that introduces group-equivariant CNNs (GCNNs)***.* The [first](/blog/ai/2023-03-09-group-equivariant-cnn-1/) was a high-level introduction to why we'd want them, and how they work. There, we introduced the key player, the symmetry group, which specifies what kinds of transformations are to be treated equivariantly. If you haven't, please take a look at that post first, since here I'll make use of terminology and concepts it introduced. +**This is the second post in a series that introduces group-equivariant CNNs (GCNNs)***.* The [first](/blog/2023-03-09_keydanagcnn1/) was a high-level introduction to why we'd want them, and how they work. There, we introduced the key player, the symmetry group, which specifies what kinds of transformations are to be treated equivariantly. If you haven't, please take a look at that post first, since here I'll make use of terminology and concepts it introduced. Today, we code a simple GCNN from scratch. Code and presentation tightly follow a [notebook](https://github.com/phlippe/uvadlc_notebooks/blob/master/docs/tutorial_notebooks/DL2/Geometric_deep_learning/tutorial1_regular_group_convolutions.ipynb) provided as part of University of Amsterdam's 2022 [Deep Learning Course](https://uvadl2c.github.io/). They can't be thanked enough for making available such excellent learning materials. diff --git a/content/blog/ai/2023-03-27-group-equivariant-cnn-2/index.md b/content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/index.md similarity index 97% rename from content/blog/ai/2023-03-27-group-equivariant-cnn-2/index.md rename to content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/index.md index 22893242e..1f4b4d2e4 100644 --- a/content/blog/ai/2023-03-27-group-equivariant-cnn-2/index.md +++ b/content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/index.md @@ -36,7 +36,7 @@ math: true Convolutional neural networks (CNNs) are great -- they're able to detect features in an image no matter where. Well, not exactly. They're not indifferent to just any kind of movement. Shifting up or down, or left or right, is fine; rotating around an axis is not. That's because of how convolution works: traverse by row, then traverse by column (or the other way round). If we want "more" (e.g., successful detection of an upside-down object), we need to extend convolution to an operation that is *rotation-equivariant*. An operation that is *equivariant* to some type of action will not only register the moved feature per se, but also, keep track of which concrete action made it appear where it is. -**This is the second post in a series that introduces group-equivariant CNNs (GCNNs)***.* The [first](/blog/ai/2023-03-09-group-equivariant-cnn-1/) was a high-level introduction to why we'd want them, and how they work. There, we introduced the key player, the symmetry group, which specifies what kinds of transformations are to be treated equivariantly. If you haven't, please take a look at that post first, since here I'll make use of terminology and concepts it introduced. +**This is the second post in a series that introduces group-equivariant CNNs (GCNNs)***.* The [first](/blog/2023-03-09_keydanagcnn1/) was a high-level introduction to why we'd want them, and how they work. There, we introduced the key player, the symmetry group, which specifies what kinds of transformations are to be treated equivariantly. If you haven't, please take a look at that post first, since here I'll make use of terminology and concepts it introduced. Today, we code a simple GCNN from scratch. Code and presentation tightly follow a [notebook](https://github.com/phlippe/uvadlc_notebooks/blob/master/docs/tutorial_notebooks/DL2/Geometric_deep_learning/tutorial1_regular_group_convolutions.ipynb) provided as part of University of Amsterdam's 2022 [Deep Learning Course](https://uvadl2c.github.io/). They can't be thanked enough for making available such excellent learning materials. diff --git a/content/blog/ai/2023-03-27-group-equivariant-cnn-2/thumbnail.jpg b/content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-03-27-group-equivariant-cnn-2/thumbnail.jpg rename to content/blog/ported/ai/2023-03-27-group-equivariant-cnn-2/thumbnail.jpg diff --git a/content/blog/ai/2023-04-05-deep-learning-scientific-computing-R-torch/images/book.jpg b/content/blog/ported/ai/2023-04-05-deep-learning-scientific-computing-R-torch/images/book.jpg similarity index 100% rename from content/blog/ai/2023-04-05-deep-learning-scientific-computing-R-torch/images/book.jpg rename to content/blog/ported/ai/2023-04-05-deep-learning-scientific-computing-R-torch/images/book.jpg diff --git a/content/blog/ai/2023-04-05-deep-learning-scientific-computing-R-torch/images/squirrel.png b/content/blog/ported/ai/2023-04-05-deep-learning-scientific-computing-R-torch/images/squirrel.png similarity index 100% rename from content/blog/ai/2023-04-05-deep-learning-scientific-computing-R-torch/images/squirrel.png rename to content/blog/ported/ai/2023-04-05-deep-learning-scientific-computing-R-torch/images/squirrel.png diff --git a/content/blog/ai/2023-04-05-deep-learning-scientific-computing-R-torch/index.Rmd b/content/blog/ported/ai/2023-04-05-deep-learning-scientific-computing-R-torch/index.Rmd similarity index 100% rename from content/blog/ai/2023-04-05-deep-learning-scientific-computing-R-torch/index.Rmd rename to content/blog/ported/ai/2023-04-05-deep-learning-scientific-computing-R-torch/index.Rmd diff --git a/content/blog/ai/2023-04-05-deep-learning-scientific-computing-R-torch/index.md b/content/blog/ported/ai/2023-04-05-deep-learning-scientific-computing-R-torch/index.md similarity index 100% rename from content/blog/ai/2023-04-05-deep-learning-scientific-computing-R-torch/index.md rename to content/blog/ported/ai/2023-04-05-deep-learning-scientific-computing-R-torch/index.md diff --git a/content/blog/ai/2023-04-05-deep-learning-scientific-computing-R-torch/thumbnail.jpg b/content/blog/ported/ai/2023-04-05-deep-learning-scientific-computing-R-torch/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-04-05-deep-learning-scientific-computing-R-torch/thumbnail.jpg rename to content/blog/ported/ai/2023-04-05-deep-learning-scientific-computing-R-torch/thumbnail.jpg diff --git a/content/blog/ai/2023-04-13-denoising-diffusion/images/flowers.png b/content/blog/ported/ai/2023-04-13-denoising-diffusion/images/flowers.png similarity index 100% rename from content/blog/ai/2023-04-13-denoising-diffusion/images/flowers.png rename to content/blog/ported/ai/2023-04-13-denoising-diffusion/images/flowers.png diff --git a/content/blog/ai/2023-04-13-denoising-diffusion/images/forward.png b/content/blog/ported/ai/2023-04-13-denoising-diffusion/images/forward.png similarity index 100% rename from content/blog/ai/2023-04-13-denoising-diffusion/images/forward.png rename to content/blog/ported/ai/2023-04-13-denoising-diffusion/images/forward.png diff --git a/content/blog/ai/2023-04-13-denoising-diffusion/images/reverse.png b/content/blog/ported/ai/2023-04-13-denoising-diffusion/images/reverse.png similarity index 100% rename from content/blog/ai/2023-04-13-denoising-diffusion/images/reverse.png rename to content/blog/ported/ai/2023-04-13-denoising-diffusion/images/reverse.png diff --git a/content/blog/ai/2023-04-13-denoising-diffusion/index.Rmd b/content/blog/ported/ai/2023-04-13-denoising-diffusion/index.Rmd similarity index 100% rename from content/blog/ai/2023-04-13-denoising-diffusion/index.Rmd rename to content/blog/ported/ai/2023-04-13-denoising-diffusion/index.Rmd diff --git a/content/blog/ai/2023-04-13-denoising-diffusion/index.md b/content/blog/ported/ai/2023-04-13-denoising-diffusion/index.md similarity index 100% rename from content/blog/ai/2023-04-13-denoising-diffusion/index.md rename to content/blog/ported/ai/2023-04-13-denoising-diffusion/index.md diff --git a/content/blog/ai/2023-04-13-denoising-diffusion/references.bib b/content/blog/ported/ai/2023-04-13-denoising-diffusion/references.bib similarity index 100% rename from content/blog/ai/2023-04-13-denoising-diffusion/references.bib rename to content/blog/ported/ai/2023-04-13-denoising-diffusion/references.bib diff --git a/content/blog/ai/2023-04-13-denoising-diffusion/thumbnail.png b/content/blog/ported/ai/2023-04-13-denoising-diffusion/thumbnail.png similarity index 100% rename from content/blog/ai/2023-04-13-denoising-diffusion/thumbnail.png rename to content/blog/ported/ai/2023-04-13-denoising-diffusion/thumbnail.png diff --git a/content/blog/ai/2023-04-14-torch-0-10/images/colab.png b/content/blog/ported/ai/2023-04-14-torch-0-10/images/colab.png similarity index 100% rename from content/blog/ai/2023-04-14-torch-0-10/images/colab.png rename to content/blog/ported/ai/2023-04-14-torch-0-10/images/colab.png diff --git a/content/blog/ai/2023-04-14-torch-0-10/images/torch.png b/content/blog/ported/ai/2023-04-14-torch-0-10/images/torch.png similarity index 100% rename from content/blog/ai/2023-04-14-torch-0-10/images/torch.png rename to content/blog/ported/ai/2023-04-14-torch-0-10/images/torch.png diff --git a/content/blog/ai/2023-04-14-torch-0-10/index.Rmd b/content/blog/ported/ai/2023-04-14-torch-0-10/index.Rmd similarity index 97% rename from content/blog/ai/2023-04-14-torch-0-10/index.Rmd rename to content/blog/ported/ai/2023-04-14-torch-0-10/index.Rmd index 3a1b9ad84..5d5685eff 100644 --- a/content/blog/ai/2023-04-14-torch-0-10/index.Rmd +++ b/content/blog/ported/ai/2023-04-14-torch-0-10/index.Rmd @@ -162,7 +162,7 @@ using environment variables, see `help(install_torch)` for more information. Thank you to all contributors to the torch ecosystem. This work would not be possible without all the helpful issues opened, PRs you created and your hard work. -If you are new to torch and want to learn more, we highly recommend the [recently announced](/blog/ai/2023-04-05-deep-learning-scientific-computing-r-torch/) book 'Deep Learning and Scientific Computing with R `torch`'. +If you are new to torch and want to learn more, we highly recommend the [recently announced](https://skeydan.github.io/Deep-Learning-and-Scientific-Computing-with-R-torch/) book 'Deep Learning and Scientific Computing with R `torch`'. If you want to start contributing to torch, feel free to reach out on GitHub and see our [contributing guide](https://torch.mlverse.org/docs/contributing). diff --git a/content/blog/ai/2023-04-14-torch-0-10/index.md b/content/blog/ported/ai/2023-04-14-torch-0-10/index.md similarity index 97% rename from content/blog/ai/2023-04-14-torch-0-10/index.md rename to content/blog/ported/ai/2023-04-14-torch-0-10/index.md index b661da5ef..8911945b2 100644 --- a/content/blog/ai/2023-04-14-torch-0-10/index.md +++ b/content/blog/ported/ai/2023-04-14-torch-0-10/index.md @@ -161,7 +161,7 @@ using environment variables, see `help(install_torch)` for more information. Thank you to all contributors to the torch ecosystem. This work would not be possible without all the helpful issues opened, PRs you created and your hard work. -If you are new to torch and want to learn more, we highly recommend the [recently announced](/blog/ai/2023-04-05-deep-learning-scientific-computing-r-torch/) book 'Deep Learning and Scientific Computing with R `torch`'. +If you are new to torch and want to learn more, we highly recommend the [recently announced](https://skeydan.github.io/Deep-Learning-and-Scientific-Computing-with-R-torch/) book 'Deep Learning and Scientific Computing with R `torch`'. If you want to start contributing to torch, feel free to reach out on GitHub and see our [contributing guide](https://torch.mlverse.org/docs/contributing). diff --git a/content/blog/ai/2023-04-14-torch-0-10/thumbnail.png b/content/blog/ported/ai/2023-04-14-torch-0-10/thumbnail.png similarity index 100% rename from content/blog/ai/2023-04-14-torch-0-10/thumbnail.png rename to content/blog/ported/ai/2023-04-14-torch-0-10/thumbnail.png diff --git a/content/blog/ai/2023-04-17-luz-0-4/images/luz.jpg b/content/blog/ported/ai/2023-04-17-luz-0-4/images/luz.jpg similarity index 100% rename from content/blog/ai/2023-04-17-luz-0-4/images/luz.jpg rename to content/blog/ported/ai/2023-04-17-luz-0-4/images/luz.jpg diff --git a/content/blog/ai/2023-04-17-luz-0-4/images/luz.jpg.original b/content/blog/ported/ai/2023-04-17-luz-0-4/images/luz.jpg.original similarity index 100% rename from content/blog/ai/2023-04-17-luz-0-4/images/luz.jpg.original rename to content/blog/ported/ai/2023-04-17-luz-0-4/images/luz.jpg.original diff --git a/content/blog/ai/2023-04-17-luz-0-4/index.Rmd b/content/blog/ported/ai/2023-04-17-luz-0-4/index.Rmd similarity index 87% rename from content/blog/ai/2023-04-17-luz-0-4/index.Rmd rename to content/blog/ported/ai/2023-04-17-luz-0-4/index.Rmd index bcf99fb45..01c7a479f 100644 --- a/content/blog/ai/2023-04-17-luz-0-4/index.Rmd +++ b/content/blog/ported/ai/2023-04-17-luz-0-4/index.Rmd @@ -33,13 +33,13 @@ A new version of luz is now available on CRAN. luz is a high-level interface for so you can adapt it to run all kinds of deep learning models. If you want to get started with luz we recommend reading the -[previous release blog post](/blog/ai/2022-08-24-luz-0-3/#whats-luz) as well as the ['Training with luz'](https://skeydan.github.io/Deep-Learning-and-Scientific-Computing-with-R-torch/training_with_luz.html) chapter of the ['Deep Learning and Scientific Computing with R torch'](/blog/ai/2023-04-05-deep-learning-scientific-computing-r-torch/) book. +[previous release blog post](/blog/2022-08-24_luz-0-3-0/#whats-luz) as well as the ['Training with luz'](https://skeydan.github.io/Deep-Learning-and-Scientific-Computing-with-R-torch/training_with_luz.html) chapter of the ['Deep Learning and Scientific Computing with R torch'](https://skeydan.github.io/Deep-Learning-and-Scientific-Computing-with-R-torch/) book. This release adds numerous smaller features, and you can check the full changelog [here](https://mlverse.github.io/luz/news/index.html). In this blog post we highlight the features we are most excited for. ## Support for Apple Silicon -Since [torch v0.9.0](/blog/ai/2022-10-25-torch-0-9/#support-for-apple-silicon), it's possible to run computations on the GPU of Apple Silicon equipped Macs. luz wouldn't automatically make use of the GPUs though, and instead used to run the models on CPU. +Since [torch v0.9.0](/blog/2022-10-25_torch-0-9-0/#support-for-apple-silicon), it's possible to run computations on the GPU of Apple Silicon equipped Macs. luz wouldn't automatically make use of the GPUs though, and instead used to run the models on CPU. Starting from this release, luz will automatically use the 'mps' device when running models on Apple Silicon computers, and thus let you benefit from the speedups of running models on the GPU. @@ -120,7 +120,7 @@ This bugfix results in a 10x speedup for this model. However, the speedup may va Thank you very much for reading this blog post. As always, we welcome every contribution to the torch ecosystem. Feel free to open issues to suggest new features, improve documentation, or extend the code base. -Last week, we announced the torch v0.10.0 release -- here's a [link](/blog/ai/2023-04-14-torch-0-10/) to the release blog post, in case you missed it. +Last week, we announced the torch v0.10.0 release -- here's a [link](/blog/2023-04-14_torch-0-9-0/) to the release blog post, in case you missed it. Photo by Peter John Maridable on Unsplash diff --git a/content/blog/ai/2023-04-17-luz-0-4/index.md b/content/blog/ported/ai/2023-04-17-luz-0-4/index.md similarity index 86% rename from content/blog/ai/2023-04-17-luz-0-4/index.md rename to content/blog/ported/ai/2023-04-17-luz-0-4/index.md index bfa25c1d5..95fc730c3 100644 --- a/content/blog/ai/2023-04-17-luz-0-4/index.md +++ b/content/blog/ported/ai/2023-04-17-luz-0-4/index.md @@ -35,13 +35,13 @@ A new version of luz is now available on CRAN. luz is a high-level interface for so you can adapt it to run all kinds of deep learning models. If you want to get started with luz we recommend reading the -[previous release blog post](/blog/ai/2022-08-24-luz-0-3/#whats-luz) as well as the ['Training with luz'](https://skeydan.github.io/Deep-Learning-and-Scientific-Computing-with-R-torch/training_with_luz.html) chapter of the ['Deep Learning and Scientific Computing with R torch'](/blog/ai/2023-04-05-deep-learning-scientific-computing-r-torch/) book. +[previous release blog post](/blog/2022-08-24_luz-0-3-0/#whats-luz) as well as the ['Training with luz'](https://skeydan.github.io/Deep-Learning-and-Scientific-Computing-with-R-torch/training_with_luz.html) chapter of the ['Deep Learning and Scientific Computing with R torch'](https://skeydan.github.io/Deep-Learning-and-Scientific-Computing-with-R-torch/) book. This release adds numerous smaller features, and you can check the full changelog [here](https://mlverse.github.io/luz/news/index.html). In this blog post we highlight the features we are most excited for. ## Support for Apple Silicon -Since [torch v0.9.0](/blog/ai/2022-10-25-torch-0-9/#support-for-apple-silicon), it's possible to run computations on the GPU of Apple Silicon equipped Macs. luz wouldn't automatically make use of the GPUs though, and instead used to run the models on CPU. +Since [torch v0.9.0](/blog/2022-10-25_torch-0-9-0/#support-for-apple-silicon), it's possible to run computations on the GPU of Apple Silicon equipped Macs. luz wouldn't automatically make use of the GPUs though, and instead used to run the models on CPU. Starting from this release, luz will automatically use the 'mps' device when running models on Apple Silicon computers, and thus let you benefit from the speedups of running models on the GPU. @@ -112,6 +112,6 @@ This bugfix results in a 10x speedup for this model. However, the speedup may va Thank you very much for reading this blog post. As always, we welcome every contribution to the torch ecosystem. Feel free to open issues to suggest new features, improve documentation, or extend the code base. -Last week, we announced the torch v0.10.0 release -- here's a [link](/blog/ai/2023-04-14-torch-0-10/) to the release blog post, in case you missed it. +Last week, we announced the torch v0.10.0 release -- here's a [link](/blog/2023-04-14_torch-0-9-0/) to the release blog post, in case you missed it. Photo by Peter John Maridable on Unsplash diff --git a/content/blog/ai/2023-04-17-luz-0-4/thumbnail.jpg b/content/blog/ported/ai/2023-04-17-luz-0-4/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-04-17-luz-0-4/thumbnail.jpg rename to content/blog/ported/ai/2023-04-17-luz-0-4/thumbnail.jpg diff --git a/content/blog/ai/2023-04-17-luz-0-4/thumbnail.jpg.original b/content/blog/ported/ai/2023-04-17-luz-0-4/thumbnail.jpg.original similarity index 100% rename from content/blog/ai/2023-04-17-luz-0-4/thumbnail.jpg.original rename to content/blog/ported/ai/2023-04-17-luz-0-4/thumbnail.jpg.original diff --git a/content/blog/ai/2023-05-09-group-equivariant-cnn-3/images/preview.jpg b/content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/images/preview.jpg similarity index 100% rename from content/blog/ai/2023-05-09-group-equivariant-cnn-3/images/preview.jpg rename to content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/images/preview.jpg diff --git a/content/blog/ai/2023-05-09-group-equivariant-cnn-3/index.Rmd b/content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/index.Rmd similarity index 97% rename from content/blog/ai/2023-05-09-group-equivariant-cnn-3/index.Rmd rename to content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/index.Rmd index 557986aed..46630e412 100644 --- a/content/blog/ai/2023-05-09-group-equivariant-cnn-3/index.Rmd +++ b/content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/index.Rmd @@ -32,7 +32,7 @@ tags: knitr::opts_chunk$set(echo = TRUE, eval = FALSE, fig.width = 6, fig.height = 6) ``` -Today, we resume our exploration of group equivariance. This is the third post in the series. The [first](/blog/ai/2023-03-09-group-equivariant-cnn-1/) was a high-level introduction: what this is all about; how equivariance is operationalized; and why it is of relevance to many deep-learning applications. The [second](/blog/ai/2023-03-27-group-equivariant-cnn-2/) sought to concretize the key ideas by developing a group-equivariant CNN from scratch. That being instructive, but too tedious for practical use, today we look at a carefully designed, highly-performant [library](https://github.com/QUVA-Lab/escnn) that hides the technicalities and enables a convenient workflow. +Today, we resume our exploration of group equivariance. This is the third post in the series. The [first](/blog/2023-03-09_keydanagcnn1/) was a high-level introduction: what this is all about; how equivariance is operationalized; and why it is of relevance to many deep-learning applications. The [second](/blog/2023-03-27_keydanagcnn1/) sought to concretize the key ideas by developing a group-equivariant CNN from scratch. That being instructive, but too tedious for practical use, today we look at a carefully designed, highly-performant [library](https://github.com/QUVA-Lab/escnn) that hides the technicalities and enables a convenient workflow. First though, let me again set the context. In physics, an all-important concept is that of symmetry[^1], a symmetry being present whenever some quantity is being conserved. But we don't even need to look to science. Examples arise in daily life, and -- otherwise why write about it - in the tasks we apply deep learning to. @@ -105,7 +105,7 @@ py_list_attributes(gspaces) |> (\(vec) grep("On", vec, value = TRUE))() |> sort( The methods I've listed instantiate a `gspace`. If you look closely, you see that they're all composed of two strings, joined by "On". In all instances, the second part is either `R2` or `R3`. These two are the available base spaces -- $\mathbb{R}^2$ and $\mathbb{R}^3$ -- an input signal can live in. Signals can, thus, be images, made up of pixels, or three-dimensional volumes, composed of voxels. The first part refers to the group you'd like to use. Choosing a group means choosing the symmetries to be respected. For example, `rot2dOnR2()` implies equivariance as to rotations, `flip2dOnR2()` guarantees the same for mirroring actions, and `flipRot2dOnR2()` subsumes both. -Let's define such a `gspace`. Here we ask for rotation equivariance on the Euclidean plane, making use of the same cyclic group -- $C_4$ -- we developed in our [from-scratch implementation](/blog/ai/2023-03-27-group-equivariant-cnn-2/): +Let's define such a `gspace`. Here we ask for rotation equivariance on the Euclidean plane, making use of the same cyclic group -- $C_4$ -- we developed in our [from-scratch implementation](/blog/2023-03-27_keydanagcnn1/): ```{r} r2_act <- gspaces$rot2dOnR2(N = 4L) diff --git a/content/blog/ai/2023-05-09-group-equivariant-cnn-3/index.md b/content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/index.md similarity index 97% rename from content/blog/ai/2023-05-09-group-equivariant-cnn-3/index.md rename to content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/index.md index 0427168ce..faff80bc6 100644 --- a/content/blog/ai/2023-05-09-group-equivariant-cnn-3/index.md +++ b/content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/index.md @@ -34,7 +34,7 @@ math: true -Today, we resume our exploration of group equivariance. This is the third post in the series. The [first](/blog/ai/2023-03-09-group-equivariant-cnn-1/) was a high-level introduction: what this is all about; how equivariance is operationalized; and why it is of relevance to many deep-learning applications. The [second](/blog/ai/2023-03-27-group-equivariant-cnn-2/) sought to concretize the key ideas by developing a group-equivariant CNN from scratch. That being instructive, but too tedious for practical use, today we look at a carefully designed, highly-performant [library](https://github.com/QUVA-Lab/escnn) that hides the technicalities and enables a convenient workflow. +Today, we resume our exploration of group equivariance. This is the third post in the series. The [first](/blog/2023-03-09_keydanagcnn1/) was a high-level introduction: what this is all about; how equivariance is operationalized; and why it is of relevance to many deep-learning applications. The [second](/blog/2023-03-27_keydanagcnn1/) sought to concretize the key ideas by developing a group-equivariant CNN from scratch. That being instructive, but too tedious for practical use, today we look at a carefully designed, highly-performant [library](https://github.com/QUVA-Lab/escnn) that hides the technicalities and enables a convenient workflow. First though, let me again set the context. In physics, an all-important concept is that of symmetry[^1], a symmetry being present whenever some quantity is being conserved. But we don't even need to look to science. Examples arise in daily life, and -- otherwise why write about it - in the tasks we apply deep learning to. @@ -91,7 +91,7 @@ py_list_attributes(gspaces) |> (\(vec) grep("On", vec, value = TRUE))() |> sort( The methods I've listed instantiate a `gspace`. If you look closely, you see that they're all composed of two strings, joined by "On". In all instances, the second part is either `R2` or `R3`. These two are the available base spaces -- $\mathbb{R}^2$ and $\mathbb{R}^3$ -- an input signal can live in. Signals can, thus, be images, made up of pixels, or three-dimensional volumes, composed of voxels. The first part refers to the group you'd like to use. Choosing a group means choosing the symmetries to be respected. For example, `rot2dOnR2()` implies equivariance as to rotations, `flip2dOnR2()` guarantees the same for mirroring actions, and `flipRot2dOnR2()` subsumes both. -Let's define such a `gspace`. Here we ask for rotation equivariance on the Euclidean plane, making use of the same cyclic group -- $C_4$ -- we developed in our [from-scratch implementation](/blog/ai/2023-03-27-group-equivariant-cnn-2/): +Let's define such a `gspace`. Here we ask for rotation equivariance on the Euclidean plane, making use of the same cyclic group -- $C_4$ -- we developed in our [from-scratch implementation](/blog/2023-03-27_keydanagcnn1/): ``` r r2_act <- gspaces$rot2dOnR2(N = 4L) diff --git a/content/blog/ai/2023-05-09-group-equivariant-cnn-3/references.bib b/content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/references.bib similarity index 100% rename from content/blog/ai/2023-05-09-group-equivariant-cnn-3/references.bib rename to content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/references.bib diff --git a/content/blog/ai/2023-05-09-group-equivariant-cnn-3/thumbnail.jpg b/content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-05-09-group-equivariant-cnn-3/thumbnail.jpg rename to content/blog/ported/ai/2023-05-09-group-equivariant-cnn-3/thumbnail.jpg diff --git a/content/blog/ai/2023-05-25-llama-tensorflow-keras/images/preview.jpg b/content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/images/preview.jpg similarity index 100% rename from content/blog/ai/2023-05-25-llama-tensorflow-keras/images/preview.jpg rename to content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/images/preview.jpg diff --git a/content/blog/ai/2023-05-25-llama-tensorflow-keras/images/preview.jpg.original b/content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/images/preview.jpg.original similarity index 100% rename from content/blog/ai/2023-05-25-llama-tensorflow-keras/images/preview.jpg.original rename to content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/images/preview.jpg.original diff --git a/content/blog/ai/2023-05-25-llama-tensorflow-keras/index.Rmd b/content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/index.Rmd similarity index 100% rename from content/blog/ai/2023-05-25-llama-tensorflow-keras/index.Rmd rename to content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/index.Rmd diff --git a/content/blog/ai/2023-05-25-llama-tensorflow-keras/index.md b/content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/index.md similarity index 100% rename from content/blog/ai/2023-05-25-llama-tensorflow-keras/index.md rename to content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/index.md diff --git a/content/blog/ai/2023-05-25-llama-tensorflow-keras/references.bib b/content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/references.bib similarity index 100% rename from content/blog/ai/2023-05-25-llama-tensorflow-keras/references.bib rename to content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/references.bib diff --git a/content/blog/ai/2023-05-25-llama-tensorflow-keras/thumbnail.jpg b/content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-05-25-llama-tensorflow-keras/thumbnail.jpg rename to content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/thumbnail.jpg diff --git a/content/blog/ai/2023-05-25-llama-tensorflow-keras/thumbnail.jpg.original b/content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/thumbnail.jpg.original similarity index 100% rename from content/blog/ai/2023-05-25-llama-tensorflow-keras/thumbnail.jpg.original rename to content/blog/ported/ai/2023-05-25-llama-tensorflow-keras/thumbnail.jpg.original diff --git a/content/blog/ai/2023-06-07-torch-0-11/images/ian-schneider-PAykYb-8Er8-unsplash.jpg b/content/blog/ported/ai/2023-06-07-torch-0-11/images/ian-schneider-PAykYb-8Er8-unsplash.jpg similarity index 100% rename from content/blog/ai/2023-06-07-torch-0-11/images/ian-schneider-PAykYb-8Er8-unsplash.jpg rename to content/blog/ported/ai/2023-06-07-torch-0-11/images/ian-schneider-PAykYb-8Er8-unsplash.jpg diff --git a/content/blog/ai/2023-06-07-torch-0-11/images/ian-schneider-PAykYb-8Er8-unsplash.jpg.original b/content/blog/ported/ai/2023-06-07-torch-0-11/images/ian-schneider-PAykYb-8Er8-unsplash.jpg.original similarity index 100% rename from content/blog/ai/2023-06-07-torch-0-11/images/ian-schneider-PAykYb-8Er8-unsplash.jpg.original rename to content/blog/ported/ai/2023-06-07-torch-0-11/images/ian-schneider-PAykYb-8Er8-unsplash.jpg.original diff --git a/content/blog/ai/2023-06-07-torch-0-11/index.Rmd b/content/blog/ported/ai/2023-06-07-torch-0-11/index.Rmd similarity index 96% rename from content/blog/ai/2023-06-07-torch-0-11/index.Rmd rename to content/blog/ported/ai/2023-06-07-torch-0-11/index.Rmd index f4cc7f3fb..f5dfaf425 100644 --- a/content/blog/ai/2023-06-07-torch-0-11/index.Rmd +++ b/content/blog/ported/ai/2023-06-07-torch-0-11/index.Rmd @@ -83,7 +83,7 @@ Meaning that we went from minutes to just a few seconds. One of the most common ways of extending LibTorch/PyTorch is by implementing JIT operations. This allows developers to write custom, optimized code in C++ and use it directly in PyTorch, with full support for JIT tracing and scripting. -See our ['Torch outside the box'](/blog/ai/2022-04-27-torch-outside-the-box/) +See our ['Torch outside the box'](/blog/2022-04-27_keydanatorchoutbox/) blog post if you want to learn more about it. Using JIT operators in R used to require package developers to implement C++/Rcpp @@ -174,7 +174,7 @@ This release also adds many small improvements that make torch more intuitive: Thank you to all contributors to the torch ecosystem. This work would not be possible without all the helpful issues opened, PRs you created, and your hard work. -If you are new to torch and want to learn more, we highly recommend the [recently announced](/blog/ai/2023-04-05-deep-learning-scientific-computing-r-torch/) book 'Deep Learning and Scientific Computing with R `torch`'. +If you are new to torch and want to learn more, we highly recommend the [recently announced](https://skeydan.github.io/Deep-Learning-and-Scientific-Computing-with-R-torch/) book 'Deep Learning and Scientific Computing with R `torch`'. If you want to start contributing to torch, feel free to reach out on GitHub and see our [contributing guide](https://torch.mlverse.org/docs/contributing). diff --git a/content/blog/ai/2023-06-07-torch-0-11/index.md b/content/blog/ported/ai/2023-06-07-torch-0-11/index.md similarity index 96% rename from content/blog/ai/2023-06-07-torch-0-11/index.md rename to content/blog/ported/ai/2023-06-07-torch-0-11/index.md index f434f8c5d..6a101a4e9 100644 --- a/content/blog/ai/2023-06-07-torch-0-11/index.md +++ b/content/blog/ported/ai/2023-06-07-torch-0-11/index.md @@ -77,7 +77,7 @@ Meaning that we went from minutes to just a few seconds. One of the most common ways of extending LibTorch/PyTorch is by implementing JIT operations. This allows developers to write custom, optimized code in C++ and use it directly in PyTorch, with full support for JIT tracing and scripting. -See our ['Torch outside the box'](/blog/ai/2022-04-27-torch-outside-the-box/) +See our ['Torch outside the box'](/blog/2022-04-27_keydanatorchoutbox/) blog post if you want to learn more about it. Using JIT operators in R used to require package developers to implement C++/Rcpp @@ -161,7 +161,7 @@ This release also adds many small improvements that make torch more intuitive: Thank you to all contributors to the torch ecosystem. This work would not be possible without all the helpful issues opened, PRs you created, and your hard work. -If you are new to torch and want to learn more, we highly recommend the [recently announced](/blog/ai/2023-04-05-deep-learning-scientific-computing-r-torch/) book 'Deep Learning and Scientific Computing with R `torch`'. +If you are new to torch and want to learn more, we highly recommend the [recently announced](https://skeydan.github.io/Deep-Learning-and-Scientific-Computing-with-R-torch/) book 'Deep Learning and Scientific Computing with R `torch`'. If you want to start contributing to torch, feel free to reach out on GitHub and see our [contributing guide](https://torch.mlverse.org/docs/contributing). diff --git a/content/blog/ai/2023-06-07-torch-0-11/thumbnail.jpg b/content/blog/ported/ai/2023-06-07-torch-0-11/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-06-07-torch-0-11/thumbnail.jpg rename to content/blog/ported/ai/2023-06-07-torch-0-11/thumbnail.jpg diff --git a/content/blog/ai/2023-06-07-torch-0-11/thumbnail.jpg.original b/content/blog/ported/ai/2023-06-07-torch-0-11/thumbnail.jpg.original similarity index 100% rename from content/blog/ai/2023-06-07-torch-0-11/thumbnail.jpg.original rename to content/blog/ported/ai/2023-06-07-torch-0-11/thumbnail.jpg.original diff --git a/content/blog/ai/2023-06-15-safetensors/images/nick-fewings-4pZu15OeTXA-unsplash.jpg b/content/blog/ported/ai/2023-06-15-safetensors/images/nick-fewings-4pZu15OeTXA-unsplash.jpg similarity index 100% rename from content/blog/ai/2023-06-15-safetensors/images/nick-fewings-4pZu15OeTXA-unsplash.jpg rename to content/blog/ported/ai/2023-06-15-safetensors/images/nick-fewings-4pZu15OeTXA-unsplash.jpg diff --git a/content/blog/ai/2023-06-15-safetensors/images/nick-fewings-4pZu15OeTXA-unsplash.jpg.original b/content/blog/ported/ai/2023-06-15-safetensors/images/nick-fewings-4pZu15OeTXA-unsplash.jpg.original similarity index 100% rename from content/blog/ai/2023-06-15-safetensors/images/nick-fewings-4pZu15OeTXA-unsplash.jpg.original rename to content/blog/ported/ai/2023-06-15-safetensors/images/nick-fewings-4pZu15OeTXA-unsplash.jpg.original diff --git a/content/blog/ai/2023-06-15-safetensors/images/safetensors-format.svg b/content/blog/ported/ai/2023-06-15-safetensors/images/safetensors-format.svg similarity index 100% rename from content/blog/ai/2023-06-15-safetensors/images/safetensors-format.svg rename to content/blog/ported/ai/2023-06-15-safetensors/images/safetensors-format.svg diff --git a/content/blog/ai/2023-06-15-safetensors/index.Rmd b/content/blog/ported/ai/2023-06-15-safetensors/index.Rmd similarity index 100% rename from content/blog/ai/2023-06-15-safetensors/index.Rmd rename to content/blog/ported/ai/2023-06-15-safetensors/index.Rmd diff --git a/content/blog/ai/2023-06-15-safetensors/index.md b/content/blog/ported/ai/2023-06-15-safetensors/index.md similarity index 100% rename from content/blog/ai/2023-06-15-safetensors/index.md rename to content/blog/ported/ai/2023-06-15-safetensors/index.md diff --git a/content/blog/ai/2023-06-15-safetensors/thumbnail.jpg b/content/blog/ported/ai/2023-06-15-safetensors/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-06-15-safetensors/thumbnail.jpg rename to content/blog/ported/ai/2023-06-15-safetensors/thumbnail.jpg diff --git a/content/blog/ai/2023-06-15-safetensors/thumbnail.jpg.original b/content/blog/ported/ai/2023-06-15-safetensors/thumbnail.jpg.original similarity index 100% rename from content/blog/ai/2023-06-15-safetensors/thumbnail.jpg.original rename to content/blog/ported/ai/2023-06-15-safetensors/thumbnail.jpg.original diff --git a/content/blog/ai/2023-06-20-gpt2-torch/images/preview.jpg b/content/blog/ported/ai/2023-06-20-gpt2-torch/images/preview.jpg similarity index 100% rename from content/blog/ai/2023-06-20-gpt2-torch/images/preview.jpg rename to content/blog/ported/ai/2023-06-20-gpt2-torch/images/preview.jpg diff --git a/content/blog/ai/2023-06-20-gpt2-torch/images/transformer.png b/content/blog/ported/ai/2023-06-20-gpt2-torch/images/transformer.png similarity index 100% rename from content/blog/ai/2023-06-20-gpt2-torch/images/transformer.png rename to content/blog/ported/ai/2023-06-20-gpt2-torch/images/transformer.png diff --git a/content/blog/ai/2023-06-20-gpt2-torch/index.Rmd b/content/blog/ported/ai/2023-06-20-gpt2-torch/index.Rmd similarity index 98% rename from content/blog/ai/2023-06-20-gpt2-torch/index.Rmd rename to content/blog/ported/ai/2023-06-20-gpt2-torch/index.Rmd index d049d903f..41c2851e4 100644 --- a/content/blog/ai/2023-06-20-gpt2-torch/index.Rmd +++ b/content/blog/ported/ai/2023-06-20-gpt2-torch/index.Rmd @@ -30,7 +30,7 @@ tags: knitr::opts_chunk$set(echo = TRUE, eval = FALSE, fig.width = 6, fig.height = 6) ``` -Whatever your take on Large Language Models (LLMs) -- are they beneficial? dangerous? a short-lived fashion, like crypto? -- they are *here*, *now*. And that means, it is a good thing to know (at a level one needs to decide for oneself) how they work. On this same day, I am publishing [What are Large Language Models? What are they not?](/blog/ai/2023-06-20-llm-intro), intended for a more general audience. In this post, I'd like to address deep learning practitioners, walking through a `torch` implementation of GPT-2 [@Radford2019LanguageMA], the second in OpenAI's succession of ever-larger models trained on ever-more-vast text corpora. You'll see that a complete model implementation fits in fewer than 250 lines of R code. +Whatever your take on Large Language Models (LLMs) -- are they beneficial? dangerous? a short-lived fashion, like crypto? -- they are *here*, *now*. And that means, it is a good thing to know (at a level one needs to decide for oneself) how they work. On this same day, I am publishing [What are Large Language Models? What are they not?](/blog/2023-06-20_keydanallm/), intended for a more general audience. In this post, I'd like to address deep learning practitioners, walking through a `torch` implementation of GPT-2 [@Radford2019LanguageMA], the second in OpenAI's succession of ever-larger models trained on ever-more-vast text corpora. You'll see that a complete model implementation fits in fewer than 250 lines of R code. ## Sources, resources diff --git a/content/blog/ai/2023-06-20-gpt2-torch/index.md b/content/blog/ported/ai/2023-06-20-gpt2-torch/index.md similarity index 98% rename from content/blog/ai/2023-06-20-gpt2-torch/index.md rename to content/blog/ported/ai/2023-06-20-gpt2-torch/index.md index 1985b9666..846512d52 100644 --- a/content/blog/ai/2023-06-20-gpt2-torch/index.md +++ b/content/blog/ported/ai/2023-06-20-gpt2-torch/index.md @@ -31,7 +31,7 @@ tags: -Whatever your take on Large Language Models (LLMs) -- are they beneficial? dangerous? a short-lived fashion, like crypto? -- they are *here*, *now*. And that means, it is a good thing to know (at a level one needs to decide for oneself) how they work. On this same day, I am publishing [What are Large Language Models? What are they not?](/blog/ai/2023-06-20-llm-intro), intended for a more general audience. In this post, I'd like to address deep learning practitioners, walking through a `torch` implementation of GPT-2 (Radford et al. 2019), the second in OpenAI's succession of ever-larger models trained on ever-more-vast text corpora. You'll see that a complete model implementation fits in fewer than 250 lines of R code. +Whatever your take on Large Language Models (LLMs) -- are they beneficial? dangerous? a short-lived fashion, like crypto? -- they are *here*, *now*. And that means, it is a good thing to know (at a level one needs to decide for oneself) how they work. On this same day, I am publishing [What are Large Language Models? What are they not?](/blog/2023-06-20_keydanallm/), intended for a more general audience. In this post, I'd like to address deep learning practitioners, walking through a `torch` implementation of GPT-2 (Radford et al. 2019), the second in OpenAI's succession of ever-larger models trained on ever-more-vast text corpora. You'll see that a complete model implementation fits in fewer than 250 lines of R code. ## Sources, resources diff --git a/content/blog/ai/2023-06-20-gpt2-torch/references.bib b/content/blog/ported/ai/2023-06-20-gpt2-torch/references.bib similarity index 100% rename from content/blog/ai/2023-06-20-gpt2-torch/references.bib rename to content/blog/ported/ai/2023-06-20-gpt2-torch/references.bib diff --git a/content/blog/ai/2023-06-20-gpt2-torch/thumbnail.jpg b/content/blog/ported/ai/2023-06-20-gpt2-torch/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-06-20-gpt2-torch/thumbnail.jpg rename to content/blog/ported/ai/2023-06-20-gpt2-torch/thumbnail.jpg diff --git a/content/blog/ai/2023-06-20-llm-intro/images/preview.jpg b/content/blog/ported/ai/2023-06-20-llm-intro/images/preview.jpg similarity index 100% rename from content/blog/ai/2023-06-20-llm-intro/images/preview.jpg rename to content/blog/ported/ai/2023-06-20-llm-intro/images/preview.jpg diff --git a/content/blog/ai/2023-06-20-llm-intro/index.Rmd b/content/blog/ported/ai/2023-06-20-llm-intro/index.Rmd similarity index 100% rename from content/blog/ai/2023-06-20-llm-intro/index.Rmd rename to content/blog/ported/ai/2023-06-20-llm-intro/index.Rmd diff --git a/content/blog/ai/2023-06-20-llm-intro/index.md b/content/blog/ported/ai/2023-06-20-llm-intro/index.md similarity index 100% rename from content/blog/ai/2023-06-20-llm-intro/index.md rename to content/blog/ported/ai/2023-06-20-llm-intro/index.md diff --git a/content/blog/ai/2023-06-20-llm-intro/references.bib b/content/blog/ported/ai/2023-06-20-llm-intro/references.bib similarity index 100% rename from content/blog/ai/2023-06-20-llm-intro/references.bib rename to content/blog/ported/ai/2023-06-20-llm-intro/references.bib diff --git a/content/blog/ai/2023-06-20-llm-intro/thumbnail.jpg b/content/blog/ported/ai/2023-06-20-llm-intro/thumbnail.jpg similarity index 100% rename from content/blog/ai/2023-06-20-llm-intro/thumbnail.jpg rename to content/blog/ported/ai/2023-06-20-llm-intro/thumbnail.jpg diff --git a/content/blog/ai/2023-06-22-understanding-lora/images/lora.png b/content/blog/ported/ai/2023-06-22-understanding-lora/images/lora.png similarity index 100% rename from content/blog/ai/2023-06-22-understanding-lora/images/lora.png rename to content/blog/ported/ai/2023-06-22-understanding-lora/images/lora.png diff --git a/content/blog/ai/2023-06-22-understanding-lora/index.Rmd b/content/blog/ported/ai/2023-06-22-understanding-lora/index.Rmd similarity index 100% rename from content/blog/ai/2023-06-22-understanding-lora/index.Rmd rename to content/blog/ported/ai/2023-06-22-understanding-lora/index.Rmd diff --git a/content/blog/ai/2023-06-22-understanding-lora/index.md b/content/blog/ported/ai/2023-06-22-understanding-lora/index.md similarity index 100% rename from content/blog/ai/2023-06-22-understanding-lora/index.md rename to content/blog/ported/ai/2023-06-22-understanding-lora/index.md diff --git a/content/blog/ai/2023-06-22-understanding-lora/thumbnail.png b/content/blog/ported/ai/2023-06-22-understanding-lora/thumbnail.png similarity index 100% rename from content/blog/ai/2023-06-22-understanding-lora/thumbnail.png rename to content/blog/ported/ai/2023-06-22-understanding-lora/thumbnail.png diff --git a/content/blog/ai/2023-07-12-hugging-face-integrations/images/install.png b/content/blog/ported/ai/2023-07-12-hugging-face-integrations/images/install.png similarity index 100% rename from content/blog/ai/2023-07-12-hugging-face-integrations/images/install.png rename to content/blog/ported/ai/2023-07-12-hugging-face-integrations/images/install.png diff --git a/content/blog/ai/2023-07-12-hugging-face-integrations/index.Rmd b/content/blog/ported/ai/2023-07-12-hugging-face-integrations/index.Rmd similarity index 97% rename from content/blog/ai/2023-07-12-hugging-face-integrations/index.Rmd rename to content/blog/ported/ai/2023-07-12-hugging-face-integrations/index.Rmd index 38a72f4d1..1d1083be4 100644 --- a/content/blog/ai/2023-07-12-hugging-face-integrations/index.Rmd +++ b/content/blog/ported/ai/2023-07-12-hugging-face-integrations/index.Rmd @@ -52,7 +52,7 @@ files can be shared between the R and Python implementation, for easier and quic switching between languages. We already use hfhub in the [minhub](https://github.com/mlverse/minhub) package and -in the ['GPT-2 from scratch with torch' blog post](/blog/ai/2023-06-20-gpt2-torch/) to +in the ['GPT-2 from scratch with torch' blog post](/blog/2023-06-20_keydanagpt2/) to download pre-trained weights from Hugging Face Hub. You can use `hub_download()` to download any file from a Hugging Face Hub repository @@ -71,7 +71,7 @@ path Tokenizers are responsible for converting raw text into the sequence of integers that is often used as the input for NLP models, making them an critical component of the NLP pipelines. If you want a higher level overview of NLP pipelines, you might want to read -our previous [blog post 'What are Large Language Models? What are they not?'](/blog/ai/2023-06-20-llm-intro/#overall-architecture). +our previous [blog post 'What are Large Language Models? What are they not?'](/blog/2023-06-20_keydanallm/#overall-architecture). When using a pre-trained model (both for inference or for fine tuning) it's very important that you use the exact same tokenization process that has been used during diff --git a/content/blog/ai/2023-07-12-hugging-face-integrations/index.md b/content/blog/ported/ai/2023-07-12-hugging-face-integrations/index.md similarity index 97% rename from content/blog/ai/2023-07-12-hugging-face-integrations/index.md rename to content/blog/ported/ai/2023-07-12-hugging-face-integrations/index.md index 70ea8317c..3c37f74d7 100644 --- a/content/blog/ai/2023-07-12-hugging-face-integrations/index.md +++ b/content/blog/ported/ai/2023-07-12-hugging-face-integrations/index.md @@ -54,7 +54,7 @@ files can be shared between the R and Python implementation, for easier and quic switching between languages. We already use hfhub in the [minhub](https://github.com/mlverse/minhub) package and -in the ['GPT-2 from scratch with torch' blog post](/blog/ai/2023-06-20-gpt2-torch/) to +in the ['GPT-2 from scratch with torch' blog post](/blog/2023-06-20_keydanagpt2/) to download pre-trained weights from Hugging Face Hub. You can use `hub_download()` to download any file from a Hugging Face Hub repository @@ -73,7 +73,7 @@ path Tokenizers are responsible for converting raw text into the sequence of integers that is often used as the input for NLP models, making them an critical component of the NLP pipelines. If you want a higher level overview of NLP pipelines, you might want to read -our previous [blog post 'What are Large Language Models? What are they not?'](/blog/ai/2023-06-20-llm-intro/#overall-architecture). +our previous [blog post 'What are Large Language Models? What are they not?'](/blog/2023-06-20_keydanallm/#overall-architecture). When using a pre-trained model (both for inference or for fine tuning) it's very important that you use the exact same tokenization process that has been used during diff --git a/content/blog/ai/2023-07-12-hugging-face-integrations/thumbnail.png b/content/blog/ported/ai/2023-07-12-hugging-face-integrations/thumbnail.png similarity index 100% rename from content/blog/ai/2023-07-12-hugging-face-integrations/thumbnail.png rename to content/blog/ported/ai/2023-07-12-hugging-face-integrations/thumbnail.png diff --git a/content/blog/ai/2024-04-04-chat-with-llms-using-chattr/images/addin.png b/content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/images/addin.png similarity index 100% rename from content/blog/ai/2024-04-04-chat-with-llms-using-chattr/images/addin.png rename to content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/images/addin.png diff --git a/content/blog/ai/2024-04-04-chat-with-llms-using-chattr/images/app.png b/content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/images/app.png similarity index 100% rename from content/blog/ai/2024-04-04-chat-with-llms-using-chattr/images/app.png rename to content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/images/app.png diff --git a/content/blog/ai/2024-04-04-chat-with-llms-using-chattr/images/buttons.png b/content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/images/buttons.png similarity index 100% rename from content/blog/ai/2024-04-04-chat-with-llms-using-chattr/images/buttons.png rename to content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/images/buttons.png diff --git a/content/blog/ai/2024-04-04-chat-with-llms-using-chattr/images/chattr.png b/content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/images/chattr.png similarity index 100% rename from content/blog/ai/2024-04-04-chat-with-llms-using-chattr/images/chattr.png rename to content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/images/chattr.png diff --git a/content/blog/ai/2024-04-04-chat-with-llms-using-chattr/images/settings.png b/content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/images/settings.png similarity index 100% rename from content/blog/ai/2024-04-04-chat-with-llms-using-chattr/images/settings.png rename to content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/images/settings.png diff --git a/content/blog/ai/2024-04-04-chat-with-llms-using-chattr/index.Rmd b/content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/index.Rmd similarity index 100% rename from content/blog/ai/2024-04-04-chat-with-llms-using-chattr/index.Rmd rename to content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/index.Rmd diff --git a/content/blog/ai/2024-04-04-chat-with-llms-using-chattr/index.md b/content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/index.md similarity index 100% rename from content/blog/ai/2024-04-04-chat-with-llms-using-chattr/index.md rename to content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/index.md diff --git a/content/blog/ai/2024-04-04-chat-with-llms-using-chattr/thumbnail.png b/content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/thumbnail.png similarity index 100% rename from content/blog/ai/2024-04-04-chat-with-llms-using-chattr/thumbnail.png rename to content/blog/ported/ai/2024-04-04-chat-with-llms-using-chattr/thumbnail.png diff --git a/content/blog/ai/2024-04-22-sparklyr-updates/images/r-udfs.png b/content/blog/ported/ai/2024-04-22-sparklyr-updates/images/r-udfs.png similarity index 100% rename from content/blog/ai/2024-04-22-sparklyr-updates/images/r-udfs.png rename to content/blog/ported/ai/2024-04-22-sparklyr-updates/images/r-udfs.png diff --git a/content/blog/ai/2024-04-22-sparklyr-updates/images/sparklyr.png b/content/blog/ported/ai/2024-04-22-sparklyr-updates/images/sparklyr.png similarity index 100% rename from content/blog/ai/2024-04-22-sparklyr-updates/images/sparklyr.png rename to content/blog/ported/ai/2024-04-22-sparklyr-updates/images/sparklyr.png diff --git a/content/blog/ai/2024-04-22-sparklyr-updates/index.Rmd b/content/blog/ported/ai/2024-04-22-sparklyr-updates/index.Rmd similarity index 100% rename from content/blog/ai/2024-04-22-sparklyr-updates/index.Rmd rename to content/blog/ported/ai/2024-04-22-sparklyr-updates/index.Rmd diff --git a/content/blog/ai/2024-04-22-sparklyr-updates/index.md b/content/blog/ported/ai/2024-04-22-sparklyr-updates/index.md similarity index 100% rename from content/blog/ai/2024-04-22-sparklyr-updates/index.md rename to content/blog/ported/ai/2024-04-22-sparklyr-updates/index.md diff --git a/content/blog/ai/2024-04-22-sparklyr-updates/thumbnail.png b/content/blog/ported/ai/2024-04-22-sparklyr-updates/thumbnail.png similarity index 100% rename from content/blog/ai/2024-04-22-sparklyr-updates/thumbnail.png rename to content/blog/ported/ai/2024-04-22-sparklyr-updates/thumbnail.png diff --git a/content/blog/ai/2024-05-21-keras3/images/preview.png b/content/blog/ported/ai/2024-05-21-keras3/images/preview.png similarity index 100% rename from content/blog/ai/2024-05-21-keras3/images/preview.png rename to content/blog/ported/ai/2024-05-21-keras3/images/preview.png diff --git a/content/blog/ai/2024-05-21-keras3/index.Rmd b/content/blog/ported/ai/2024-05-21-keras3/index.Rmd similarity index 100% rename from content/blog/ai/2024-05-21-keras3/index.Rmd rename to content/blog/ported/ai/2024-05-21-keras3/index.Rmd diff --git a/content/blog/ai/2024-05-21-keras3/index.md b/content/blog/ported/ai/2024-05-21-keras3/index.md similarity index 100% rename from content/blog/ai/2024-05-21-keras3/index.md rename to content/blog/ported/ai/2024-05-21-keras3/index.md diff --git a/content/blog/ai/2024-05-21-keras3/thumbnail.png b/content/blog/ported/ai/2024-05-21-keras3/thumbnail.png similarity index 100% rename from content/blog/ai/2024-05-21-keras3/thumbnail.png rename to content/blog/ported/ai/2024-05-21-keras3/thumbnail.png diff --git a/content/blog/ai/2024-10-30-mall/images/article.png b/content/blog/ported/ai/2024-10-30-mall/images/article.png similarity index 100% rename from content/blog/ai/2024-10-30-mall/images/article.png rename to content/blog/ported/ai/2024-10-30-mall/images/article.png diff --git a/content/blog/ai/2024-10-30-mall/images/dplyr.png b/content/blog/ported/ai/2024-10-30-mall/images/dplyr.png similarity index 100% rename from content/blog/ai/2024-10-30-mall/images/dplyr.png rename to content/blog/ported/ai/2024-10-30-mall/images/dplyr.png diff --git a/content/blog/ai/2024-10-30-mall/images/dplyr.png.original b/content/blog/ported/ai/2024-10-30-mall/images/dplyr.png.original similarity index 100% rename from content/blog/ai/2024-10-30-mall/images/dplyr.png.original rename to content/blog/ported/ai/2024-10-30-mall/images/dplyr.png.original diff --git a/content/blog/ai/2024-10-30-mall/images/llm-namespace.png b/content/blog/ported/ai/2024-10-30-mall/images/llm-namespace.png similarity index 100% rename from content/blog/ai/2024-10-30-mall/images/llm-namespace.png rename to content/blog/ported/ai/2024-10-30-mall/images/llm-namespace.png diff --git a/content/blog/ai/2024-10-30-mall/images/logo.png b/content/blog/ported/ai/2024-10-30-mall/images/logo.png similarity index 100% rename from content/blog/ai/2024-10-30-mall/images/logo.png rename to content/blog/ported/ai/2024-10-30-mall/images/logo.png diff --git a/content/blog/ai/2024-10-30-mall/images/mall.png b/content/blog/ported/ai/2024-10-30-mall/images/mall.png similarity index 100% rename from content/blog/ai/2024-10-30-mall/images/mall.png rename to content/blog/ported/ai/2024-10-30-mall/images/mall.png diff --git a/content/blog/ai/2024-10-30-mall/images/polars.png b/content/blog/ported/ai/2024-10-30-mall/images/polars.png similarity index 100% rename from content/blog/ai/2024-10-30-mall/images/polars.png rename to content/blog/ported/ai/2024-10-30-mall/images/polars.png diff --git a/content/blog/ai/2024-10-30-mall/index.Rmd b/content/blog/ported/ai/2024-10-30-mall/index.Rmd similarity index 100% rename from content/blog/ai/2024-10-30-mall/index.Rmd rename to content/blog/ported/ai/2024-10-30-mall/index.Rmd diff --git a/content/blog/ai/2024-10-30-mall/index.md b/content/blog/ported/ai/2024-10-30-mall/index.md similarity index 100% rename from content/blog/ai/2024-10-30-mall/index.md rename to content/blog/ported/ai/2024-10-30-mall/index.md diff --git a/content/blog/ai/2024-10-30-mall/thumbnail.png b/content/blog/ported/ai/2024-10-30-mall/thumbnail.png similarity index 100% rename from content/blog/ai/2024-10-30-mall/thumbnail.png rename to content/blog/ported/ai/2024-10-30-mall/thumbnail.png diff --git a/content/blog/ai/2025-08-19-mall-0-2/images/article.png b/content/blog/ported/ai/2025-08-19-mall-0-2/images/article.png similarity index 100% rename from content/blog/ai/2025-08-19-mall-0-2/images/article.png rename to content/blog/ported/ai/2025-08-19-mall-0-2/images/article.png diff --git a/content/blog/ai/2025-08-19-mall-0-2/images/cheatsheet.png b/content/blog/ported/ai/2025-08-19-mall-0-2/images/cheatsheet.png similarity index 100% rename from content/blog/ai/2025-08-19-mall-0-2/images/cheatsheet.png rename to content/blog/ported/ai/2025-08-19-mall-0-2/images/cheatsheet.png diff --git a/content/blog/ai/2025-08-19-mall-0-2/images/html-cheatsheet.png b/content/blog/ported/ai/2025-08-19-mall-0-2/images/html-cheatsheet.png similarity index 100% rename from content/blog/ai/2025-08-19-mall-0-2/images/html-cheatsheet.png rename to content/blog/ported/ai/2025-08-19-mall-0-2/images/html-cheatsheet.png diff --git a/content/blog/ai/2025-08-19-mall-0-2/images/html-cheatsheet.png.original b/content/blog/ported/ai/2025-08-19-mall-0-2/images/html-cheatsheet.png.original similarity index 100% rename from content/blog/ai/2025-08-19-mall-0-2/images/html-cheatsheet.png.original rename to content/blog/ported/ai/2025-08-19-mall-0-2/images/html-cheatsheet.png.original diff --git a/content/blog/ai/2025-08-19-mall-0-2/index.Rmd b/content/blog/ported/ai/2025-08-19-mall-0-2/index.Rmd similarity index 100% rename from content/blog/ai/2025-08-19-mall-0-2/index.Rmd rename to content/blog/ported/ai/2025-08-19-mall-0-2/index.Rmd diff --git a/content/blog/ai/2025-08-19-mall-0-2/index.md b/content/blog/ported/ai/2025-08-19-mall-0-2/index.md similarity index 100% rename from content/blog/ai/2025-08-19-mall-0-2/index.md rename to content/blog/ported/ai/2025-08-19-mall-0-2/index.md diff --git a/content/blog/ai/2025-08-19-mall-0-2/thumbnail.png b/content/blog/ported/ai/2025-08-19-mall-0-2/thumbnail.png similarity index 100% rename from content/blog/ai/2025-08-19-mall-0-2/thumbnail.png rename to content/blog/ported/ai/2025-08-19-mall-0-2/thumbnail.png diff --git a/content/blog/ai/renv.lock b/content/blog/ported/ai/renv.lock similarity index 100% rename from content/blog/ai/renv.lock rename to content/blog/ported/ai/renv.lock diff --git a/content/blog/ai/renv/.gitignore b/content/blog/ported/ai/renv/.gitignore similarity index 100% rename from content/blog/ai/renv/.gitignore rename to content/blog/ported/ai/renv/.gitignore diff --git a/content/blog/ai/renv/activate.R b/content/blog/ported/ai/renv/activate.R similarity index 100% rename from content/blog/ai/renv/activate.R rename to content/blog/ported/ai/renv/activate.R diff --git a/content/blog/ai/renv/settings.json b/content/blog/ported/ai/renv/settings.json similarity index 100% rename from content/blog/ai/renv/settings.json rename to content/blog/ported/ai/renv/settings.json diff --git a/content/blog/education/2019-08-26-learner-personas/candle-wd.jpg b/content/blog/ported/education/2019-08-26-learner-personas/candle-wd.jpg similarity index 100% rename from content/blog/education/2019-08-26-learner-personas/candle-wd.jpg rename to content/blog/ported/education/2019-08-26-learner-personas/candle-wd.jpg diff --git a/content/blog/education/2019-08-26-learner-personas/candle-wd.jpg.original b/content/blog/ported/education/2019-08-26-learner-personas/candle-wd.jpg.original similarity index 100% rename from content/blog/education/2019-08-26-learner-personas/candle-wd.jpg.original rename to content/blog/ported/education/2019-08-26-learner-personas/candle-wd.jpg.original diff --git a/content/blog/education/2019-08-26-learner-personas/index.Rmarkdown b/content/blog/ported/education/2019-08-26-learner-personas/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-08-26-learner-personas/index.Rmarkdown rename to content/blog/ported/education/2019-08-26-learner-personas/index.Rmarkdown diff --git a/content/blog/education/2019-08-26-learner-personas/index.markdown b/content/blog/ported/education/2019-08-26-learner-personas/index.markdown similarity index 100% rename from content/blog/education/2019-08-26-learner-personas/index.markdown rename to content/blog/ported/education/2019-08-26-learner-personas/index.markdown diff --git a/content/blog/education/2019-08-26-learner-personas/personas-wd.jpg b/content/blog/ported/education/2019-08-26-learner-personas/personas-wd.jpg similarity index 100% rename from content/blog/education/2019-08-26-learner-personas/personas-wd.jpg rename to content/blog/ported/education/2019-08-26-learner-personas/personas-wd.jpg diff --git a/content/blog/education/2019-08-26-learner-personas/thumbnail.jpg b/content/blog/ported/education/2019-08-26-learner-personas/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-08-26-learner-personas/thumbnail.jpg rename to content/blog/ported/education/2019-08-26-learner-personas/thumbnail.jpg diff --git a/content/blog/education/2019-09-16-community/flock-wd.jpg b/content/blog/ported/education/2019-09-16-community/flock-wd.jpg similarity index 100% rename from content/blog/education/2019-09-16-community/flock-wd.jpg rename to content/blog/ported/education/2019-09-16-community/flock-wd.jpg diff --git a/content/blog/education/2019-09-16-community/flock-wd.jpg.original b/content/blog/ported/education/2019-09-16-community/flock-wd.jpg.original similarity index 100% rename from content/blog/education/2019-09-16-community/flock-wd.jpg.original rename to content/blog/ported/education/2019-09-16-community/flock-wd.jpg.original diff --git a/content/blog/education/2019-09-16-community/index.Rmarkdown b/content/blog/ported/education/2019-09-16-community/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-09-16-community/index.Rmarkdown rename to content/blog/ported/education/2019-09-16-community/index.Rmarkdown diff --git a/content/blog/education/2019-09-16-community/index.markdown b/content/blog/ported/education/2019-09-16-community/index.markdown similarity index 100% rename from content/blog/education/2019-09-16-community/index.markdown rename to content/blog/ported/education/2019-09-16-community/index.markdown diff --git a/content/blog/education/2019-09-16-community/thumbnail.jpg b/content/blog/ported/education/2019-09-16-community/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-09-16-community/thumbnail.jpg rename to content/blog/ported/education/2019-09-16-community/thumbnail.jpg diff --git a/content/blog/education/2019-09-24-welcome/giraffe_forest_social.jpg b/content/blog/ported/education/2019-09-24-welcome/giraffe_forest_social.jpg similarity index 100% rename from content/blog/education/2019-09-24-welcome/giraffe_forest_social.jpg rename to content/blog/ported/education/2019-09-24-welcome/giraffe_forest_social.jpg diff --git a/content/blog/education/2019-09-24-welcome/hello-wd.jpg b/content/blog/ported/education/2019-09-24-welcome/hello-wd.jpg similarity index 100% rename from content/blog/education/2019-09-24-welcome/hello-wd.jpg rename to content/blog/ported/education/2019-09-24-welcome/hello-wd.jpg diff --git a/content/blog/education/2019-09-24-welcome/hi.jpg b/content/blog/ported/education/2019-09-24-welcome/hi.jpg similarity index 100% rename from content/blog/education/2019-09-24-welcome/hi.jpg rename to content/blog/ported/education/2019-09-24-welcome/hi.jpg diff --git a/content/blog/education/2019-09-24-welcome/index.Rmarkdown b/content/blog/ported/education/2019-09-24-welcome/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-09-24-welcome/index.Rmarkdown rename to content/blog/ported/education/2019-09-24-welcome/index.Rmarkdown diff --git a/content/blog/education/2019-09-24-welcome/index.markdown b/content/blog/ported/education/2019-09-24-welcome/index.markdown similarity index 100% rename from content/blog/education/2019-09-24-welcome/index.markdown rename to content/blog/ported/education/2019-09-24-welcome/index.markdown diff --git a/content/blog/education/2019-09-24-welcome/thumbnail.jpg b/content/blog/ported/education/2019-09-24-welcome/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-09-24-welcome/thumbnail.jpg rename to content/blog/ported/education/2019-09-24-welcome/thumbnail.jpg diff --git a/content/blog/education/2019-09-24-welcome/welcome.jpg b/content/blog/ported/education/2019-09-24-welcome/welcome.jpg similarity index 100% rename from content/blog/education/2019-09-24-welcome/welcome.jpg rename to content/blog/ported/education/2019-09-24-welcome/welcome.jpg diff --git a/content/blog/education/2019-09-25-upcoming-instructor-training-events/index.Rmarkdown b/content/blog/ported/education/2019-09-25-upcoming-instructor-training-events/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-09-25-upcoming-instructor-training-events/index.Rmarkdown rename to content/blog/ported/education/2019-09-25-upcoming-instructor-training-events/index.Rmarkdown diff --git a/content/blog/education/2019-09-25-upcoming-instructor-training-events/index.markdown b/content/blog/ported/education/2019-09-25-upcoming-instructor-training-events/index.markdown similarity index 100% rename from content/blog/education/2019-09-25-upcoming-instructor-training-events/index.markdown rename to content/blog/ported/education/2019-09-25-upcoming-instructor-training-events/index.markdown diff --git a/content/blog/education/2019-09-25-upcoming-instructor-training-events/thumbnail.jpg b/content/blog/ported/education/2019-09-25-upcoming-instructor-training-events/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-09-25-upcoming-instructor-training-events/thumbnail.jpg rename to content/blog/ported/education/2019-09-25-upcoming-instructor-training-events/thumbnail.jpg diff --git a/content/blog/education/2019-09-25-upcoming-instructor-training-events/train-wd.jpg b/content/blog/ported/education/2019-09-25-upcoming-instructor-training-events/train-wd.jpg similarity index 100% rename from content/blog/education/2019-09-25-upcoming-instructor-training-events/train-wd.jpg rename to content/blog/ported/education/2019-09-25-upcoming-instructor-training-events/train-wd.jpg diff --git a/content/blog/education/2019-09-26-remaster-tidyverse/index.Rmarkdown b/content/blog/ported/education/2019-09-26-remaster-tidyverse/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-09-26-remaster-tidyverse/index.Rmarkdown rename to content/blog/ported/education/2019-09-26-remaster-tidyverse/index.Rmarkdown diff --git a/content/blog/education/2019-09-26-remaster-tidyverse/index.markdown b/content/blog/ported/education/2019-09-26-remaster-tidyverse/index.markdown similarity index 100% rename from content/blog/education/2019-09-26-remaster-tidyverse/index.markdown rename to content/blog/ported/education/2019-09-26-remaster-tidyverse/index.markdown diff --git a/content/blog/education/2019-09-26-remaster-tidyverse/telescope-wd.jpg b/content/blog/ported/education/2019-09-26-remaster-tidyverse/telescope-wd.jpg similarity index 100% rename from content/blog/education/2019-09-26-remaster-tidyverse/telescope-wd.jpg rename to content/blog/ported/education/2019-09-26-remaster-tidyverse/telescope-wd.jpg diff --git a/content/blog/education/2019-09-26-remaster-tidyverse/thumbnail.jpg b/content/blog/ported/education/2019-09-26-remaster-tidyverse/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-09-26-remaster-tidyverse/thumbnail.jpg rename to content/blog/ported/education/2019-09-26-remaster-tidyverse/thumbnail.jpg diff --git a/content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/featured-wd.jpg b/content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/featured-wd.jpg similarity index 100% rename from content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/featured-wd.jpg rename to content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/featured-wd.jpg diff --git a/content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-3-1.png b/content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-3-1.png similarity index 100% rename from content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-3-1.png rename to content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-3-1.png diff --git a/content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-4-1.png b/content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-4-1.png similarity index 100% rename from content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-4-1.png rename to content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-4-1.png diff --git a/content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-5-1.png b/content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-5-1.png similarity index 100% rename from content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-5-1.png rename to content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-5-1.png diff --git a/content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-6-1.png b/content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-6-1.png similarity index 100% rename from content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-6-1.png rename to content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-6-1.png diff --git a/content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-7-1.png b/content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-7-1.png similarity index 100% rename from content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-7-1.png rename to content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/figs/unnamed-chunk-7-1.png diff --git a/content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/index.Rmarkdown b/content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/index.Rmarkdown rename to content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/index.Rmarkdown diff --git a/content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/index.markdown b/content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/index.markdown similarity index 100% rename from content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/index.markdown rename to content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/index.markdown diff --git a/content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/thumbnail.png b/content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/thumbnail.png similarity index 100% rename from content/blog/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/thumbnail.png rename to content/blog/ported/education/2019-10-15-a-summer-of-rstudio-and-ggplot2/thumbnail.png diff --git a/content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/index.Rmarkdown b/content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/index.Rmarkdown rename to content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/index.Rmarkdown diff --git a/content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/index.markdown b/content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/index.markdown similarity index 100% rename from content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/index.markdown rename to content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/index.markdown diff --git a/content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-thumbnail.jpg b/content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-thumbnail.jpg similarity index 100% rename from content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-thumbnail.jpg rename to content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-thumbnail.jpg diff --git a/content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-wd.jpg b/content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-wd.jpg similarity index 100% rename from content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-wd.jpg rename to content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-wd.jpg diff --git a/content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-wd.jpg.original b/content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-wd.jpg.original similarity index 100% rename from content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-wd.jpg.original rename to content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/stones-wd.jpg.original diff --git a/content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/ymlthis_fieldguide.jpeg b/content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/ymlthis_fieldguide.jpeg similarity index 100% rename from content/blog/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/ymlthis_fieldguide.jpeg rename to content/blog/ported/education/2019-10-18-tools-for-teaching-yaml-with-ymlthis/ymlthis_fieldguide.jpeg diff --git a/content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/img1.png b/content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/img1.png similarity index 100% rename from content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/img1.png rename to content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/img1.png diff --git a/content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/img2.png b/content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/img2.png similarity index 100% rename from content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/img2.png rename to content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/img2.png diff --git a/content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/img3.png b/content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/img3.png similarity index 100% rename from content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/img3.png rename to content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/img3.png diff --git a/content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/index.Rmarkdown b/content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/index.Rmarkdown rename to content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/index.Rmarkdown diff --git a/content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/index.markdown b/content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/index.markdown similarity index 100% rename from content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/index.markdown rename to content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/index.markdown diff --git a/content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/java-wd.jpg b/content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/java-wd.jpg similarity index 100% rename from content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/java-wd.jpg rename to content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/java-wd.jpg diff --git a/content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/java-wd.jpg.original b/content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/java-wd.jpg.original similarity index 100% rename from content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/java-wd.jpg.original rename to content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/java-wd.jpg.original diff --git a/content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/tb-blocks.png b/content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/tb-blocks.png similarity index 100% rename from content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/tb-blocks.png rename to content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/tb-blocks.png diff --git a/content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/thumbnail.jpg b/content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/thumbnail.jpg rename to content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/thumbnail.jpg diff --git a/content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/wide-blocks.jpg b/content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/wide-blocks.jpg similarity index 100% rename from content/blog/education/2019-10-21-my-javascript-internship-at-rstudio/wide-blocks.jpg rename to content/blog/ported/education/2019-10-21-my-javascript-internship-at-rstudio/wide-blocks.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/Apply.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Apply.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/Apply.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Apply.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/Cozy.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Cozy.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/Cozy.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Cozy.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/Learned.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Learned.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/Learned.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Learned.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/Me.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Me.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/Me.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Me.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/Remote.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Remote.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/Remote.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Remote.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/Skills.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Skills.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/Skills.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Skills.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/Tweet.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Tweet.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/Tweet.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/Tweet.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/book.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/book.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/book.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/book.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/colors-wd.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/colors-wd.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/colors-wd.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/colors-wd.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/css.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/css.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/css.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/css.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/index.Rmarkdown b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/index.Rmarkdown rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/index.Rmarkdown diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/index.markdown b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/index.markdown similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/index.markdown rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/index.markdown diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/more-bye.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/more-bye.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/more-bye.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/more-bye.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/more.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/more.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/more.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/more.jpg diff --git a/content/blog/education/2019-10-23-12-weeks-at-rstudio/thumbnail.jpg b/content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-10-23-12-weeks-at-rstudio/thumbnail.jpg rename to content/blog/ported/education/2019-10-23-12-weeks-at-rstudio/thumbnail.jpg diff --git a/content/blog/education/2019-10-25-what-it-was-like-interning-for-rstudio/featured-wd.jpg b/content/blog/ported/education/2019-10-25-what-it-was-like-interning-for-rstudio/featured-wd.jpg similarity index 100% rename from content/blog/education/2019-10-25-what-it-was-like-interning-for-rstudio/featured-wd.jpg rename to content/blog/ported/education/2019-10-25-what-it-was-like-interning-for-rstudio/featured-wd.jpg diff --git a/content/blog/education/2019-10-25-what-it-was-like-interning-for-rstudio/index.Rmarkdown b/content/blog/ported/education/2019-10-25-what-it-was-like-interning-for-rstudio/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-10-25-what-it-was-like-interning-for-rstudio/index.Rmarkdown rename to content/blog/ported/education/2019-10-25-what-it-was-like-interning-for-rstudio/index.Rmarkdown diff --git a/content/blog/education/2019-10-25-what-it-was-like-interning-for-rstudio/index.markdown b/content/blog/ported/education/2019-10-25-what-it-was-like-interning-for-rstudio/index.markdown similarity index 100% rename from content/blog/education/2019-10-25-what-it-was-like-interning-for-rstudio/index.markdown rename to content/blog/ported/education/2019-10-25-what-it-was-like-interning-for-rstudio/index.markdown diff --git a/content/blog/education/2019-10-25-what-it-was-like-interning-for-rstudio/thumbnail.jpg b/content/blog/ported/education/2019-10-25-what-it-was-like-interning-for-rstudio/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-10-25-what-it-was-like-interning-for-rstudio/thumbnail.jpg rename to content/blog/ported/education/2019-10-25-what-it-was-like-interning-for-rstudio/thumbnail.jpg diff --git a/content/blog/education/2019-10-28-workshops-conf/feature-wd.jpg b/content/blog/ported/education/2019-10-28-workshops-conf/feature-wd.jpg similarity index 100% rename from content/blog/education/2019-10-28-workshops-conf/feature-wd.jpg rename to content/blog/ported/education/2019-10-28-workshops-conf/feature-wd.jpg diff --git a/content/blog/education/2019-10-28-workshops-conf/feature-wd.jpg.original b/content/blog/ported/education/2019-10-28-workshops-conf/feature-wd.jpg.original similarity index 100% rename from content/blog/education/2019-10-28-workshops-conf/feature-wd.jpg.original rename to content/blog/ported/education/2019-10-28-workshops-conf/feature-wd.jpg.original diff --git a/content/blog/education/2019-10-28-workshops-conf/index.Rmarkdown b/content/blog/ported/education/2019-10-28-workshops-conf/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-10-28-workshops-conf/index.Rmarkdown rename to content/blog/ported/education/2019-10-28-workshops-conf/index.Rmarkdown diff --git a/content/blog/education/2019-10-28-workshops-conf/index.markdown b/content/blog/ported/education/2019-10-28-workshops-conf/index.markdown similarity index 100% rename from content/blog/education/2019-10-28-workshops-conf/index.markdown rename to content/blog/ported/education/2019-10-28-workshops-conf/index.markdown diff --git a/content/blog/education/2019-10-28-workshops-conf/sf-thumbnail.jpg b/content/blog/ported/education/2019-10-28-workshops-conf/sf-thumbnail.jpg similarity index 100% rename from content/blog/education/2019-10-28-workshops-conf/sf-thumbnail.jpg rename to content/blog/ported/education/2019-10-28-workshops-conf/sf-thumbnail.jpg diff --git a/content/blog/education/2019-10-28-workshops-conf/sf-thumbnail.jpg.original b/content/blog/ported/education/2019-10-28-workshops-conf/sf-thumbnail.jpg.original similarity index 100% rename from content/blog/education/2019-10-28-workshops-conf/sf-thumbnail.jpg.original rename to content/blog/ported/education/2019-10-28-workshops-conf/sf-thumbnail.jpg.original diff --git a/content/blog/education/2019-11-07-first-software-engineering-internship/butcher.png b/content/blog/ported/education/2019-11-07-first-software-engineering-internship/butcher.png similarity index 100% rename from content/blog/education/2019-11-07-first-software-engineering-internship/butcher.png rename to content/blog/ported/education/2019-11-07-first-software-engineering-internship/butcher.png diff --git a/content/blog/education/2019-11-07-first-software-engineering-internship/feature-wd.jpg b/content/blog/ported/education/2019-11-07-first-software-engineering-internship/feature-wd.jpg similarity index 100% rename from content/blog/education/2019-11-07-first-software-engineering-internship/feature-wd.jpg rename to content/blog/ported/education/2019-11-07-first-software-engineering-internship/feature-wd.jpg diff --git a/content/blog/education/2019-11-07-first-software-engineering-internship/index.Rmarkdown b/content/blog/ported/education/2019-11-07-first-software-engineering-internship/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-11-07-first-software-engineering-internship/index.Rmarkdown rename to content/blog/ported/education/2019-11-07-first-software-engineering-internship/index.Rmarkdown diff --git a/content/blog/education/2019-11-07-first-software-engineering-internship/index.markdown b/content/blog/ported/education/2019-11-07-first-software-engineering-internship/index.markdown similarity index 100% rename from content/blog/education/2019-11-07-first-software-engineering-internship/index.markdown rename to content/blog/ported/education/2019-11-07-first-software-engineering-internship/index.markdown diff --git a/content/blog/education/2019-11-07-first-software-engineering-internship/thumbnail.jpg b/content/blog/ported/education/2019-11-07-first-software-engineering-internship/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-11-07-first-software-engineering-internship/thumbnail.jpg rename to content/blog/ported/education/2019-11-07-first-software-engineering-internship/thumbnail.jpg diff --git a/content/blog/education/2019-11-20-my-experience-with-rstudio-instructor-training/building.jpg b/content/blog/ported/education/2019-11-20-my-experience-with-rstudio-instructor-training/building.jpg similarity index 100% rename from content/blog/education/2019-11-20-my-experience-with-rstudio-instructor-training/building.jpg rename to content/blog/ported/education/2019-11-20-my-experience-with-rstudio-instructor-training/building.jpg diff --git a/content/blog/education/2019-11-20-my-experience-with-rstudio-instructor-training/feature-wd.jpg b/content/blog/ported/education/2019-11-20-my-experience-with-rstudio-instructor-training/feature-wd.jpg similarity index 100% rename from content/blog/education/2019-11-20-my-experience-with-rstudio-instructor-training/feature-wd.jpg rename to content/blog/ported/education/2019-11-20-my-experience-with-rstudio-instructor-training/feature-wd.jpg diff --git a/content/blog/education/2019-11-20-my-experience-with-rstudio-instructor-training/index.Rmarkdown b/content/blog/ported/education/2019-11-20-my-experience-with-rstudio-instructor-training/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-11-20-my-experience-with-rstudio-instructor-training/index.Rmarkdown rename to content/blog/ported/education/2019-11-20-my-experience-with-rstudio-instructor-training/index.Rmarkdown diff --git a/content/blog/education/2019-11-20-my-experience-with-rstudio-instructor-training/index.markdown b/content/blog/ported/education/2019-11-20-my-experience-with-rstudio-instructor-training/index.markdown similarity index 100% rename from content/blog/education/2019-11-20-my-experience-with-rstudio-instructor-training/index.markdown rename to content/blog/ported/education/2019-11-20-my-experience-with-rstudio-instructor-training/index.markdown diff --git a/content/blog/education/2019-11-20-my-experience-with-rstudio-instructor-training/thumbnail.jpg b/content/blog/ported/education/2019-11-20-my-experience-with-rstudio-instructor-training/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-11-20-my-experience-with-rstudio-instructor-training/thumbnail.jpg rename to content/blog/ported/education/2019-11-20-my-experience-with-rstudio-instructor-training/thumbnail.jpg diff --git a/content/blog/education/2019-11-25-rstudio-internships-2020-preview/feature-wd.jpg b/content/blog/ported/education/2019-11-25-rstudio-internships-2020-preview/feature-wd.jpg similarity index 100% rename from content/blog/education/2019-11-25-rstudio-internships-2020-preview/feature-wd.jpg rename to content/blog/ported/education/2019-11-25-rstudio-internships-2020-preview/feature-wd.jpg diff --git a/content/blog/education/2019-11-25-rstudio-internships-2020-preview/feature-wd.jpg.original b/content/blog/ported/education/2019-11-25-rstudio-internships-2020-preview/feature-wd.jpg.original similarity index 100% rename from content/blog/education/2019-11-25-rstudio-internships-2020-preview/feature-wd.jpg.original rename to content/blog/ported/education/2019-11-25-rstudio-internships-2020-preview/feature-wd.jpg.original diff --git a/content/blog/education/2019-11-25-rstudio-internships-2020-preview/index.Rmarkdown b/content/blog/ported/education/2019-11-25-rstudio-internships-2020-preview/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-11-25-rstudio-internships-2020-preview/index.Rmarkdown rename to content/blog/ported/education/2019-11-25-rstudio-internships-2020-preview/index.Rmarkdown diff --git a/content/blog/education/2019-11-25-rstudio-internships-2020-preview/index.markdown b/content/blog/ported/education/2019-11-25-rstudio-internships-2020-preview/index.markdown similarity index 100% rename from content/blog/education/2019-11-25-rstudio-internships-2020-preview/index.markdown rename to content/blog/ported/education/2019-11-25-rstudio-internships-2020-preview/index.markdown diff --git a/content/blog/education/2019-11-25-rstudio-internships-2020-preview/thumbnail.jpg b/content/blog/ported/education/2019-11-25-rstudio-internships-2020-preview/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-11-25-rstudio-internships-2020-preview/thumbnail.jpg rename to content/blog/ported/education/2019-11-25-rstudio-internships-2020-preview/thumbnail.jpg diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/dogs.png b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/dogs.png similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/dogs.png rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/dogs.png diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/dogs.png.original b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/dogs.png.original similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/dogs.png.original rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/dogs.png.original diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/feature-wd.jpg b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/feature-wd.jpg similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/feature-wd.jpg rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/feature-wd.jpg diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/feature-wd.jpg.original b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/feature-wd.jpg.original similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/feature-wd.jpg.original rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/feature-wd.jpg.original diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/index.Rmarkdown b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/index.Rmarkdown rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/index.Rmarkdown diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/index.markdown b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/index.markdown similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/index.markdown rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/index.markdown diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/plot-1.png b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/plot-1.png similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/plot-1.png rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/plot-1.png diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/plot-2.png b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/plot-2.png similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/plot-2.png rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/plot-2.png diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/plot-3.png b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/plot-3.png similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/plot-3.png rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/plot-3.png diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/plot-4.png b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/plot-4.png similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/plot-4.png rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/plot-4.png diff --git a/content/blog/education/2019-12-02-this-is-not-like-the-others/thumbnail-sq.jpg b/content/blog/ported/education/2019-12-02-this-is-not-like-the-others/thumbnail-sq.jpg similarity index 100% rename from content/blog/education/2019-12-02-this-is-not-like-the-others/thumbnail-sq.jpg rename to content/blog/ported/education/2019-12-02-this-is-not-like-the-others/thumbnail-sq.jpg diff --git a/content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/feature-wd.jpg b/content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/feature-wd.jpg similarity index 100% rename from content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/feature-wd.jpg rename to content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/feature-wd.jpg diff --git a/content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/index.Rmarkdown b/content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/index.Rmarkdown rename to content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/index.Rmarkdown diff --git a/content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/index.markdown b/content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/index.markdown similarity index 100% rename from content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/index.markdown rename to content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/index.markdown diff --git a/content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/thumbnail.jpg b/content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/thumbnail.jpg rename to content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/thumbnail.jpg diff --git a/content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/wonderlane_unsplash.jpg b/content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/wonderlane_unsplash.jpg similarity index 100% rename from content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/wonderlane_unsplash.jpg rename to content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/wonderlane_unsplash.jpg diff --git a/content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/wonderlane_unsplash.jpg.original b/content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/wonderlane_unsplash.jpg.original similarity index 100% rename from content/blog/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/wonderlane_unsplash.jpg.original rename to content/blog/ported/education/2019-12-09-10-quick-tips-for-making-your-stuff-findable/wonderlane_unsplash.jpg.original diff --git a/content/blog/education/2019-12-23-r-for-software-engineers/index.Rmarkdown b/content/blog/ported/education/2019-12-23-r-for-software-engineers/index.Rmarkdown similarity index 100% rename from content/blog/education/2019-12-23-r-for-software-engineers/index.Rmarkdown rename to content/blog/ported/education/2019-12-23-r-for-software-engineers/index.Rmarkdown diff --git a/content/blog/education/2019-12-23-r-for-software-engineers/index.markdown b/content/blog/ported/education/2019-12-23-r-for-software-engineers/index.markdown similarity index 100% rename from content/blog/education/2019-12-23-r-for-software-engineers/index.markdown rename to content/blog/ported/education/2019-12-23-r-for-software-engineers/index.markdown diff --git a/content/blog/education/2019-12-23-r-for-software-engineers/r4se-wd.jpg b/content/blog/ported/education/2019-12-23-r-for-software-engineers/r4se-wd.jpg similarity index 100% rename from content/blog/education/2019-12-23-r-for-software-engineers/r4se-wd.jpg rename to content/blog/ported/education/2019-12-23-r-for-software-engineers/r4se-wd.jpg diff --git a/content/blog/education/2019-12-23-r-for-software-engineers/thumbnail.jpg b/content/blog/ported/education/2019-12-23-r-for-software-engineers/thumbnail.jpg similarity index 100% rename from content/blog/education/2019-12-23-r-for-software-engineers/thumbnail.jpg rename to content/blog/ported/education/2019-12-23-r-for-software-engineers/thumbnail.jpg diff --git a/content/blog/education/2020-02-01-gestalt-internship/feature-wd.jpg b/content/blog/ported/education/2020-02-01-gestalt-internship/feature-wd.jpg similarity index 100% rename from content/blog/education/2020-02-01-gestalt-internship/feature-wd.jpg rename to content/blog/ported/education/2020-02-01-gestalt-internship/feature-wd.jpg diff --git a/content/blog/education/2020-02-01-gestalt-internship/feature-wd.jpg.original b/content/blog/ported/education/2020-02-01-gestalt-internship/feature-wd.jpg.original similarity index 100% rename from content/blog/education/2020-02-01-gestalt-internship/feature-wd.jpg.original rename to content/blog/ported/education/2020-02-01-gestalt-internship/feature-wd.jpg.original diff --git a/content/blog/education/2020-02-01-gestalt-internship/index.Rmarkdown b/content/blog/ported/education/2020-02-01-gestalt-internship/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-02-01-gestalt-internship/index.Rmarkdown rename to content/blog/ported/education/2020-02-01-gestalt-internship/index.Rmarkdown diff --git a/content/blog/education/2020-02-01-gestalt-internship/index.markdown b/content/blog/ported/education/2020-02-01-gestalt-internship/index.markdown similarity index 100% rename from content/blog/education/2020-02-01-gestalt-internship/index.markdown rename to content/blog/ported/education/2020-02-01-gestalt-internship/index.markdown diff --git a/content/blog/education/2020-02-01-gestalt-internship/thumbnail.jpg b/content/blog/ported/education/2020-02-01-gestalt-internship/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-01-gestalt-internship/thumbnail.jpg rename to content/blog/ported/education/2020-02-01-gestalt-internship/thumbnail.jpg diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/angelina-litvin-K3uOmmlQmOo-unsplash.jpg b/content/blog/ported/education/2020-02-05-instructor-certification-exams/angelina-litvin-K3uOmmlQmOo-unsplash.jpg similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/angelina-litvin-K3uOmmlQmOo-unsplash.jpg rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/angelina-litvin-K3uOmmlQmOo-unsplash.jpg diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/angelina-litvin-K3uOmmlQmOo-unsplash.jpg.original b/content/blog/ported/education/2020-02-05-instructor-certification-exams/angelina-litvin-K3uOmmlQmOo-unsplash.jpg.original similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/angelina-litvin-K3uOmmlQmOo-unsplash.jpg.original rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/angelina-litvin-K3uOmmlQmOo-unsplash.jpg.original diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/at_health_facilities.csv b/content/blog/ported/education/2020-02-05-instructor-certification-exams/at_health_facilities.csv similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/at_health_facilities.csv rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/at_health_facilities.csv diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/concept-map.png b/content/blog/ported/education/2020-02-05-instructor-certification-exams/concept-map.png similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/concept-map.png rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/concept-map.png diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/feature-wd.jpg b/content/blog/ported/education/2020-02-05-instructor-certification-exams/feature-wd.jpg similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/feature-wd.jpg rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/feature-wd.jpg diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/figs/ranking-scatterplot-1.png b/content/blog/ported/education/2020-02-05-instructor-certification-exams/figs/ranking-scatterplot-1.png similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/figs/ranking-scatterplot-1.png rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/figs/ranking-scatterplot-1.png diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/index.Rmarkdown b/content/blog/ported/education/2020-02-05-instructor-certification-exams/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/index.Rmarkdown rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/index.Rmarkdown diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/index.markdown b/content/blog/ported/education/2020-02-05-instructor-certification-exams/index.markdown similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/index.markdown rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/index.markdown diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/infant_hiv.csv b/content/blog/ported/education/2020-02-05-instructor-certification-exams/infant_hiv.csv similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/infant_hiv.csv rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/infant_hiv.csv diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/plot.png b/content/blog/ported/education/2020-02-05-instructor-certification-exams/plot.png similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/plot.png rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/plot.png diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/ranking.csv b/content/blog/ported/education/2020-02-05-instructor-certification-exams/ranking.csv similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/ranking.csv rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/ranking.csv diff --git a/content/blog/education/2020-02-05-instructor-certification-exams/thumbnail.jpg b/content/blog/ported/education/2020-02-05-instructor-certification-exams/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-05-instructor-certification-exams/thumbnail.jpg rename to content/blog/ported/education/2020-02-05-instructor-certification-exams/thumbnail.jpg diff --git a/content/blog/education/2020-02-13-conf20-tidytext/books-thumbnail.jpg b/content/blog/ported/education/2020-02-13-conf20-tidytext/books-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-13-conf20-tidytext/books-thumbnail.jpg rename to content/blog/ported/education/2020-02-13-conf20-tidytext/books-thumbnail.jpg diff --git a/content/blog/education/2020-02-13-conf20-tidytext/books-wd.jpg b/content/blog/ported/education/2020-02-13-conf20-tidytext/books-wd.jpg similarity index 100% rename from content/blog/education/2020-02-13-conf20-tidytext/books-wd.jpg rename to content/blog/ported/education/2020-02-13-conf20-tidytext/books-wd.jpg diff --git a/content/blog/education/2020-02-13-conf20-tidytext/index.Rmarkdown b/content/blog/ported/education/2020-02-13-conf20-tidytext/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-02-13-conf20-tidytext/index.Rmarkdown rename to content/blog/ported/education/2020-02-13-conf20-tidytext/index.Rmarkdown diff --git a/content/blog/education/2020-02-13-conf20-tidytext/index.markdown b/content/blog/ported/education/2020-02-13-conf20-tidytext/index.markdown similarity index 100% rename from content/blog/education/2020-02-13-conf20-tidytext/index.markdown rename to content/blog/ported/education/2020-02-13-conf20-tidytext/index.markdown diff --git a/content/blog/education/2020-02-13-conf20-ts/featured-wd.jpg b/content/blog/ported/education/2020-02-13-conf20-ts/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-02-13-conf20-ts/featured-wd.jpg rename to content/blog/ported/education/2020-02-13-conf20-ts/featured-wd.jpg diff --git a/content/blog/education/2020-02-13-conf20-ts/index.Rmarkdown b/content/blog/ported/education/2020-02-13-conf20-ts/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-02-13-conf20-ts/index.Rmarkdown rename to content/blog/ported/education/2020-02-13-conf20-ts/index.Rmarkdown diff --git a/content/blog/education/2020-02-13-conf20-ts/index.markdown b/content/blog/ported/education/2020-02-13-conf20-ts/index.markdown similarity index 100% rename from content/blog/education/2020-02-13-conf20-ts/index.markdown rename to content/blog/ported/education/2020-02-13-conf20-ts/index.markdown diff --git a/content/blog/education/2020-02-13-conf20-ts/thumbnail.jpg b/content/blog/ported/education/2020-02-13-conf20-ts/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-13-conf20-ts/thumbnail.jpg rename to content/blog/ported/education/2020-02-13-conf20-ts/thumbnail.jpg diff --git a/content/blog/education/2020-02-13-conf20-wtf/feature-wd.jpg b/content/blog/ported/education/2020-02-13-conf20-wtf/feature-wd.jpg similarity index 100% rename from content/blog/education/2020-02-13-conf20-wtf/feature-wd.jpg rename to content/blog/ported/education/2020-02-13-conf20-wtf/feature-wd.jpg diff --git a/content/blog/education/2020-02-13-conf20-wtf/index.Rmarkdown b/content/blog/ported/education/2020-02-13-conf20-wtf/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-02-13-conf20-wtf/index.Rmarkdown rename to content/blog/ported/education/2020-02-13-conf20-wtf/index.Rmarkdown diff --git a/content/blog/education/2020-02-13-conf20-wtf/index.markdown b/content/blog/ported/education/2020-02-13-conf20-wtf/index.markdown similarity index 100% rename from content/blog/education/2020-02-13-conf20-wtf/index.markdown rename to content/blog/ported/education/2020-02-13-conf20-wtf/index.markdown diff --git a/content/blog/education/2020-02-13-conf20-wtf/thumbnail.jpg b/content/blog/ported/education/2020-02-13-conf20-wtf/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-13-conf20-wtf/thumbnail.jpg rename to content/blog/ported/education/2020-02-13-conf20-wtf/thumbnail.jpg diff --git a/content/blog/education/2020-02-13-conf2020-workshops/conf2020-workshops.csv b/content/blog/ported/education/2020-02-13-conf2020-workshops/conf2020-workshops.csv similarity index 100% rename from content/blog/education/2020-02-13-conf2020-workshops/conf2020-workshops.csv rename to content/blog/ported/education/2020-02-13-conf2020-workshops/conf2020-workshops.csv diff --git a/content/blog/education/2020-02-13-conf2020-workshops/featured-wd.jpg b/content/blog/ported/education/2020-02-13-conf2020-workshops/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-02-13-conf2020-workshops/featured-wd.jpg rename to content/blog/ported/education/2020-02-13-conf2020-workshops/featured-wd.jpg diff --git a/content/blog/education/2020-02-13-conf2020-workshops/index.Rmarkdown b/content/blog/ported/education/2020-02-13-conf2020-workshops/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-02-13-conf2020-workshops/index.Rmarkdown rename to content/blog/ported/education/2020-02-13-conf2020-workshops/index.Rmarkdown diff --git a/content/blog/education/2020-02-13-conf2020-workshops/index.markdown b/content/blog/ported/education/2020-02-13-conf2020-workshops/index.markdown similarity index 100% rename from content/blog/education/2020-02-13-conf2020-workshops/index.markdown rename to content/blog/ported/education/2020-02-13-conf2020-workshops/index.markdown diff --git a/content/blog/education/2020-02-13-conf2020-workshops/thumbnail.jpg b/content/blog/ported/education/2020-02-13-conf2020-workshops/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-13-conf2020-workshops/thumbnail.jpg rename to content/blog/ported/education/2020-02-13-conf2020-workshops/thumbnail.jpg diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/featured-wd.jpg b/content/blog/ported/education/2020-02-14-conf20-intro-ml/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/featured-wd.jpg rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/featured-wd.jpg diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/featured-wd.jpg.original b/content/blog/ported/education/2020-02-14-conf20-intro-ml/featured-wd.jpg.original similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/featured-wd.jpg.original rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/featured-wd.jpg.original diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/index.Rmarkdown b/content/blog/ported/education/2020-02-14-conf20-intro-ml/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/index.Rmarkdown rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/index.Rmarkdown diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/index.markdown b/content/blog/ported/education/2020-02-14-conf20-intro-ml/index.markdown similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/index.markdown rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/index.markdown diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/long.png b/content/blog/ported/education/2020-02-14-conf20-intro-ml/long.png similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/long.png rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/long.png diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/parsnip.png b/content/blog/ported/education/2020-02-14-conf20-intro-ml/parsnip.png similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/parsnip.png rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/parsnip.png diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/parsnip.png.original b/content/blog/ported/education/2020-02-14-conf20-intro-ml/parsnip.png.original similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/parsnip.png.original rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/parsnip.png.original diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/recipes.png b/content/blog/ported/education/2020-02-14-conf20-intro-ml/recipes.png similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/recipes.png rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/recipes.png diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/recipes.png.original b/content/blog/ported/education/2020-02-14-conf20-intro-ml/recipes.png.original similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/recipes.png.original rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/recipes.png.original diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/tas.png b/content/blog/ported/education/2020-02-14-conf20-intro-ml/tas.png similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/tas.png rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/tas.png diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/thumbnail.jpg b/content/blog/ported/education/2020-02-14-conf20-intro-ml/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/thumbnail.jpg rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/thumbnail.jpg diff --git a/content/blog/education/2020-02-14-conf20-intro-ml/tm.csv b/content/blog/ported/education/2020-02-14-conf20-intro-ml/tm.csv similarity index 100% rename from content/blog/education/2020-02-14-conf20-intro-ml/tm.csv rename to content/blog/ported/education/2020-02-14-conf20-intro-ml/tm.csv diff --git a/content/blog/education/2020-02-18-conf20-dataviz/art-thumbnail.jpg b/content/blog/ported/education/2020-02-18-conf20-dataviz/art-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-18-conf20-dataviz/art-thumbnail.jpg rename to content/blog/ported/education/2020-02-18-conf20-dataviz/art-thumbnail.jpg diff --git a/content/blog/education/2020-02-18-conf20-dataviz/art-wd.jpg b/content/blog/ported/education/2020-02-18-conf20-dataviz/art-wd.jpg similarity index 100% rename from content/blog/education/2020-02-18-conf20-dataviz/art-wd.jpg rename to content/blog/ported/education/2020-02-18-conf20-dataviz/art-wd.jpg diff --git a/content/blog/education/2020-02-18-conf20-dataviz/index.Rmarkdown b/content/blog/ported/education/2020-02-18-conf20-dataviz/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-02-18-conf20-dataviz/index.Rmarkdown rename to content/blog/ported/education/2020-02-18-conf20-dataviz/index.Rmarkdown diff --git a/content/blog/education/2020-02-18-conf20-dataviz/index.markdown b/content/blog/ported/education/2020-02-18-conf20-dataviz/index.markdown similarity index 100% rename from content/blog/education/2020-02-18-conf20-dataviz/index.markdown rename to content/blog/ported/education/2020-02-18-conf20-dataviz/index.markdown diff --git a/content/blog/education/2020-02-18-conf20-r-excel/horst-esm-workflow.png b/content/blog/ported/education/2020-02-18-conf20-r-excel/horst-esm-workflow.png similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/horst-esm-workflow.png rename to content/blog/ported/education/2020-02-18-conf20-r-excel/horst-esm-workflow.png diff --git a/content/blog/education/2020-02-18-conf20-r-excel/index.Rmarkdown b/content/blog/ported/education/2020-02-18-conf20-r-excel/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/index.Rmarkdown rename to content/blog/ported/education/2020-02-18-conf20-r-excel/index.Rmarkdown diff --git a/content/blog/education/2020-02-18-conf20-r-excel/index.markdown b/content/blog/ported/education/2020-02-18-conf20-r-excel/index.markdown similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/index.markdown rename to content/blog/ported/education/2020-02-18-conf20-r-excel/index.markdown diff --git a/content/blog/education/2020-02-18-conf20-r-excel/r-for-excel-dj.png b/content/blog/ported/education/2020-02-18-conf20-r-excel/r-for-excel-dj.png similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/r-for-excel-dj.png rename to content/blog/ported/education/2020-02-18-conf20-r-excel/r-for-excel-dj.png diff --git a/content/blog/education/2020-02-18-conf20-r-excel/r-for-excel-instructors.jpg b/content/blog/ported/education/2020-02-18-conf20-r-excel/r-for-excel-instructors.jpg similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/r-for-excel-instructors.jpg rename to content/blog/ported/education/2020-02-18-conf20-r-excel/r-for-excel-instructors.jpg diff --git a/content/blog/education/2020-02-18-conf20-r-excel/r-for-excel-instructors.jpg.original b/content/blog/ported/education/2020-02-18-conf20-r-excel/r-for-excel-instructors.jpg.original similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/r-for-excel-instructors.jpg.original rename to content/blog/ported/education/2020-02-18-conf20-r-excel/r-for-excel-instructors.jpg.original diff --git a/content/blog/education/2020-02-18-conf20-r-excel/r-for-excel-monsters-square.png b/content/blog/ported/education/2020-02-18-conf20-r-excel/r-for-excel-monsters-square.png similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/r-for-excel-monsters-square.png rename to content/blog/ported/education/2020-02-18-conf20-r-excel/r-for-excel-monsters-square.png diff --git a/content/blog/education/2020-02-18-conf20-r-excel/r-for-excel-monsters.jpg b/content/blog/ported/education/2020-02-18-conf20-r-excel/r-for-excel-monsters.jpg similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/r-for-excel-monsters.jpg rename to content/blog/ported/education/2020-02-18-conf20-r-excel/r-for-excel-monsters.jpg diff --git a/content/blog/education/2020-02-18-conf20-r-excel/r-wd.jpg b/content/blog/ported/education/2020-02-18-conf20-r-excel/r-wd.jpg similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/r-wd.jpg rename to content/blog/ported/education/2020-02-18-conf20-r-excel/r-wd.jpg diff --git a/content/blog/education/2020-02-18-conf20-r-excel/thumbnail.jpg b/content/blog/ported/education/2020-02-18-conf20-r-excel/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/thumbnail.jpg rename to content/blog/ported/education/2020-02-18-conf20-r-excel/thumbnail.jpg diff --git a/content/blog/education/2020-02-18-conf20-r-excel/tweet-juliesquid-r-for-excel.png b/content/blog/ported/education/2020-02-18-conf20-r-excel/tweet-juliesquid-r-for-excel.png similarity index 100% rename from content/blog/education/2020-02-18-conf20-r-excel/tweet-juliesquid-r-for-excel.png rename to content/blog/ported/education/2020-02-18-conf20-r-excel/tweet-juliesquid-r-for-excel.png diff --git a/content/blog/education/2020-02-18-conf20-tidy-tools/building-tidy-tools-thumbnail.jpg b/content/blog/ported/education/2020-02-18-conf20-tidy-tools/building-tidy-tools-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-18-conf20-tidy-tools/building-tidy-tools-thumbnail.jpg rename to content/blog/ported/education/2020-02-18-conf20-tidy-tools/building-tidy-tools-thumbnail.jpg diff --git a/content/blog/education/2020-02-18-conf20-tidy-tools/building-tidy-tools-wd.jpg b/content/blog/ported/education/2020-02-18-conf20-tidy-tools/building-tidy-tools-wd.jpg similarity index 100% rename from content/blog/education/2020-02-18-conf20-tidy-tools/building-tidy-tools-wd.jpg rename to content/blog/ported/education/2020-02-18-conf20-tidy-tools/building-tidy-tools-wd.jpg diff --git a/content/blog/education/2020-02-18-conf20-tidy-tools/index.Rmarkdown b/content/blog/ported/education/2020-02-18-conf20-tidy-tools/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-02-18-conf20-tidy-tools/index.Rmarkdown rename to content/blog/ported/education/2020-02-18-conf20-tidy-tools/index.Rmarkdown diff --git a/content/blog/education/2020-02-18-conf20-tidy-tools/index.markdown b/content/blog/ported/education/2020-02-18-conf20-tidy-tools/index.markdown similarity index 100% rename from content/blog/education/2020-02-18-conf20-tidy-tools/index.markdown rename to content/blog/ported/education/2020-02-18-conf20-tidy-tools/index.markdown diff --git a/content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/feature-wd.jpg b/content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/feature-wd.jpg similarity index 100% rename from content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/feature-wd.jpg rename to content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/feature-wd.jpg diff --git a/content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/grant-durr-1N7yzqjCLes-unsplash.jpg b/content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/grant-durr-1N7yzqjCLes-unsplash.jpg similarity index 100% rename from content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/grant-durr-1N7yzqjCLes-unsplash.jpg rename to content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/grant-durr-1N7yzqjCLes-unsplash.jpg diff --git a/content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/grant-durr-1N7yzqjCLes-unsplash.jpg.original b/content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/grant-durr-1N7yzqjCLes-unsplash.jpg.original similarity index 100% rename from content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/grant-durr-1N7yzqjCLes-unsplash.jpg.original rename to content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/grant-durr-1N7yzqjCLes-unsplash.jpg.original diff --git a/content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.Rmarkdown b/content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.Rmarkdown similarity index 97% rename from content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.Rmarkdown rename to content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.Rmarkdown index a89859996..089ff2347 100644 --- a/content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.Rmarkdown +++ b/content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.Rmarkdown @@ -111,9 +111,9 @@ and the projects will be selected from: [hill-alison]: https://alison.rbind.io/ [kuhn-max]: https://resources.rstudio.com/authors/max-kuhn [learnr]: https://rstudio.github.io/learnr/ -[preview]: /blog/education/2019-11-25-rstudio-internships-2020-preview/ +[preview]: /blog/2019-11-25_rstudio-internships-2020-preview/ [primers]: https://rstudio.cloud/learn/primers [reticulate]: https://rstudio.github.io/reticulate/ [tidymodels]: https://github.com/tidymodels/tidymodels -[tidymodels-intro]: /blog/education/2020-02-14-conf20-intro-ml/ +[tidymodels-intro]: /blog/2020-02-14_conf20-intro-ml/ [wilson-greg]: https://third-bit.com diff --git a/content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.markdown b/content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.markdown similarity index 97% rename from content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.markdown rename to content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.markdown index a89859996..089ff2347 100644 --- a/content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.markdown +++ b/content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/index.markdown @@ -111,9 +111,9 @@ and the projects will be selected from: [hill-alison]: https://alison.rbind.io/ [kuhn-max]: https://resources.rstudio.com/authors/max-kuhn [learnr]: https://rstudio.github.io/learnr/ -[preview]: /blog/education/2019-11-25-rstudio-internships-2020-preview/ +[preview]: /blog/2019-11-25_rstudio-internships-2020-preview/ [primers]: https://rstudio.cloud/learn/primers [reticulate]: https://rstudio.github.io/reticulate/ [tidymodels]: https://github.com/tidymodels/tidymodels -[tidymodels-intro]: /blog/education/2020-02-14-conf20-intro-ml/ +[tidymodels-intro]: /blog/2020-02-14_conf20-intro-ml/ [wilson-greg]: https://third-bit.com diff --git a/content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/thumbnail.jpg b/content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-02-24-applications-for-2020-intern-program-are-now-open/thumbnail.jpg rename to content/blog/ported/education/2020-02-24-applications-for-2020-intern-program-are-now-open/thumbnail.jpg diff --git a/content/blog/education/2020-03-06-r-bootcamp/featured-wd.jpg b/content/blog/ported/education/2020-03-06-r-bootcamp/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-03-06-r-bootcamp/featured-wd.jpg rename to content/blog/ported/education/2020-03-06-r-bootcamp/featured-wd.jpg diff --git a/content/blog/education/2020-03-06-r-bootcamp/index.Rmarkdown b/content/blog/ported/education/2020-03-06-r-bootcamp/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-03-06-r-bootcamp/index.Rmarkdown rename to content/blog/ported/education/2020-03-06-r-bootcamp/index.Rmarkdown diff --git a/content/blog/education/2020-03-06-r-bootcamp/index.markdown b/content/blog/ported/education/2020-03-06-r-bootcamp/index.markdown similarity index 100% rename from content/blog/education/2020-03-06-r-bootcamp/index.markdown rename to content/blog/ported/education/2020-03-06-r-bootcamp/index.markdown diff --git a/content/blog/education/2020-03-06-r-bootcamp/thumbnail.jpg b/content/blog/ported/education/2020-03-06-r-bootcamp/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-03-06-r-bootcamp/thumbnail.jpg rename to content/blog/ported/education/2020-03-06-r-bootcamp/thumbnail.jpg diff --git a/content/blog/education/2020-03-17-teaching-online-on-short-notice/index.Rmarkdown b/content/blog/ported/education/2020-03-17-teaching-online-on-short-notice/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-03-17-teaching-online-on-short-notice/index.Rmarkdown rename to content/blog/ported/education/2020-03-17-teaching-online-on-short-notice/index.Rmarkdown diff --git a/content/blog/education/2020-03-17-teaching-online-on-short-notice/index.markdown b/content/blog/ported/education/2020-03-17-teaching-online-on-short-notice/index.markdown similarity index 100% rename from content/blog/education/2020-03-17-teaching-online-on-short-notice/index.markdown rename to content/blog/ported/education/2020-03-17-teaching-online-on-short-notice/index.markdown diff --git a/content/blog/education/2020-03-17-teaching-online-on-short-notice/teaching-online-on-short-notice-thumbnail.jpg b/content/blog/ported/education/2020-03-17-teaching-online-on-short-notice/teaching-online-on-short-notice-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-03-17-teaching-online-on-short-notice/teaching-online-on-short-notice-thumbnail.jpg rename to content/blog/ported/education/2020-03-17-teaching-online-on-short-notice/teaching-online-on-short-notice-thumbnail.jpg diff --git a/content/blog/education/2020-03-17-teaching-online-on-short-notice/teaching-online-on-short-notice-wd.jpg b/content/blog/ported/education/2020-03-17-teaching-online-on-short-notice/teaching-online-on-short-notice-wd.jpg similarity index 100% rename from content/blog/education/2020-03-17-teaching-online-on-short-notice/teaching-online-on-short-notice-wd.jpg rename to content/blog/ported/education/2020-03-17-teaching-online-on-short-notice/teaching-online-on-short-notice-wd.jpg diff --git a/content/blog/education/2020-03-17-teaching-online-on-short-notice/toilet-paper.jpeg b/content/blog/ported/education/2020-03-17-teaching-online-on-short-notice/toilet-paper.jpeg similarity index 100% rename from content/blog/education/2020-03-17-teaching-online-on-short-notice/toilet-paper.jpeg rename to content/blog/ported/education/2020-03-17-teaching-online-on-short-notice/toilet-paper.jpeg diff --git a/content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/featured-wd.jpg b/content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/featured-wd.jpg rename to content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/featured-wd.jpg diff --git a/content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/file-export.jpeg b/content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/file-export.jpeg similarity index 100% rename from content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/file-export.jpeg rename to content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/file-export.jpeg diff --git a/content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.Rmarkdown b/content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.Rmarkdown similarity index 92% rename from content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.Rmarkdown rename to content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.Rmarkdown index ce9096f84..04c24c4d3 100644 --- a/content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.Rmarkdown +++ b/content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.Rmarkdown @@ -34,7 +34,7 @@ If your students don't have R and RStudio set up locally on their own devices, t ## Outsource content delivery -One option for content delivery is synchronous virtual sessions and we've given you some tips for this [here](/blog/education/2020-03-17-teaching-online-on-short-notice/). Another option is pre-recorded videos. Videos can be a great supplement to any class, but they can be especially useful for making time in synchronous virtual sessions for discussion as well as providing alternatives for students who are unable to make it to synchronous virtual sessions. The drawback is that they can be incredibly time consuming to produce, even if you promise yourself you won't spend too much time on perfecting them. You might be able to leverage existing video content, especially if you're using these to supplement other synchronous teaching sessions you're already planning to run: +One option for content delivery is synchronous virtual sessions and we've given you some tips for this [here](/blog/2020-03-17_teaching-online-on-short-notice/). Another option is pre-recorded videos. Videos can be a great supplement to any class, but they can be especially useful for making time in synchronous virtual sessions for discussion as well as providing alternatives for students who are unable to make it to synchronous virtual sessions. The drawback is that they can be incredibly time consuming to produce, even if you promise yourself you won't spend too much time on perfecting them. You might be able to leverage existing video content, especially if you're using these to supplement other synchronous teaching sessions you're already planning to run: - A searchable list of [RStudio webinars and conference talks](https://resources.rstudio.com/) - Many courses on Coursera have an [audit option](https://learner.coursera.help/hc/en-us/articles/209818613-Enrollment-options). The [Data Science Specialization](https://www.coursera.org/specializations/jhu-data-science) and [Statistics with R](https://www.coursera.org/specializations/statistics) specialisations have lots of statistics and R content in video form that your students can watch for free with the audit option. diff --git a/content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.markdown b/content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.markdown similarity index 92% rename from content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.markdown rename to content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.markdown index 9c1b31da6..f4a5b245c 100644 --- a/content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.markdown +++ b/content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/index.markdown @@ -34,7 +34,7 @@ If your students don't have R and RStudio set up locally on their own devices, t ## Outsource content delivery -One option for content delivery is synchronous virtual sessions and we've given you some tips for this [here](/blog/education/2020-03-17-teaching-online-on-short-notice/). Another option is pre-recorded videos. Videos can be a great supplement to any class, but they can be especially useful for making time in synchronous virtual sessions for discussion as well as providing alternatives for students who are unable to make it to synchronous virtual sessions. The drawback is that they can be incredibly time consuming to produce, even if you promise yourself you won't spend too much time on perfecting them. You might be able to leverage existing video content, especially if you're using these to supplement other synchronous teaching sessions you're already planning to run: +One option for content delivery is synchronous virtual sessions and we've given you some tips for this [here](/blog/2020-03-17_teaching-online-on-short-notice/). Another option is pre-recorded videos. Videos can be a great supplement to any class, but they can be especially useful for making time in synchronous virtual sessions for discussion as well as providing alternatives for students who are unable to make it to synchronous virtual sessions. The drawback is that they can be incredibly time consuming to produce, even if you promise yourself you won't spend too much time on perfecting them. You might be able to leverage existing video content, especially if you're using these to supplement other synchronous teaching sessions you're already planning to run: - A searchable list of [RStudio webinars and conference talks](https://resources.rstudio.com/) - Many courses on Coursera have an [audit option](https://learner.coursera.help/hc/en-us/articles/209818613-Enrollment-options). The [Data Science Specialization](https://www.coursera.org/specializations/jhu-data-science) and [Statistics with R](https://www.coursera.org/specializations/statistics) specialisations have lots of statistics and R content in video form that your students can watch for free with the audit option. diff --git a/content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/rpubs-publish.jpeg b/content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/rpubs-publish.jpeg similarity index 100% rename from content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/rpubs-publish.jpeg rename to content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/rpubs-publish.jpeg diff --git a/content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/thumbnail.jpg b/content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/thumbnail.jpg rename to content/blog/ported/education/2020-03-19-resources-tips-for-teaching-with-R-remotely/thumbnail.jpg diff --git a/content/blog/education/2020-03-23-online-teaching-qa/index.Rmarkdown b/content/blog/ported/education/2020-03-23-online-teaching-qa/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-03-23-online-teaching-qa/index.Rmarkdown rename to content/blog/ported/education/2020-03-23-online-teaching-qa/index.Rmarkdown diff --git a/content/blog/education/2020-03-23-online-teaching-qa/index.markdown b/content/blog/ported/education/2020-03-23-online-teaching-qa/index.markdown similarity index 100% rename from content/blog/education/2020-03-23-online-teaching-qa/index.markdown rename to content/blog/ported/education/2020-03-23-online-teaching-qa/index.markdown diff --git a/content/blog/education/2020-03-23-online-teaching-qa/online-teaching-qa-thumbnail.jpg b/content/blog/ported/education/2020-03-23-online-teaching-qa/online-teaching-qa-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-03-23-online-teaching-qa/online-teaching-qa-thumbnail.jpg rename to content/blog/ported/education/2020-03-23-online-teaching-qa/online-teaching-qa-thumbnail.jpg diff --git a/content/blog/education/2020-03-23-online-teaching-qa/online-teaching-qa-wd.jpg b/content/blog/ported/education/2020-03-23-online-teaching-qa/online-teaching-qa-wd.jpg similarity index 100% rename from content/blog/education/2020-03-23-online-teaching-qa/online-teaching-qa-wd.jpg rename to content/blog/ported/education/2020-03-23-online-teaching-qa/online-teaching-qa-wd.jpg diff --git a/content/blog/education/2020-03-23-online-teaching-qa/original.jpg b/content/blog/ported/education/2020-03-23-online-teaching-qa/original.jpg similarity index 100% rename from content/blog/education/2020-03-23-online-teaching-qa/original.jpg rename to content/blog/ported/education/2020-03-23-online-teaching-qa/original.jpg diff --git a/content/blog/education/2020-03-24-reopening-training-applications/index.Rmarkdown b/content/blog/ported/education/2020-03-24-reopening-training-applications/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-03-24-reopening-training-applications/index.Rmarkdown rename to content/blog/ported/education/2020-03-24-reopening-training-applications/index.Rmarkdown diff --git a/content/blog/education/2020-03-24-reopening-training-applications/index.markdown b/content/blog/ported/education/2020-03-24-reopening-training-applications/index.markdown similarity index 100% rename from content/blog/education/2020-03-24-reopening-training-applications/index.markdown rename to content/blog/ported/education/2020-03-24-reopening-training-applications/index.markdown diff --git a/content/blog/education/2020-03-24-reopening-training-applications/original.jpg b/content/blog/ported/education/2020-03-24-reopening-training-applications/original.jpg similarity index 100% rename from content/blog/education/2020-03-24-reopening-training-applications/original.jpg rename to content/blog/ported/education/2020-03-24-reopening-training-applications/original.jpg diff --git a/content/blog/education/2020-03-24-reopening-training-applications/reopening-training-applications-thumbnail.jpg b/content/blog/ported/education/2020-03-24-reopening-training-applications/reopening-training-applications-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-03-24-reopening-training-applications/reopening-training-applications-thumbnail.jpg rename to content/blog/ported/education/2020-03-24-reopening-training-applications/reopening-training-applications-thumbnail.jpg diff --git a/content/blog/education/2020-03-24-reopening-training-applications/reopening-training-applications-wd.jpg b/content/blog/ported/education/2020-03-24-reopening-training-applications/reopening-training-applications-wd.jpg similarity index 100% rename from content/blog/education/2020-03-24-reopening-training-applications/reopening-training-applications-wd.jpg rename to content/blog/ported/education/2020-03-24-reopening-training-applications/reopening-training-applications-wd.jpg diff --git a/content/blog/education/2020-03-27-cheatsheet-tips/featured-wd.jpg b/content/blog/ported/education/2020-03-27-cheatsheet-tips/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-03-27-cheatsheet-tips/featured-wd.jpg rename to content/blog/ported/education/2020-03-27-cheatsheet-tips/featured-wd.jpg diff --git a/content/blog/education/2020-03-27-cheatsheet-tips/featured-wd.jpg.original b/content/blog/ported/education/2020-03-27-cheatsheet-tips/featured-wd.jpg.original similarity index 100% rename from content/blog/education/2020-03-27-cheatsheet-tips/featured-wd.jpg.original rename to content/blog/ported/education/2020-03-27-cheatsheet-tips/featured-wd.jpg.original diff --git a/content/blog/education/2020-03-27-cheatsheet-tips/index.Rmarkdown b/content/blog/ported/education/2020-03-27-cheatsheet-tips/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-03-27-cheatsheet-tips/index.Rmarkdown rename to content/blog/ported/education/2020-03-27-cheatsheet-tips/index.Rmarkdown diff --git a/content/blog/education/2020-03-27-cheatsheet-tips/index.markdown b/content/blog/ported/education/2020-03-27-cheatsheet-tips/index.markdown similarity index 100% rename from content/blog/education/2020-03-27-cheatsheet-tips/index.markdown rename to content/blog/ported/education/2020-03-27-cheatsheet-tips/index.markdown diff --git a/content/blog/education/2020-03-27-cheatsheet-tips/thumbnail.jpg b/content/blog/ported/education/2020-03-27-cheatsheet-tips/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-03-27-cheatsheet-tips/thumbnail.jpg rename to content/blog/ported/education/2020-03-27-cheatsheet-tips/thumbnail.jpg diff --git a/content/blog/education/2020-03-31-march-2020-instructors/index.Rmarkdown b/content/blog/ported/education/2020-03-31-march-2020-instructors/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-03-31-march-2020-instructors/index.Rmarkdown rename to content/blog/ported/education/2020-03-31-march-2020-instructors/index.Rmarkdown diff --git a/content/blog/education/2020-03-31-march-2020-instructors/index.markdown b/content/blog/ported/education/2020-03-31-march-2020-instructors/index.markdown similarity index 100% rename from content/blog/education/2020-03-31-march-2020-instructors/index.markdown rename to content/blog/ported/education/2020-03-31-march-2020-instructors/index.markdown diff --git a/content/blog/education/2020-03-31-march-2020-instructors/march-2020-instructors-thumbnail.jpg b/content/blog/ported/education/2020-03-31-march-2020-instructors/march-2020-instructors-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-03-31-march-2020-instructors/march-2020-instructors-thumbnail.jpg rename to content/blog/ported/education/2020-03-31-march-2020-instructors/march-2020-instructors-thumbnail.jpg diff --git a/content/blog/education/2020-03-31-march-2020-instructors/march-2020-instructors-wd.jpg b/content/blog/ported/education/2020-03-31-march-2020-instructors/march-2020-instructors-wd.jpg similarity index 100% rename from content/blog/education/2020-03-31-march-2020-instructors/march-2020-instructors-wd.jpg rename to content/blog/ported/education/2020-03-31-march-2020-instructors/march-2020-instructors-wd.jpg diff --git a/content/blog/education/2020-03-31-march-2020-instructors/march-2020-instructors-wd.jpg.original b/content/blog/ported/education/2020-03-31-march-2020-instructors/march-2020-instructors-wd.jpg.original similarity index 100% rename from content/blog/education/2020-03-31-march-2020-instructors/march-2020-instructors-wd.jpg.original rename to content/blog/ported/education/2020-03-31-march-2020-instructors/march-2020-instructors-wd.jpg.original diff --git a/content/blog/education/2020-03-31-march-2020-instructors/original.jpg b/content/blog/ported/education/2020-03-31-march-2020-instructors/original.jpg similarity index 100% rename from content/blog/education/2020-03-31-march-2020-instructors/original.jpg rename to content/blog/ported/education/2020-03-31-march-2020-instructors/original.jpg diff --git a/content/blog/education/2020-03-31-march-2020-instructors/original.jpg.original b/content/blog/ported/education/2020-03-31-march-2020-instructors/original.jpg.original similarity index 100% rename from content/blog/education/2020-03-31-march-2020-instructors/original.jpg.original rename to content/blog/ported/education/2020-03-31-march-2020-instructors/original.jpg.original diff --git a/content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/featured-wd.jpg b/content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/featured-wd.jpg rename to content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/featured-wd.jpg diff --git a/content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/featured-wd.jpg.original b/content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/featured-wd.jpg.original similarity index 100% rename from content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/featured-wd.jpg.original rename to content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/featured-wd.jpg.original diff --git a/content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/file-export.jpg b/content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/file-export.jpg similarity index 100% rename from content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/file-export.jpg rename to content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/file-export.jpg diff --git a/content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/index.Rmarkdown b/content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/index.Rmarkdown rename to content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/index.Rmarkdown diff --git a/content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/index.markdown b/content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/index.markdown similarity index 100% rename from content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/index.markdown rename to content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/index.markdown diff --git a/content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-save-permanent-copy.png b/content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-save-permanent-copy.png similarity index 100% rename from content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-save-permanent-copy.png rename to content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-save-permanent-copy.png diff --git a/content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-save-permanent-copy.png.original b/content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-save-permanent-copy.png.original similarity index 100% rename from content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-save-permanent-copy.png.original rename to content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-save-permanent-copy.png.original diff --git a/content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-upload-file.png b/content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-upload-file.png similarity index 100% rename from content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-upload-file.png rename to content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/rscloud-upload-file.png diff --git a/content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/thumbnail.jpg b/content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-04-01-teaching-with-rstudio-cloud-q-a/thumbnail.jpg rename to content/blog/ported/education/2020-04-01-teaching-with-rstudio-cloud-q-a/thumbnail.jpg diff --git a/content/blog/education/2020-04-06-first-year-of-instructor-training/figs/competion-times-1.png b/content/blog/ported/education/2020-04-06-first-year-of-instructor-training/figs/competion-times-1.png similarity index 100% rename from content/blog/education/2020-04-06-first-year-of-instructor-training/figs/competion-times-1.png rename to content/blog/ported/education/2020-04-06-first-year-of-instructor-training/figs/competion-times-1.png diff --git a/content/blog/education/2020-04-06-first-year-of-instructor-training/figs/completion-rates-1.png b/content/blog/ported/education/2020-04-06-first-year-of-instructor-training/figs/completion-rates-1.png similarity index 100% rename from content/blog/education/2020-04-06-first-year-of-instructor-training/figs/completion-rates-1.png rename to content/blog/ported/education/2020-04-06-first-year-of-instructor-training/figs/completion-rates-1.png diff --git a/content/blog/education/2020-04-06-first-year-of-instructor-training/first-year-of-instructor-training-thumbnail.jpg b/content/blog/ported/education/2020-04-06-first-year-of-instructor-training/first-year-of-instructor-training-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-04-06-first-year-of-instructor-training/first-year-of-instructor-training-thumbnail.jpg rename to content/blog/ported/education/2020-04-06-first-year-of-instructor-training/first-year-of-instructor-training-thumbnail.jpg diff --git a/content/blog/education/2020-04-06-first-year-of-instructor-training/first-year-of-instructor-training-wd.jpg b/content/blog/ported/education/2020-04-06-first-year-of-instructor-training/first-year-of-instructor-training-wd.jpg similarity index 100% rename from content/blog/education/2020-04-06-first-year-of-instructor-training/first-year-of-instructor-training-wd.jpg rename to content/blog/ported/education/2020-04-06-first-year-of-instructor-training/first-year-of-instructor-training-wd.jpg diff --git a/content/blog/education/2020-04-06-first-year-of-instructor-training/index.Rmarkdown b/content/blog/ported/education/2020-04-06-first-year-of-instructor-training/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-04-06-first-year-of-instructor-training/index.Rmarkdown rename to content/blog/ported/education/2020-04-06-first-year-of-instructor-training/index.Rmarkdown diff --git a/content/blog/education/2020-04-06-first-year-of-instructor-training/index.markdown b/content/blog/ported/education/2020-04-06-first-year-of-instructor-training/index.markdown similarity index 100% rename from content/blog/education/2020-04-06-first-year-of-instructor-training/index.markdown rename to content/blog/ported/education/2020-04-06-first-year-of-instructor-training/index.markdown diff --git a/content/blog/education/2020-04-06-first-year-of-instructor-training/original.jpg b/content/blog/ported/education/2020-04-06-first-year-of-instructor-training/original.jpg similarity index 100% rename from content/blog/education/2020-04-06-first-year-of-instructor-training/original.jpg rename to content/blog/ported/education/2020-04-06-first-year-of-instructor-training/original.jpg diff --git a/content/blog/education/2020-04-06-first-year-of-instructor-training/rates.csv b/content/blog/ported/education/2020-04-06-first-year-of-instructor-training/rates.csv similarity index 100% rename from content/blog/education/2020-04-06-first-year-of-instructor-training/rates.csv rename to content/blog/ported/education/2020-04-06-first-year-of-instructor-training/rates.csv diff --git a/content/blog/education/2020-04-06-first-year-of-instructor-training/times.csv b/content/blog/ported/education/2020-04-06-first-year-of-instructor-training/times.csv similarity index 100% rename from content/blog/education/2020-04-06-first-year-of-instructor-training/times.csv rename to content/blog/ported/education/2020-04-06-first-year-of-instructor-training/times.csv diff --git a/content/blog/education/2020-04-06-sharing-short-notice/blogdown-advice.png b/content/blog/ported/education/2020-04-06-sharing-short-notice/blogdown-advice.png similarity index 100% rename from content/blog/education/2020-04-06-sharing-short-notice/blogdown-advice.png rename to content/blog/ported/education/2020-04-06-sharing-short-notice/blogdown-advice.png diff --git a/content/blog/education/2020-04-06-sharing-short-notice/blogdown-advice.png.original b/content/blog/ported/education/2020-04-06-sharing-short-notice/blogdown-advice.png.original similarity index 100% rename from content/blog/education/2020-04-06-sharing-short-notice/blogdown-advice.png.original rename to content/blog/ported/education/2020-04-06-sharing-short-notice/blogdown-advice.png.original diff --git a/content/blog/education/2020-04-06-sharing-short-notice/featured-wd.jpg b/content/blog/ported/education/2020-04-06-sharing-short-notice/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-04-06-sharing-short-notice/featured-wd.jpg rename to content/blog/ported/education/2020-04-06-sharing-short-notice/featured-wd.jpg diff --git a/content/blog/education/2020-04-06-sharing-short-notice/index.Rmarkdown b/content/blog/ported/education/2020-04-06-sharing-short-notice/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-04-06-sharing-short-notice/index.Rmarkdown rename to content/blog/ported/education/2020-04-06-sharing-short-notice/index.Rmarkdown diff --git a/content/blog/education/2020-04-06-sharing-short-notice/index.markdown b/content/blog/ported/education/2020-04-06-sharing-short-notice/index.markdown similarity index 100% rename from content/blog/education/2020-04-06-sharing-short-notice/index.markdown rename to content/blog/ported/education/2020-04-06-sharing-short-notice/index.markdown diff --git a/content/blog/education/2020-04-06-sharing-short-notice/mtsalsa.jpg b/content/blog/ported/education/2020-04-06-sharing-short-notice/mtsalsa.jpg similarity index 100% rename from content/blog/education/2020-04-06-sharing-short-notice/mtsalsa.jpg rename to content/blog/ported/education/2020-04-06-sharing-short-notice/mtsalsa.jpg diff --git a/content/blog/education/2020-04-06-sharing-short-notice/mtsalsa.jpg.original b/content/blog/ported/education/2020-04-06-sharing-short-notice/mtsalsa.jpg.original similarity index 100% rename from content/blog/education/2020-04-06-sharing-short-notice/mtsalsa.jpg.original rename to content/blog/ported/education/2020-04-06-sharing-short-notice/mtsalsa.jpg.original diff --git a/content/blog/education/2020-04-06-sharing-short-notice/thumbnail.jpg b/content/blog/ported/education/2020-04-06-sharing-short-notice/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-04-06-sharing-short-notice/thumbnail.jpg rename to content/blog/ported/education/2020-04-06-sharing-short-notice/thumbnail.jpg diff --git a/content/blog/education/2020-04-08-announcing-2020-interns/feature-wd.jpg b/content/blog/ported/education/2020-04-08-announcing-2020-interns/feature-wd.jpg similarity index 100% rename from content/blog/education/2020-04-08-announcing-2020-interns/feature-wd.jpg rename to content/blog/ported/education/2020-04-08-announcing-2020-interns/feature-wd.jpg diff --git a/content/blog/education/2020-04-08-announcing-2020-interns/index.Rmarkdown b/content/blog/ported/education/2020-04-08-announcing-2020-interns/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-04-08-announcing-2020-interns/index.Rmarkdown rename to content/blog/ported/education/2020-04-08-announcing-2020-interns/index.Rmarkdown diff --git a/content/blog/education/2020-04-08-announcing-2020-interns/index.markdown b/content/blog/ported/education/2020-04-08-announcing-2020-interns/index.markdown similarity index 100% rename from content/blog/education/2020-04-08-announcing-2020-interns/index.markdown rename to content/blog/ported/education/2020-04-08-announcing-2020-interns/index.markdown diff --git a/content/blog/education/2020-04-08-announcing-2020-interns/thumbnail.jpg b/content/blog/ported/education/2020-04-08-announcing-2020-interns/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-04-08-announcing-2020-interns/thumbnail.jpg rename to content/blog/ported/education/2020-04-08-announcing-2020-interns/thumbnail.jpg diff --git a/content/blog/education/2020-04-30-april-2020-instructors/april-2020-instructors-thumbnail.jpg b/content/blog/ported/education/2020-04-30-april-2020-instructors/april-2020-instructors-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-04-30-april-2020-instructors/april-2020-instructors-thumbnail.jpg rename to content/blog/ported/education/2020-04-30-april-2020-instructors/april-2020-instructors-thumbnail.jpg diff --git a/content/blog/education/2020-04-30-april-2020-instructors/april-2020-instructors-wd.jpg b/content/blog/ported/education/2020-04-30-april-2020-instructors/april-2020-instructors-wd.jpg similarity index 100% rename from content/blog/education/2020-04-30-april-2020-instructors/april-2020-instructors-wd.jpg rename to content/blog/ported/education/2020-04-30-april-2020-instructors/april-2020-instructors-wd.jpg diff --git a/content/blog/education/2020-04-30-april-2020-instructors/april-2020-instructors-wd.jpg.original b/content/blog/ported/education/2020-04-30-april-2020-instructors/april-2020-instructors-wd.jpg.original similarity index 100% rename from content/blog/education/2020-04-30-april-2020-instructors/april-2020-instructors-wd.jpg.original rename to content/blog/ported/education/2020-04-30-april-2020-instructors/april-2020-instructors-wd.jpg.original diff --git a/content/blog/education/2020-04-30-april-2020-instructors/index.Rmarkdown b/content/blog/ported/education/2020-04-30-april-2020-instructors/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-04-30-april-2020-instructors/index.Rmarkdown rename to content/blog/ported/education/2020-04-30-april-2020-instructors/index.Rmarkdown diff --git a/content/blog/education/2020-04-30-april-2020-instructors/index.markdown b/content/blog/ported/education/2020-04-30-april-2020-instructors/index.markdown similarity index 100% rename from content/blog/education/2020-04-30-april-2020-instructors/index.markdown rename to content/blog/ported/education/2020-04-30-april-2020-instructors/index.markdown diff --git a/content/blog/education/2020-04-30-april-2020-instructors/original.jpg b/content/blog/ported/education/2020-04-30-april-2020-instructors/original.jpg similarity index 100% rename from content/blog/education/2020-04-30-april-2020-instructors/original.jpg rename to content/blog/ported/education/2020-04-30-april-2020-instructors/original.jpg diff --git a/content/blog/education/2020-04-30-april-2020-instructors/original.jpg.original b/content/blog/ported/education/2020-04-30-april-2020-instructors/original.jpg.original similarity index 100% rename from content/blog/education/2020-04-30-april-2020-instructors/original.jpg.original rename to content/blog/ported/education/2020-04-30-april-2020-instructors/original.jpg.original diff --git a/content/blog/education/2020-05-04-flair/featured-wd.jpg b/content/blog/ported/education/2020-05-04-flair/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-05-04-flair/featured-wd.jpg rename to content/blog/ported/education/2020-05-04-flair/featured-wd.jpg diff --git a/content/blog/education/2020-05-04-flair/featured-wd.jpg.original b/content/blog/ported/education/2020-05-04-flair/featured-wd.jpg.original similarity index 100% rename from content/blog/education/2020-05-04-flair/featured-wd.jpg.original rename to content/blog/ported/education/2020-05-04-flair/featured-wd.jpg.original diff --git a/content/blog/education/2020-05-04-flair/heiss-slide.jpg b/content/blog/ported/education/2020-05-04-flair/heiss-slide.jpg similarity index 100% rename from content/blog/education/2020-05-04-flair/heiss-slide.jpg rename to content/blog/ported/education/2020-05-04-flair/heiss-slide.jpg diff --git a/content/blog/education/2020-05-04-flair/index.Rmarkdown b/content/blog/ported/education/2020-05-04-flair/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-05-04-flair/index.Rmarkdown rename to content/blog/ported/education/2020-05-04-flair/index.Rmarkdown diff --git a/content/blog/education/2020-05-04-flair/index.markdown b/content/blog/ported/education/2020-05-04-flair/index.markdown similarity index 100% rename from content/blog/education/2020-05-04-flair/index.markdown rename to content/blog/ported/education/2020-05-04-flair/index.markdown diff --git a/content/blog/education/2020-05-04-flair/kellys_ca.txt b/content/blog/ported/education/2020-05-04-flair/kellys_ca.txt similarity index 100% rename from content/blog/education/2020-05-04-flair/kellys_ca.txt rename to content/blog/ported/education/2020-05-04-flair/kellys_ca.txt diff --git a/content/blog/education/2020-05-04-flair/thumbnail.jpg b/content/blog/ported/education/2020-05-04-flair/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-05-04-flair/thumbnail.jpg rename to content/blog/ported/education/2020-05-04-flair/thumbnail.jpg diff --git a/content/blog/education/2020-05-04-flair/unnamed-chunk-10-1.png b/content/blog/ported/education/2020-05-04-flair/unnamed-chunk-10-1.png similarity index 100% rename from content/blog/education/2020-05-04-flair/unnamed-chunk-10-1.png rename to content/blog/ported/education/2020-05-04-flair/unnamed-chunk-10-1.png diff --git a/content/blog/education/2020-05-04-flair/unnamed-chunk-8-1.png b/content/blog/ported/education/2020-05-04-flair/unnamed-chunk-8-1.png similarity index 100% rename from content/blog/education/2020-05-04-flair/unnamed-chunk-8-1.png rename to content/blog/ported/education/2020-05-04-flair/unnamed-chunk-8-1.png diff --git a/content/blog/education/2020-05-04-flair/unnamed-chunk-8-2.png b/content/blog/ported/education/2020-05-04-flair/unnamed-chunk-8-2.png similarity index 100% rename from content/blog/education/2020-05-04-flair/unnamed-chunk-8-2.png rename to content/blog/ported/education/2020-05-04-flair/unnamed-chunk-8-2.png diff --git a/content/blog/education/2020-05-19-learnr/example_code.png b/content/blog/ported/education/2020-05-19-learnr/example_code.png similarity index 100% rename from content/blog/education/2020-05-19-learnr/example_code.png rename to content/blog/ported/education/2020-05-19-learnr/example_code.png diff --git a/content/blog/education/2020-05-19-learnr/flying-na-thumbnail.png b/content/blog/ported/education/2020-05-19-learnr/flying-na-thumbnail.png similarity index 100% rename from content/blog/education/2020-05-19-learnr/flying-na-thumbnail.png rename to content/blog/ported/education/2020-05-19-learnr/flying-na-thumbnail.png diff --git a/content/blog/education/2020-05-19-learnr/flying-na-thumbnail.png.original b/content/blog/ported/education/2020-05-19-learnr/flying-na-thumbnail.png.original similarity index 100% rename from content/blog/education/2020-05-19-learnr/flying-na-thumbnail.png.original rename to content/blog/ported/education/2020-05-19-learnr/flying-na-thumbnail.png.original diff --git a/content/blog/education/2020-05-19-learnr/flying-na-wd.jpg b/content/blog/ported/education/2020-05-19-learnr/flying-na-wd.jpg similarity index 100% rename from content/blog/education/2020-05-19-learnr/flying-na-wd.jpg rename to content/blog/ported/education/2020-05-19-learnr/flying-na-wd.jpg diff --git a/content/blog/education/2020-05-19-learnr/flying-na-wd.jpg.original b/content/blog/ported/education/2020-05-19-learnr/flying-na-wd.jpg.original similarity index 100% rename from content/blog/education/2020-05-19-learnr/flying-na-wd.jpg.original rename to content/blog/ported/education/2020-05-19-learnr/flying-na-wd.jpg.original diff --git a/content/blog/education/2020-05-19-learnr/hint.png b/content/blog/ported/education/2020-05-19-learnr/hint.png similarity index 100% rename from content/blog/education/2020-05-19-learnr/hint.png rename to content/blog/ported/education/2020-05-19-learnr/hint.png diff --git a/content/blog/education/2020-05-19-learnr/index.Rmarkdown b/content/blog/ported/education/2020-05-19-learnr/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-05-19-learnr/index.Rmarkdown rename to content/blog/ported/education/2020-05-19-learnr/index.Rmarkdown diff --git a/content/blog/education/2020-05-19-learnr/index.markdown b/content/blog/ported/education/2020-05-19-learnr/index.markdown similarity index 100% rename from content/blog/education/2020-05-19-learnr/index.markdown rename to content/blog/ported/education/2020-05-19-learnr/index.markdown diff --git a/content/blog/education/2020-05-19-learnr/naniar.jpg b/content/blog/ported/education/2020-05-19-learnr/naniar.jpg similarity index 100% rename from content/blog/education/2020-05-19-learnr/naniar.jpg rename to content/blog/ported/education/2020-05-19-learnr/naniar.jpg diff --git a/content/blog/education/2020-05-19-learnr/solution.png b/content/blog/ported/education/2020-05-19-learnr/solution.png similarity index 100% rename from content/blog/education/2020-05-19-learnr/solution.png rename to content/blog/ported/education/2020-05-19-learnr/solution.png diff --git a/content/blog/education/2020-05-19-learnr/tutorial_home.png b/content/blog/ported/education/2020-05-19-learnr/tutorial_home.png similarity index 100% rename from content/blog/education/2020-05-19-learnr/tutorial_home.png rename to content/blog/ported/education/2020-05-19-learnr/tutorial_home.png diff --git a/content/blog/education/2020-05-19-remote-roundup/advr-schedule.png b/content/blog/ported/education/2020-05-19-remote-roundup/advr-schedule.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/advr-schedule.png rename to content/blog/ported/education/2020-05-19-remote-roundup/advr-schedule.png diff --git a/content/blog/education/2020-05-19-remote-roundup/aml.png b/content/blog/ported/education/2020-05-19-remote-roundup/aml.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/aml.png rename to content/blog/ported/education/2020-05-19-remote-roundup/aml.png diff --git a/content/blog/education/2020-05-19-remote-roundup/bodwin-glanz-advr.png b/content/blog/ported/education/2020-05-19-remote-roundup/bodwin-glanz-advr.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/bodwin-glanz-advr.png rename to content/blog/ported/education/2020-05-19-remote-roundup/bodwin-glanz-advr.png diff --git a/content/blog/education/2020-05-19-remote-roundup/dataviz-schedule.png b/content/blog/ported/education/2020-05-19-remote-roundup/dataviz-schedule.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/dataviz-schedule.png rename to content/blog/ported/education/2020-05-19-remote-roundup/dataviz-schedule.png diff --git a/content/blog/education/2020-05-19-remote-roundup/heiss-dataviz.png b/content/blog/ported/education/2020-05-19-remote-roundup/heiss-dataviz.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/heiss-dataviz.png rename to content/blog/ported/education/2020-05-19-remote-roundup/heiss-dataviz.png diff --git a/content/blog/education/2020-05-19-remote-roundup/index.Rmarkdown b/content/blog/ported/education/2020-05-19-remote-roundup/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/index.Rmarkdown rename to content/blog/ported/education/2020-05-19-remote-roundup/index.Rmarkdown diff --git a/content/blog/education/2020-05-19-remote-roundup/index.markdown b/content/blog/ported/education/2020-05-19-remote-roundup/index.markdown similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/index.markdown rename to content/blog/ported/education/2020-05-19-remote-roundup/index.markdown diff --git a/content/blog/education/2020-05-19-remote-roundup/r-hub.png b/content/blog/ported/education/2020-05-19-remote-roundup/r-hub.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/r-hub.png rename to content/blog/ported/education/2020-05-19-remote-roundup/r-hub.png diff --git a/content/blog/education/2020-05-19-remote-roundup/ready4r.png b/content/blog/ported/education/2020-05-19-remote-roundup/ready4r.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/ready4r.png rename to content/blog/ported/education/2020-05-19-remote-roundup/ready4r.png diff --git a/content/blog/education/2020-05-19-remote-roundup/remote-wd.jpg b/content/blog/ported/education/2020-05-19-remote-roundup/remote-wd.jpg similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/remote-wd.jpg rename to content/blog/ported/education/2020-05-19-remote-roundup/remote-wd.jpg diff --git a/content/blog/education/2020-05-19-remote-roundup/robust-playlist.png b/content/blog/ported/education/2020-05-19-remote-roundup/robust-playlist.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/robust-playlist.png rename to content/blog/ported/education/2020-05-19-remote-roundup/robust-playlist.png diff --git a/content/blog/education/2020-05-19-remote-roundup/robust-tools.png b/content/blog/ported/education/2020-05-19-remote-roundup/robust-tools.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/robust-tools.png rename to content/blog/ported/education/2020-05-19-remote-roundup/robust-tools.png diff --git a/content/blog/education/2020-05-19-remote-roundup/supervised-ml-course.png b/content/blog/ported/education/2020-05-19-remote-roundup/supervised-ml-course.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/supervised-ml-course.png rename to content/blog/ported/education/2020-05-19-remote-roundup/supervised-ml-course.png diff --git a/content/blog/education/2020-05-19-remote-roundup/thumbnail.jpg b/content/blog/ported/education/2020-05-19-remote-roundup/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/thumbnail.jpg rename to content/blog/ported/education/2020-05-19-remote-roundup/thumbnail.jpg diff --git a/content/blog/education/2020-05-19-remote-roundup/tidymodels.png b/content/blog/ported/education/2020-05-19-remote-roundup/tidymodels.png similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/tidymodels.png rename to content/blog/ported/education/2020-05-19-remote-roundup/tidymodels.png diff --git a/content/blog/education/2020-05-19-remote-roundup/united-nations-covid-19-response-0pWnG5AkqaQ-unsplash.jpg b/content/blog/ported/education/2020-05-19-remote-roundup/united-nations-covid-19-response-0pWnG5AkqaQ-unsplash.jpg similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/united-nations-covid-19-response-0pWnG5AkqaQ-unsplash.jpg rename to content/blog/ported/education/2020-05-19-remote-roundup/united-nations-covid-19-response-0pWnG5AkqaQ-unsplash.jpg diff --git a/content/blog/education/2020-05-19-remote-roundup/united-nations-covid-19-response-KKrFTC8CB1Q-unsplash.jpg b/content/blog/ported/education/2020-05-19-remote-roundup/united-nations-covid-19-response-KKrFTC8CB1Q-unsplash.jpg similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/united-nations-covid-19-response-KKrFTC8CB1Q-unsplash.jpg rename to content/blog/ported/education/2020-05-19-remote-roundup/united-nations-covid-19-response-KKrFTC8CB1Q-unsplash.jpg diff --git a/content/blog/education/2020-05-19-remote-roundup/united-nations-covid-19-response-QUJi85AKTnA-unsplash.jpg b/content/blog/ported/education/2020-05-19-remote-roundup/united-nations-covid-19-response-QUJi85AKTnA-unsplash.jpg similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/united-nations-covid-19-response-QUJi85AKTnA-unsplash.jpg rename to content/blog/ported/education/2020-05-19-remote-roundup/united-nations-covid-19-response-QUJi85AKTnA-unsplash.jpg diff --git a/content/blog/education/2020-05-19-remote-roundup/united-nations-covid-19-response-gMPsl1ez-Ts-unsplash.jpg b/content/blog/ported/education/2020-05-19-remote-roundup/united-nations-covid-19-response-gMPsl1ez-Ts-unsplash.jpg similarity index 100% rename from content/blog/education/2020-05-19-remote-roundup/united-nations-covid-19-response-gMPsl1ez-Ts-unsplash.jpg rename to content/blog/ported/education/2020-05-19-remote-roundup/united-nations-covid-19-response-gMPsl1ez-Ts-unsplash.jpg diff --git a/content/blog/education/2020-05-25-thinkr-shiny-training/featured-wd.jpg b/content/blog/ported/education/2020-05-25-thinkr-shiny-training/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-05-25-thinkr-shiny-training/featured-wd.jpg rename to content/blog/ported/education/2020-05-25-thinkr-shiny-training/featured-wd.jpg diff --git a/content/blog/education/2020-05-25-thinkr-shiny-training/featured-wd.jpg.original b/content/blog/ported/education/2020-05-25-thinkr-shiny-training/featured-wd.jpg.original similarity index 100% rename from content/blog/education/2020-05-25-thinkr-shiny-training/featured-wd.jpg.original rename to content/blog/ported/education/2020-05-25-thinkr-shiny-training/featured-wd.jpg.original diff --git a/content/blog/education/2020-05-25-thinkr-shiny-training/index.Rmarkdown b/content/blog/ported/education/2020-05-25-thinkr-shiny-training/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-05-25-thinkr-shiny-training/index.Rmarkdown rename to content/blog/ported/education/2020-05-25-thinkr-shiny-training/index.Rmarkdown diff --git a/content/blog/education/2020-05-25-thinkr-shiny-training/index.markdown b/content/blog/ported/education/2020-05-25-thinkr-shiny-training/index.markdown similarity index 100% rename from content/blog/education/2020-05-25-thinkr-shiny-training/index.markdown rename to content/blog/ported/education/2020-05-25-thinkr-shiny-training/index.markdown diff --git a/content/blog/education/2020-05-25-thinkr-shiny-training/original.jpg b/content/blog/ported/education/2020-05-25-thinkr-shiny-training/original.jpg similarity index 100% rename from content/blog/education/2020-05-25-thinkr-shiny-training/original.jpg rename to content/blog/ported/education/2020-05-25-thinkr-shiny-training/original.jpg diff --git a/content/blog/education/2020-05-25-thinkr-shiny-training/original.jpg.original b/content/blog/ported/education/2020-05-25-thinkr-shiny-training/original.jpg.original similarity index 100% rename from content/blog/education/2020-05-25-thinkr-shiny-training/original.jpg.original rename to content/blog/ported/education/2020-05-25-thinkr-shiny-training/original.jpg.original diff --git a/content/blog/education/2020-05-25-thinkr-shiny-training/thumbnail.jpg b/content/blog/ported/education/2020-05-25-thinkr-shiny-training/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-05-25-thinkr-shiny-training/thumbnail.jpg rename to content/blog/ported/education/2020-05-25-thinkr-shiny-training/thumbnail.jpg diff --git a/content/blog/education/2020-05-26-teach-interactive-course/binder.png b/content/blog/ported/education/2020-05-26-teach-interactive-course/binder.png similarity index 100% rename from content/blog/education/2020-05-26-teach-interactive-course/binder.png rename to content/blog/ported/education/2020-05-26-teach-interactive-course/binder.png diff --git a/content/blog/education/2020-05-26-teach-interactive-course/gams-course.png b/content/blog/ported/education/2020-05-26-teach-interactive-course/gams-course.png similarity index 100% rename from content/blog/education/2020-05-26-teach-interactive-course/gams-course.png rename to content/blog/ported/education/2020-05-26-teach-interactive-course/gams-course.png diff --git a/content/blog/education/2020-05-26-teach-interactive-course/index.Rmarkdown b/content/blog/ported/education/2020-05-26-teach-interactive-course/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-05-26-teach-interactive-course/index.Rmarkdown rename to content/blog/ported/education/2020-05-26-teach-interactive-course/index.Rmarkdown diff --git a/content/blog/education/2020-05-26-teach-interactive-course/index.markdown b/content/blog/ported/education/2020-05-26-teach-interactive-course/index.markdown similarity index 100% rename from content/blog/education/2020-05-26-teach-interactive-course/index.markdown rename to content/blog/ported/education/2020-05-26-teach-interactive-course/index.markdown diff --git a/content/blog/education/2020-05-26-teach-interactive-course/ml-course.png b/content/blog/ported/education/2020-05-26-teach-interactive-course/ml-course.png similarity index 100% rename from content/blog/education/2020-05-26-teach-interactive-course/ml-course.png rename to content/blog/ported/education/2020-05-26-teach-interactive-course/ml-course.png diff --git a/content/blog/education/2020-05-26-teach-interactive-course/thumbnail-sq.jpg b/content/blog/ported/education/2020-05-26-teach-interactive-course/thumbnail-sq.jpg similarity index 100% rename from content/blog/education/2020-05-26-teach-interactive-course/thumbnail-sq.jpg rename to content/blog/ported/education/2020-05-26-teach-interactive-course/thumbnail-sq.jpg diff --git a/content/blog/education/2020-05-26-teach-interactive-course/thumbnail-wd.jpg b/content/blog/ported/education/2020-05-26-teach-interactive-course/thumbnail-wd.jpg similarity index 100% rename from content/blog/education/2020-05-26-teach-interactive-course/thumbnail-wd.jpg rename to content/blog/ported/education/2020-05-26-teach-interactive-course/thumbnail-wd.jpg diff --git a/content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/conf20-dl-wd.jpg b/content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/conf20-dl-wd.jpg similarity index 100% rename from content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/conf20-dl-wd.jpg rename to content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/conf20-dl-wd.jpg diff --git a/content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig1-ingredients.png b/content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig1-ingredients.png similarity index 100% rename from content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig1-ingredients.png rename to content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig1-ingredients.png diff --git a/content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig2-recipe.png b/content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig2-recipe.png similarity index 100% rename from content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig2-recipe.png rename to content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig2-recipe.png diff --git a/content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig3-cookbook.png b/content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig3-cookbook.png similarity index 100% rename from content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig3-cookbook.png rename to content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig3-cookbook.png diff --git a/content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig4-approach.png b/content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig4-approach.png similarity index 100% rename from content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig4-approach.png rename to content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig4-approach.png diff --git a/content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig5-schedule.png b/content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig5-schedule.png similarity index 100% rename from content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig5-schedule.png rename to content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/fig5-schedule.png diff --git a/content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/index.Rmarkdown b/content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/index.Rmarkdown rename to content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/index.Rmarkdown diff --git a/content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/index.markdown b/content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/index.markdown similarity index 100% rename from content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/index.markdown rename to content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/index.markdown diff --git a/content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/thanks.gif b/content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/thanks.gif similarity index 100% rename from content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/thanks.gif rename to content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/thanks.gif diff --git a/content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/thumbnail.jpg b/content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/thumbnail.jpg rename to content/blog/ported/education/2020-05-28-deep-learning-workshop-at-rstudio-conf-2020/thumbnail.jpg diff --git a/content/blog/education/2020-06-01-lucerne-workshops/featured-wd.jpg b/content/blog/ported/education/2020-06-01-lucerne-workshops/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-06-01-lucerne-workshops/featured-wd.jpg rename to content/blog/ported/education/2020-06-01-lucerne-workshops/featured-wd.jpg diff --git a/content/blog/education/2020-06-01-lucerne-workshops/index.Rmarkdown b/content/blog/ported/education/2020-06-01-lucerne-workshops/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-06-01-lucerne-workshops/index.Rmarkdown rename to content/blog/ported/education/2020-06-01-lucerne-workshops/index.Rmarkdown diff --git a/content/blog/education/2020-06-01-lucerne-workshops/index.markdown b/content/blog/ported/education/2020-06-01-lucerne-workshops/index.markdown similarity index 100% rename from content/blog/education/2020-06-01-lucerne-workshops/index.markdown rename to content/blog/ported/education/2020-06-01-lucerne-workshops/index.markdown diff --git a/content/blog/education/2020-06-01-lucerne-workshops/original.jpg b/content/blog/ported/education/2020-06-01-lucerne-workshops/original.jpg similarity index 100% rename from content/blog/education/2020-06-01-lucerne-workshops/original.jpg rename to content/blog/ported/education/2020-06-01-lucerne-workshops/original.jpg diff --git a/content/blog/education/2020-06-01-lucerne-workshops/thumbnail.jpg b/content/blog/ported/education/2020-06-01-lucerne-workshops/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-06-01-lucerne-workshops/thumbnail.jpg rename to content/blog/ported/education/2020-06-01-lucerne-workshops/thumbnail.jpg diff --git a/content/blog/education/2020-06-01-may-2020-instructors/index.Rmarkdown b/content/blog/ported/education/2020-06-01-may-2020-instructors/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-06-01-may-2020-instructors/index.Rmarkdown rename to content/blog/ported/education/2020-06-01-may-2020-instructors/index.Rmarkdown diff --git a/content/blog/education/2020-06-01-may-2020-instructors/index.markdown b/content/blog/ported/education/2020-06-01-may-2020-instructors/index.markdown similarity index 100% rename from content/blog/education/2020-06-01-may-2020-instructors/index.markdown rename to content/blog/ported/education/2020-06-01-may-2020-instructors/index.markdown diff --git a/content/blog/education/2020-06-01-may-2020-instructors/may-2020-instructors-thumbnail.jpg b/content/blog/ported/education/2020-06-01-may-2020-instructors/may-2020-instructors-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-06-01-may-2020-instructors/may-2020-instructors-thumbnail.jpg rename to content/blog/ported/education/2020-06-01-may-2020-instructors/may-2020-instructors-thumbnail.jpg diff --git a/content/blog/education/2020-06-01-may-2020-instructors/may-2020-instructors-wd.jpg b/content/blog/ported/education/2020-06-01-may-2020-instructors/may-2020-instructors-wd.jpg similarity index 100% rename from content/blog/education/2020-06-01-may-2020-instructors/may-2020-instructors-wd.jpg rename to content/blog/ported/education/2020-06-01-may-2020-instructors/may-2020-instructors-wd.jpg diff --git a/content/blog/education/2020-06-01-may-2020-instructors/may-2020-instructors-wd.jpg.original b/content/blog/ported/education/2020-06-01-may-2020-instructors/may-2020-instructors-wd.jpg.original similarity index 100% rename from content/blog/education/2020-06-01-may-2020-instructors/may-2020-instructors-wd.jpg.original rename to content/blog/ported/education/2020-06-01-may-2020-instructors/may-2020-instructors-wd.jpg.original diff --git a/content/blog/education/2020-06-08-conf20-org-first-pkg/index.Rmarkdown b/content/blog/ported/education/2020-06-08-conf20-org-first-pkg/index.Rmarkdown similarity index 92% rename from content/blog/education/2020-06-08-conf20-org-first-pkg/index.Rmarkdown rename to content/blog/ported/education/2020-06-08-conf20-org-first-pkg/index.Rmarkdown index 9e8c66b8f..4f6e1d76c 100644 --- a/content/blog/education/2020-06-08-conf20-org-first-pkg/index.Rmarkdown +++ b/content/blog/ported/education/2020-06-08-conf20-org-first-pkg/index.Rmarkdown @@ -38,7 +38,7 @@ ported_categories: We were thrilled to deliver our workshop, “My Organization’s First R Package,” at `rstudio::conf(2020L)`. Packages are the [fundamental unit of shareable code in R](https://r-pkgs.org/), and the modern ecosystem for developing and sharing packages is efficient and user-friendly. While many R packages are distributed through CRAN, they are also useful for sharing code within your organization, [organizing](https://github.com/benmarwick/rrtools) [analysis](https://zenartofrpkgs.netlify.app) [projects](https://emilyriederer.netlify.app/post/rmarkdown-driven-development/), and [deploying data science products](https://thinkr-open.github.io/golem/). -Many great resources exist for learning R package development, including the [R Packages book](https://r-pkgs.org/) and workshops like [Building Tidy Tools](/blog/education/2020-02-18-conf20-tidy-tools/). Our workshop was unique, however, in that it focused on developing R packages for use within your organization---whether you’re a data science team, an academic research lab, or a lone R user in a sea of [Excel users](/blog/education/2020-02-18-conf20-r-excel/). We taught participants how to use devtools, usethis, and other useful package development tools to develop and share R packages for internal use. We made R packages for two fictional organizations, AVALANCHE and Intendo, to learn best practices in R development and useful tricks for internal packages. +Many great resources exist for learning R package development, including the [R Packages book](https://r-pkgs.org/) and workshops like [Building Tidy Tools](/blog/2020-02-18_conf20-tidy-tools/). Our workshop was unique, however, in that it focused on developing R packages for use within your organization---whether you’re a data science team, an academic research lab, or a lone R user in a sea of [Excel users](/blog/2020-02-18_conf20-r-excel/). We taught participants how to use devtools, usethis, and other useful package development tools to develop and share R packages for internal use. We made R packages for two fictional organizations, AVALANCHE and Intendo, to learn best practices in R development and useful tricks for internal packages. ## Day 1 diff --git a/content/blog/education/2020-06-08-conf20-org-first-pkg/index.markdown b/content/blog/ported/education/2020-06-08-conf20-org-first-pkg/index.markdown similarity index 92% rename from content/blog/education/2020-06-08-conf20-org-first-pkg/index.markdown rename to content/blog/ported/education/2020-06-08-conf20-org-first-pkg/index.markdown index 3bf94a86b..fef1eeafe 100644 --- a/content/blog/education/2020-06-08-conf20-org-first-pkg/index.markdown +++ b/content/blog/ported/education/2020-06-08-conf20-org-first-pkg/index.markdown @@ -38,7 +38,7 @@ ported_categories: We were thrilled to deliver our workshop, “My Organization’s First R Package,” at `rstudio::conf(2020L)`. Packages are the [fundamental unit of shareable code in R](https://r-pkgs.org/), and the modern ecosystem for developing and sharing packages is efficient and user-friendly. While many R packages are distributed through CRAN, they are also useful for sharing code within your organization, [organizing](https://github.com/benmarwick/rrtools) [analysis](https://zenartofrpkgs.netlify.app) [projects](https://emilyriederer.netlify.app/post/rmarkdown-driven-development/), and [deploying data science products](https://thinkr-open.github.io/golem/). -Many great resources exist for learning R package development, including the [R Packages book](https://r-pkgs.org/) and workshops like [Building Tidy Tools](/blog/education/2020-02-18-conf20-tidy-tools/). Our workshop was unique, however, in that it focused on developing R packages for use within your organization---whether you’re a data science team, an academic research lab, or a lone R user in a sea of [Excel users](/blog/education/2020-02-18-conf20-r-excel/). We taught participants how to use devtools, usethis, and other useful package development tools to develop and share R packages for internal use. We made R packages for two fictional organizations, AVALANCHE and Intendo, to learn best practices in R development and useful tricks for internal packages. +Many great resources exist for learning R package development, including the [R Packages book](https://r-pkgs.org/) and workshops like [Building Tidy Tools](/blog/2020-02-18_conf20-tidy-tools/). Our workshop was unique, however, in that it focused on developing R packages for use within your organization---whether you’re a data science team, an academic research lab, or a lone R user in a sea of [Excel users](/blog/2020-02-18_conf20-r-excel/). We taught participants how to use devtools, usethis, and other useful package development tools to develop and share R packages for internal use. We made R packages for two fictional organizations, AVALANCHE and Intendo, to learn best practices in R development and useful tricks for internal packages. ## Day 1 diff --git a/content/blog/education/2020-06-08-conf20-org-first-pkg/pkg-thumbnail.jpg b/content/blog/ported/education/2020-06-08-conf20-org-first-pkg/pkg-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-06-08-conf20-org-first-pkg/pkg-thumbnail.jpg rename to content/blog/ported/education/2020-06-08-conf20-org-first-pkg/pkg-thumbnail.jpg diff --git a/content/blog/education/2020-06-08-conf20-org-first-pkg/pkg-wd.jpg b/content/blog/ported/education/2020-06-08-conf20-org-first-pkg/pkg-wd.jpg similarity index 100% rename from content/blog/education/2020-06-08-conf20-org-first-pkg/pkg-wd.jpg rename to content/blog/ported/education/2020-06-08-conf20-org-first-pkg/pkg-wd.jpg diff --git a/content/blog/education/2020-06-08-conf20-org-first-pkg/pkg-wd.jpg.original b/content/blog/ported/education/2020-06-08-conf20-org-first-pkg/pkg-wd.jpg.original similarity index 100% rename from content/blog/education/2020-06-08-conf20-org-first-pkg/pkg-wd.jpg.original rename to content/blog/ported/education/2020-06-08-conf20-org-first-pkg/pkg-wd.jpg.original diff --git a/content/blog/education/2020-06-22-native-classroom/index.Rmarkdown b/content/blog/ported/education/2020-06-22-native-classroom/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-06-22-native-classroom/index.Rmarkdown rename to content/blog/ported/education/2020-06-22-native-classroom/index.Rmarkdown diff --git a/content/blog/education/2020-06-22-native-classroom/index.markdown b/content/blog/ported/education/2020-06-22-native-classroom/index.markdown similarity index 100% rename from content/blog/education/2020-06-22-native-classroom/index.markdown rename to content/blog/ported/education/2020-06-22-native-classroom/index.markdown diff --git a/content/blog/education/2020-06-22-native-classroom/native-classroom-thumbnail.jpg b/content/blog/ported/education/2020-06-22-native-classroom/native-classroom-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-06-22-native-classroom/native-classroom-thumbnail.jpg rename to content/blog/ported/education/2020-06-22-native-classroom/native-classroom-thumbnail.jpg diff --git a/content/blog/education/2020-06-22-native-classroom/native-classroom-wd.jpg b/content/blog/ported/education/2020-06-22-native-classroom/native-classroom-wd.jpg similarity index 100% rename from content/blog/education/2020-06-22-native-classroom/native-classroom-wd.jpg rename to content/blog/ported/education/2020-06-22-native-classroom/native-classroom-wd.jpg diff --git a/content/blog/education/2020-06-22-native-classroom/native-classroom-wd.jpg.original b/content/blog/ported/education/2020-06-22-native-classroom/native-classroom-wd.jpg.original similarity index 100% rename from content/blog/education/2020-06-22-native-classroom/native-classroom-wd.jpg.original rename to content/blog/ported/education/2020-06-22-native-classroom/native-classroom-wd.jpg.original diff --git a/content/blog/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-thumbnail.jpg b/content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-thumbnail.jpg rename to content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-thumbnail.jpg diff --git a/content/blog/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-wd.jpg b/content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-wd.jpg similarity index 100% rename from content/blog/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-wd.jpg rename to content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-wd.jpg diff --git a/content/blog/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-wd.jpg.original b/content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-wd.jpg.original similarity index 100% rename from content/blog/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-wd.jpg.original rename to content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/finding-errors-in-data-analyses-wd.jpg.original diff --git a/content/blog/education/2020-06-23-finding-errors-in-data-analyses/index.md b/content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/index.md similarity index 100% rename from content/blog/education/2020-06-23-finding-errors-in-data-analyses/index.md rename to content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/index.md diff --git a/content/blog/education/2020-06-23-finding-errors-in-data-analyses/original.jpg b/content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/original.jpg similarity index 100% rename from content/blog/education/2020-06-23-finding-errors-in-data-analyses/original.jpg rename to content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/original.jpg diff --git a/content/blog/education/2020-06-23-finding-errors-in-data-analyses/original.jpg.original b/content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/original.jpg.original similarity index 100% rename from content/blog/education/2020-06-23-finding-errors-in-data-analyses/original.jpg.original rename to content/blog/ported/education/2020-06-23-finding-errors-in-data-analyses/original.jpg.original diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/GroupPic.jpg b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/GroupPic.jpg similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/GroupPic.jpg rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/GroupPic.jpg diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/GroupPic.jpg.original b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/GroupPic.jpg.original similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/GroupPic.jpg.original rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/GroupPic.jpg.original diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/bored_classroom.jpg b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/bored_classroom.jpg similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/bored_classroom.jpg rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/bored_classroom.jpg diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/bored_classroom.jpg.original b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/bored_classroom.jpg.original similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/bored_classroom.jpg.original rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/bored_classroom.jpg.original diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/chunk.png b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/chunk.png similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/chunk.png rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/chunk.png diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/featured-wd.jpg b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/featured-wd.jpg rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/featured-wd.jpg diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/feedback_bar.png b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/feedback_bar.png similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/feedback_bar.png rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/feedback_bar.png diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/feedback_bar.png.original b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/feedback_bar.png.original similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/feedback_bar.png.original rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/feedback_bar.png.original diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/hint.png b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/hint.png similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/hint.png rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/hint.png diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/img_exp.png b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/img_exp.png similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/img_exp.png rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/img_exp.png diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/index.Rmarkdown b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/index.Rmarkdown similarity index 99% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/index.Rmarkdown rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/index.Rmarkdown index 259bfe946..a931330a9 100644 --- a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/index.Rmarkdown +++ b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/index.Rmarkdown @@ -21,7 +21,7 @@ ported_categories: - teach --- -Instructors and learners alike have had to quickly adapt to virtual education due to the ongoing pandemic. The [learnr](https://rstudio.github.io/learnr/) package has become a popular tool to ease that transition (see Allison Horst's great [post](/blog/education/2020-05-19-learnr/)). +Instructors and learners alike have had to quickly adapt to virtual education due to the ongoing pandemic. The [learnr](https://rstudio.github.io/learnr/) package has become a popular tool to ease that transition (see Allison Horst's great [post](/blog/2020-05-19_learnr-for-remote/)). Before our lives were completely changed by the pandemic, however; I was fortunate enough to conduct an introductory R session with a group of teenagers in person. I was able to create the materials for this session, [Understanding Injury Data with R](https://suchestoncampbell-lab.shinyapps.io/SummerCamp2019/), with the learnr package and the source code is available on [GitHub](https://github.com/karaesmen/SummerCamp2019/tree/master/tutorial). Although in person examples of teaching may not be the most relevant topic under these circumstances, I thought that sharing my experience of teaching a younger audience using learnr could offer a unique perspective. diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/index.markdown b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/index.markdown similarity index 99% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/index.markdown rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/index.markdown index 75f82d485..809ee63ab 100644 --- a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/index.markdown +++ b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/index.markdown @@ -21,7 +21,7 @@ ported_categories: - teach --- -Instructors and learners alike have had to quickly adapt to virtual education due to the ongoing pandemic. The [learnr](https://rstudio.github.io/learnr/) package has become a popular tool to ease that transition (see Allison Horst's great [post](/blog/education/2020-05-19-learnr/)). +Instructors and learners alike have had to quickly adapt to virtual education due to the ongoing pandemic. The [learnr](https://rstudio.github.io/learnr/) package has become a popular tool to ease that transition (see Allison Horst's great [post](/blog/2020-05-19_learnr-for-remote/)). Before our lives were completely changed by the pandemic, however; I was fortunate enough to conduct an introductory R session with a group of teenagers in person. I was able to create the materials for this session, [Understanding Injury Data with R](https://suchestoncampbell-lab.shinyapps.io/SummerCamp2019/), with the learnr package and the source code is available on [GitHub](https://github.com/karaesmen/SummerCamp2019/tree/master/tutorial). Although in person examples of teaching may not be the most relevant topic under these circumstances, I thought that sharing my experience of teaching a younger audience using learnr could offer a unique perspective. diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/quiz_img.png b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/quiz_img.png similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/quiz_img.png rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/quiz_img.png diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/thumbnail.jpg b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/thumbnail.jpg rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/thumbnail.jpg diff --git a/content/blog/education/2020-06-24-summer-camp-for-high-schoolers/wordcloud.png b/content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/wordcloud.png similarity index 100% rename from content/blog/education/2020-06-24-summer-camp-for-high-schoolers/wordcloud.png rename to content/blog/ported/education/2020-06-24-summer-camp-for-high-schoolers/wordcloud.png diff --git a/content/blog/education/2020-06-29-working-with-spreadsheets/index.Rmarkdown b/content/blog/ported/education/2020-06-29-working-with-spreadsheets/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-06-29-working-with-spreadsheets/index.Rmarkdown rename to content/blog/ported/education/2020-06-29-working-with-spreadsheets/index.Rmarkdown diff --git a/content/blog/education/2020-06-29-working-with-spreadsheets/index.markdown b/content/blog/ported/education/2020-06-29-working-with-spreadsheets/index.markdown similarity index 100% rename from content/blog/education/2020-06-29-working-with-spreadsheets/index.markdown rename to content/blog/ported/education/2020-06-29-working-with-spreadsheets/index.markdown diff --git a/content/blog/education/2020-06-29-working-with-spreadsheets/original.jpg b/content/blog/ported/education/2020-06-29-working-with-spreadsheets/original.jpg similarity index 100% rename from content/blog/education/2020-06-29-working-with-spreadsheets/original.jpg rename to content/blog/ported/education/2020-06-29-working-with-spreadsheets/original.jpg diff --git a/content/blog/education/2020-06-29-working-with-spreadsheets/working-with-spreadsheets-thumbnail.jpg b/content/blog/ported/education/2020-06-29-working-with-spreadsheets/working-with-spreadsheets-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-06-29-working-with-spreadsheets/working-with-spreadsheets-thumbnail.jpg rename to content/blog/ported/education/2020-06-29-working-with-spreadsheets/working-with-spreadsheets-thumbnail.jpg diff --git a/content/blog/education/2020-06-29-working-with-spreadsheets/working-with-spreadsheets-wd.jpg b/content/blog/ported/education/2020-06-29-working-with-spreadsheets/working-with-spreadsheets-wd.jpg similarity index 100% rename from content/blog/education/2020-06-29-working-with-spreadsheets/working-with-spreadsheets-wd.jpg rename to content/blog/ported/education/2020-06-29-working-with-spreadsheets/working-with-spreadsheets-wd.jpg diff --git a/content/blog/education/2020-06-30-june-2020-instructors/index.Rmarkdown b/content/blog/ported/education/2020-06-30-june-2020-instructors/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-06-30-june-2020-instructors/index.Rmarkdown rename to content/blog/ported/education/2020-06-30-june-2020-instructors/index.Rmarkdown diff --git a/content/blog/education/2020-06-30-june-2020-instructors/index.markdown b/content/blog/ported/education/2020-06-30-june-2020-instructors/index.markdown similarity index 100% rename from content/blog/education/2020-06-30-june-2020-instructors/index.markdown rename to content/blog/ported/education/2020-06-30-june-2020-instructors/index.markdown diff --git a/content/blog/education/2020-06-30-june-2020-instructors/june-2020-instructors-thumbnail.jpg b/content/blog/ported/education/2020-06-30-june-2020-instructors/june-2020-instructors-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-06-30-june-2020-instructors/june-2020-instructors-thumbnail.jpg rename to content/blog/ported/education/2020-06-30-june-2020-instructors/june-2020-instructors-thumbnail.jpg diff --git a/content/blog/education/2020-06-30-june-2020-instructors/june-2020-instructors-wd.jpg b/content/blog/ported/education/2020-06-30-june-2020-instructors/june-2020-instructors-wd.jpg similarity index 100% rename from content/blog/education/2020-06-30-june-2020-instructors/june-2020-instructors-wd.jpg rename to content/blog/ported/education/2020-06-30-june-2020-instructors/june-2020-instructors-wd.jpg diff --git a/content/blog/education/2020-06-30-june-2020-instructors/june-2020-instructors-wd.jpg.original b/content/blog/ported/education/2020-06-30-june-2020-instructors/june-2020-instructors-wd.jpg.original similarity index 100% rename from content/blog/education/2020-06-30-june-2020-instructors/june-2020-instructors-wd.jpg.original rename to content/blog/ported/education/2020-06-30-june-2020-instructors/june-2020-instructors-wd.jpg.original diff --git a/content/blog/education/2020-06-30-tidymodels-internship/caterpillar.jpg b/content/blog/ported/education/2020-06-30-tidymodels-internship/caterpillar.jpg similarity index 100% rename from content/blog/education/2020-06-30-tidymodels-internship/caterpillar.jpg rename to content/blog/ported/education/2020-06-30-tidymodels-internship/caterpillar.jpg diff --git a/content/blog/education/2020-06-30-tidymodels-internship/index.Rmarkdown b/content/blog/ported/education/2020-06-30-tidymodels-internship/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-06-30-tidymodels-internship/index.Rmarkdown rename to content/blog/ported/education/2020-06-30-tidymodels-internship/index.Rmarkdown diff --git a/content/blog/education/2020-06-30-tidymodels-internship/index.markdown b/content/blog/ported/education/2020-06-30-tidymodels-internship/index.markdown similarity index 100% rename from content/blog/education/2020-06-30-tidymodels-internship/index.markdown rename to content/blog/ported/education/2020-06-30-tidymodels-internship/index.markdown diff --git a/content/blog/education/2020-06-30-tidymodels-internship/priorities.png b/content/blog/ported/education/2020-06-30-tidymodels-internship/priorities.png similarity index 100% rename from content/blog/education/2020-06-30-tidymodels-internship/priorities.png rename to content/blog/ported/education/2020-06-30-tidymodels-internship/priorities.png diff --git a/content/blog/education/2020-06-30-tidymodels-internship/tidymodels-internship-thumbnail.jpg b/content/blog/ported/education/2020-06-30-tidymodels-internship/tidymodels-internship-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-06-30-tidymodels-internship/tidymodels-internship-thumbnail.jpg rename to content/blog/ported/education/2020-06-30-tidymodels-internship/tidymodels-internship-thumbnail.jpg diff --git a/content/blog/education/2020-06-30-tidymodels-internship/tidymodels-internship-wd.jpg b/content/blog/ported/education/2020-06-30-tidymodels-internship/tidymodels-internship-wd.jpg similarity index 100% rename from content/blog/education/2020-06-30-tidymodels-internship/tidymodels-internship-wd.jpg rename to content/blog/ported/education/2020-06-30-tidymodels-internship/tidymodels-internship-wd.jpg diff --git a/content/blog/education/2020-07-01-learning-learnr/document.jpg b/content/blog/ported/education/2020-07-01-learning-learnr/document.jpg similarity index 100% rename from content/blog/education/2020-07-01-learning-learnr/document.jpg rename to content/blog/ported/education/2020-07-01-learning-learnr/document.jpg diff --git a/content/blog/education/2020-07-01-learning-learnr/index.md b/content/blog/ported/education/2020-07-01-learning-learnr/index.md similarity index 100% rename from content/blog/education/2020-07-01-learning-learnr/index.md rename to content/blog/ported/education/2020-07-01-learning-learnr/index.md diff --git a/content/blog/education/2020-07-01-learning-learnr/initialization.jpeg b/content/blog/ported/education/2020-07-01-learning-learnr/initialization.jpeg similarity index 100% rename from content/blog/education/2020-07-01-learning-learnr/initialization.jpeg rename to content/blog/ported/education/2020-07-01-learning-learnr/initialization.jpeg diff --git a/content/blog/education/2020-07-01-learning-learnr/interactionloop.jpeg b/content/blog/ported/education/2020-07-01-learning-learnr/interactionloop.jpeg similarity index 100% rename from content/blog/education/2020-07-01-learning-learnr/interactionloop.jpeg rename to content/blog/ported/education/2020-07-01-learning-learnr/interactionloop.jpeg diff --git a/content/blog/education/2020-07-01-learning-learnr/learning-learnr-thumbnail.jpg b/content/blog/ported/education/2020-07-01-learning-learnr/learning-learnr-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-07-01-learning-learnr/learning-learnr-thumbnail.jpg rename to content/blog/ported/education/2020-07-01-learning-learnr/learning-learnr-thumbnail.jpg diff --git a/content/blog/education/2020-07-01-learning-learnr/learning-learnr-wd.jpg b/content/blog/ported/education/2020-07-01-learning-learnr/learning-learnr-wd.jpg similarity index 100% rename from content/blog/education/2020-07-01-learning-learnr/learning-learnr-wd.jpg rename to content/blog/ported/education/2020-07-01-learning-learnr/learning-learnr-wd.jpg diff --git a/content/blog/education/2020-07-01-learning-learnr/original.jpg b/content/blog/ported/education/2020-07-01-learning-learnr/original.jpg similarity index 100% rename from content/blog/education/2020-07-01-learning-learnr/original.jpg rename to content/blog/ported/education/2020-07-01-learning-learnr/original.jpg diff --git a/content/blog/education/2020-07-01-learning-learnr/server_initialization.jpg b/content/blog/ported/education/2020-07-01-learning-learnr/server_initialization.jpg similarity index 100% rename from content/blog/education/2020-07-01-learning-learnr/server_initialization.jpg rename to content/blog/ported/education/2020-07-01-learning-learnr/server_initialization.jpg diff --git a/content/blog/education/2020-07-01-learning-learnr/techstacks.png b/content/blog/ported/education/2020-07-01-learning-learnr/techstacks.png similarity index 100% rename from content/blog/education/2020-07-01-learning-learnr/techstacks.png rename to content/blog/ported/education/2020-07-01-learning-learnr/techstacks.png diff --git a/content/blog/education/2020-07-02-a11y-midterm/a11y-midterm-thumbnail.jpg b/content/blog/ported/education/2020-07-02-a11y-midterm/a11y-midterm-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-07-02-a11y-midterm/a11y-midterm-thumbnail.jpg rename to content/blog/ported/education/2020-07-02-a11y-midterm/a11y-midterm-thumbnail.jpg diff --git a/content/blog/education/2020-07-02-a11y-midterm/a11y-midterm-wd.jpg b/content/blog/ported/education/2020-07-02-a11y-midterm/a11y-midterm-wd.jpg similarity index 100% rename from content/blog/education/2020-07-02-a11y-midterm/a11y-midterm-wd.jpg rename to content/blog/ported/education/2020-07-02-a11y-midterm/a11y-midterm-wd.jpg diff --git a/content/blog/education/2020-07-02-a11y-midterm/index.Rmarkdown b/content/blog/ported/education/2020-07-02-a11y-midterm/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-07-02-a11y-midterm/index.Rmarkdown rename to content/blog/ported/education/2020-07-02-a11y-midterm/index.Rmarkdown diff --git a/content/blog/education/2020-07-02-a11y-midterm/index.markdown b/content/blog/ported/education/2020-07-02-a11y-midterm/index.markdown similarity index 100% rename from content/blog/education/2020-07-02-a11y-midterm/index.markdown rename to content/blog/ported/education/2020-07-02-a11y-midterm/index.markdown diff --git a/content/blog/education/2020-07-02-a11y-midterm/original.jpg b/content/blog/ported/education/2020-07-02-a11y-midterm/original.jpg similarity index 100% rename from content/blog/education/2020-07-02-a11y-midterm/original.jpg rename to content/blog/ported/education/2020-07-02-a11y-midterm/original.jpg diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/applied-1.png b/content/blog/ported/education/2020-07-06-instructor-certification-findings/applied-1.png similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/applied-1.png rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/applied-1.png diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/butterfly-graffiti-2020.jpg b/content/blog/ported/education/2020-07-06-instructor-certification-findings/butterfly-graffiti-2020.jpg similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/butterfly-graffiti-2020.jpg rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/butterfly-graffiti-2020.jpg diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/butterfly-graffiti-2020.jpg.original b/content/blog/ported/education/2020-07-06-instructor-certification-findings/butterfly-graffiti-2020.jpg.original similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/butterfly-graffiti-2020.jpg.original rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/butterfly-graffiti-2020.jpg.original diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/index.Rmarkdown b/content/blog/ported/education/2020-07-06-instructor-certification-findings/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/index.Rmarkdown rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/index.Rmarkdown diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/index.markdown b/content/blog/ported/education/2020-07-06-instructor-certification-findings/index.markdown similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/index.markdown rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/index.markdown diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-thumbnail.jpg b/content/blog/ported/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-thumbnail.jpg rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-thumbnail.jpg diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-wd.jpg b/content/blog/ported/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-wd.jpg similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-wd.jpg rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-wd.jpg diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-wd.jpg.original b/content/blog/ported/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-wd.jpg.original similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-wd.jpg.original rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/instructor-certification-findings-wd.jpg.original diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/recommend-1.png b/content/blog/ported/education/2020-07-06-instructor-certification-findings/recommend-1.png similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/recommend-1.png rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/recommend-1.png diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/satisfied-1.png b/content/blog/ported/education/2020-07-06-instructor-certification-findings/satisfied-1.png similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/satisfied-1.png rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/satisfied-1.png diff --git a/content/blog/education/2020-07-06-instructor-certification-findings/useful-1.png b/content/blog/ported/education/2020-07-06-instructor-certification-findings/useful-1.png similarity index 100% rename from content/blog/education/2020-07-06-instructor-certification-findings/useful-1.png rename to content/blog/ported/education/2020-07-06-instructor-certification-findings/useful-1.png diff --git a/content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidy-papers.png b/content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidy-papers.png similarity index 100% rename from content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidy-papers.png rename to content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidy-papers.png diff --git a/content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidyverse-google.png b/content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidyverse-google.png similarity index 100% rename from content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidyverse-google.png rename to content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidyverse-google.png diff --git a/content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidyverse-packages.png b/content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidyverse-packages.png similarity index 100% rename from content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidyverse-packages.png rename to content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/img/tidyverse-packages.png diff --git a/content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/index.Rmarkdown b/content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/index.Rmarkdown rename to content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/index.Rmarkdown diff --git a/content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/index.markdown b/content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/index.markdown similarity index 100% rename from content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/index.markdown rename to content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/index.markdown diff --git a/content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/stars1-thumbnail.jpeg b/content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/stars1-thumbnail.jpeg similarity index 100% rename from content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/stars1-thumbnail.jpeg rename to content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/stars1-thumbnail.jpeg diff --git a/content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/stars1-wd.jpeg b/content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/stars1-wd.jpeg similarity index 100% rename from content/blog/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/stars1-wd.jpeg rename to content/blog/ported/education/2020-07-13-teaching-the-tidyverse-in-2020-part-1-getting-started/stars1-wd.jpeg diff --git a/content/blog/education/2020-07-14-cloud-update/clouds-thumbnail.jpg b/content/blog/ported/education/2020-07-14-cloud-update/clouds-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-07-14-cloud-update/clouds-thumbnail.jpg rename to content/blog/ported/education/2020-07-14-cloud-update/clouds-thumbnail.jpg diff --git a/content/blog/education/2020-07-14-cloud-update/clouds-wd.jpg b/content/blog/ported/education/2020-07-14-cloud-update/clouds-wd.jpg similarity index 100% rename from content/blog/education/2020-07-14-cloud-update/clouds-wd.jpg rename to content/blog/ported/education/2020-07-14-cloud-update/clouds-wd.jpg diff --git a/content/blog/education/2020-07-14-cloud-update/index.Rmarkdown b/content/blog/ported/education/2020-07-14-cloud-update/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-07-14-cloud-update/index.Rmarkdown rename to content/blog/ported/education/2020-07-14-cloud-update/index.Rmarkdown diff --git a/content/blog/education/2020-07-14-cloud-update/index.markdown b/content/blog/ported/education/2020-07-14-cloud-update/index.markdown similarity index 100% rename from content/blog/education/2020-07-14-cloud-update/index.markdown rename to content/blog/ported/education/2020-07-14-cloud-update/index.markdown diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/boxplot-new-1.png b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/boxplot-new-1.png similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/boxplot-new-1.png rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/boxplot-new-1.png diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/boxplot-old-1.png b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/boxplot-old-1.png similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/boxplot-old-1.png rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/boxplot-old-1.png diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index.Rmarkdown b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index.Rmarkdown rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index.Rmarkdown diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index.markdown b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index.markdown similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index.markdown rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index.markdown diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-bar-1.png b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-bar-1.png similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-bar-1.png rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-bar-1.png diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-bar-coord-flip-1.png b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-bar-coord-flip-1.png similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-bar-coord-flip-1.png rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-bar-coord-flip-1.png diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-1.png b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-1.png similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-1.png rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-1.png diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-1.png b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-1.png similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-1.png rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-1.png diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-percent-1.png b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-percent-1.png similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-percent-1.png rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-percent-1.png diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-percent-labels-1.png b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-percent-labels-1.png similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-percent-labels-1.png rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/penguins-species-props-bar-reorder-percent-labels-1.png diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/stars2-thumbnail.jpeg b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/stars2-thumbnail.jpeg similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/stars2-thumbnail.jpeg rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/stars2-thumbnail.jpeg diff --git a/content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/stars2-wd.jpeg b/content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/stars2-wd.jpeg similarity index 100% rename from content/blog/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/stars2-wd.jpeg rename to content/blog/ported/education/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/stars2-wd.jpeg diff --git a/content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/img/pivot.gif b/content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/img/pivot.gif similarity index 100% rename from content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/img/pivot.gif rename to content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/img/pivot.gif diff --git a/content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/img/tidyr-longer-wider.gif b/content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/img/tidyr-longer-wider.gif similarity index 100% rename from content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/img/tidyr-longer-wider.gif rename to content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/img/tidyr-longer-wider.gif diff --git a/content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index.Rmarkdown b/content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index.Rmarkdown rename to content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index.Rmarkdown diff --git a/content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index.markdown b/content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index.markdown similarity index 100% rename from content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index.markdown rename to content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index.markdown diff --git a/content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/stars3-thumbnail.jpeg b/content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/stars3-thumbnail.jpeg similarity index 100% rename from content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/stars3-thumbnail.jpeg rename to content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/stars3-thumbnail.jpeg diff --git a/content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/stars3-wd.jpeg b/content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/stars3-wd.jpeg similarity index 100% rename from content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/stars3-wd.jpeg rename to content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/stars3-wd.jpeg diff --git a/content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-10-1.png b/content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-10-1.png similarity index 100% rename from content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-10-1.png rename to content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-10-1.png diff --git a/content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-11-1.png b/content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-11-1.png similarity index 100% rename from content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-11-1.png rename to content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-11-1.png diff --git a/content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-4-1.png b/content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-4-1.png similarity index 100% rename from content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-4-1.png rename to content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-4-1.png diff --git a/content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-9-1.png b/content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-9-1.png similarity index 100% rename from content/blog/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-9-1.png rename to content/blog/ported/education/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/unnamed-chunk-9-1.png diff --git a/content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Adelie.csv b/content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Adelie.csv similarity index 100% rename from content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Adelie.csv rename to content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Adelie.csv diff --git a/content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Chinstrap.csv b/content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Chinstrap.csv similarity index 100% rename from content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Chinstrap.csv rename to content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Chinstrap.csv diff --git a/content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Gentoo.csv b/content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Gentoo.csv similarity index 100% rename from content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Gentoo.csv rename to content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/Gentoo.csv diff --git a/content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/penguins_madeup.json b/content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/penguins_madeup.json similarity index 100% rename from content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/penguins_madeup.json rename to content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/data/penguins_madeup.json diff --git a/content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/index.Rmarkdown b/content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/index.Rmarkdown rename to content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/index.Rmarkdown diff --git a/content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/index.markdown b/content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/index.markdown similarity index 100% rename from content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/index.markdown rename to content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/index.markdown diff --git a/content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/stars4-thumbnail.jpeg b/content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/stars4-thumbnail.jpeg similarity index 100% rename from content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/stars4-thumbnail.jpeg rename to content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/stars4-thumbnail.jpeg diff --git a/content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/stars4-wd.jpeg b/content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/stars4-wd.jpeg similarity index 100% rename from content/blog/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/stars4-wd.jpeg rename to content/blog/ported/education/2020-07-19-teaching-the-tidyverse-in-2020-part-4-when-to-purrr/stars4-wd.jpeg diff --git a/content/blog/education/2020-07-20-gtsummary/featured-wd.jpg b/content/blog/ported/education/2020-07-20-gtsummary/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/featured-wd.jpg rename to content/blog/ported/education/2020-07-20-gtsummary/featured-wd.jpg diff --git a/content/blog/education/2020-07-20-gtsummary/featured-wd.jpg.original b/content/blog/ported/education/2020-07-20-gtsummary/featured-wd.jpg.original similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/featured-wd.jpg.original rename to content/blog/ported/education/2020-07-20-gtsummary/featured-wd.jpg.original diff --git a/content/blog/education/2020-07-20-gtsummary/gt_output_formats.PNG b/content/blog/ported/education/2020-07-20-gtsummary/gt_output_formats.PNG similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/gt_output_formats.PNG rename to content/blog/ported/education/2020-07-20-gtsummary/gt_output_formats.PNG diff --git a/content/blog/education/2020-07-20-gtsummary/index.Rmarkdown b/content/blog/ported/education/2020-07-20-gtsummary/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/index.Rmarkdown rename to content/blog/ported/education/2020-07-20-gtsummary/index.Rmarkdown diff --git a/content/blog/education/2020-07-20-gtsummary/index.markdown b/content/blog/ported/education/2020-07-20-gtsummary/index.markdown similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/index.markdown rename to content/blog/ported/education/2020-07-20-gtsummary/index.markdown diff --git a/content/blog/education/2020-07-20-gtsummary/logo.png b/content/blog/ported/education/2020-07-20-gtsummary/logo.png similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/logo.png rename to content/blog/ported/education/2020-07-20-gtsummary/logo.png diff --git a/content/blog/education/2020-07-20-gtsummary/tbl_regression_1.png b/content/blog/ported/education/2020-07-20-gtsummary/tbl_regression_1.png similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/tbl_regression_1.png rename to content/blog/ported/education/2020-07-20-gtsummary/tbl_regression_1.png diff --git a/content/blog/education/2020-07-20-gtsummary/tbl_regression_4.png b/content/blog/ported/education/2020-07-20-gtsummary/tbl_regression_4.png similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/tbl_regression_4.png rename to content/blog/ported/education/2020-07-20-gtsummary/tbl_regression_4.png diff --git a/content/blog/education/2020-07-20-gtsummary/tbl_summary_1.png b/content/blog/ported/education/2020-07-20-gtsummary/tbl_summary_1.png similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/tbl_summary_1.png rename to content/blog/ported/education/2020-07-20-gtsummary/tbl_summary_1.png diff --git a/content/blog/education/2020-07-20-gtsummary/tbl_summary_2.png b/content/blog/ported/education/2020-07-20-gtsummary/tbl_summary_2.png similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/tbl_summary_2.png rename to content/blog/ported/education/2020-07-20-gtsummary/tbl_summary_2.png diff --git a/content/blog/education/2020-07-20-gtsummary/tbl_summary_3.png b/content/blog/ported/education/2020-07-20-gtsummary/tbl_summary_3.png similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/tbl_summary_3.png rename to content/blog/ported/education/2020-07-20-gtsummary/tbl_summary_3.png diff --git a/content/blog/education/2020-07-20-gtsummary/tbl_summary_5.png b/content/blog/ported/education/2020-07-20-gtsummary/tbl_summary_5.png similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/tbl_summary_5.png rename to content/blog/ported/education/2020-07-20-gtsummary/tbl_summary_5.png diff --git a/content/blog/education/2020-07-20-gtsummary/thumbnail.jpg b/content/blog/ported/education/2020-07-20-gtsummary/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-07-20-gtsummary/thumbnail.jpg rename to content/blog/ported/education/2020-07-20-gtsummary/thumbnail.jpg diff --git a/content/blog/education/2020-07-27-penguins-cran/antarctica-map.png b/content/blog/ported/education/2020-07-27-penguins-cran/antarctica-map.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/antarctica-map.png rename to content/blog/ported/education/2020-07-27-penguins-cran/antarctica-map.png diff --git a/content/blog/education/2020-07-27-penguins-cran/featured-wd.jpg b/content/blog/ported/education/2020-07-27-penguins-cran/featured-wd.jpg similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/featured-wd.jpg rename to content/blog/ported/education/2020-07-27-penguins-cran/featured-wd.jpg diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/flipper-bill-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/flipper-bill-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/flipper-bill-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/flipper-bill-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/panel-chunk-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/panel-chunk-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/panel-chunk-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/panel-chunk-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/penguin-pairs-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/penguin-pairs-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/penguin-pairs-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/penguin-pairs-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-10-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-10-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-10-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-10-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-10-2.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-10-2.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-10-2.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-10-2.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-11-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-11-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-11-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-11-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-11-2.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-11-2.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-11-2.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-11-2.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-12-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-12-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-12-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-12-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-12-2.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-12-2.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-12-2.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-12-2.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-13-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-13-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-13-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-13-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-13-2.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-13-2.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-13-2.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-13-2.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-4-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-4-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-4-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-4-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-5-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-5-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-5-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-5-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-5-2.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-5-2.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-5-2.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-5-2.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-6-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-6-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-6-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-6-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-7-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-7-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-7-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-7-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-7-2.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-7-2.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-7-2.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-7-2.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-8-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-8-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-8-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-8-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-8-2.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-8-2.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-8-2.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-8-2.png diff --git a/content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-9-1.png b/content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-9-1.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/figs/unnamed-chunk-9-1.png rename to content/blog/ported/education/2020-07-27-penguins-cran/figs/unnamed-chunk-9-1.png diff --git a/content/blog/education/2020-07-27-penguins-cran/gorman-penguins.jpg b/content/blog/ported/education/2020-07-27-penguins-cran/gorman-penguins.jpg similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/gorman-penguins.jpg rename to content/blog/ported/education/2020-07-27-penguins-cran/gorman-penguins.jpg diff --git a/content/blog/education/2020-07-27-penguins-cran/index.Rmarkdown b/content/blog/ported/education/2020-07-27-penguins-cran/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/index.Rmarkdown rename to content/blog/ported/education/2020-07-27-penguins-cran/index.Rmarkdown diff --git a/content/blog/education/2020-07-27-penguins-cran/index.markdown b/content/blog/ported/education/2020-07-27-penguins-cran/index.markdown similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/index.markdown rename to content/blog/ported/education/2020-07-27-penguins-cran/index.markdown diff --git a/content/blog/education/2020-07-27-penguins-cran/penguin-dashboard.jpeg b/content/blog/ported/education/2020-07-27-penguins-cran/penguin-dashboard.jpeg similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/penguin-dashboard.jpeg rename to content/blog/ported/education/2020-07-27-penguins-cran/penguin-dashboard.jpeg diff --git a/content/blog/education/2020-07-27-penguins-cran/penguin-expedition.jpg b/content/blog/ported/education/2020-07-27-penguins-cran/penguin-expedition.jpg similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/penguin-expedition.jpg rename to content/blog/ported/education/2020-07-27-penguins-cran/penguin-expedition.jpg diff --git a/content/blog/education/2020-07-27-penguins-cran/penguin-expedition.jpg.original b/content/blog/ported/education/2020-07-27-penguins-cran/penguin-expedition.jpg.original similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/penguin-expedition.jpg.original rename to content/blog/ported/education/2020-07-27-penguins-cran/penguin-expedition.jpg.original diff --git a/content/blog/education/2020-07-27-penguins-cran/penguin-tour.gif b/content/blog/ported/education/2020-07-27-penguins-cran/penguin-tour.gif similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/penguin-tour.gif rename to content/blog/ported/education/2020-07-27-penguins-cran/penguin-tour.gif diff --git a/content/blog/education/2020-07-27-penguins-cran/penguin.png b/content/blog/ported/education/2020-07-27-penguins-cran/penguin.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/penguin.png rename to content/blog/ported/education/2020-07-27-penguins-cran/penguin.png diff --git a/content/blog/education/2020-07-27-penguins-cran/penguins_cran.png b/content/blog/ported/education/2020-07-27-penguins-cran/penguins_cran.png similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/penguins_cran.png rename to content/blog/ported/education/2020-07-27-penguins-cran/penguins_cran.png diff --git a/content/blog/education/2020-07-27-penguins-cran/thumbnail.jpg b/content/blog/ported/education/2020-07-27-penguins-cran/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-07-27-penguins-cran/thumbnail.jpg rename to content/blog/ported/education/2020-07-27-penguins-cran/thumbnail.jpg diff --git a/content/blog/education/2020-07-28-announcing-glosario/announcing-glosario-thumbnail.jpg b/content/blog/ported/education/2020-07-28-announcing-glosario/announcing-glosario-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-07-28-announcing-glosario/announcing-glosario-thumbnail.jpg rename to content/blog/ported/education/2020-07-28-announcing-glosario/announcing-glosario-thumbnail.jpg diff --git a/content/blog/education/2020-07-28-announcing-glosario/announcing-glosario-wd.jpg b/content/blog/ported/education/2020-07-28-announcing-glosario/announcing-glosario-wd.jpg similarity index 100% rename from content/blog/education/2020-07-28-announcing-glosario/announcing-glosario-wd.jpg rename to content/blog/ported/education/2020-07-28-announcing-glosario/announcing-glosario-wd.jpg diff --git a/content/blog/education/2020-07-28-announcing-glosario/index.Rmarkdown b/content/blog/ported/education/2020-07-28-announcing-glosario/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-07-28-announcing-glosario/index.Rmarkdown rename to content/blog/ported/education/2020-07-28-announcing-glosario/index.Rmarkdown diff --git a/content/blog/education/2020-07-28-announcing-glosario/index.markdown b/content/blog/ported/education/2020-07-28-announcing-glosario/index.markdown similarity index 100% rename from content/blog/education/2020-07-28-announcing-glosario/index.markdown rename to content/blog/ported/education/2020-07-28-announcing-glosario/index.markdown diff --git a/content/blog/education/2020-07-28-announcing-glosario/original.jpg b/content/blog/ported/education/2020-07-28-announcing-glosario/original.jpg similarity index 100% rename from content/blog/education/2020-07-28-announcing-glosario/original.jpg rename to content/blog/ported/education/2020-07-28-announcing-glosario/original.jpg diff --git a/content/blog/education/2020-08-03-hippocratic-license/hippocratic-license-thumbnail.jpg b/content/blog/ported/education/2020-08-03-hippocratic-license/hippocratic-license-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-08-03-hippocratic-license/hippocratic-license-thumbnail.jpg rename to content/blog/ported/education/2020-08-03-hippocratic-license/hippocratic-license-thumbnail.jpg diff --git a/content/blog/education/2020-08-03-hippocratic-license/hippocratic-license-wd.jpg b/content/blog/ported/education/2020-08-03-hippocratic-license/hippocratic-license-wd.jpg similarity index 100% rename from content/blog/education/2020-08-03-hippocratic-license/hippocratic-license-wd.jpg rename to content/blog/ported/education/2020-08-03-hippocratic-license/hippocratic-license-wd.jpg diff --git a/content/blog/education/2020-08-03-hippocratic-license/index.Rmarkdown b/content/blog/ported/education/2020-08-03-hippocratic-license/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-08-03-hippocratic-license/index.Rmarkdown rename to content/blog/ported/education/2020-08-03-hippocratic-license/index.Rmarkdown diff --git a/content/blog/education/2020-08-03-hippocratic-license/index.markdown b/content/blog/ported/education/2020-08-03-hippocratic-license/index.markdown similarity index 100% rename from content/blog/education/2020-08-03-hippocratic-license/index.markdown rename to content/blog/ported/education/2020-08-03-hippocratic-license/index.markdown diff --git a/content/blog/education/2020-08-03-hippocratic-license/original.jpg b/content/blog/ported/education/2020-08-03-hippocratic-license/original.jpg similarity index 100% rename from content/blog/education/2020-08-03-hippocratic-license/original.jpg rename to content/blog/ported/education/2020-08-03-hippocratic-license/original.jpg diff --git a/content/blog/education/2020-08-05-july-2020-instructors/index.Rmarkdown b/content/blog/ported/education/2020-08-05-july-2020-instructors/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-08-05-july-2020-instructors/index.Rmarkdown rename to content/blog/ported/education/2020-08-05-july-2020-instructors/index.Rmarkdown diff --git a/content/blog/education/2020-08-05-july-2020-instructors/index.markdown b/content/blog/ported/education/2020-08-05-july-2020-instructors/index.markdown similarity index 100% rename from content/blog/education/2020-08-05-july-2020-instructors/index.markdown rename to content/blog/ported/education/2020-08-05-july-2020-instructors/index.markdown diff --git a/content/blog/education/2020-08-05-july-2020-instructors/july-2020-instructors-thumbnail.jpg b/content/blog/ported/education/2020-08-05-july-2020-instructors/july-2020-instructors-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-08-05-july-2020-instructors/july-2020-instructors-thumbnail.jpg rename to content/blog/ported/education/2020-08-05-july-2020-instructors/july-2020-instructors-thumbnail.jpg diff --git a/content/blog/education/2020-08-05-july-2020-instructors/july-2020-instructors-wd.jpg b/content/blog/ported/education/2020-08-05-july-2020-instructors/july-2020-instructors-wd.jpg similarity index 100% rename from content/blog/education/2020-08-05-july-2020-instructors/july-2020-instructors-wd.jpg rename to content/blog/ported/education/2020-08-05-july-2020-instructors/july-2020-instructors-wd.jpg diff --git a/content/blog/education/2020-08-05-july-2020-instructors/july-2020-instructors-wd.jpg.original b/content/blog/ported/education/2020-08-05-july-2020-instructors/july-2020-instructors-wd.jpg.original similarity index 100% rename from content/blog/education/2020-08-05-july-2020-instructors/july-2020-instructors-wd.jpg.original rename to content/blog/ported/education/2020-08-05-july-2020-instructors/july-2020-instructors-wd.jpg.original diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/data/.gitignore b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/data/.gitignore similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/data/.gitignore rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/data/.gitignore diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/data/spending.xlsx b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/data/spending.xlsx similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/data/spending.xlsx rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/data/spending.xlsx diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/data/superheroes.xlsx b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/data/superheroes.xlsx similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/data/superheroes.xlsx rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/data/superheroes.xlsx diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/index.Rmarkdown b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/index.Rmarkdown rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/index.Rmarkdown diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/index.markdown b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/index.markdown similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/index.markdown rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/index.markdown diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/VLOOKUP.png b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/VLOOKUP.png similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/VLOOKUP.png rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/VLOOKUP.png diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/alter-egos.png b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/alter-egos.png similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/alter-egos.png rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/alter-egos.png diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/full-join.png b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/full-join.png similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/full-join.png rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/full-join.png diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/heroes.png b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/heroes.png similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/heroes.png rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/heroes.png diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/left-over-calculation.png b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/left-over-calculation.png similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/left-over-calculation.png rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/left-over-calculation.png diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/nested-logic.png b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/nested-logic.png similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/nested-logic.png rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/nested-logic.png diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/nested-logic.png.original b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/nested-logic.png.original similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/nested-logic.png.original rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/nested-logic.png.original diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-set-up.png b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-set-up.png similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-set-up.png rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-set-up.png diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-set-up.png.original b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-set-up.png.original similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-set-up.png.original rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-set-up.png.original diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-table.png b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-table.png similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-table.png rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-table.png diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-table.png.original b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-table.png.original similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-table.png.original rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/screenshots/pivot-table.png.original diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/spreadsheet-thumbnail.jpg b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/spreadsheet-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/spreadsheet-thumbnail.jpg rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/spreadsheet-thumbnail.jpg diff --git a/content/blog/education/2020-08-17-spreadsheet-workflows-using-r/spreadsheet-wd.jpg b/content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/spreadsheet-wd.jpg similarity index 100% rename from content/blog/education/2020-08-17-spreadsheet-workflows-using-r/spreadsheet-wd.jpg rename to content/blog/ported/education/2020-08-17-spreadsheet-workflows-using-r/spreadsheet-wd.jpg diff --git a/content/blog/education/2020-08-18-more-sample-exams/home-range-database.csv b/content/blog/ported/education/2020-08-18-more-sample-exams/home-range-database.csv similarity index 100% rename from content/blog/education/2020-08-18-more-sample-exams/home-range-database.csv rename to content/blog/ported/education/2020-08-18-more-sample-exams/home-range-database.csv diff --git a/content/blog/education/2020-08-18-more-sample-exams/index.Rmarkdown b/content/blog/ported/education/2020-08-18-more-sample-exams/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-08-18-more-sample-exams/index.Rmarkdown rename to content/blog/ported/education/2020-08-18-more-sample-exams/index.Rmarkdown diff --git a/content/blog/education/2020-08-18-more-sample-exams/index.markdown b/content/blog/ported/education/2020-08-18-more-sample-exams/index.markdown similarity index 100% rename from content/blog/education/2020-08-18-more-sample-exams/index.markdown rename to content/blog/ported/education/2020-08-18-more-sample-exams/index.markdown diff --git a/content/blog/education/2020-08-18-more-sample-exams/measurements.csv b/content/blog/ported/education/2020-08-18-more-sample-exams/measurements.csv similarity index 100% rename from content/blog/education/2020-08-18-more-sample-exams/measurements.csv rename to content/blog/ported/education/2020-08-18-more-sample-exams/measurements.csv diff --git a/content/blog/education/2020-08-18-more-sample-exams/more-sample-exams-thumbnail.jpg b/content/blog/ported/education/2020-08-18-more-sample-exams/more-sample-exams-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-08-18-more-sample-exams/more-sample-exams-thumbnail.jpg rename to content/blog/ported/education/2020-08-18-more-sample-exams/more-sample-exams-thumbnail.jpg diff --git a/content/blog/education/2020-08-18-more-sample-exams/more-sample-exams-wd.jpg b/content/blog/ported/education/2020-08-18-more-sample-exams/more-sample-exams-wd.jpg similarity index 100% rename from content/blog/education/2020-08-18-more-sample-exams/more-sample-exams-wd.jpg rename to content/blog/ported/education/2020-08-18-more-sample-exams/more-sample-exams-wd.jpg diff --git a/content/blog/education/2020-08-18-more-sample-exams/more-sample-exams-wd.jpg.original b/content/blog/ported/education/2020-08-18-more-sample-exams/more-sample-exams-wd.jpg.original similarity index 100% rename from content/blog/education/2020-08-18-more-sample-exams/more-sample-exams-wd.jpg.original rename to content/blog/ported/education/2020-08-18-more-sample-exams/more-sample-exams-wd.jpg.original diff --git a/content/blog/education/2020-08-18-more-sample-exams/person.csv b/content/blog/ported/education/2020-08-18-more-sample-exams/person.csv similarity index 100% rename from content/blog/education/2020-08-18-more-sample-exams/person.csv rename to content/blog/ported/education/2020-08-18-more-sample-exams/person.csv diff --git a/content/blog/education/2020-08-18-more-sample-exams/visited.csv b/content/blog/ported/education/2020-08-18-more-sample-exams/visited.csv similarity index 100% rename from content/blog/education/2020-08-18-more-sample-exams/visited.csv rename to content/blog/ported/education/2020-08-18-more-sample-exams/visited.csv diff --git a/content/blog/education/2020-08-31-august-2020-instructors/august-2020-instructors-thumbnail.jpg b/content/blog/ported/education/2020-08-31-august-2020-instructors/august-2020-instructors-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-08-31-august-2020-instructors/august-2020-instructors-thumbnail.jpg rename to content/blog/ported/education/2020-08-31-august-2020-instructors/august-2020-instructors-thumbnail.jpg diff --git a/content/blog/education/2020-08-31-august-2020-instructors/august-2020-instructors-wd.jpg b/content/blog/ported/education/2020-08-31-august-2020-instructors/august-2020-instructors-wd.jpg similarity index 100% rename from content/blog/education/2020-08-31-august-2020-instructors/august-2020-instructors-wd.jpg rename to content/blog/ported/education/2020-08-31-august-2020-instructors/august-2020-instructors-wd.jpg diff --git a/content/blog/education/2020-08-31-august-2020-instructors/august-2020-instructors-wd.jpg.original b/content/blog/ported/education/2020-08-31-august-2020-instructors/august-2020-instructors-wd.jpg.original similarity index 100% rename from content/blog/education/2020-08-31-august-2020-instructors/august-2020-instructors-wd.jpg.original rename to content/blog/ported/education/2020-08-31-august-2020-instructors/august-2020-instructors-wd.jpg.original diff --git a/content/blog/education/2020-08-31-august-2020-instructors/index.Rmarkdown b/content/blog/ported/education/2020-08-31-august-2020-instructors/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-08-31-august-2020-instructors/index.Rmarkdown rename to content/blog/ported/education/2020-08-31-august-2020-instructors/index.Rmarkdown diff --git a/content/blog/education/2020-08-31-august-2020-instructors/index.markdown b/content/blog/ported/education/2020-08-31-august-2020-instructors/index.markdown similarity index 100% rename from content/blog/education/2020-08-31-august-2020-instructors/index.markdown rename to content/blog/ported/education/2020-08-31-august-2020-instructors/index.markdown diff --git a/content/blog/education/2020-09-10-shiny-solutions/index.Rmarkdown b/content/blog/ported/education/2020-09-10-shiny-solutions/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-09-10-shiny-solutions/index.Rmarkdown rename to content/blog/ported/education/2020-09-10-shiny-solutions/index.Rmarkdown diff --git a/content/blog/education/2020-09-10-shiny-solutions/index.markdown b/content/blog/ported/education/2020-09-10-shiny-solutions/index.markdown similarity index 100% rename from content/blog/education/2020-09-10-shiny-solutions/index.markdown rename to content/blog/ported/education/2020-09-10-shiny-solutions/index.markdown diff --git a/content/blog/education/2020-09-10-shiny-solutions/original.jpg b/content/blog/ported/education/2020-09-10-shiny-solutions/original.jpg similarity index 100% rename from content/blog/education/2020-09-10-shiny-solutions/original.jpg rename to content/blog/ported/education/2020-09-10-shiny-solutions/original.jpg diff --git a/content/blog/education/2020-09-10-shiny-solutions/shiny-solutions-thumbnail.jpg b/content/blog/ported/education/2020-09-10-shiny-solutions/shiny-solutions-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-09-10-shiny-solutions/shiny-solutions-thumbnail.jpg rename to content/blog/ported/education/2020-09-10-shiny-solutions/shiny-solutions-thumbnail.jpg diff --git a/content/blog/education/2020-09-10-shiny-solutions/shiny-solutions-wd.jpg b/content/blog/ported/education/2020-09-10-shiny-solutions/shiny-solutions-wd.jpg similarity index 100% rename from content/blog/education/2020-09-10-shiny-solutions/shiny-solutions-wd.jpg rename to content/blog/ported/education/2020-09-10-shiny-solutions/shiny-solutions-wd.jpg diff --git a/content/blog/education/2020-09-11-concept-maps/concept-maps-thumbnail.jpg b/content/blog/ported/education/2020-09-11-concept-maps/concept-maps-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-09-11-concept-maps/concept-maps-thumbnail.jpg rename to content/blog/ported/education/2020-09-11-concept-maps/concept-maps-thumbnail.jpg diff --git a/content/blog/education/2020-09-11-concept-maps/concept-maps-wd.jpg b/content/blog/ported/education/2020-09-11-concept-maps/concept-maps-wd.jpg similarity index 100% rename from content/blog/education/2020-09-11-concept-maps/concept-maps-wd.jpg rename to content/blog/ported/education/2020-09-11-concept-maps/concept-maps-wd.jpg diff --git a/content/blog/education/2020-09-11-concept-maps/dplyr.png b/content/blog/ported/education/2020-09-11-concept-maps/dplyr.png similarity index 100% rename from content/blog/education/2020-09-11-concept-maps/dplyr.png rename to content/blog/ported/education/2020-09-11-concept-maps/dplyr.png diff --git a/content/blog/education/2020-09-11-concept-maps/filter.png b/content/blog/ported/education/2020-09-11-concept-maps/filter.png similarity index 100% rename from content/blog/education/2020-09-11-concept-maps/filter.png rename to content/blog/ported/education/2020-09-11-concept-maps/filter.png diff --git a/content/blog/education/2020-09-11-concept-maps/index.Rmarkdown b/content/blog/ported/education/2020-09-11-concept-maps/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-09-11-concept-maps/index.Rmarkdown rename to content/blog/ported/education/2020-09-11-concept-maps/index.Rmarkdown diff --git a/content/blog/education/2020-09-11-concept-maps/index.markdown b/content/blog/ported/education/2020-09-11-concept-maps/index.markdown similarity index 100% rename from content/blog/education/2020-09-11-concept-maps/index.markdown rename to content/blog/ported/education/2020-09-11-concept-maps/index.markdown diff --git a/content/blog/education/2020-09-11-concept-maps/pipe-operator.png b/content/blog/ported/education/2020-09-11-concept-maps/pipe-operator.png similarity index 100% rename from content/blog/education/2020-09-11-concept-maps/pipe-operator.png rename to content/blog/ported/education/2020-09-11-concept-maps/pipe-operator.png diff --git a/content/blog/education/2020-09-11-concept-maps/regular-expressions.png b/content/blog/ported/education/2020-09-11-concept-maps/regular-expressions.png similarity index 100% rename from content/blog/education/2020-09-11-concept-maps/regular-expressions.png rename to content/blog/ported/education/2020-09-11-concept-maps/regular-expressions.png diff --git a/content/blog/education/2020-09-11-concept-maps/taylor-vick-M5tzZtFCOfs-unsplash.jpg b/content/blog/ported/education/2020-09-11-concept-maps/taylor-vick-M5tzZtFCOfs-unsplash.jpg similarity index 100% rename from content/blog/education/2020-09-11-concept-maps/taylor-vick-M5tzZtFCOfs-unsplash.jpg rename to content/blog/ported/education/2020-09-11-concept-maps/taylor-vick-M5tzZtFCOfs-unsplash.jpg diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-original.jpg b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-original.jpg similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-original.jpg rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-original.jpg diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-original.jpg.original b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-original.jpg.original similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-original.jpg.original rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-original.jpg.original diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-thumbnail.jpg b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-thumbnail.jpg rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-thumbnail.jpg diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-wd.jpg b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-wd.jpg similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-wd.jpg rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/dog-in-box-wd.jpg diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/index.Rmarkdown b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/index.Rmarkdown rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/index.Rmarkdown diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/index.markdown b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/index.markdown similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/index.markdown rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/index.markdown diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-build.png b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-build.png similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-build.png rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-build.png diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-directory.png b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-directory.png similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-directory.png rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-directory.png diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-gradethis.png b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-gradethis.png similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-gradethis.png rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-gradethis.png diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-illo.jpg b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-illo.jpg similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-illo.jpg rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-illo.jpg diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-inst.png b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-inst.png similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-inst.png rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-inst.png diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-overwrite.png b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-overwrite.png similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-overwrite.png rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-overwrite.png diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-run-tutorial.png b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-run-tutorial.png similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-run-tutorial.png rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-run-tutorial.png diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-run-tutorial.png.original b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-run-tutorial.png.original similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-run-tutorial.png.original rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/pkg-run-tutorial.png.original diff --git a/content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/usethis.png b/content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/usethis.png similarity index 100% rename from content/blog/education/2020-09-17-delivering-learnr-tutorials-in-a-package/usethis.png rename to content/blog/ported/education/2020-09-17-delivering-learnr-tutorials-in-a-package/usethis.png diff --git a/content/blog/education/2020-09-21-data-latam/Picture1.png b/content/blog/ported/education/2020-09-21-data-latam/Picture1.png similarity index 100% rename from content/blog/education/2020-09-21-data-latam/Picture1.png rename to content/blog/ported/education/2020-09-21-data-latam/Picture1.png diff --git a/content/blog/education/2020-09-21-data-latam/Picture2.png b/content/blog/ported/education/2020-09-21-data-latam/Picture2.png similarity index 100% rename from content/blog/education/2020-09-21-data-latam/Picture2.png rename to content/blog/ported/education/2020-09-21-data-latam/Picture2.png diff --git a/content/blog/education/2020-09-21-data-latam/data-latam-thumbnail.jpg b/content/blog/ported/education/2020-09-21-data-latam/data-latam-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-09-21-data-latam/data-latam-thumbnail.jpg rename to content/blog/ported/education/2020-09-21-data-latam/data-latam-thumbnail.jpg diff --git a/content/blog/education/2020-09-21-data-latam/data-latam-wd.jpg b/content/blog/ported/education/2020-09-21-data-latam/data-latam-wd.jpg similarity index 100% rename from content/blog/education/2020-09-21-data-latam/data-latam-wd.jpg rename to content/blog/ported/education/2020-09-21-data-latam/data-latam-wd.jpg diff --git a/content/blog/education/2020-09-21-data-latam/index.Rmarkdown b/content/blog/ported/education/2020-09-21-data-latam/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-09-21-data-latam/index.Rmarkdown rename to content/blog/ported/education/2020-09-21-data-latam/index.Rmarkdown diff --git a/content/blog/education/2020-09-21-data-latam/index.markdown b/content/blog/ported/education/2020-09-21-data-latam/index.markdown similarity index 100% rename from content/blog/education/2020-09-21-data-latam/index.markdown rename to content/blog/ported/education/2020-09-21-data-latam/index.markdown diff --git a/content/blog/education/2020-09-21-data-latam/original.jpg b/content/blog/ported/education/2020-09-21-data-latam/original.jpg similarity index 100% rename from content/blog/education/2020-09-21-data-latam/original.jpg rename to content/blog/ported/education/2020-09-21-data-latam/original.jpg diff --git a/content/blog/education/2020-09-30-september-2020-instructors/index.Rmarkdown b/content/blog/ported/education/2020-09-30-september-2020-instructors/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-09-30-september-2020-instructors/index.Rmarkdown rename to content/blog/ported/education/2020-09-30-september-2020-instructors/index.Rmarkdown diff --git a/content/blog/education/2020-09-30-september-2020-instructors/index.markdown b/content/blog/ported/education/2020-09-30-september-2020-instructors/index.markdown similarity index 100% rename from content/blog/education/2020-09-30-september-2020-instructors/index.markdown rename to content/blog/ported/education/2020-09-30-september-2020-instructors/index.markdown diff --git a/content/blog/education/2020-09-30-september-2020-instructors/september-2020-instructors-thumbnail.jpg b/content/blog/ported/education/2020-09-30-september-2020-instructors/september-2020-instructors-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-09-30-september-2020-instructors/september-2020-instructors-thumbnail.jpg rename to content/blog/ported/education/2020-09-30-september-2020-instructors/september-2020-instructors-thumbnail.jpg diff --git a/content/blog/education/2020-09-30-september-2020-instructors/september-2020-instructors-wd.jpg b/content/blog/ported/education/2020-09-30-september-2020-instructors/september-2020-instructors-wd.jpg similarity index 100% rename from content/blog/education/2020-09-30-september-2020-instructors/september-2020-instructors-wd.jpg rename to content/blog/ported/education/2020-09-30-september-2020-instructors/september-2020-instructors-wd.jpg diff --git a/content/blog/education/2020-09-30-september-2020-instructors/september-2020-instructors-wd.jpg.original b/content/blog/ported/education/2020-09-30-september-2020-instructors/september-2020-instructors-wd.jpg.original similarity index 100% rename from content/blog/education/2020-09-30-september-2020-instructors/september-2020-instructors-wd.jpg.original rename to content/blog/ported/education/2020-09-30-september-2020-instructors/september-2020-instructors-wd.jpg.original diff --git a/content/blog/education/2020-10-02-example-shiny-exam/example-shiny-exam-thumbnail.jpg b/content/blog/ported/education/2020-10-02-example-shiny-exam/example-shiny-exam-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-10-02-example-shiny-exam/example-shiny-exam-thumbnail.jpg rename to content/blog/ported/education/2020-10-02-example-shiny-exam/example-shiny-exam-thumbnail.jpg diff --git a/content/blog/education/2020-10-02-example-shiny-exam/example-shiny-exam-wd.jpg b/content/blog/ported/education/2020-10-02-example-shiny-exam/example-shiny-exam-wd.jpg similarity index 100% rename from content/blog/education/2020-10-02-example-shiny-exam/example-shiny-exam-wd.jpg rename to content/blog/ported/education/2020-10-02-example-shiny-exam/example-shiny-exam-wd.jpg diff --git a/content/blog/education/2020-10-02-example-shiny-exam/example-shiny-exam-wd.jpg.original b/content/blog/ported/education/2020-10-02-example-shiny-exam/example-shiny-exam-wd.jpg.original similarity index 100% rename from content/blog/education/2020-10-02-example-shiny-exam/example-shiny-exam-wd.jpg.original rename to content/blog/ported/education/2020-10-02-example-shiny-exam/example-shiny-exam-wd.jpg.original diff --git a/content/blog/education/2020-10-02-example-shiny-exam/index.Rmarkdown b/content/blog/ported/education/2020-10-02-example-shiny-exam/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-10-02-example-shiny-exam/index.Rmarkdown rename to content/blog/ported/education/2020-10-02-example-shiny-exam/index.Rmarkdown diff --git a/content/blog/education/2020-10-02-example-shiny-exam/index.markdown b/content/blog/ported/education/2020-10-02-example-shiny-exam/index.markdown similarity index 100% rename from content/blog/education/2020-10-02-example-shiny-exam/index.markdown rename to content/blog/ported/education/2020-10-02-example-shiny-exam/index.markdown diff --git a/content/blog/education/2020-10-02-example-shiny-exam/screenshot.png b/content/blog/ported/education/2020-10-02-example-shiny-exam/screenshot.png similarity index 100% rename from content/blog/education/2020-10-02-example-shiny-exam/screenshot.png rename to content/blog/ported/education/2020-10-02-example-shiny-exam/screenshot.png diff --git a/content/blog/education/2020-10-05-ds-in-edu/Screen Shot 2020-07-14 at 7.32.58 AM.png b/content/blog/ported/education/2020-10-05-ds-in-edu/Screen Shot 2020-07-14 at 7.32.58 AM.png similarity index 100% rename from content/blog/education/2020-10-05-ds-in-edu/Screen Shot 2020-07-14 at 7.32.58 AM.png rename to content/blog/ported/education/2020-10-05-ds-in-edu/Screen Shot 2020-07-14 at 7.32.58 AM.png diff --git a/content/blog/education/2020-10-05-ds-in-edu/banner-wd.jpg b/content/blog/ported/education/2020-10-05-ds-in-edu/banner-wd.jpg similarity index 100% rename from content/blog/education/2020-10-05-ds-in-edu/banner-wd.jpg rename to content/blog/ported/education/2020-10-05-ds-in-edu/banner-wd.jpg diff --git a/content/blog/education/2020-10-05-ds-in-edu/data/classwork_df.csv b/content/blog/ported/education/2020-10-05-ds-in-edu/data/classwork_df.csv similarity index 100% rename from content/blog/education/2020-10-05-ds-in-edu/data/classwork_df.csv rename to content/blog/ported/education/2020-10-05-ds-in-edu/data/classwork_df.csv diff --git a/content/blog/education/2020-10-05-ds-in-edu/index.Rmarkdown b/content/blog/ported/education/2020-10-05-ds-in-edu/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-10-05-ds-in-edu/index.Rmarkdown rename to content/blog/ported/education/2020-10-05-ds-in-edu/index.Rmarkdown diff --git a/content/blog/education/2020-10-05-ds-in-edu/index.markdown b/content/blog/ported/education/2020-10-05-ds-in-edu/index.markdown similarity index 100% rename from content/blog/education/2020-10-05-ds-in-edu/index.markdown rename to content/blog/ported/education/2020-10-05-ds-in-edu/index.markdown diff --git a/content/blog/education/2020-10-05-ds-in-edu/plot-1.png b/content/blog/ported/education/2020-10-05-ds-in-edu/plot-1.png similarity index 100% rename from content/blog/education/2020-10-05-ds-in-edu/plot-1.png rename to content/blog/ported/education/2020-10-05-ds-in-edu/plot-1.png diff --git a/content/blog/education/2020-10-05-ds-in-edu/thumbnail.jpg b/content/blog/ported/education/2020-10-05-ds-in-edu/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-10-05-ds-in-edu/thumbnail.jpg rename to content/blog/ported/education/2020-10-05-ds-in-edu/thumbnail.jpg diff --git a/content/blog/education/2020-10-05-glosario-sprint/glosario-sprint-thumbnail.jpg b/content/blog/ported/education/2020-10-05-glosario-sprint/glosario-sprint-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-10-05-glosario-sprint/glosario-sprint-thumbnail.jpg rename to content/blog/ported/education/2020-10-05-glosario-sprint/glosario-sprint-thumbnail.jpg diff --git a/content/blog/education/2020-10-05-glosario-sprint/glosario-sprint-wd.jpg b/content/blog/ported/education/2020-10-05-glosario-sprint/glosario-sprint-wd.jpg similarity index 100% rename from content/blog/education/2020-10-05-glosario-sprint/glosario-sprint-wd.jpg rename to content/blog/ported/education/2020-10-05-glosario-sprint/glosario-sprint-wd.jpg diff --git a/content/blog/education/2020-10-05-glosario-sprint/index.Rmarkdown b/content/blog/ported/education/2020-10-05-glosario-sprint/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-10-05-glosario-sprint/index.Rmarkdown rename to content/blog/ported/education/2020-10-05-glosario-sprint/index.Rmarkdown diff --git a/content/blog/education/2020-10-05-glosario-sprint/index.markdown b/content/blog/ported/education/2020-10-05-glosario-sprint/index.markdown similarity index 100% rename from content/blog/education/2020-10-05-glosario-sprint/index.markdown rename to content/blog/ported/education/2020-10-05-glosario-sprint/index.markdown diff --git a/content/blog/education/2020-10-07-learner-personas/anya-academic.png b/content/blog/ported/education/2020-10-07-learner-personas/anya-academic.png similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/anya-academic.png rename to content/blog/ported/education/2020-10-07-learner-personas/anya-academic.png diff --git a/content/blog/education/2020-10-07-learner-personas/celine-certified.png b/content/blog/ported/education/2020-10-07-learner-personas/celine-certified.png similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/celine-certified.png rename to content/blog/ported/education/2020-10-07-learner-personas/celine-certified.png diff --git a/content/blog/education/2020-10-07-learner-personas/exton-excel.png b/content/blog/ported/education/2020-10-07-learner-personas/exton-excel.png similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/exton-excel.png rename to content/blog/ported/education/2020-10-07-learner-personas/exton-excel.png diff --git a/content/blog/education/2020-10-07-learner-personas/index.Rmarkdown b/content/blog/ported/education/2020-10-07-learner-personas/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/index.Rmarkdown rename to content/blog/ported/education/2020-10-07-learner-personas/index.Rmarkdown diff --git a/content/blog/education/2020-10-07-learner-personas/index.markdown b/content/blog/ported/education/2020-10-07-learner-personas/index.markdown similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/index.markdown rename to content/blog/ported/education/2020-10-07-learner-personas/index.markdown diff --git a/content/blog/education/2020-10-07-learner-personas/jacqui-ofalltrades.png b/content/blog/ported/education/2020-10-07-learner-personas/jacqui-ofalltrades.png similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/jacqui-ofalltrades.png rename to content/blog/ported/education/2020-10-07-learner-personas/jacqui-ofalltrades.png diff --git a/content/blog/education/2020-10-07-learner-personas/katrin-keener.png b/content/blog/ported/education/2020-10-07-learner-personas/katrin-keener.png similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/katrin-keener.png rename to content/blog/ported/education/2020-10-07-learner-personas/katrin-keener.png diff --git a/content/blog/education/2020-10-07-learner-personas/larry-legacy.png b/content/blog/ported/education/2020-10-07-learner-personas/larry-legacy.png similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/larry-legacy.png rename to content/blog/ported/education/2020-10-07-learner-personas/larry-legacy.png diff --git a/content/blog/education/2020-10-07-learner-personas/learner-personas-thumbnail.jpg b/content/blog/ported/education/2020-10-07-learner-personas/learner-personas-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/learner-personas-thumbnail.jpg rename to content/blog/ported/education/2020-10-07-learner-personas/learner-personas-thumbnail.jpg diff --git a/content/blog/education/2020-10-07-learner-personas/learner-personas-wd.jpg b/content/blog/ported/education/2020-10-07-learner-personas/learner-personas-wd.jpg similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/learner-personas-wd.jpg rename to content/blog/ported/education/2020-10-07-learner-personas/learner-personas-wd.jpg diff --git a/content/blog/education/2020-10-07-learner-personas/learner-personas-wd.jpg.original b/content/blog/ported/education/2020-10-07-learner-personas/learner-personas-wd.jpg.original similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/learner-personas-wd.jpg.original rename to content/blog/ported/education/2020-10-07-learner-personas/learner-personas-wd.jpg.original diff --git a/content/blog/education/2020-10-07-learner-personas/mshelle-manager.png b/content/blog/ported/education/2020-10-07-learner-personas/mshelle-manager.png similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/mshelle-manager.png rename to content/blog/ported/education/2020-10-07-learner-personas/mshelle-manager.png diff --git a/content/blog/education/2020-10-07-learner-personas/nang-newbie.png b/content/blog/ported/education/2020-10-07-learner-personas/nang-newbie.png similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/nang-newbie.png rename to content/blog/ported/education/2020-10-07-learner-personas/nang-newbie.png diff --git a/content/blog/education/2020-10-07-learner-personas/toshi-techsupport.png b/content/blog/ported/education/2020-10-07-learner-personas/toshi-techsupport.png similarity index 100% rename from content/blog/education/2020-10-07-learner-personas/toshi-techsupport.png rename to content/blog/ported/education/2020-10-07-learner-personas/toshi-techsupport.png diff --git a/content/blog/education/2020-10-30-october-2020-instructors/certificates.png b/content/blog/ported/education/2020-10-30-october-2020-instructors/certificates.png similarity index 100% rename from content/blog/education/2020-10-30-october-2020-instructors/certificates.png rename to content/blog/ported/education/2020-10-30-october-2020-instructors/certificates.png diff --git a/content/blog/education/2020-10-30-october-2020-instructors/index.Rmarkdown b/content/blog/ported/education/2020-10-30-october-2020-instructors/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-10-30-october-2020-instructors/index.Rmarkdown rename to content/blog/ported/education/2020-10-30-october-2020-instructors/index.Rmarkdown diff --git a/content/blog/education/2020-10-30-october-2020-instructors/index.markdown b/content/blog/ported/education/2020-10-30-october-2020-instructors/index.markdown similarity index 100% rename from content/blog/education/2020-10-30-october-2020-instructors/index.markdown rename to content/blog/ported/education/2020-10-30-october-2020-instructors/index.markdown diff --git a/content/blog/education/2020-10-30-october-2020-instructors/october-2020-instructors-thumbnail.jpg b/content/blog/ported/education/2020-10-30-october-2020-instructors/october-2020-instructors-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-10-30-october-2020-instructors/october-2020-instructors-thumbnail.jpg rename to content/blog/ported/education/2020-10-30-october-2020-instructors/october-2020-instructors-thumbnail.jpg diff --git a/content/blog/education/2020-10-30-october-2020-instructors/october-2020-instructors-wd.jpg b/content/blog/ported/education/2020-10-30-october-2020-instructors/october-2020-instructors-wd.jpg similarity index 100% rename from content/blog/education/2020-10-30-october-2020-instructors/october-2020-instructors-wd.jpg rename to content/blog/ported/education/2020-10-30-october-2020-instructors/october-2020-instructors-wd.jpg diff --git a/content/blog/education/2020-10-30-october-2020-instructors/october-2020-instructors-wd.jpg.original b/content/blog/ported/education/2020-10-30-october-2020-instructors/october-2020-instructors-wd.jpg.original similarity index 100% rename from content/blog/education/2020-10-30-october-2020-instructors/october-2020-instructors-wd.jpg.original rename to content/blog/ported/education/2020-10-30-october-2020-instructors/october-2020-instructors-wd.jpg.original diff --git a/content/blog/education/2020-11-16-BlackInDataWeek/data-wd.jpg b/content/blog/ported/education/2020-11-16-BlackInDataWeek/data-wd.jpg similarity index 100% rename from content/blog/education/2020-11-16-BlackInDataWeek/data-wd.jpg rename to content/blog/ported/education/2020-11-16-BlackInDataWeek/data-wd.jpg diff --git a/content/blog/education/2020-11-16-BlackInDataWeek/data-wd.jpg.original b/content/blog/ported/education/2020-11-16-BlackInDataWeek/data-wd.jpg.original similarity index 100% rename from content/blog/education/2020-11-16-BlackInDataWeek/data-wd.jpg.original rename to content/blog/ported/education/2020-11-16-BlackInDataWeek/data-wd.jpg.original diff --git a/content/blog/education/2020-11-16-BlackInDataWeek/index.Rmarkdown b/content/blog/ported/education/2020-11-16-BlackInDataWeek/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-11-16-BlackInDataWeek/index.Rmarkdown rename to content/blog/ported/education/2020-11-16-BlackInDataWeek/index.Rmarkdown diff --git a/content/blog/education/2020-11-16-BlackInDataWeek/index.markdown b/content/blog/ported/education/2020-11-16-BlackInDataWeek/index.markdown similarity index 100% rename from content/blog/education/2020-11-16-BlackInDataWeek/index.markdown rename to content/blog/ported/education/2020-11-16-BlackInDataWeek/index.markdown diff --git a/content/blog/education/2020-11-16-BlackInDataWeek/mir_logo.png b/content/blog/ported/education/2020-11-16-BlackInDataWeek/mir_logo.png similarity index 100% rename from content/blog/education/2020-11-16-BlackInDataWeek/mir_logo.png rename to content/blog/ported/education/2020-11-16-BlackInDataWeek/mir_logo.png diff --git a/content/blog/education/2020-11-16-BlackInDataWeek/thumbnail.jpg b/content/blog/ported/education/2020-11-16-BlackInDataWeek/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-11-16-BlackInDataWeek/thumbnail.jpg rename to content/blog/ported/education/2020-11-16-BlackInDataWeek/thumbnail.jpg diff --git a/content/blog/education/2020-12-03-november-2020-instructors/certificates.png b/content/blog/ported/education/2020-12-03-november-2020-instructors/certificates.png similarity index 100% rename from content/blog/education/2020-12-03-november-2020-instructors/certificates.png rename to content/blog/ported/education/2020-12-03-november-2020-instructors/certificates.png diff --git a/content/blog/education/2020-12-03-november-2020-instructors/index.Rmarkdown b/content/blog/ported/education/2020-12-03-november-2020-instructors/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-12-03-november-2020-instructors/index.Rmarkdown rename to content/blog/ported/education/2020-12-03-november-2020-instructors/index.Rmarkdown diff --git a/content/blog/education/2020-12-03-november-2020-instructors/index.markdown b/content/blog/ported/education/2020-12-03-november-2020-instructors/index.markdown similarity index 100% rename from content/blog/education/2020-12-03-november-2020-instructors/index.markdown rename to content/blog/ported/education/2020-12-03-november-2020-instructors/index.markdown diff --git a/content/blog/education/2020-12-03-november-2020-instructors/november-2020-instructors-thumbnail.jpg b/content/blog/ported/education/2020-12-03-november-2020-instructors/november-2020-instructors-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-12-03-november-2020-instructors/november-2020-instructors-thumbnail.jpg rename to content/blog/ported/education/2020-12-03-november-2020-instructors/november-2020-instructors-thumbnail.jpg diff --git a/content/blog/education/2020-12-03-november-2020-instructors/november-2020-instructors-wd.jpg b/content/blog/ported/education/2020-12-03-november-2020-instructors/november-2020-instructors-wd.jpg similarity index 100% rename from content/blog/education/2020-12-03-november-2020-instructors/november-2020-instructors-wd.jpg rename to content/blog/ported/education/2020-12-03-november-2020-instructors/november-2020-instructors-wd.jpg diff --git a/content/blog/education/2020-12-03-november-2020-instructors/november-2020-instructors-wd.jpg.original b/content/blog/ported/education/2020-12-03-november-2020-instructors/november-2020-instructors-wd.jpg.original similarity index 100% rename from content/blog/education/2020-12-03-november-2020-instructors/november-2020-instructors-wd.jpg.original rename to content/blog/ported/education/2020-12-03-november-2020-instructors/november-2020-instructors-wd.jpg.original diff --git a/content/blog/education/2020-12-07-carpentries-support/carpentries-support-thumbnail.jpg b/content/blog/ported/education/2020-12-07-carpentries-support/carpentries-support-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-12-07-carpentries-support/carpentries-support-thumbnail.jpg rename to content/blog/ported/education/2020-12-07-carpentries-support/carpentries-support-thumbnail.jpg diff --git a/content/blog/education/2020-12-07-carpentries-support/carpentries-support-wd.jpg b/content/blog/ported/education/2020-12-07-carpentries-support/carpentries-support-wd.jpg similarity index 100% rename from content/blog/education/2020-12-07-carpentries-support/carpentries-support-wd.jpg rename to content/blog/ported/education/2020-12-07-carpentries-support/carpentries-support-wd.jpg diff --git a/content/blog/education/2020-12-07-carpentries-support/hunter-haley-s8OO2-t-HmQ-unsplash.jpg b/content/blog/ported/education/2020-12-07-carpentries-support/hunter-haley-s8OO2-t-HmQ-unsplash.jpg similarity index 100% rename from content/blog/education/2020-12-07-carpentries-support/hunter-haley-s8OO2-t-HmQ-unsplash.jpg rename to content/blog/ported/education/2020-12-07-carpentries-support/hunter-haley-s8OO2-t-HmQ-unsplash.jpg diff --git a/content/blog/education/2020-12-07-carpentries-support/index.Rmarkdown b/content/blog/ported/education/2020-12-07-carpentries-support/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-12-07-carpentries-support/index.Rmarkdown rename to content/blog/ported/education/2020-12-07-carpentries-support/index.Rmarkdown diff --git a/content/blog/education/2020-12-07-carpentries-support/index.markdown b/content/blog/ported/education/2020-12-07-carpentries-support/index.markdown similarity index 100% rename from content/blog/education/2020-12-07-carpentries-support/index.markdown rename to content/blog/ported/education/2020-12-07-carpentries-support/index.markdown diff --git a/content/blog/education/2020-12-07-carpentries-support/thumbnail.png b/content/blog/ported/education/2020-12-07-carpentries-support/thumbnail.png similarity index 100% rename from content/blog/education/2020-12-07-carpentries-support/thumbnail.png rename to content/blog/ported/education/2020-12-07-carpentries-support/thumbnail.png diff --git a/content/blog/education/2020-12-18-metadocencia/apple-wd.jpg b/content/blog/ported/education/2020-12-18-metadocencia/apple-wd.jpg similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/apple-wd.jpg rename to content/blog/ported/education/2020-12-18-metadocencia/apple-wd.jpg diff --git a/content/blog/education/2020-12-18-metadocencia/apple-wd.jpg.original b/content/blog/ported/education/2020-12-18-metadocencia/apple-wd.jpg.original similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/apple-wd.jpg.original rename to content/blog/ported/education/2020-12-18-metadocencia/apple-wd.jpg.original diff --git a/content/blog/education/2020-12-18-metadocencia/communities.png b/content/blog/ported/education/2020-12-18-metadocencia/communities.png similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/communities.png rename to content/blog/ported/education/2020-12-18-metadocencia/communities.png diff --git a/content/blog/education/2020-12-18-metadocencia/en.png b/content/blog/ported/education/2020-12-18-metadocencia/en.png similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/en.png rename to content/blog/ported/education/2020-12-18-metadocencia/en.png diff --git a/content/blog/education/2020-12-18-metadocencia/es-en.png b/content/blog/ported/education/2020-12-18-metadocencia/es-en.png similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/es-en.png rename to content/blog/ported/education/2020-12-18-metadocencia/es-en.png diff --git a/content/blog/education/2020-12-18-metadocencia/es-en.png.original b/content/blog/ported/education/2020-12-18-metadocencia/es-en.png.original similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/es-en.png.original rename to content/blog/ported/education/2020-12-18-metadocencia/es-en.png.original diff --git a/content/blog/education/2020-12-18-metadocencia/es.png b/content/blog/ported/education/2020-12-18-metadocencia/es.png similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/es.png rename to content/blog/ported/education/2020-12-18-metadocencia/es.png diff --git a/content/blog/education/2020-12-18-metadocencia/index.Rmarkdown b/content/blog/ported/education/2020-12-18-metadocencia/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/index.Rmarkdown rename to content/blog/ported/education/2020-12-18-metadocencia/index.Rmarkdown diff --git a/content/blog/education/2020-12-18-metadocencia/index.markdown b/content/blog/ported/education/2020-12-18-metadocencia/index.markdown similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/index.markdown rename to content/blog/ported/education/2020-12-18-metadocencia/index.markdown diff --git a/content/blog/education/2020-12-18-metadocencia/thumbnail.jpg b/content/blog/ported/education/2020-12-18-metadocencia/thumbnail.jpg similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/thumbnail.jpg rename to content/blog/ported/education/2020-12-18-metadocencia/thumbnail.jpg diff --git a/content/blog/education/2020-12-18-metadocencia/thumbnail.jpg.original b/content/blog/ported/education/2020-12-18-metadocencia/thumbnail.jpg.original similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/thumbnail.jpg.original rename to content/blog/ported/education/2020-12-18-metadocencia/thumbnail.jpg.original diff --git a/content/blog/education/2020-12-18-metadocencia/world_map.png b/content/blog/ported/education/2020-12-18-metadocencia/world_map.png similarity index 100% rename from content/blog/education/2020-12-18-metadocencia/world_map.png rename to content/blog/ported/education/2020-12-18-metadocencia/world_map.png diff --git a/content/blog/education/2020-12-22-december-2020-instructors/december-2020-instructors-thumbnail.jpg b/content/blog/ported/education/2020-12-22-december-2020-instructors/december-2020-instructors-thumbnail.jpg similarity index 100% rename from content/blog/education/2020-12-22-december-2020-instructors/december-2020-instructors-thumbnail.jpg rename to content/blog/ported/education/2020-12-22-december-2020-instructors/december-2020-instructors-thumbnail.jpg diff --git a/content/blog/education/2020-12-22-december-2020-instructors/december-2020-instructors-wd.jpg b/content/blog/ported/education/2020-12-22-december-2020-instructors/december-2020-instructors-wd.jpg similarity index 100% rename from content/blog/education/2020-12-22-december-2020-instructors/december-2020-instructors-wd.jpg rename to content/blog/ported/education/2020-12-22-december-2020-instructors/december-2020-instructors-wd.jpg diff --git a/content/blog/education/2020-12-22-december-2020-instructors/december-2020-instructors-wd.jpg.original b/content/blog/ported/education/2020-12-22-december-2020-instructors/december-2020-instructors-wd.jpg.original similarity index 100% rename from content/blog/education/2020-12-22-december-2020-instructors/december-2020-instructors-wd.jpg.original rename to content/blog/ported/education/2020-12-22-december-2020-instructors/december-2020-instructors-wd.jpg.original diff --git a/content/blog/education/2020-12-22-december-2020-instructors/flags.png b/content/blog/ported/education/2020-12-22-december-2020-instructors/flags.png similarity index 100% rename from content/blog/education/2020-12-22-december-2020-instructors/flags.png rename to content/blog/ported/education/2020-12-22-december-2020-instructors/flags.png diff --git a/content/blog/education/2020-12-22-december-2020-instructors/flags.png.original b/content/blog/ported/education/2020-12-22-december-2020-instructors/flags.png.original similarity index 100% rename from content/blog/education/2020-12-22-december-2020-instructors/flags.png.original rename to content/blog/ported/education/2020-12-22-december-2020-instructors/flags.png.original diff --git a/content/blog/education/2020-12-22-december-2020-instructors/index.Rmarkdown b/content/blog/ported/education/2020-12-22-december-2020-instructors/index.Rmarkdown similarity index 100% rename from content/blog/education/2020-12-22-december-2020-instructors/index.Rmarkdown rename to content/blog/ported/education/2020-12-22-december-2020-instructors/index.Rmarkdown diff --git a/content/blog/education/2020-12-22-december-2020-instructors/index.markdown b/content/blog/ported/education/2020-12-22-december-2020-instructors/index.markdown similarity index 100% rename from content/blog/education/2020-12-22-december-2020-instructors/index.markdown rename to content/blog/ported/education/2020-12-22-december-2020-instructors/index.markdown diff --git a/content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/aaron-durham-mentorship-wrapup-thumbnail.jpg b/content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/aaron-durham-mentorship-wrapup-thumbnail.jpg similarity index 100% rename from content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/aaron-durham-mentorship-wrapup-thumbnail.jpg rename to content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/aaron-durham-mentorship-wrapup-thumbnail.jpg diff --git a/content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/aaron-durham-mentorship-wrapup-wd.jpg b/content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/aaron-durham-mentorship-wrapup-wd.jpg similarity index 100% rename from content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/aaron-durham-mentorship-wrapup-wd.jpg rename to content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/aaron-durham-mentorship-wrapup-wd.jpg diff --git a/content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/index.Rmarkdown b/content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/index.Rmarkdown similarity index 100% rename from content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/index.Rmarkdown rename to content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/index.Rmarkdown diff --git a/content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/index.markdown b/content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/index.markdown similarity index 100% rename from content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/index.markdown rename to content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/index.markdown diff --git a/content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/original.jpg b/content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/original.jpg similarity index 100% rename from content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/original.jpg rename to content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/original.jpg diff --git a/content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/screenshot.png b/content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/screenshot.png similarity index 100% rename from content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/screenshot.png rename to content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/screenshot.png diff --git a/content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/screenshot.png.original b/content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/screenshot.png.original similarity index 100% rename from content/blog/education/2021-01-28-aaron-durham-mentorship-wrapup/screenshot.png.original rename to content/blog/ported/education/2021-01-28-aaron-durham-mentorship-wrapup/screenshot.png.original diff --git a/content/blog/education/2021-02-08-distill-down/images/blogdown_start.png b/content/blog/ported/education/2021-02-08-distill-down/images/blogdown_start.png similarity index 100% rename from content/blog/education/2021-02-08-distill-down/images/blogdown_start.png rename to content/blog/ported/education/2021-02-08-distill-down/images/blogdown_start.png diff --git a/content/blog/education/2021-02-08-distill-down/images/rmarkdown_mountain.png b/content/blog/ported/education/2021-02-08-distill-down/images/rmarkdown_mountain.png similarity index 100% rename from content/blog/education/2021-02-08-distill-down/images/rmarkdown_mountain.png rename to content/blog/ported/education/2021-02-08-distill-down/images/rmarkdown_mountain.png diff --git a/content/blog/education/2021-02-08-distill-down/index.md b/content/blog/ported/education/2021-02-08-distill-down/index.md similarity index 100% rename from content/blog/education/2021-02-08-distill-down/index.md rename to content/blog/ported/education/2021-02-08-distill-down/index.md diff --git a/content/blog/education/2021-02-08-distill-down/strawberry-thumbnail.png b/content/blog/ported/education/2021-02-08-distill-down/strawberry-thumbnail.png similarity index 100% rename from content/blog/education/2021-02-08-distill-down/strawberry-thumbnail.png rename to content/blog/ported/education/2021-02-08-distill-down/strawberry-thumbnail.png diff --git a/content/blog/education/2021-02-08-distill-down/strawberry-wd.png b/content/blog/ported/education/2021-02-08-distill-down/strawberry-wd.png similarity index 100% rename from content/blog/education/2021-02-08-distill-down/strawberry-wd.png rename to content/blog/ported/education/2021-02-08-distill-down/strawberry-wd.png diff --git a/content/blog/education/2021-02-15-jhu-cbds/dplyr.png b/content/blog/ported/education/2021-02-15-jhu-cbds/dplyr.png similarity index 100% rename from content/blog/education/2021-02-15-jhu-cbds/dplyr.png rename to content/blog/ported/education/2021-02-15-jhu-cbds/dplyr.png diff --git a/content/blog/education/2021-02-15-jhu-cbds/featured-wd.jpg b/content/blog/ported/education/2021-02-15-jhu-cbds/featured-wd.jpg similarity index 100% rename from content/blog/education/2021-02-15-jhu-cbds/featured-wd.jpg rename to content/blog/ported/education/2021-02-15-jhu-cbds/featured-wd.jpg diff --git a/content/blog/education/2021-02-15-jhu-cbds/index.md b/content/blog/ported/education/2021-02-15-jhu-cbds/index.md similarity index 100% rename from content/blog/education/2021-02-15-jhu-cbds/index.md rename to content/blog/ported/education/2021-02-15-jhu-cbds/index.md diff --git a/content/blog/education/2021-02-15-jhu-cbds/leanpub.png b/content/blog/ported/education/2021-02-15-jhu-cbds/leanpub.png similarity index 100% rename from content/blog/education/2021-02-15-jhu-cbds/leanpub.png rename to content/blog/ported/education/2021-02-15-jhu-cbds/leanpub.png diff --git a/content/blog/education/2021-02-15-jhu-cbds/thumbnail.jpg b/content/blog/ported/education/2021-02-15-jhu-cbds/thumbnail.jpg similarity index 100% rename from content/blog/education/2021-02-15-jhu-cbds/thumbnail.jpg rename to content/blog/ported/education/2021-02-15-jhu-cbds/thumbnail.jpg diff --git a/content/blog/education/2021-02-17-mentorship-reflection/hands-wd.jpg b/content/blog/ported/education/2021-02-17-mentorship-reflection/hands-wd.jpg similarity index 100% rename from content/blog/education/2021-02-17-mentorship-reflection/hands-wd.jpg rename to content/blog/ported/education/2021-02-17-mentorship-reflection/hands-wd.jpg diff --git a/content/blog/education/2021-02-17-mentorship-reflection/index.md b/content/blog/ported/education/2021-02-17-mentorship-reflection/index.md similarity index 100% rename from content/blog/education/2021-02-17-mentorship-reflection/index.md rename to content/blog/ported/education/2021-02-17-mentorship-reflection/index.md diff --git a/content/blog/education/2021-02-17-mentorship-reflection/log_odds_role.png b/content/blog/ported/education/2021-02-17-mentorship-reflection/log_odds_role.png similarity index 100% rename from content/blog/education/2021-02-17-mentorship-reflection/log_odds_role.png rename to content/blog/ported/education/2021-02-17-mentorship-reflection/log_odds_role.png diff --git a/content/blog/education/2021-02-17-mentorship-reflection/log_odds_role.png.original b/content/blog/ported/education/2021-02-17-mentorship-reflection/log_odds_role.png.original similarity index 100% rename from content/blog/education/2021-02-17-mentorship-reflection/log_odds_role.png.original rename to content/blog/ported/education/2021-02-17-mentorship-reflection/log_odds_role.png.original diff --git a/content/blog/education/2021-02-17-mentorship-reflection/thumbnail.jpg b/content/blog/ported/education/2021-02-17-mentorship-reflection/thumbnail.jpg similarity index 100% rename from content/blog/education/2021-02-17-mentorship-reflection/thumbnail.jpg rename to content/blog/ported/education/2021-02-17-mentorship-reflection/thumbnail.jpg diff --git a/content/blog/great-tables/_index.md b/content/blog/ported/great-tables/_index.md similarity index 100% rename from content/blog/great-tables/_index.md rename to content/blog/ported/great-tables/_index.md diff --git a/content/blog/great-tables/_metadata.yml b/content/blog/ported/great-tables/_metadata.yml similarity index 100% rename from content/blog/great-tables/_metadata.yml rename to content/blog/ported/great-tables/_metadata.yml diff --git a/content/blog/great-tables/bring-your-own-df/index.md b/content/blog/ported/great-tables/bring-your-own-df/index.md similarity index 97% rename from content/blog/great-tables/bring-your-own-df/index.md rename to content/blog/ported/great-tables/bring-your-own-df/index.md index acb4ab0ae..6aa90a94e 100644 --- a/content/blog/great-tables/bring-your-own-df/index.md +++ b/content/blog/ported/great-tables/bring-your-own-df/index.md @@ -22,7 +22,7 @@ tags: -A few months ago, we released a [blog post](/blog/great-tables/polars-styling/) about how much we loved the combination of Polars and Great Tables. We found that Polars lazy expression system opened up convenient ways to conditionally format tables for presentation. However, excited as we were, we were harboring a shameful secret: Great Tables enabled Polars as an optional dependency, but had a hard dependency on the alternative DataFrame library Pandas. +A few months ago, we released a [blog post](/blog/2024-01-08_polars-styling/) about how much we loved the combination of Polars and Great Tables. We found that Polars lazy expression system opened up convenient ways to conditionally format tables for presentation. However, excited as we were, we were harboring a shameful secret: Great Tables enabled Polars as an optional dependency, but had a hard dependency on the alternative DataFrame library Pandas. We're happy to share that [Great Tables](https://github.com/posit-dev/great-tables) v0.5.0 makes Pandas an optional dependency. Using Pandas DataFrames as inputs is still fully supported. @@ -265,7 +265,7 @@ Users are able to bring their DataFrame of choice without the collective baggage For more on the special things you can do with Polars expressions, see these resources: - [Guide: basic styling using Polars expressions](https://posit-dev.github.io/great-tables/get-started/basic-styling.html#using-polars-expressions) -- [Post: Great Tables, the Polars DataFrame Styler of Your Dreams](/blog/great-tables/polars-styling/) +- [Post: Great Tables, the Polars DataFrame Styler of Your Dreams](/blog/2024-01-08_polars-styling/) - [The narwhals library](https://github.com/MarcoGorelli/narwhals): a neat library for running Polars expressions on Pandas DataFrames. Hope you make some stylish, publication ready tables! diff --git a/content/blog/great-tables/bring-your-own-df/index.qmd b/content/blog/ported/great-tables/bring-your-own-df/index.qmd similarity index 94% rename from content/blog/great-tables/bring-your-own-df/index.qmd rename to content/blog/ported/great-tables/bring-your-own-df/index.qmd index cfe7b4c7e..1ad102e6f 100644 --- a/content/blog/great-tables/bring-your-own-df/index.qmd +++ b/content/blog/ported/great-tables/bring-your-own-df/index.qmd @@ -16,7 +16,7 @@ tags: - Great Tables --- -A few months ago, we released a [blog post](/blog/great-tables/polars-styling/) about how much we loved the combination of Polars and Great Tables. We found that Polars lazy expression system opened up convenient ways to conditionally format tables for presentation. However, excited as we were, we were harboring a shameful secret: Great Tables enabled Polars as an optional dependency, but had a hard dependency on the alternative DataFrame library Pandas. +A few months ago, we released a [blog post](/blog/2024-01-08_polars-styling/) about how much we loved the combination of Polars and Great Tables. We found that Polars lazy expression system opened up convenient ways to conditionally format tables for presentation. However, excited as we were, we were harboring a shameful secret: Great Tables enabled Polars as an optional dependency, but had a hard dependency on the alternative DataFrame library Pandas. We're happy to share that [Great Tables](https://github.com/posit-dev/great-tables) v0.5.0 makes Pandas an optional dependency. Using Pandas DataFrames as inputs is still fully supported. @@ -198,7 +198,7 @@ Users are able to bring their DataFrame of choice without the collective baggage For more on the special things you can do with Polars expressions, see these resources: * [Guide: basic styling using Polars expressions](https://posit-dev.github.io/great-tables/get-started/basic-styling.html#using-polars-expressions) -* [Post: Great Tables, the Polars DataFrame Styler of Your Dreams](/blog/great-tables/polars-styling/) +* [Post: Great Tables, the Polars DataFrame Styler of Your Dreams](/blog/2024-01-08_polars-styling/) * [The narwhals library](https://github.com/MarcoGorelli/narwhals): a neat library for running Polars expressions on Pandas DataFrames. Hope you make some stylish, publication ready tables! diff --git a/content/blog/great-tables/default-image.png b/content/blog/ported/great-tables/default-image.png similarity index 100% rename from content/blog/great-tables/default-image.png rename to content/blog/ported/great-tables/default-image.png diff --git a/content/blog/great-tables/design-philosophy/a_simple_table.png b/content/blog/ported/great-tables/design-philosophy/a_simple_table.png similarity index 100% rename from content/blog/great-tables/design-philosophy/a_simple_table.png rename to content/blog/ported/great-tables/design-philosophy/a_simple_table.png diff --git a/content/blog/great-tables/design-philosophy/a_simple_table.png.original b/content/blog/ported/great-tables/design-philosophy/a_simple_table.png.original similarity index 100% rename from content/blog/great-tables/design-philosophy/a_simple_table.png.original rename to content/blog/ported/great-tables/design-philosophy/a_simple_table.png.original diff --git a/content/blog/great-tables/design-philosophy/cave_grids.png b/content/blog/ported/great-tables/design-philosophy/cave_grids.png similarity index 100% rename from content/blog/great-tables/design-philosophy/cave_grids.png rename to content/blog/ported/great-tables/design-philosophy/cave_grids.png diff --git a/content/blog/great-tables/design-philosophy/cave_grids.png.original b/content/blog/ported/great-tables/design-philosophy/cave_grids.png.original similarity index 100% rename from content/blog/great-tables/design-philosophy/cave_grids.png.original rename to content/blog/ported/great-tables/design-philosophy/cave_grids.png.original diff --git a/content/blog/great-tables/design-philosophy/composition_of_a_table_in_GT.png b/content/blog/ported/great-tables/design-philosophy/composition_of_a_table_in_GT.png similarity index 100% rename from content/blog/great-tables/design-philosophy/composition_of_a_table_in_GT.png rename to content/blog/ported/great-tables/design-philosophy/composition_of_a_table_in_GT.png diff --git a/content/blog/great-tables/design-philosophy/composition_of_a_table_in_GT.png.original b/content/blog/ported/great-tables/design-philosophy/composition_of_a_table_in_GT.png.original similarity index 100% rename from content/blog/great-tables/design-philosophy/composition_of_a_table_in_GT.png.original rename to content/blog/ported/great-tables/design-philosophy/composition_of_a_table_in_GT.png.original diff --git a/content/blog/great-tables/design-philosophy/computer_tables.png b/content/blog/ported/great-tables/design-philosophy/computer_tables.png similarity index 100% rename from content/blog/great-tables/design-philosophy/computer_tables.png rename to content/blog/ported/great-tables/design-philosophy/computer_tables.png diff --git a/content/blog/great-tables/design-philosophy/index.md b/content/blog/ported/great-tables/design-philosophy/index.md similarity index 100% rename from content/blog/great-tables/design-philosophy/index.md rename to content/blog/ported/great-tables/design-philosophy/index.md diff --git a/content/blog/great-tables/design-philosophy/index.qmd b/content/blog/ported/great-tables/design-philosophy/index.qmd similarity index 100% rename from content/blog/great-tables/design-philosophy/index.qmd rename to content/blog/ported/great-tables/design-philosophy/index.qmd diff --git a/content/blog/great-tables/design-philosophy/nippur_cuneiform_tablet.png b/content/blog/ported/great-tables/design-philosophy/nippur_cuneiform_tablet.png similarity index 100% rename from content/blog/great-tables/design-philosophy/nippur_cuneiform_tablet.png rename to content/blog/ported/great-tables/design-philosophy/nippur_cuneiform_tablet.png diff --git a/content/blog/great-tables/design-philosophy/snippets_from_manual_tablular_presentation.png b/content/blog/ported/great-tables/design-philosophy/snippets_from_manual_tablular_presentation.png similarity index 100% rename from content/blog/great-tables/design-philosophy/snippets_from_manual_tablular_presentation.png rename to content/blog/ported/great-tables/design-philosophy/snippets_from_manual_tablular_presentation.png diff --git a/content/blog/great-tables/design-philosophy/snippets_from_manual_tablular_presentation.png.original b/content/blog/ported/great-tables/design-philosophy/snippets_from_manual_tablular_presentation.png.original similarity index 100% rename from content/blog/great-tables/design-philosophy/snippets_from_manual_tablular_presentation.png.original rename to content/blog/ported/great-tables/design-philosophy/snippets_from_manual_tablular_presentation.png.original diff --git a/content/blog/great-tables/design-philosophy/uruk_tablet_with_annotations.png b/content/blog/ported/great-tables/design-philosophy/uruk_tablet_with_annotations.png similarity index 100% rename from content/blog/great-tables/design-philosophy/uruk_tablet_with_annotations.png rename to content/blog/ported/great-tables/design-philosophy/uruk_tablet_with_annotations.png diff --git a/content/blog/great-tables/design-philosophy/visicalc.png b/content/blog/ported/great-tables/design-philosophy/visicalc.png similarity index 100% rename from content/blog/great-tables/design-philosophy/visicalc.png rename to content/blog/ported/great-tables/design-philosophy/visicalc.png diff --git a/content/blog/great-tables/design-philosophy/visicalc.png.original b/content/blog/ported/great-tables/design-philosophy/visicalc.png.original similarity index 100% rename from content/blog/great-tables/design-philosophy/visicalc.png.original rename to content/blog/ported/great-tables/design-philosophy/visicalc.png.original diff --git a/content/blog/great-tables/introduction-0.12.0/index.md b/content/blog/ported/great-tables/introduction-0.12.0/index.md similarity index 100% rename from content/blog/great-tables/introduction-0.12.0/index.md rename to content/blog/ported/great-tables/introduction-0.12.0/index.md diff --git a/content/blog/great-tables/introduction-0.12.0/index.qmd b/content/blog/ported/great-tables/introduction-0.12.0/index.qmd similarity index 100% rename from content/blog/great-tables/introduction-0.12.0/index.qmd rename to content/blog/ported/great-tables/introduction-0.12.0/index.qmd diff --git a/content/blog/great-tables/introduction-0.13.0/GT-locations-map.png b/content/blog/ported/great-tables/introduction-0.13.0/GT-locations-map.png similarity index 100% rename from content/blog/great-tables/introduction-0.13.0/GT-locations-map.png rename to content/blog/ported/great-tables/introduction-0.13.0/GT-locations-map.png diff --git a/content/blog/great-tables/introduction-0.13.0/index.md b/content/blog/ported/great-tables/introduction-0.13.0/index.md similarity index 100% rename from content/blog/great-tables/introduction-0.13.0/index.md rename to content/blog/ported/great-tables/introduction-0.13.0/index.md diff --git a/content/blog/great-tables/introduction-0.13.0/index.qmd b/content/blog/ported/great-tables/introduction-0.13.0/index.qmd similarity index 100% rename from content/blog/great-tables/introduction-0.13.0/index.qmd rename to content/blog/ported/great-tables/introduction-0.13.0/index.qmd diff --git a/content/blog/great-tables/introduction-0.15.0/index.md b/content/blog/ported/great-tables/introduction-0.15.0/index.md similarity index 100% rename from content/blog/great-tables/introduction-0.15.0/index.md rename to content/blog/ported/great-tables/introduction-0.15.0/index.md diff --git a/content/blog/great-tables/introduction-0.15.0/index.qmd b/content/blog/ported/great-tables/introduction-0.15.0/index.qmd similarity index 100% rename from content/blog/great-tables/introduction-0.15.0/index.qmd rename to content/blog/ported/great-tables/introduction-0.15.0/index.qmd diff --git a/content/blog/great-tables/introduction-0.18.0/index.md b/content/blog/ported/great-tables/introduction-0.18.0/index.md similarity index 100% rename from content/blog/great-tables/introduction-0.18.0/index.md rename to content/blog/ported/great-tables/introduction-0.18.0/index.md diff --git a/content/blog/great-tables/introduction-0.18.0/index.qmd b/content/blog/ported/great-tables/introduction-0.18.0/index.qmd similarity index 100% rename from content/blog/great-tables/introduction-0.18.0/index.qmd rename to content/blog/ported/great-tables/introduction-0.18.0/index.qmd diff --git a/content/blog/great-tables/introduction-0.2.0/index.md b/content/blog/ported/great-tables/introduction-0.2.0/index.md similarity index 100% rename from content/blog/great-tables/introduction-0.2.0/index.md rename to content/blog/ported/great-tables/introduction-0.2.0/index.md diff --git a/content/blog/great-tables/introduction-0.2.0/index.qmd b/content/blog/ported/great-tables/introduction-0.2.0/index.qmd similarity index 100% rename from content/blog/great-tables/introduction-0.2.0/index.qmd rename to content/blog/ported/great-tables/introduction-0.2.0/index.qmd diff --git a/content/blog/great-tables/introduction-0.3.0/index.md b/content/blog/ported/great-tables/introduction-0.3.0/index.md similarity index 100% rename from content/blog/great-tables/introduction-0.3.0/index.md rename to content/blog/ported/great-tables/introduction-0.3.0/index.md diff --git a/content/blog/great-tables/introduction-0.3.0/index.qmd b/content/blog/ported/great-tables/introduction-0.3.0/index.qmd similarity index 100% rename from content/blog/great-tables/introduction-0.3.0/index.qmd rename to content/blog/ported/great-tables/introduction-0.3.0/index.qmd diff --git a/content/blog/great-tables/introduction-0.4.0/index.md b/content/blog/ported/great-tables/introduction-0.4.0/index.md similarity index 100% rename from content/blog/great-tables/introduction-0.4.0/index.md rename to content/blog/ported/great-tables/introduction-0.4.0/index.md diff --git a/content/blog/great-tables/introduction-0.4.0/index.qmd b/content/blog/ported/great-tables/introduction-0.4.0/index.qmd similarity index 100% rename from content/blog/great-tables/introduction-0.4.0/index.qmd rename to content/blog/ported/great-tables/introduction-0.4.0/index.qmd diff --git a/content/blog/great-tables/introduction_great_tables/index.md b/content/blog/ported/great-tables/introduction_great_tables/index.md similarity index 100% rename from content/blog/great-tables/introduction_great_tables/index.md rename to content/blog/ported/great-tables/introduction_great_tables/index.md diff --git a/content/blog/great-tables/introduction_great_tables/index.qmd b/content/blog/ported/great-tables/introduction_great_tables/index.qmd similarity index 100% rename from content/blog/great-tables/introduction_great_tables/index.qmd rename to content/blog/ported/great-tables/introduction_great_tables/index.qmd diff --git a/content/blog/great-tables/latex-output-tables/GT_html_latex.png b/content/blog/ported/great-tables/latex-output-tables/GT_html_latex.png similarity index 100% rename from content/blog/great-tables/latex-output-tables/GT_html_latex.png rename to content/blog/ported/great-tables/latex-output-tables/GT_html_latex.png diff --git a/content/blog/great-tables/latex-output-tables/GT_html_typst.png b/content/blog/ported/great-tables/latex-output-tables/GT_html_typst.png similarity index 100% rename from content/blog/great-tables/latex-output-tables/GT_html_typst.png rename to content/blog/ported/great-tables/latex-output-tables/GT_html_typst.png diff --git a/content/blog/great-tables/latex-output-tables/gtcars_latex_table.png b/content/blog/ported/great-tables/latex-output-tables/gtcars_latex_table.png similarity index 100% rename from content/blog/great-tables/latex-output-tables/gtcars_latex_table.png rename to content/blog/ported/great-tables/latex-output-tables/gtcars_latex_table.png diff --git a/content/blog/great-tables/latex-output-tables/gtcars_latex_table.png.original b/content/blog/ported/great-tables/latex-output-tables/gtcars_latex_table.png.original similarity index 100% rename from content/blog/great-tables/latex-output-tables/gtcars_latex_table.png.original rename to content/blog/ported/great-tables/latex-output-tables/gtcars_latex_table.png.original diff --git a/content/blog/great-tables/latex-output-tables/index.md b/content/blog/ported/great-tables/latex-output-tables/index.md similarity index 100% rename from content/blog/great-tables/latex-output-tables/index.md rename to content/blog/ported/great-tables/latex-output-tables/index.md diff --git a/content/blog/great-tables/latex-output-tables/index.qmd b/content/blog/ported/great-tables/latex-output-tables/index.qmd similarity index 100% rename from content/blog/great-tables/latex-output-tables/index.qmd rename to content/blog/ported/great-tables/latex-output-tables/index.qmd diff --git a/content/blog/great-tables/locbody-mask/index.md b/content/blog/ported/great-tables/locbody-mask/index.md similarity index 100% rename from content/blog/great-tables/locbody-mask/index.md rename to content/blog/ported/great-tables/locbody-mask/index.md diff --git a/content/blog/great-tables/locbody-mask/index.qmd b/content/blog/ported/great-tables/locbody-mask/index.qmd similarity index 100% rename from content/blog/great-tables/locbody-mask/index.qmd rename to content/blog/ported/great-tables/locbody-mask/index.qmd diff --git a/content/blog/great-tables/marimo-and-great-tables/gt_marimo.gif b/content/blog/ported/great-tables/marimo-and-great-tables/gt_marimo.gif similarity index 100% rename from content/blog/great-tables/marimo-and-great-tables/gt_marimo.gif rename to content/blog/ported/great-tables/marimo-and-great-tables/gt_marimo.gif diff --git a/content/blog/great-tables/marimo-and-great-tables/index.md b/content/blog/ported/great-tables/marimo-and-great-tables/index.md similarity index 100% rename from content/blog/great-tables/marimo-and-great-tables/index.md rename to content/blog/ported/great-tables/marimo-and-great-tables/index.md diff --git a/content/blog/great-tables/marimo-and-great-tables/index.qmd b/content/blog/ported/great-tables/marimo-and-great-tables/index.qmd similarity index 100% rename from content/blog/great-tables/marimo-and-great-tables/index.qmd rename to content/blog/ported/great-tables/marimo-and-great-tables/index.qmd diff --git a/content/blog/great-tables/open-transit-tools/amtrak-routes.jpg b/content/blog/ported/great-tables/open-transit-tools/amtrak-routes.jpg similarity index 100% rename from content/blog/great-tables/open-transit-tools/amtrak-routes.jpg rename to content/blog/ported/great-tables/open-transit-tools/amtrak-routes.jpg diff --git a/content/blog/great-tables/open-transit-tools/amtrak-routes.jpg.original b/content/blog/ported/great-tables/open-transit-tools/amtrak-routes.jpg.original similarity index 100% rename from content/blog/great-tables/open-transit-tools/amtrak-routes.jpg.original rename to content/blog/ported/great-tables/open-transit-tools/amtrak-routes.jpg.original diff --git a/content/blog/great-tables/open-transit-tools/calitp-service-patterns.png b/content/blog/ported/great-tables/open-transit-tools/calitp-service-patterns.png similarity index 100% rename from content/blog/great-tables/open-transit-tools/calitp-service-patterns.png rename to content/blog/ported/great-tables/open-transit-tools/calitp-service-patterns.png diff --git a/content/blog/great-tables/open-transit-tools/index.md b/content/blog/ported/great-tables/open-transit-tools/index.md similarity index 100% rename from content/blog/great-tables/open-transit-tools/index.md rename to content/blog/ported/great-tables/open-transit-tools/index.md diff --git a/content/blog/great-tables/open-transit-tools/index.qmd b/content/blog/ported/great-tables/open-transit-tools/index.qmd similarity index 100% rename from content/blog/great-tables/open-transit-tools/index.qmd rename to content/blog/ported/great-tables/open-transit-tools/index.qmd diff --git a/content/blog/great-tables/plots-in-tables/greattables-og.png b/content/blog/ported/great-tables/plots-in-tables/greattables-og.png similarity index 100% rename from content/blog/great-tables/plots-in-tables/greattables-og.png rename to content/blog/ported/great-tables/plots-in-tables/greattables-og.png diff --git a/content/blog/great-tables/plots-in-tables/index.md b/content/blog/ported/great-tables/plots-in-tables/index.md similarity index 100% rename from content/blog/great-tables/plots-in-tables/index.md rename to content/blog/ported/great-tables/plots-in-tables/index.md diff --git a/content/blog/great-tables/plots-in-tables/index.qmd b/content/blog/ported/great-tables/plots-in-tables/index.qmd similarity index 100% rename from content/blog/great-tables/plots-in-tables/index.qmd rename to content/blog/ported/great-tables/plots-in-tables/index.qmd diff --git a/content/blog/great-tables/pointblank-intro/datasets/game_revenue.ddb b/content/blog/ported/great-tables/pointblank-intro/datasets/game_revenue.ddb similarity index 100% rename from content/blog/great-tables/pointblank-intro/datasets/game_revenue.ddb rename to content/blog/ported/great-tables/pointblank-intro/datasets/game_revenue.ddb diff --git a/content/blog/great-tables/pointblank-intro/index.md b/content/blog/ported/great-tables/pointblank-intro/index.md similarity index 100% rename from content/blog/great-tables/pointblank-intro/index.md rename to content/blog/ported/great-tables/pointblank-intro/index.md diff --git a/content/blog/great-tables/pointblank-intro/index.qmd b/content/blog/ported/great-tables/pointblank-intro/index.qmd similarity index 100% rename from content/blog/great-tables/pointblank-intro/index.qmd rename to content/blog/ported/great-tables/pointblank-intro/index.qmd diff --git a/content/blog/great-tables/pointblank-intro/pyproject.toml b/content/blog/ported/great-tables/pointblank-intro/pyproject.toml similarity index 100% rename from content/blog/great-tables/pointblank-intro/pyproject.toml rename to content/blog/ported/great-tables/pointblank-intro/pyproject.toml diff --git a/content/blog/great-tables/pointblank-intro/uv.lock b/content/blog/ported/great-tables/pointblank-intro/uv.lock similarity index 100% rename from content/blog/great-tables/pointblank-intro/uv.lock rename to content/blog/ported/great-tables/pointblank-intro/uv.lock diff --git a/content/blog/great-tables/polars-dot-style/discord-feedback.jpg b/content/blog/ported/great-tables/polars-dot-style/discord-feedback.jpg similarity index 100% rename from content/blog/great-tables/polars-dot-style/discord-feedback.jpg rename to content/blog/ported/great-tables/polars-dot-style/discord-feedback.jpg diff --git a/content/blog/great-tables/polars-dot-style/discord-why-pandas.jpg b/content/blog/ported/great-tables/polars-dot-style/discord-why-pandas.jpg similarity index 100% rename from content/blog/great-tables/polars-dot-style/discord-why-pandas.jpg rename to content/blog/ported/great-tables/polars-dot-style/discord-why-pandas.jpg diff --git a/content/blog/great-tables/polars-dot-style/discord-why-pandas.jpg.original b/content/blog/ported/great-tables/polars-dot-style/discord-why-pandas.jpg.original similarity index 100% rename from content/blog/great-tables/polars-dot-style/discord-why-pandas.jpg.original rename to content/blog/ported/great-tables/polars-dot-style/discord-why-pandas.jpg.original diff --git a/content/blog/great-tables/polars-dot-style/index.md b/content/blog/ported/great-tables/polars-dot-style/index.md similarity index 99% rename from content/blog/great-tables/polars-dot-style/index.md rename to content/blog/ported/great-tables/polars-dot-style/index.md index e8c9bea3c..afee303d2 100644 --- a/content/blog/great-tables/polars-dot-style/index.md +++ b/content/blog/ported/great-tables/polars-dot-style/index.md @@ -46,7 +46,7 @@ for creating display tables. Initially, Great Tables only supported Pandas, but For example, selecting columns and applying conditional styles took a surprising amount of code. As an experiment, we added support for Polars, and wrote a post called -[Great Tables: The Polars DataFrame Styler of Your Dreams](/blog/great-tables/polars-styling/). +[Great Tables: The Polars DataFrame Styler of Your Dreams](/blog/2024-01-08_polars-styling/). Curious in what folks thought, we dropped it in the Polars discord, and got some Great Feedback: @@ -60,7 +60,7 @@ It's true, we had baked Pandas in as a dependency. We were just kids back then w We didn't realize that the world was moving to DataFrame agnostic support 😓. But the more we used Polars with Great Tables, the happier we were. -So we made some architectural tweaks to make Great Tables [BYODF (Bring Your Own DataFrame)](/blog/great-tables/bring-your-own-df/). +So we made some architectural tweaks to make Great Tables [BYODF (Bring Your Own DataFrame)](/blog/2024-04-24_bring-your-own-df/). With these changes, Polars users could install and use Great Tables without pulling in an unnecessary dependency on another DataFrame library (Pandas). diff --git a/content/blog/great-tables/polars-dot-style/index.qmd b/content/blog/ported/great-tables/polars-dot-style/index.qmd similarity index 99% rename from content/blog/great-tables/polars-dot-style/index.qmd rename to content/blog/ported/great-tables/polars-dot-style/index.qmd index 5c177a13d..c6d4c9c9d 100644 --- a/content/blog/great-tables/polars-dot-style/index.qmd +++ b/content/blog/ported/great-tables/polars-dot-style/index.qmd @@ -40,7 +40,7 @@ for creating display tables. Initially, Great Tables only supported Pandas, but For example, selecting columns and applying conditional styles took a surprising amount of code. As an experiment, we added support for Polars, and wrote a post called -[Great Tables: The Polars DataFrame Styler of Your Dreams](/blog/great-tables/polars-styling/). +[Great Tables: The Polars DataFrame Styler of Your Dreams](/blog/2024-01-08_polars-styling/). Curious in what folks thought, we dropped it in the Polars discord, and got some Great Feedback: @@ -55,7 +55,7 @@ It's true, we had baked Pandas in as a dependency. We were just kids back then w We didn't realize that the world was moving to DataFrame agnostic support 😓. But the more we used Polars with Great Tables, the happier we were. -So we made some architectural tweaks to make Great Tables [BYODF (Bring Your Own DataFrame)](/blog/great-tables/bring-your-own-df/). +So we made some architectural tweaks to make Great Tables [BYODF (Bring Your Own DataFrame)](/blog/2024-04-24_bring-your-own-df/). With these changes, Polars users could install and use Great Tables without pulling in an unnecessary dependency on another DataFrame library (Pandas). diff --git a/content/blog/great-tables/polars-dot-style/linkedin-jerry.jpg b/content/blog/ported/great-tables/polars-dot-style/linkedin-jerry.jpg similarity index 100% rename from content/blog/great-tables/polars-dot-style/linkedin-jerry.jpg rename to content/blog/ported/great-tables/polars-dot-style/linkedin-jerry.jpg diff --git a/content/blog/great-tables/polars-dot-style/pr-jerry.jpg b/content/blog/ported/great-tables/polars-dot-style/pr-jerry.jpg similarity index 100% rename from content/blog/great-tables/polars-dot-style/pr-jerry.jpg rename to content/blog/ported/great-tables/polars-dot-style/pr-jerry.jpg diff --git a/content/blog/great-tables/polars-dot-style/table-of-your-dreams.png b/content/blog/ported/great-tables/polars-dot-style/table-of-your-dreams.png similarity index 100% rename from content/blog/great-tables/polars-dot-style/table-of-your-dreams.png rename to content/blog/ported/great-tables/polars-dot-style/table-of-your-dreams.png diff --git a/content/blog/great-tables/polars-styling/index.md b/content/blog/ported/great-tables/polars-styling/index.md similarity index 100% rename from content/blog/great-tables/polars-styling/index.md rename to content/blog/ported/great-tables/polars-styling/index.md diff --git a/content/blog/great-tables/polars-styling/index.qmd b/content/blog/ported/great-tables/polars-styling/index.qmd similarity index 100% rename from content/blog/great-tables/polars-styling/index.qmd rename to content/blog/ported/great-tables/polars-styling/index.qmd diff --git a/content/blog/great-tables/polars-styling/table-preview.png b/content/blog/ported/great-tables/polars-styling/table-preview.png similarity index 100% rename from content/blog/great-tables/polars-styling/table-preview.png rename to content/blog/ported/great-tables/polars-styling/table-preview.png diff --git a/content/blog/great-tables/pycon-2024-great-tables-are-possible/index.md b/content/blog/ported/great-tables/pycon-2024-great-tables-are-possible/index.md similarity index 99% rename from content/blog/great-tables/pycon-2024-great-tables-are-possible/index.md rename to content/blog/ported/great-tables/pycon-2024-great-tables-are-possible/index.md index f8c36d4b8..e24e6fed5 100644 --- a/content/blog/great-tables/pycon-2024-great-tables-are-possible/index.md +++ b/content/blog/ported/great-tables/pycon-2024-great-tables-are-possible/index.md @@ -507,7 +507,7 @@ Note three important pieces: 3. **The nanoplot** on the right shows a tiny bargraph for monthly sales over the past year. This makes it easy to spot trends, and can be hovered over to get exact values. -Critically, the code for this table used the DataFrame library [Polars](https://pola.rs/), which makes it really [easy to select rows and columns for styling](../../../blog/great-tables/polars-styling/). +Critically, the code for this table used the DataFrame library [Polars](https://pola.rs/), which makes it really [easy to select rows and columns for styling](/blog/2024-01-08_polars-styling/). ## What's next? @@ -537,7 +537,7 @@ We covered the following table topics: Check out these resources to learn more about the wild and beautiful life of display tables: - [Great Tables example gallery](https://posit-dev.github.io/great-tables/examples/) -- [The Design Philosophy of Great Tables (blog post)](../../../blog/great-tables/design-philosophy/) +- [The Design Philosophy of Great Tables (blog post)](/blog/2024-04-04_design-philosophy/) - [20 Minute Table Tutorial by Albert Rapp](https://youtu.be/ESyWcOFuMQc?si=1_bBRZEKENFKVNpB) - [PyCon talk: Making Beautiful, Publication Quality Tables is Possible in 2024](https://youtu.be/08yLWPpFdo4?si=vBK9h-ObXNKp9tHH) diff --git a/content/blog/great-tables/pycon-2024-great-tables-are-possible/index.qmd b/content/blog/ported/great-tables/pycon-2024-great-tables-are-possible/index.qmd similarity index 96% rename from content/blog/great-tables/pycon-2024-great-tables-are-possible/index.qmd rename to content/blog/ported/great-tables/pycon-2024-great-tables-are-possible/index.qmd index 7b63c82ac..e37bd8267 100644 --- a/content/blog/great-tables/pycon-2024-great-tables-are-possible/index.qmd +++ b/content/blog/ported/great-tables/pycon-2024-great-tables-are-possible/index.qmd @@ -52,7 +52,7 @@ Note three important pieces: 3. **The nanoplot** on the right shows a tiny bargraph for monthly sales over the past year. This makes it easy to spot trends, and can be hovered over to get exact values. -Critically, the code for this table used the DataFrame library [Polars](https://pola.rs/), which makes it really [easy to select rows and columns for styling](/blog/great-tables/polars-styling/). +Critically, the code for this table used the DataFrame library [Polars](https://pola.rs/), which makes it really [easy to select rows and columns for styling](/blog/2024-01-08_polars-styling/). ## What's next? @@ -84,7 +84,7 @@ We covered the following table topics: Check out these resources to learn more about the wild and beautiful life of display tables: * [Great Tables example gallery](https://posit-dev.github.io/great-tables/examples/) -* [The Design Philosophy of Great Tables (blog post)](/blog/great-tables/design-philosophy/) +* [The Design Philosophy of Great Tables (blog post)](/blog/2024-04-04_design-philosophy/) * [20 Minute Table Tutorial by Albert Rapp](https://youtu.be/ESyWcOFuMQc?si=1_bBRZEKENFKVNpB) * [PyCon talk: Making Beautiful, Publication Quality Tables is Possible in 2024](https://youtu.be/08yLWPpFdo4?si=vBK9h-ObXNKp9tHH) diff --git a/content/blog/great-tables/pycon-2024-great-tables-are-possible/table.html b/content/blog/ported/great-tables/pycon-2024-great-tables-are-possible/table.html similarity index 100% rename from content/blog/great-tables/pycon-2024-great-tables-are-possible/table.html rename to content/blog/ported/great-tables/pycon-2024-great-tables-are-possible/table.html diff --git a/content/blog/great-tables/pyproject.toml b/content/blog/ported/great-tables/pyproject.toml similarity index 100% rename from content/blog/great-tables/pyproject.toml rename to content/blog/ported/great-tables/pyproject.toml diff --git a/content/blog/great-tables/rendering-images/index.md b/content/blog/ported/great-tables/rendering-images/index.md similarity index 100% rename from content/blog/great-tables/rendering-images/index.md rename to content/blog/ported/great-tables/rendering-images/index.md diff --git a/content/blog/great-tables/rendering-images/index.qmd b/content/blog/ported/great-tables/rendering-images/index.qmd similarity index 100% rename from content/blog/great-tables/rendering-images/index.qmd rename to content/blog/ported/great-tables/rendering-images/index.qmd diff --git a/content/blog/great-tables/septa-timetables/chw-stops.csv b/content/blog/ported/great-tables/septa-timetables/chw-stops.csv similarity index 100% rename from content/blog/great-tables/septa-timetables/chw-stops.csv rename to content/blog/ported/great-tables/septa-timetables/chw-stops.csv diff --git a/content/blog/great-tables/septa-timetables/example-timetable.png b/content/blog/ported/great-tables/septa-timetables/example-timetable.png similarity index 100% rename from content/blog/great-tables/septa-timetables/example-timetable.png rename to content/blog/ported/great-tables/septa-timetables/example-timetable.png diff --git a/content/blog/great-tables/septa-timetables/greattables-og.png b/content/blog/ported/great-tables/septa-timetables/greattables-og.png similarity index 100% rename from content/blog/great-tables/septa-timetables/greattables-og.png rename to content/blog/ported/great-tables/septa-timetables/greattables-og.png diff --git a/content/blog/great-tables/septa-timetables/index.md b/content/blog/ported/great-tables/septa-timetables/index.md similarity index 99% rename from content/blog/great-tables/septa-timetables/index.md rename to content/blog/ported/great-tables/septa-timetables/index.md index 4a382742d..d20a7a082 100644 --- a/content/blog/great-tables/septa-timetables/index.md +++ b/content/blog/ported/great-tables/septa-timetables/index.md @@ -38,7 +38,7 @@ Notice these big pieces: Tables like this often have to be created in tools like Illustrator, and updated by hand. At the same time, when agencies automate table creation, they often sacrifice a lot of the assistive features and helpful affordances of the table. -We set out to recreate this table in Great Tables (and by we I mean 99% Rich). In this post, I'll walk quickly through how we recreated it, and share some other examples of transit timetables in the wild. For the theory behind why tables like this are useful, see [The Design Philosophy of Great Tables](/blog/great-tables/design-philosophy/). +We set out to recreate this table in Great Tables (and by we I mean 99% Rich). In this post, I'll walk quickly through how we recreated it, and share some other examples of transit timetables in the wild. For the theory behind why tables like this are useful, see [The Design Philosophy of Great Tables](/blog/2024-04-04_design-philosophy/). ## The final result diff --git a/content/blog/great-tables/septa-timetables/index.qmd b/content/blog/ported/great-tables/septa-timetables/index.qmd similarity index 99% rename from content/blog/great-tables/septa-timetables/index.qmd rename to content/blog/ported/great-tables/septa-timetables/index.qmd index fe1e7a2cc..89ad0fc20 100644 --- a/content/blog/great-tables/septa-timetables/index.qmd +++ b/content/blog/ported/great-tables/septa-timetables/index.qmd @@ -33,7 +33,7 @@ Notice these big pieces: Tables like this often have to be created in tools like Illustrator, and updated by hand. At the same time, when agencies automate table creation, they often sacrifice a lot of the assistive features and helpful affordances of the table. -We set out to recreate this table in Great Tables (and by we I mean 99% Rich). In this post, I'll walk quickly through how we recreated it, and share some other examples of transit timetables in the wild. For the theory behind why tables like this are useful, see [The Design Philosophy of Great Tables](/blog/great-tables/design-philosophy/). +We set out to recreate this table in Great Tables (and by we I mean 99% Rich). In this post, I'll walk quickly through how we recreated it, and share some other examples of transit timetables in the wild. For the theory behind why tables like this are useful, see [The Design Philosophy of Great Tables](/blog/2024-04-04_design-philosophy/). ## The final result diff --git a/content/blog/great-tables/septa-timetables/metrotransit-route2.png b/content/blog/ported/great-tables/septa-timetables/metrotransit-route2.png similarity index 100% rename from content/blog/great-tables/septa-timetables/metrotransit-route2.png rename to content/blog/ported/great-tables/septa-timetables/metrotransit-route2.png diff --git a/content/blog/great-tables/septa-timetables/mta-route-bx1.png b/content/blog/ported/great-tables/septa-timetables/mta-route-bx1.png similarity index 100% rename from content/blog/great-tables/septa-timetables/mta-route-bx1.png rename to content/blog/ported/great-tables/septa-timetables/mta-route-bx1.png diff --git a/content/blog/great-tables/septa-timetables/septa-routing.png b/content/blog/ported/great-tables/septa-timetables/septa-routing.png similarity index 100% rename from content/blog/great-tables/septa-timetables/septa-routing.png rename to content/blog/ported/great-tables/septa-timetables/septa-routing.png diff --git a/content/blog/great-tables/septa-timetables/stops-times.csv b/content/blog/ported/great-tables/septa-timetables/stops-times.csv similarity index 100% rename from content/blog/great-tables/septa-timetables/stops-times.csv rename to content/blog/ported/great-tables/septa-timetables/stops-times.csv diff --git a/content/blog/great-tables/septa-timetables/times.csv b/content/blog/ported/great-tables/septa-timetables/times.csv similarity index 100% rename from content/blog/great-tables/septa-timetables/times.csv rename to content/blog/ported/great-tables/septa-timetables/times.csv diff --git a/content/blog/great-tables/superbowl-squares/_code.py b/content/blog/ported/great-tables/superbowl-squares/_code.py similarity index 100% rename from content/blog/great-tables/superbowl-squares/_code.py rename to content/blog/ported/great-tables/superbowl-squares/_code.py diff --git a/content/blog/great-tables/superbowl-squares/games.csv b/content/blog/ported/great-tables/superbowl-squares/games.csv similarity index 100% rename from content/blog/great-tables/superbowl-squares/games.csv rename to content/blog/ported/great-tables/superbowl-squares/games.csv diff --git a/content/blog/great-tables/superbowl-squares/index.md b/content/blog/ported/great-tables/superbowl-squares/index.md similarity index 100% rename from content/blog/great-tables/superbowl-squares/index.md rename to content/blog/ported/great-tables/superbowl-squares/index.md diff --git a/content/blog/great-tables/superbowl-squares/index.qmd b/content/blog/ported/great-tables/superbowl-squares/index.qmd similarity index 100% rename from content/blog/great-tables/superbowl-squares/index.qmd rename to content/blog/ported/great-tables/superbowl-squares/index.qmd diff --git a/content/blog/great-tables/tables-for-scientific-publishing/index.md b/content/blog/ported/great-tables/tables-for-scientific-publishing/index.md similarity index 100% rename from content/blog/great-tables/tables-for-scientific-publishing/index.md rename to content/blog/ported/great-tables/tables-for-scientific-publishing/index.md diff --git a/content/blog/great-tables/tables-for-scientific-publishing/index.qmd b/content/blog/ported/great-tables/tables-for-scientific-publishing/index.qmd similarity index 100% rename from content/blog/great-tables/tables-for-scientific-publishing/index.qmd rename to content/blog/ported/great-tables/tables-for-scientific-publishing/index.qmd diff --git a/content/blog/great-tables/uv.lock b/content/blog/ported/great-tables/uv.lock similarity index 100% rename from content/blog/great-tables/uv.lock rename to content/blog/ported/great-tables/uv.lock diff --git a/content/blog/plotnine/2024-contest-last-call/a-spiky-sunset-at-the-beach.png b/content/blog/ported/plotnine/2024-contest-last-call/a-spiky-sunset-at-the-beach.png similarity index 100% rename from content/blog/plotnine/2024-contest-last-call/a-spiky-sunset-at-the-beach.png rename to content/blog/ported/plotnine/2024-contest-last-call/a-spiky-sunset-at-the-beach.png diff --git a/content/blog/plotnine/2024-contest-last-call/index.md b/content/blog/ported/plotnine/2024-contest-last-call/index.md similarity index 100% rename from content/blog/plotnine/2024-contest-last-call/index.md rename to content/blog/ported/plotnine/2024-contest-last-call/index.md diff --git a/content/blog/plotnine/2024-contest-last-call/index.qmd b/content/blog/ported/plotnine/2024-contest-last-call/index.qmd similarity index 100% rename from content/blog/plotnine/2024-contest-last-call/index.qmd rename to content/blog/ported/plotnine/2024-contest-last-call/index.qmd diff --git a/content/blog/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-2-output-1.png b/content/blog/ported/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-2-output-1.png similarity index 100% rename from content/blog/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-2-output-1.png rename to content/blog/ported/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-2-output-1.png diff --git a/content/blog/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-3-output-1.png b/content/blog/ported/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-3-output-1.png similarity index 100% rename from content/blog/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-3-output-1.png rename to content/blog/ported/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-3-output-1.png diff --git a/content/blog/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-4-output-1.png b/content/blog/ported/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-4-output-1.png similarity index 100% rename from content/blog/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-4-output-1.png rename to content/blog/ported/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-4-output-1.png diff --git a/content/blog/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-5-output-1.png b/content/blog/ported/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-5-output-1.png similarity index 100% rename from content/blog/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-5-output-1.png rename to content/blog/ported/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-5-output-1.png diff --git a/content/blog/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-6-output-1.png b/content/blog/ported/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-6-output-1.png similarity index 100% rename from content/blog/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-6-output-1.png rename to content/blog/ported/plotnine/2024-contest-last-call/index_files/figure-markdown_strict/cell-6-output-1.png diff --git a/content/blog/plotnine/about-plotnine/index.md b/content/blog/ported/plotnine/about-plotnine/index.md similarity index 100% rename from content/blog/plotnine/about-plotnine/index.md rename to content/blog/ported/plotnine/about-plotnine/index.md diff --git a/content/blog/plotnine/about-plotnine/index.qmd b/content/blog/ported/plotnine/about-plotnine/index.qmd similarity index 100% rename from content/blog/plotnine/about-plotnine/index.qmd rename to content/blog/ported/plotnine/about-plotnine/index.qmd diff --git a/content/blog/plotnine/pyproject.toml b/content/blog/ported/plotnine/pyproject.toml similarity index 100% rename from content/blog/plotnine/pyproject.toml rename to content/blog/ported/plotnine/pyproject.toml diff --git a/content/blog/plotnine/uv.lock b/content/blog/ported/plotnine/uv.lock similarity index 100% rename from content/blog/plotnine/uv.lock rename to content/blog/ported/plotnine/uv.lock diff --git a/content/blog/plotnine/version-0.14.0/fonts/OpenSans-Bold.ttf b/content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-Bold.ttf similarity index 100% rename from content/blog/plotnine/version-0.14.0/fonts/OpenSans-Bold.ttf rename to content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-Bold.ttf diff --git a/content/blog/plotnine/version-0.14.0/fonts/OpenSans-ExtraBold.ttf b/content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-ExtraBold.ttf similarity index 100% rename from content/blog/plotnine/version-0.14.0/fonts/OpenSans-ExtraBold.ttf rename to content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-ExtraBold.ttf diff --git a/content/blog/plotnine/version-0.14.0/fonts/OpenSans-Light.ttf b/content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-Light.ttf similarity index 100% rename from content/blog/plotnine/version-0.14.0/fonts/OpenSans-Light.ttf rename to content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-Light.ttf diff --git a/content/blog/plotnine/version-0.14.0/fonts/OpenSans-Medium.ttf b/content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-Medium.ttf similarity index 100% rename from content/blog/plotnine/version-0.14.0/fonts/OpenSans-Medium.ttf rename to content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-Medium.ttf diff --git a/content/blog/plotnine/version-0.14.0/fonts/OpenSans-Regular.ttf b/content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-Regular.ttf similarity index 100% rename from content/blog/plotnine/version-0.14.0/fonts/OpenSans-Regular.ttf rename to content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-Regular.ttf diff --git a/content/blog/plotnine/version-0.14.0/fonts/OpenSans-SemiBold.ttf b/content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-SemiBold.ttf similarity index 100% rename from content/blog/plotnine/version-0.14.0/fonts/OpenSans-SemiBold.ttf rename to content/blog/ported/plotnine/version-0.14.0/fonts/OpenSans-SemiBold.ttf diff --git a/content/blog/plotnine/version-0.14.0/images/logo-512.png b/content/blog/ported/plotnine/version-0.14.0/images/logo-512.png similarity index 100% rename from content/blog/plotnine/version-0.14.0/images/logo-512.png rename to content/blog/ported/plotnine/version-0.14.0/images/logo-512.png diff --git a/content/blog/plotnine/version-0.14.0/images/scale-signature-new.png b/content/blog/ported/plotnine/version-0.14.0/images/scale-signature-new.png similarity index 100% rename from content/blog/plotnine/version-0.14.0/images/scale-signature-new.png rename to content/blog/ported/plotnine/version-0.14.0/images/scale-signature-new.png diff --git a/content/blog/plotnine/version-0.14.0/images/scale-signature-old.png b/content/blog/ported/plotnine/version-0.14.0/images/scale-signature-old.png similarity index 100% rename from content/blog/plotnine/version-0.14.0/images/scale-signature-old.png rename to content/blog/ported/plotnine/version-0.14.0/images/scale-signature-old.png diff --git a/content/blog/plotnine/version-0.14.0/index.md b/content/blog/ported/plotnine/version-0.14.0/index.md similarity index 100% rename from content/blog/plotnine/version-0.14.0/index.md rename to content/blog/ported/plotnine/version-0.14.0/index.md diff --git a/content/blog/plotnine/version-0.14.0/index.qmd b/content/blog/ported/plotnine/version-0.14.0/index.qmd similarity index 100% rename from content/blog/plotnine/version-0.14.0/index.qmd rename to content/blog/ported/plotnine/version-0.14.0/index.qmd diff --git a/content/blog/plotnine/version-0.14.0/index_files/figure-markdown_strict/expanding-with-a-timedelta-output-1.png b/content/blog/ported/plotnine/version-0.14.0/index_files/figure-markdown_strict/expanding-with-a-timedelta-output-1.png similarity index 100% rename from content/blog/plotnine/version-0.14.0/index_files/figure-markdown_strict/expanding-with-a-timedelta-output-1.png rename to content/blog/ported/plotnine/version-0.14.0/index_files/figure-markdown_strict/expanding-with-a-timedelta-output-1.png diff --git a/content/blog/plotnine/version-0.14.0/index_files/figure-markdown_strict/use-show-output-1.png b/content/blog/ported/plotnine/version-0.14.0/index_files/figure-markdown_strict/use-show-output-1.png similarity index 100% rename from content/blog/plotnine/version-0.14.0/index_files/figure-markdown_strict/use-show-output-1.png rename to content/blog/ported/plotnine/version-0.14.0/index_files/figure-markdown_strict/use-show-output-1.png diff --git a/content/blog/plotnine/version-0.14.0/index_files/figure-markdown_strict/variable-font-weight-output-1.png b/content/blog/ported/plotnine/version-0.14.0/index_files/figure-markdown_strict/variable-font-weight-output-1.png similarity index 100% rename from content/blog/plotnine/version-0.14.0/index_files/figure-markdown_strict/variable-font-weight-output-1.png rename to content/blog/ported/plotnine/version-0.14.0/index_files/figure-markdown_strict/variable-font-weight-output-1.png diff --git a/content/blog/pointblank/all-about-actions/index.md b/content/blog/ported/pointblank/all-about-actions/index.md similarity index 100% rename from content/blog/pointblank/all-about-actions/index.md rename to content/blog/ported/pointblank/all-about-actions/index.md diff --git a/content/blog/pointblank/all-about-actions/index.qmd b/content/blog/ported/pointblank/all-about-actions/index.qmd similarity index 100% rename from content/blog/pointblank/all-about-actions/index.qmd rename to content/blog/ported/pointblank/all-about-actions/index.qmd diff --git a/content/blog/pointblank/intro-pointblank/index.md b/content/blog/ported/pointblank/intro-pointblank/index.md similarity index 100% rename from content/blog/pointblank/intro-pointblank/index.md rename to content/blog/ported/pointblank/intro-pointblank/index.md diff --git a/content/blog/pointblank/intro-pointblank/index.qmd b/content/blog/ported/pointblank/intro-pointblank/index.qmd similarity index 100% rename from content/blog/pointblank/intro-pointblank/index.qmd rename to content/blog/ported/pointblank/intro-pointblank/index.qmd diff --git a/content/blog/pointblank/intro-pointblank/pointblank-localized.png b/content/blog/ported/pointblank/intro-pointblank/pointblank-localized.png similarity index 100% rename from content/blog/pointblank/intro-pointblank/pointblank-localized.png rename to content/blog/ported/pointblank/intro-pointblank/pointblank-localized.png diff --git a/content/blog/pointblank/intro-pointblank/step_report.png b/content/blog/ported/pointblank/intro-pointblank/step_report.png similarity index 100% rename from content/blog/pointblank/intro-pointblank/step_report.png rename to content/blog/ported/pointblank/intro-pointblank/step_report.png diff --git a/content/blog/pointblank/intro-pointblank/validation-table-diagram.png b/content/blog/ported/pointblank/intro-pointblank/validation-table-diagram.png similarity index 100% rename from content/blog/pointblank/intro-pointblank/validation-table-diagram.png rename to content/blog/ported/pointblank/intro-pointblank/validation-table-diagram.png diff --git a/content/blog/pointblank/intro-pointblank/validation-table-diagram.png.original b/content/blog/ported/pointblank/intro-pointblank/validation-table-diagram.png.original similarity index 100% rename from content/blog/pointblank/intro-pointblank/validation-table-diagram.png.original rename to content/blog/ported/pointblank/intro-pointblank/validation-table-diagram.png.original diff --git a/content/blog/pointblank/intro-pointblank/validation-test-units.png b/content/blog/ported/pointblank/intro-pointblank/validation-test-units.png similarity index 100% rename from content/blog/pointblank/intro-pointblank/validation-test-units.png rename to content/blog/ported/pointblank/intro-pointblank/validation-test-units.png diff --git a/content/blog/pointblank/intro-pointblank/validation-test-units.png.original b/content/blog/ported/pointblank/intro-pointblank/validation-test-units.png.original similarity index 100% rename from content/blog/pointblank/intro-pointblank/validation-test-units.png.original rename to content/blog/ported/pointblank/intro-pointblank/validation-test-units.png.original diff --git a/content/blog/pointblank/lets-workshop-together/index.md b/content/blog/ported/pointblank/lets-workshop-together/index.md similarity index 100% rename from content/blog/pointblank/lets-workshop-together/index.md rename to content/blog/ported/pointblank/lets-workshop-together/index.md diff --git a/content/blog/pointblank/lets-workshop-together/index.qmd b/content/blog/ported/pointblank/lets-workshop-together/index.qmd similarity index 100% rename from content/blog/pointblank/lets-workshop-together/index.qmd rename to content/blog/ported/pointblank/lets-workshop-together/index.qmd diff --git a/content/blog/pointblank/overhauled-user-guide/advanced-in-sidebar.png b/content/blog/ported/pointblank/overhauled-user-guide/advanced-in-sidebar.png similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/advanced-in-sidebar.png rename to content/blog/ported/pointblank/overhauled-user-guide/advanced-in-sidebar.png diff --git a/content/blog/pointblank/overhauled-user-guide/breadth-and-depth.png b/content/blog/ported/pointblank/overhauled-user-guide/breadth-and-depth.png similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/breadth-and-depth.png rename to content/blog/ported/pointblank/overhauled-user-guide/breadth-and-depth.png diff --git a/content/blog/pointblank/overhauled-user-guide/explanation-of-visual.png b/content/blog/ported/pointblank/overhauled-user-guide/explanation-of-visual.png similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/explanation-of-visual.png rename to content/blog/ported/pointblank/overhauled-user-guide/explanation-of-visual.png diff --git a/content/blog/pointblank/overhauled-user-guide/index.md b/content/blog/ported/pointblank/overhauled-user-guide/index.md similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/index.md rename to content/blog/ported/pointblank/overhauled-user-guide/index.md diff --git a/content/blog/pointblank/overhauled-user-guide/index.qmd b/content/blog/ported/pointblank/overhauled-user-guide/index.qmd similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/index.qmd rename to content/blog/ported/pointblank/overhauled-user-guide/index.qmd diff --git a/content/blog/pointblank/overhauled-user-guide/links-in-guide.png b/content/blog/ported/pointblank/overhauled-user-guide/links-in-guide.png similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/links-in-guide.png rename to content/blog/ported/pointblank/overhauled-user-guide/links-in-guide.png diff --git a/content/blog/pointblank/overhauled-user-guide/segments.png b/content/blog/ported/pointblank/overhauled-user-guide/segments.png similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/segments.png rename to content/blog/ported/pointblank/overhauled-user-guide/segments.png diff --git a/content/blog/pointblank/overhauled-user-guide/step-report.png b/content/blog/ported/pointblank/overhauled-user-guide/step-report.png similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/step-report.png rename to content/blog/ported/pointblank/overhauled-user-guide/step-report.png diff --git a/content/blog/pointblank/overhauled-user-guide/step-report.png.original b/content/blog/ported/pointblank/overhauled-user-guide/step-report.png.original similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/step-report.png.original rename to content/blog/ported/pointblank/overhauled-user-guide/step-report.png.original diff --git a/content/blog/pointblank/overhauled-user-guide/validation-three-things.png b/content/blog/ported/pointblank/overhauled-user-guide/validation-three-things.png similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/validation-three-things.png rename to content/blog/ported/pointblank/overhauled-user-guide/validation-three-things.png diff --git a/content/blog/pointblank/overhauled-user-guide/validation-three-things.png.original b/content/blog/ported/pointblank/overhauled-user-guide/validation-three-things.png.original similarity index 100% rename from content/blog/pointblank/overhauled-user-guide/validation-three-things.png.original rename to content/blog/ported/pointblank/overhauled-user-guide/validation-three-things.png.original diff --git a/content/blog/pointblank/pyproject.toml b/content/blog/ported/pointblank/pyproject.toml similarity index 100% rename from content/blog/pointblank/pyproject.toml rename to content/blog/ported/pointblank/pyproject.toml diff --git a/content/blog/pointblank/uv.lock b/content/blog/ported/pointblank/uv.lock similarity index 100% rename from content/blog/pointblank/uv.lock rename to content/blog/ported/pointblank/uv.lock diff --git a/content/blog/pointblank/validation-libs-2025/index.md b/content/blog/ported/pointblank/validation-libs-2025/index.md similarity index 100% rename from content/blog/pointblank/validation-libs-2025/index.md rename to content/blog/ported/pointblank/validation-libs-2025/index.md diff --git a/content/blog/pointblank/validation-libs-2025/index.qmd b/content/blog/ported/pointblank/validation-libs-2025/index.qmd similarity index 100% rename from content/blog/pointblank/validation-libs-2025/index.qmd rename to content/blog/ported/pointblank/validation-libs-2025/index.qmd diff --git a/content/blog/positron/.gitignore b/content/blog/ported/positron/.gitignore similarity index 100% rename from content/blog/positron/.gitignore rename to content/blog/ported/positron/.gitignore diff --git a/content/blog/positron/2026-03-12-notebooks-march-announcement/index.md b/content/blog/ported/positron/2026-03-12-notebooks-march-announcement/index.md similarity index 100% rename from content/blog/positron/2026-03-12-notebooks-march-announcement/index.md rename to content/blog/ported/positron/2026-03-12-notebooks-march-announcement/index.md diff --git a/content/blog/positron/2026-03-12-notebooks-march-announcement/index.qmd b/content/blog/ported/positron/2026-03-12-notebooks-march-announcement/index.qmd similarity index 100% rename from content/blog/positron/2026-03-12-notebooks-march-announcement/index.qmd rename to content/blog/ported/positron/2026-03-12-notebooks-march-announcement/index.qmd diff --git a/content/blog/positron/2026-03-12-notebooks-march-announcement/positron-notebook.png b/content/blog/ported/positron/2026-03-12-notebooks-march-announcement/positron-notebook.png similarity index 100% rename from content/blog/positron/2026-03-12-notebooks-march-announcement/positron-notebook.png rename to content/blog/ported/positron/2026-03-12-notebooks-march-announcement/positron-notebook.png diff --git a/content/blog/positron/2026-03-31-python-type-checkers/fetch_stats.py b/content/blog/ported/positron/2026-03-31-python-type-checkers/fetch_stats.py similarity index 100% rename from content/blog/positron/2026-03-31-python-type-checkers/fetch_stats.py rename to content/blog/ported/positron/2026-03-31-python-type-checkers/fetch_stats.py diff --git a/content/blog/positron/2026-03-31-python-type-checkers/images/basedpyright.png b/content/blog/ported/positron/2026-03-31-python-type-checkers/images/basedpyright.png similarity index 100% rename from content/blog/positron/2026-03-31-python-type-checkers/images/basedpyright.png rename to content/blog/ported/positron/2026-03-31-python-type-checkers/images/basedpyright.png diff --git a/content/blog/positron/2026-03-31-python-type-checkers/images/pyrefly.png b/content/blog/ported/positron/2026-03-31-python-type-checkers/images/pyrefly.png similarity index 100% rename from content/blog/positron/2026-03-31-python-type-checkers/images/pyrefly.png rename to content/blog/ported/positron/2026-03-31-python-type-checkers/images/pyrefly.png diff --git a/content/blog/positron/2026-03-31-python-type-checkers/images/social.png b/content/blog/ported/positron/2026-03-31-python-type-checkers/images/social.png similarity index 100% rename from content/blog/positron/2026-03-31-python-type-checkers/images/social.png rename to content/blog/ported/positron/2026-03-31-python-type-checkers/images/social.png diff --git a/content/blog/positron/2026-03-31-python-type-checkers/images/ty.png b/content/blog/ported/positron/2026-03-31-python-type-checkers/images/ty.png similarity index 100% rename from content/blog/positron/2026-03-31-python-type-checkers/images/ty.png rename to content/blog/ported/positron/2026-03-31-python-type-checkers/images/ty.png diff --git a/content/blog/positron/2026-03-31-python-type-checkers/images/zuban.png b/content/blog/ported/positron/2026-03-31-python-type-checkers/images/zuban.png similarity index 100% rename from content/blog/positron/2026-03-31-python-type-checkers/images/zuban.png rename to content/blog/ported/positron/2026-03-31-python-type-checkers/images/zuban.png diff --git a/content/blog/positron/2026-03-31-python-type-checkers/index.md b/content/blog/ported/positron/2026-03-31-python-type-checkers/index.md similarity index 100% rename from content/blog/positron/2026-03-31-python-type-checkers/index.md rename to content/blog/ported/positron/2026-03-31-python-type-checkers/index.md diff --git a/content/blog/positron/2026-03-31-python-type-checkers/index.qmd b/content/blog/ported/positron/2026-03-31-python-type-checkers/index.qmd similarity index 100% rename from content/blog/positron/2026-03-31-python-type-checkers/index.qmd rename to content/blog/ported/positron/2026-03-31-python-type-checkers/index.qmd diff --git a/content/blog/positron/2026-04-03-positron-server-jupyterhub/images/jupyter-positron.gif b/content/blog/ported/positron/2026-04-03-positron-server-jupyterhub/images/jupyter-positron.gif similarity index 100% rename from content/blog/positron/2026-04-03-positron-server-jupyterhub/images/jupyter-positron.gif rename to content/blog/ported/positron/2026-04-03-positron-server-jupyterhub/images/jupyter-positron.gif diff --git a/content/blog/positron/2026-04-03-positron-server-jupyterhub/images/social.png b/content/blog/ported/positron/2026-04-03-positron-server-jupyterhub/images/social.png similarity index 100% rename from content/blog/positron/2026-04-03-positron-server-jupyterhub/images/social.png rename to content/blog/ported/positron/2026-04-03-positron-server-jupyterhub/images/social.png diff --git a/content/blog/positron/2026-04-03-positron-server-jupyterhub/index.md b/content/blog/ported/positron/2026-04-03-positron-server-jupyterhub/index.md similarity index 100% rename from content/blog/positron/2026-04-03-positron-server-jupyterhub/index.md rename to content/blog/ported/positron/2026-04-03-positron-server-jupyterhub/index.md diff --git a/content/blog/positron/2026-04-03-positron-server-jupyterhub/index.qmd b/content/blog/ported/positron/2026-04-03-positron-server-jupyterhub/index.qmd similarity index 100% rename from content/blog/positron/2026-04-03-positron-server-jupyterhub/index.qmd rename to content/blog/ported/positron/2026-04-03-positron-server-jupyterhub/index.qmd diff --git a/content/blog/positron/2026-04-06-april-newsletter/images/addins-support.png b/content/blog/ported/positron/2026-04-06-april-newsletter/images/addins-support.png similarity index 100% rename from content/blog/positron/2026-04-06-april-newsletter/images/addins-support.png rename to content/blog/ported/positron/2026-04-06-april-newsletter/images/addins-support.png diff --git a/content/blog/positron/2026-04-06-april-newsletter/images/conditional-breakpoints.mov b/content/blog/ported/positron/2026-04-06-april-newsletter/images/conditional-breakpoints.mov similarity index 100% rename from content/blog/positron/2026-04-06-april-newsletter/images/conditional-breakpoints.mov rename to content/blog/ported/positron/2026-04-06-april-newsletter/images/conditional-breakpoints.mov diff --git a/content/blog/positron/2026-04-06-april-newsletter/images/inline-output.png b/content/blog/ported/positron/2026-04-06-april-newsletter/images/inline-output.png similarity index 100% rename from content/blog/positron/2026-04-06-april-newsletter/images/inline-output.png rename to content/blog/ported/positron/2026-04-06-april-newsletter/images/inline-output.png diff --git a/content/blog/positron/2026-04-06-april-newsletter/images/microsoft-foundry.png b/content/blog/ported/positron/2026-04-06-april-newsletter/images/microsoft-foundry.png similarity index 100% rename from content/blog/positron/2026-04-06-april-newsletter/images/microsoft-foundry.png rename to content/blog/ported/positron/2026-04-06-april-newsletter/images/microsoft-foundry.png diff --git a/content/blog/positron/2026-04-06-april-newsletter/images/monterey.png b/content/blog/ported/positron/2026-04-06-april-newsletter/images/monterey.png similarity index 100% rename from content/blog/positron/2026-04-06-april-newsletter/images/monterey.png rename to content/blog/ported/positron/2026-04-06-april-newsletter/images/monterey.png diff --git a/content/blog/positron/2026-04-06-april-newsletter/images/notebook-next-step-suggestions.mov b/content/blog/ported/positron/2026-04-06-april-newsletter/images/notebook-next-step-suggestions.mov similarity index 100% rename from content/blog/positron/2026-04-06-april-newsletter/images/notebook-next-step-suggestions.mov rename to content/blog/ported/positron/2026-04-06-april-newsletter/images/notebook-next-step-suggestions.mov diff --git a/content/blog/positron/2026-04-06-april-newsletter/index.md b/content/blog/ported/positron/2026-04-06-april-newsletter/index.md similarity index 96% rename from content/blog/positron/2026-04-06-april-newsletter/index.md rename to content/blog/ported/positron/2026-04-06-april-newsletter/index.md index 14160161d..77a5b9d6b 100644 --- a/content/blog/positron/2026-04-06-april-newsletter/index.md +++ b/content/blog/ported/positron/2026-04-06-april-newsletter/index.md @@ -61,7 +61,7 @@ Here's a look at the key features that shipped with the April 2026 release. ### Positron Server for Academic Use via JupyterHub -**What we built:** Academic institutions can now offer Positron Server to their students at no cost through JupyterHub ([blog post](../../../blog/2026-04-06_positron-server-jupyterhub/)). If your institution already runs JupyterHub, you can add Positron as a launcher option alongside JupyterLab, with no additional infrastructure required. Students simply log in and select Positron from the launcher, getting the full Positron experience including rich Python and R support, the extension marketplace, and (optionally) Positron Assistant. +**What we built:** Academic institutions can now offer Positron Server to their students at no cost through JupyterHub ([blog post](/blog/2026-04-06_positron-server-jupyterhub/)). If your institution already runs JupyterHub, you can add Positron as a launcher option alongside JupyterLab, with no additional infrastructure required. Students simply log in and select Positron from the launcher, getting the full Positron experience including rich Python and R support, the extension marketplace, and (optionally) Positron Assistant. **Why this matters:** This removes the barrier for students and educators who want to use Positron in a classroom setting. No local installs, no configuration headaches --- just a familiar JupyterHub login with Positron ready to go. @@ -173,7 +173,7 @@ Registration is officially open for posit::conf(2026)! Join the global data comm ### How We Chose a Python Type Checker -Ever wondered about the decision making process behind how we chose which Python type checker to bundle in Positron? Check out Austin Dickey's [blog post](../../../blog/2026-03-31_python-type-checkers/) walking through his research and decision making process. +Ever wondered about the decision making process behind how we chose which Python type checker to bundle in Positron? Check out Austin Dickey's [blog post](/blog/2026-03-31_python-type-checkers/) walking through his research and decision making process. ## Community Affirmations diff --git a/content/blog/positron/2026-04-06-april-newsletter/index.qmd b/content/blog/ported/positron/2026-04-06-april-newsletter/index.qmd similarity index 100% rename from content/blog/positron/2026-04-06-april-newsletter/index.qmd rename to content/blog/ported/positron/2026-04-06-april-newsletter/index.qmd diff --git a/content/blog/positron/outgrow-your-laptop/images/outgrowing.jpg b/content/blog/ported/positron/outgrow-your-laptop/images/outgrowing.jpg similarity index 100% rename from content/blog/positron/outgrow-your-laptop/images/outgrowing.jpg rename to content/blog/ported/positron/outgrow-your-laptop/images/outgrowing.jpg diff --git a/content/blog/positron/outgrow-your-laptop/index.md b/content/blog/ported/positron/outgrow-your-laptop/index.md similarity index 100% rename from content/blog/positron/outgrow-your-laptop/index.md rename to content/blog/ported/positron/outgrow-your-laptop/index.md diff --git a/content/blog/positron/outgrow-your-laptop/index.qmd b/content/blog/ported/positron/outgrow-your-laptop/index.qmd similarity index 100% rename from content/blog/positron/outgrow-your-laptop/index.qmd rename to content/blog/ported/positron/outgrow-your-laptop/index.qmd diff --git a/content/blog/quarto/.gitignore b/content/blog/ported/quarto/.gitignore similarity index 100% rename from content/blog/quarto/.gitignore rename to content/blog/ported/quarto/.gitignore diff --git a/content/blog/quarto/2022-02-13-feature-callouts/callouts.png b/content/blog/ported/quarto/2022-02-13-feature-callouts/callouts.png similarity index 100% rename from content/blog/quarto/2022-02-13-feature-callouts/callouts.png rename to content/blog/ported/quarto/2022-02-13-feature-callouts/callouts.png diff --git a/content/blog/quarto/2022-02-13-feature-callouts/index.md b/content/blog/ported/quarto/2022-02-13-feature-callouts/index.md similarity index 100% rename from content/blog/quarto/2022-02-13-feature-callouts/index.md rename to content/blog/ported/quarto/2022-02-13-feature-callouts/index.md diff --git a/content/blog/quarto/2022-02-13-feature-callouts/index.qmd b/content/blog/ported/quarto/2022-02-13-feature-callouts/index.qmd similarity index 100% rename from content/blog/quarto/2022-02-13-feature-callouts/index.qmd rename to content/blog/ported/quarto/2022-02-13-feature-callouts/index.qmd diff --git a/content/blog/quarto/2022-02-15-feature-tables/index.md b/content/blog/ported/quarto/2022-02-15-feature-tables/index.md similarity index 100% rename from content/blog/quarto/2022-02-15-feature-tables/index.md rename to content/blog/ported/quarto/2022-02-15-feature-tables/index.md diff --git a/content/blog/quarto/2022-02-15-feature-tables/index.qmd b/content/blog/ported/quarto/2022-02-15-feature-tables/index.qmd similarity index 100% rename from content/blog/quarto/2022-02-15-feature-tables/index.qmd rename to content/blog/ported/quarto/2022-02-15-feature-tables/index.qmd diff --git a/content/blog/quarto/2022-02-15-feature-tables/table.png b/content/blog/ported/quarto/2022-02-15-feature-tables/table.png similarity index 100% rename from content/blog/quarto/2022-02-15-feature-tables/table.png rename to content/blog/ported/quarto/2022-02-15-feature-tables/table.png diff --git a/content/blog/quarto/2022-02-17-advanced-layout/index.markdown_strict_files/figure-markdown_strict/fig-cap-margin-1.png b/content/blog/ported/quarto/2022-02-17-advanced-layout/index.markdown_strict_files/figure-markdown_strict/fig-cap-margin-1.png similarity index 100% rename from content/blog/quarto/2022-02-17-advanced-layout/index.markdown_strict_files/figure-markdown_strict/fig-cap-margin-1.png rename to content/blog/ported/quarto/2022-02-17-advanced-layout/index.markdown_strict_files/figure-markdown_strict/fig-cap-margin-1.png diff --git a/content/blog/quarto/2022-02-17-advanced-layout/index.markdown_strict_files/figure-markdown_strict/fig-mtcars-1.png b/content/blog/ported/quarto/2022-02-17-advanced-layout/index.markdown_strict_files/figure-markdown_strict/fig-mtcars-1.png similarity index 100% rename from content/blog/quarto/2022-02-17-advanced-layout/index.markdown_strict_files/figure-markdown_strict/fig-mtcars-1.png rename to content/blog/ported/quarto/2022-02-17-advanced-layout/index.markdown_strict_files/figure-markdown_strict/fig-mtcars-1.png diff --git a/content/blog/quarto/2022-02-17-advanced-layout/index.md b/content/blog/ported/quarto/2022-02-17-advanced-layout/index.md similarity index 100% rename from content/blog/quarto/2022-02-17-advanced-layout/index.md rename to content/blog/ported/quarto/2022-02-17-advanced-layout/index.md diff --git a/content/blog/quarto/2022-02-17-advanced-layout/index.qmd b/content/blog/ported/quarto/2022-02-17-advanced-layout/index.qmd similarity index 100% rename from content/blog/quarto/2022-02-17-advanced-layout/index.qmd rename to content/blog/ported/quarto/2022-02-17-advanced-layout/index.qmd diff --git a/content/blog/quarto/2022-02-17-advanced-layout/margin-content.png b/content/blog/ported/quarto/2022-02-17-advanced-layout/margin-content.png similarity index 100% rename from content/blog/quarto/2022-02-17-advanced-layout/margin-content.png rename to content/blog/ported/quarto/2022-02-17-advanced-layout/margin-content.png diff --git a/content/blog/quarto/2022-06-21-rstudio-conf-2022-quarto/conf2022.png b/content/blog/ported/quarto/2022-06-21-rstudio-conf-2022-quarto/conf2022.png similarity index 100% rename from content/blog/quarto/2022-06-21-rstudio-conf-2022-quarto/conf2022.png rename to content/blog/ported/quarto/2022-06-21-rstudio-conf-2022-quarto/conf2022.png diff --git a/content/blog/quarto/2022-06-21-rstudio-conf-2022-quarto/conf2022.png.original b/content/blog/ported/quarto/2022-06-21-rstudio-conf-2022-quarto/conf2022.png.original similarity index 100% rename from content/blog/quarto/2022-06-21-rstudio-conf-2022-quarto/conf2022.png.original rename to content/blog/ported/quarto/2022-06-21-rstudio-conf-2022-quarto/conf2022.png.original diff --git a/content/blog/quarto/2022-06-21-rstudio-conf-2022-quarto/index.md b/content/blog/ported/quarto/2022-06-21-rstudio-conf-2022-quarto/index.md similarity index 100% rename from content/blog/quarto/2022-06-21-rstudio-conf-2022-quarto/index.md rename to content/blog/ported/quarto/2022-06-21-rstudio-conf-2022-quarto/index.md diff --git a/content/blog/quarto/2022-06-21-rstudio-conf-2022-quarto/index.qmd b/content/blog/ported/quarto/2022-06-21-rstudio-conf-2022-quarto/index.qmd similarity index 100% rename from content/blog/quarto/2022-06-21-rstudio-conf-2022-quarto/index.qmd rename to content/blog/ported/quarto/2022-06-21-rstudio-conf-2022-quarto/index.qmd diff --git a/content/blog/quarto/2022-07-25-feature-extensions/extensions.png b/content/blog/ported/quarto/2022-07-25-feature-extensions/extensions.png similarity index 100% rename from content/blog/quarto/2022-07-25-feature-extensions/extensions.png rename to content/blog/ported/quarto/2022-07-25-feature-extensions/extensions.png diff --git a/content/blog/quarto/2022-07-25-feature-extensions/extensions.png.original b/content/blog/ported/quarto/2022-07-25-feature-extensions/extensions.png.original similarity index 100% rename from content/blog/quarto/2022-07-25-feature-extensions/extensions.png.original rename to content/blog/ported/quarto/2022-07-25-feature-extensions/extensions.png.original diff --git a/content/blog/quarto/2022-07-25-feature-extensions/index.md b/content/blog/ported/quarto/2022-07-25-feature-extensions/index.md similarity index 100% rename from content/blog/quarto/2022-07-25-feature-extensions/index.md rename to content/blog/ported/quarto/2022-07-25-feature-extensions/index.md diff --git a/content/blog/quarto/2022-07-25-feature-extensions/index.qmd b/content/blog/ported/quarto/2022-07-25-feature-extensions/index.qmd similarity index 100% rename from content/blog/quarto/2022-07-25-feature-extensions/index.qmd rename to content/blog/ported/quarto/2022-07-25-feature-extensions/index.qmd diff --git a/content/blog/quarto/2022-10-25-shinylive-extension/index.md b/content/blog/ported/quarto/2022-10-25-shinylive-extension/index.md similarity index 100% rename from content/blog/quarto/2022-10-25-shinylive-extension/index.md rename to content/blog/ported/quarto/2022-10-25-shinylive-extension/index.md diff --git a/content/blog/quarto/2022-10-25-shinylive-extension/index.qmd b/content/blog/ported/quarto/2022-10-25-shinylive-extension/index.qmd similarity index 100% rename from content/blog/quarto/2022-10-25-shinylive-extension/index.qmd rename to content/blog/ported/quarto/2022-10-25-shinylive-extension/index.qmd diff --git a/content/blog/quarto/2022-10-25-shinylive-extension/shinylive-embedded-app.png b/content/blog/ported/quarto/2022-10-25-shinylive-extension/shinylive-embedded-app.png similarity index 100% rename from content/blog/quarto/2022-10-25-shinylive-extension/shinylive-embedded-app.png rename to content/blog/ported/quarto/2022-10-25-shinylive-extension/shinylive-embedded-app.png diff --git a/content/blog/quarto/2023-03-13-code-annotation/annotation.png b/content/blog/ported/quarto/2023-03-13-code-annotation/annotation.png similarity index 100% rename from content/blog/quarto/2023-03-13-code-annotation/annotation.png rename to content/blog/ported/quarto/2023-03-13-code-annotation/annotation.png diff --git a/content/blog/quarto/2023-03-13-code-annotation/annote-pdf.png b/content/blog/ported/quarto/2023-03-13-code-annotation/annote-pdf.png similarity index 100% rename from content/blog/quarto/2023-03-13-code-annotation/annote-pdf.png rename to content/blog/ported/quarto/2023-03-13-code-annotation/annote-pdf.png diff --git a/content/blog/quarto/2023-03-13-code-annotation/index.md b/content/blog/ported/quarto/2023-03-13-code-annotation/index.md similarity index 100% rename from content/blog/quarto/2023-03-13-code-annotation/index.md rename to content/blog/ported/quarto/2023-03-13-code-annotation/index.md diff --git a/content/blog/quarto/2023-03-13-code-annotation/index.qmd b/content/blog/ported/quarto/2023-03-13-code-annotation/index.qmd similarity index 100% rename from content/blog/quarto/2023-03-13-code-annotation/index.qmd rename to content/blog/ported/quarto/2023-03-13-code-annotation/index.qmd diff --git a/content/blog/quarto/2023-03-15-multi-format/index.docx b/content/blog/ported/quarto/2023-03-15-multi-format/index.docx similarity index 100% rename from content/blog/quarto/2023-03-15-multi-format/index.docx rename to content/blog/ported/quarto/2023-03-15-multi-format/index.docx diff --git a/content/blog/quarto/2023-03-15-multi-format/index.ipynb b/content/blog/ported/quarto/2023-03-15-multi-format/index.ipynb similarity index 100% rename from content/blog/quarto/2023-03-15-multi-format/index.ipynb rename to content/blog/ported/quarto/2023-03-15-multi-format/index.ipynb diff --git a/content/blog/quarto/2023-03-15-multi-format/index.md b/content/blog/ported/quarto/2023-03-15-multi-format/index.md similarity index 100% rename from content/blog/quarto/2023-03-15-multi-format/index.md rename to content/blog/ported/quarto/2023-03-15-multi-format/index.md diff --git a/content/blog/quarto/2023-03-15-multi-format/index.qmd b/content/blog/ported/quarto/2023-03-15-multi-format/index.qmd similarity index 100% rename from content/blog/quarto/2023-03-15-multi-format/index.qmd rename to content/blog/ported/quarto/2023-03-15-multi-format/index.qmd diff --git a/content/blog/quarto/2023-03-15-multi-format/multi-format.png b/content/blog/ported/quarto/2023-03-15-multi-format/multi-format.png similarity index 100% rename from content/blog/quarto/2023-03-15-multi-format/multi-format.png rename to content/blog/ported/quarto/2023-03-15-multi-format/multi-format.png diff --git a/content/blog/quarto/2023-03-15-multi-format/other-format.png b/content/blog/ported/quarto/2023-03-15-multi-format/other-format.png similarity index 100% rename from content/blog/quarto/2023-03-15-multi-format/other-format.png rename to content/blog/ported/quarto/2023-03-15-multi-format/other-format.png diff --git a/content/blog/quarto/2023-03-17-jupyter-cell-embedding/embed-fig-bill-scatter.png b/content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/embed-fig-bill-scatter.png similarity index 100% rename from content/blog/quarto/2023-03-17-jupyter-cell-embedding/embed-fig-bill-scatter.png rename to content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/embed-fig-bill-scatter.png diff --git a/content/blog/quarto/2023-03-17-jupyter-cell-embedding/embed.png b/content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/embed.png similarity index 100% rename from content/blog/quarto/2023-03-17-jupyter-cell-embedding/embed.png rename to content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/embed.png diff --git a/content/blog/quarto/2023-03-17-jupyter-cell-embedding/index.md b/content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/index.md similarity index 100% rename from content/blog/quarto/2023-03-17-jupyter-cell-embedding/index.md rename to content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/index.md diff --git a/content/blog/quarto/2023-03-17-jupyter-cell-embedding/index.qmd b/content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/index.qmd similarity index 100% rename from content/blog/quarto/2023-03-17-jupyter-cell-embedding/index.qmd rename to content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/index.qmd diff --git a/content/blog/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-cell-6-output-1.png b/content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-cell-6-output-1.png similarity index 100% rename from content/blog/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-cell-6-output-1.png rename to content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-cell-6-output-1.png diff --git a/content/blog/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-fig-bill-marginal-output-1.png b/content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-fig-bill-marginal-output-1.png similarity index 100% rename from content/blog/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-fig-bill-marginal-output-1.png rename to content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-fig-bill-marginal-output-1.png diff --git a/content/blog/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-fig-bill-marginal-output-2.png b/content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-fig-bill-marginal-output-2.png similarity index 100% rename from content/blog/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-fig-bill-marginal-output-2.png rename to content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/index_files/figure-markdown_strict/penguins-fig-bill-marginal-output-2.png diff --git a/content/blog/quarto/2023-03-17-jupyter-cell-embedding/notebook-simple.png b/content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/notebook-simple.png similarity index 100% rename from content/blog/quarto/2023-03-17-jupyter-cell-embedding/notebook-simple.png rename to content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/notebook-simple.png diff --git a/content/blog/quarto/2023-03-17-jupyter-cell-embedding/notebook-view.png b/content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/notebook-view.png similarity index 100% rename from content/blog/quarto/2023-03-17-jupyter-cell-embedding/notebook-view.png rename to content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/notebook-view.png diff --git a/content/blog/quarto/2023-03-17-jupyter-cell-embedding/penguins.ipynb b/content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/penguins.ipynb similarity index 100% rename from content/blog/quarto/2023-03-17-jupyter-cell-embedding/penguins.ipynb rename to content/blog/ported/quarto/2023-03-17-jupyter-cell-embedding/penguins.ipynb diff --git a/content/blog/quarto/2023-03-20-confluence/confluence-logo-gradient-blue-attribution_rgb@2x.png b/content/blog/ported/quarto/2023-03-20-confluence/confluence-logo-gradient-blue-attribution_rgb@2x.png similarity index 100% rename from content/blog/quarto/2023-03-20-confluence/confluence-logo-gradient-blue-attribution_rgb@2x.png rename to content/blog/ported/quarto/2023-03-20-confluence/confluence-logo-gradient-blue-attribution_rgb@2x.png diff --git a/content/blog/quarto/2023-03-20-confluence/images/confluence-page.png b/content/blog/ported/quarto/2023-03-20-confluence/images/confluence-page.png similarity index 100% rename from content/blog/quarto/2023-03-20-confluence/images/confluence-page.png rename to content/blog/ported/quarto/2023-03-20-confluence/images/confluence-page.png diff --git a/content/blog/quarto/2023-03-20-confluence/images/confluence-project.png b/content/blog/ported/quarto/2023-03-20-confluence/images/confluence-project.png similarity index 100% rename from content/blog/quarto/2023-03-20-confluence/images/confluence-project.png rename to content/blog/ported/quarto/2023-03-20-confluence/images/confluence-project.png diff --git a/content/blog/quarto/2023-03-20-confluence/images/confluence-qmd.png b/content/blog/ported/quarto/2023-03-20-confluence/images/confluence-qmd.png similarity index 100% rename from content/blog/quarto/2023-03-20-confluence/images/confluence-qmd.png rename to content/blog/ported/quarto/2023-03-20-confluence/images/confluence-qmd.png diff --git a/content/blog/quarto/2023-03-20-confluence/images/confluence-site.png b/content/blog/ported/quarto/2023-03-20-confluence/images/confluence-site.png similarity index 100% rename from content/blog/quarto/2023-03-20-confluence/images/confluence-site.png rename to content/blog/ported/quarto/2023-03-20-confluence/images/confluence-site.png diff --git a/content/blog/quarto/2023-03-20-confluence/index.md b/content/blog/ported/quarto/2023-03-20-confluence/index.md similarity index 100% rename from content/blog/quarto/2023-03-20-confluence/index.md rename to content/blog/ported/quarto/2023-03-20-confluence/index.md diff --git a/content/blog/quarto/2023-03-20-confluence/index.qmd b/content/blog/ported/quarto/2023-03-20-confluence/index.qmd similarity index 100% rename from content/blog/quarto/2023-03-20-confluence/index.qmd rename to content/blog/ported/quarto/2023-03-20-confluence/index.qmd diff --git a/content/blog/quarto/2023-04-26-1.3-release/arthur-chauvineau-Dn7P1U26ZkE-unsplash.jpeg b/content/blog/ported/quarto/2023-04-26-1.3-release/arthur-chauvineau-Dn7P1U26ZkE-unsplash.jpeg similarity index 100% rename from content/blog/quarto/2023-04-26-1.3-release/arthur-chauvineau-Dn7P1U26ZkE-unsplash.jpeg rename to content/blog/ported/quarto/2023-04-26-1.3-release/arthur-chauvineau-Dn7P1U26ZkE-unsplash.jpeg diff --git a/content/blog/quarto/2023-04-26-1.3-release/index.md b/content/blog/ported/quarto/2023-04-26-1.3-release/index.md similarity index 100% rename from content/blog/quarto/2023-04-26-1.3-release/index.md rename to content/blog/ported/quarto/2023-04-26-1.3-release/index.md diff --git a/content/blog/quarto/2023-04-26-1.3-release/index.qmd b/content/blog/ported/quarto/2023-04-26-1.3-release/index.qmd similarity index 100% rename from content/blog/quarto/2023-04-26-1.3-release/index.qmd rename to content/blog/ported/quarto/2023-04-26-1.3-release/index.qmd diff --git a/content/blog/quarto/2023-05-15-get-started/get-started-video-cover.png b/content/blog/ported/quarto/2023-05-15-get-started/get-started-video-cover.png similarity index 100% rename from content/blog/quarto/2023-05-15-get-started/get-started-video-cover.png rename to content/blog/ported/quarto/2023-05-15-get-started/get-started-video-cover.png diff --git a/content/blog/quarto/2023-05-15-get-started/get-started-video-cover.png.original b/content/blog/ported/quarto/2023-05-15-get-started/get-started-video-cover.png.original similarity index 100% rename from content/blog/quarto/2023-05-15-get-started/get-started-video-cover.png.original rename to content/blog/ported/quarto/2023-05-15-get-started/get-started-video-cover.png.original diff --git a/content/blog/quarto/2023-05-15-get-started/index.md b/content/blog/ported/quarto/2023-05-15-get-started/index.md similarity index 100% rename from content/blog/quarto/2023-05-15-get-started/index.md rename to content/blog/ported/quarto/2023-05-15-get-started/index.md diff --git a/content/blog/quarto/2023-05-15-get-started/index.qmd b/content/blog/ported/quarto/2023-05-15-get-started/index.qmd similarity index 100% rename from content/blog/quarto/2023-05-15-get-started/index.qmd rename to content/blog/ported/quarto/2023-05-15-get-started/index.qmd diff --git a/content/blog/quarto/2023-05-22-quarto-for-academics/index.md b/content/blog/ported/quarto/2023-05-22-quarto-for-academics/index.md similarity index 100% rename from content/blog/quarto/2023-05-22-quarto-for-academics/index.md rename to content/blog/ported/quarto/2023-05-22-quarto-for-academics/index.md diff --git a/content/blog/quarto/2023-05-22-quarto-for-academics/index.qmd b/content/blog/ported/quarto/2023-05-22-quarto-for-academics/index.qmd similarity index 100% rename from content/blog/quarto/2023-05-22-quarto-for-academics/index.qmd rename to content/blog/ported/quarto/2023-05-22-quarto-for-academics/index.qmd diff --git a/content/blog/quarto/2023-05-22-quarto-for-academics/quarto-for-academics-video-cover.png b/content/blog/ported/quarto/2023-05-22-quarto-for-academics/quarto-for-academics-video-cover.png similarity index 100% rename from content/blog/quarto/2023-05-22-quarto-for-academics/quarto-for-academics-video-cover.png rename to content/blog/ported/quarto/2023-05-22-quarto-for-academics/quarto-for-academics-video-cover.png diff --git a/content/blog/quarto/2023-05-22-quarto-for-academics/quarto-for-academics-video-cover.png.original b/content/blog/ported/quarto/2023-05-22-quarto-for-academics/quarto-for-academics-video-cover.png.original similarity index 100% rename from content/blog/quarto/2023-05-22-quarto-for-academics/quarto-for-academics-video-cover.png.original rename to content/blog/ported/quarto/2023-05-22-quarto-for-academics/quarto-for-academics-video-cover.png.original diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-alaska.png b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-alaska.png similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-alaska.png rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-alaska.png diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-alaska.png.original b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-alaska.png.original similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-alaska.png.original rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-alaska.png.original diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-boston.png b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-boston.png similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-boston.png rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-boston.png diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-boston.png.original b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-boston.png.original similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-boston.png.original rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-boston.png.original diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-mid-tennessee.png b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-mid-tennessee.png similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-mid-tennessee.png rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-mid-tennessee.png diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-mid-tennessee.png.original b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-mid-tennessee.png.original similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-mid-tennessee.png.original rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-mid-tennessee.png.original diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-nebraska.png b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-nebraska.png similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-nebraska.png rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-nebraska.png diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-nebraska.png.original b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-nebraska.png.original similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-nebraska.png.original rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-nebraska.png.original diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-ohio.png b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-ohio.png similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-ohio.png rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-ohio.png diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-ohio.png.original b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-ohio.png.original similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-ohio.png.original rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-ohio.png.original diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-oregon.png b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-oregon.png similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-oregon.png rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-oregon.png diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-oregon.png.original b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-oregon.png.original similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-oregon.png.original rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-oregon.png.original diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/asa-traveling-courses.png b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-traveling-courses.png similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/asa-traveling-courses.png rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/asa-traveling-courses.png diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/index.md b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/index.md similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/index.md rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/index.md diff --git a/content/blog/quarto/2023-12-05-asa-traveling-courses/index.qmd b/content/blog/ported/quarto/2023-12-05-asa-traveling-courses/index.qmd similarity index 100% rename from content/blog/quarto/2023-12-05-asa-traveling-courses/index.qmd rename to content/blog/ported/quarto/2023-12-05-asa-traveling-courses/index.qmd diff --git a/content/blog/quarto/2023-12-07-quarto-dashboards-demo/index.md b/content/blog/ported/quarto/2023-12-07-quarto-dashboards-demo/index.md similarity index 100% rename from content/blog/quarto/2023-12-07-quarto-dashboards-demo/index.md rename to content/blog/ported/quarto/2023-12-07-quarto-dashboards-demo/index.md diff --git a/content/blog/quarto/2023-12-07-quarto-dashboards-demo/index.qmd b/content/blog/ported/quarto/2023-12-07-quarto-dashboards-demo/index.qmd similarity index 100% rename from content/blog/quarto/2023-12-07-quarto-dashboards-demo/index.qmd rename to content/blog/ported/quarto/2023-12-07-quarto-dashboards-demo/index.qmd diff --git a/content/blog/quarto/2023-12-07-quarto-dashboards-demo/quarto-dashboards-video-cover.png b/content/blog/ported/quarto/2023-12-07-quarto-dashboards-demo/quarto-dashboards-video-cover.png similarity index 100% rename from content/blog/quarto/2023-12-07-quarto-dashboards-demo/quarto-dashboards-video-cover.png rename to content/blog/ported/quarto/2023-12-07-quarto-dashboards-demo/quarto-dashboards-video-cover.png diff --git a/content/blog/quarto/2023-12-07-quarto-dashboards-demo/quarto-dashboards-video-cover.png.original b/content/blog/ported/quarto/2023-12-07-quarto-dashboards-demo/quarto-dashboards-video-cover.png.original similarity index 100% rename from content/blog/quarto/2023-12-07-quarto-dashboards-demo/quarto-dashboards-video-cover.png.original rename to content/blog/ported/quarto/2023-12-07-quarto-dashboards-demo/quarto-dashboards-video-cover.png.original diff --git a/content/blog/quarto/2024-01-24-1.4-release/_contribs.md b/content/blog/ported/quarto/2024-01-24-1.4-release/_contribs.md similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/_contribs.md rename to content/blog/ported/quarto/2024-01-24-1.4-release/_contribs.md diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/article-content.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/article-content.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/article-content.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/article-content.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/crossref-div-table.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/crossref-div-table.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/crossref-div-table.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/crossref-div-table.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/thumbnail.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/thumbnail.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/thumbnail.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/thumbnail.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/typst-custom-page.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-custom-page.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/typst-custom-page.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-custom-page.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/typst-default-page.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-default-page.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/typst-default-page.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-default-page.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/typst-example.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-example.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/typst-example.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-example.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/typst-format-dept-news.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-format-dept-news.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/typst-format-dept-news.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-format-dept-news.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/typst-format-ieee.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-format-ieee.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/typst-format-ieee.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-format-ieee.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/typst-format-letter.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-format-letter.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/typst-format-letter.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-format-letter.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/typst-format-poster.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-format-poster.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/typst-format-poster.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/typst-format-poster.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/images/webpage-menu.png b/content/blog/ported/quarto/2024-01-24-1.4-release/images/webpage-menu.png similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/images/webpage-menu.png rename to content/blog/ported/quarto/2024-01-24-1.4-release/images/webpage-menu.png diff --git a/content/blog/quarto/2024-01-24-1.4-release/index.md b/content/blog/ported/quarto/2024-01-24-1.4-release/index.md similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/index.md rename to content/blog/ported/quarto/2024-01-24-1.4-release/index.md diff --git a/content/blog/quarto/2024-01-24-1.4-release/index.qmd b/content/blog/ported/quarto/2024-01-24-1.4-release/index.qmd similarity index 100% rename from content/blog/quarto/2024-01-24-1.4-release/index.qmd rename to content/blog/ported/quarto/2024-01-24-1.4-release/index.qmd diff --git a/content/blog/quarto/2024-03-26-hugging-face/images/hf-space-screen.png b/content/blog/ported/quarto/2024-03-26-hugging-face/images/hf-space-screen.png similarity index 100% rename from content/blog/quarto/2024-03-26-hugging-face/images/hf-space-screen.png rename to content/blog/ported/quarto/2024-03-26-hugging-face/images/hf-space-screen.png diff --git a/content/blog/quarto/2024-03-26-hugging-face/images/hugging-face-thumb.png b/content/blog/ported/quarto/2024-03-26-hugging-face/images/hugging-face-thumb.png similarity index 100% rename from content/blog/quarto/2024-03-26-hugging-face/images/hugging-face-thumb.png rename to content/blog/ported/quarto/2024-03-26-hugging-face/images/hugging-face-thumb.png diff --git a/content/blog/quarto/2024-03-26-hugging-face/index.md b/content/blog/ported/quarto/2024-03-26-hugging-face/index.md similarity index 100% rename from content/blog/quarto/2024-03-26-hugging-face/index.md rename to content/blog/ported/quarto/2024-03-26-hugging-face/index.md diff --git a/content/blog/quarto/2024-03-26-hugging-face/index.qmd b/content/blog/ported/quarto/2024-03-26-hugging-face/index.qmd similarity index 100% rename from content/blog/quarto/2024-03-26-hugging-face/index.qmd rename to content/blog/ported/quarto/2024-03-26-hugging-face/index.qmd diff --git a/content/blog/quarto/2024-04-01-manuscripts-rmedicine/images/manuscripts-thumbnail.png b/content/blog/ported/quarto/2024-04-01-manuscripts-rmedicine/images/manuscripts-thumbnail.png similarity index 100% rename from content/blog/quarto/2024-04-01-manuscripts-rmedicine/images/manuscripts-thumbnail.png rename to content/blog/ported/quarto/2024-04-01-manuscripts-rmedicine/images/manuscripts-thumbnail.png diff --git a/content/blog/quarto/2024-04-01-manuscripts-rmedicine/index.md b/content/blog/ported/quarto/2024-04-01-manuscripts-rmedicine/index.md similarity index 100% rename from content/blog/quarto/2024-04-01-manuscripts-rmedicine/index.md rename to content/blog/ported/quarto/2024-04-01-manuscripts-rmedicine/index.md diff --git a/content/blog/quarto/2024-04-01-manuscripts-rmedicine/index.qmd b/content/blog/ported/quarto/2024-04-01-manuscripts-rmedicine/index.qmd similarity index 100% rename from content/blog/quarto/2024-04-01-manuscripts-rmedicine/index.qmd rename to content/blog/ported/quarto/2024-04-01-manuscripts-rmedicine/index.qmd diff --git a/content/blog/quarto/2024-05-28-conf-workshops/images/conf-workshops-thumbnail.png b/content/blog/ported/quarto/2024-05-28-conf-workshops/images/conf-workshops-thumbnail.png similarity index 100% rename from content/blog/quarto/2024-05-28-conf-workshops/images/conf-workshops-thumbnail.png rename to content/blog/ported/quarto/2024-05-28-conf-workshops/images/conf-workshops-thumbnail.png diff --git a/content/blog/quarto/2024-05-28-conf-workshops/index.md b/content/blog/ported/quarto/2024-05-28-conf-workshops/index.md similarity index 100% rename from content/blog/quarto/2024-05-28-conf-workshops/index.md rename to content/blog/ported/quarto/2024-05-28-conf-workshops/index.md diff --git a/content/blog/quarto/2024-05-28-conf-workshops/index.qmd b/content/blog/ported/quarto/2024-05-28-conf-workshops/index.qmd similarity index 100% rename from content/blog/quarto/2024-05-28-conf-workshops/index.qmd rename to content/blog/ported/quarto/2024-05-28-conf-workshops/index.qmd diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/beautiful-tables-typst.png b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/beautiful-tables-typst.png similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/beautiful-tables-typst.png rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/beautiful-tables-typst.png diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/build-all.sh b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/build-all.sh similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/build-all.sh rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/build-all.sh diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/build-html.sh b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/build-html.sh similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/build-html.sh rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/build-html.sh diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-oceania.pdf b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-oceania.pdf similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-oceania.pdf rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-oceania.pdf diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-oceania.qmd b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-oceania.qmd similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-oceania.qmd rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-oceania.qmd diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-solar-zenith.pdf b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-solar-zenith.pdf similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-solar-zenith.pdf rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-solar-zenith.pdf diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-solar-zenith.qmd b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-solar-zenith.qmd similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-solar-zenith.qmd rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/great-tables-solar-zenith.qmd diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-cars.pdf b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-cars.pdf similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-cars.pdf rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-cars.pdf diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-cars.qmd b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-cars.qmd similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-cars.qmd rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-cars.qmd diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-islands.pdf b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-islands.pdf similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-islands.pdf rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-islands.pdf diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-islands.qmd b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-islands.qmd similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-islands.qmd rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/gt-islands.qmd diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-acting-on-data.pdf b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-acting-on-data.pdf similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-acting-on-data.pdf rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-acting-on-data.pdf diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-acting-on-data.qmd b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-acting-on-data.qmd similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-acting-on-data.qmd rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-acting-on-data.qmd diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-confusion-matrix.pdf b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-confusion-matrix.pdf similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-confusion-matrix.pdf rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-confusion-matrix.pdf diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-confusion-matrix.qmd b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-confusion-matrix.qmd similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-confusion-matrix.qmd rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/examples/pandas-confusion-matrix.qmd diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/freeze.txt b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/freeze.txt similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/freeze.txt rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/freeze.txt diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/great-tables-oceania.png b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/great-tables-oceania.png similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/great-tables-oceania.png rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/great-tables-oceania.png diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/great-tables-solar-zenith.png b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/great-tables-solar-zenith.png similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/great-tables-solar-zenith.png rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/great-tables-solar-zenith.png diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/gt-cars.png b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/gt-cars.png similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/gt-cars.png rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/gt-cars.png diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/gt-islands.png b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/gt-islands.png similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/gt-islands.png rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/gt-islands.png diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/pandas-acting-on-data.png b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/pandas-acting-on-data.png similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/pandas-acting-on-data.png rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/pandas-acting-on-data.png diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/pandas-confusion-matrix.png b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/pandas-confusion-matrix.png similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/images/pandas-confusion-matrix.png rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/images/pandas-confusion-matrix.png diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/index.md b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/index.md similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/index.md rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/index.md diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/index.qmd b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/index.qmd similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/index.qmd rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/index.qmd diff --git a/content/blog/quarto/2024-07-02-beautiful-tables-in-typst/layout.css b/content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/layout.css similarity index 100% rename from content/blog/quarto/2024-07-02-beautiful-tables-in-typst/layout.css rename to content/blog/ported/quarto/2024-07-02-beautiful-tables-in-typst/layout.css diff --git a/content/blog/quarto/2024-07-11-1.5-release/_contribs.md b/content/blog/ported/quarto/2024-07-11-1.5-release/_contribs.md similarity index 100% rename from content/blog/quarto/2024-07-11-1.5-release/_contribs.md rename to content/blog/ported/quarto/2024-07-11-1.5-release/_contribs.md diff --git a/content/blog/quarto/2024-07-11-1.5-release/images/thumbnail.png b/content/blog/ported/quarto/2024-07-11-1.5-release/images/thumbnail.png similarity index 100% rename from content/blog/quarto/2024-07-11-1.5-release/images/thumbnail.png rename to content/blog/ported/quarto/2024-07-11-1.5-release/images/thumbnail.png diff --git a/content/blog/quarto/2024-07-11-1.5-release/images/website-announcement.png b/content/blog/ported/quarto/2024-07-11-1.5-release/images/website-announcement.png similarity index 100% rename from content/blog/quarto/2024-07-11-1.5-release/images/website-announcement.png rename to content/blog/ported/quarto/2024-07-11-1.5-release/images/website-announcement.png diff --git a/content/blog/quarto/2024-07-11-1.5-release/images/website-announcement.png.original b/content/blog/ported/quarto/2024-07-11-1.5-release/images/website-announcement.png.original similarity index 100% rename from content/blog/quarto/2024-07-11-1.5-release/images/website-announcement.png.original rename to content/blog/ported/quarto/2024-07-11-1.5-release/images/website-announcement.png.original diff --git a/content/blog/quarto/2024-07-11-1.5-release/images/website-drafts-banner.png b/content/blog/ported/quarto/2024-07-11-1.5-release/images/website-drafts-banner.png similarity index 100% rename from content/blog/quarto/2024-07-11-1.5-release/images/website-drafts-banner.png rename to content/blog/ported/quarto/2024-07-11-1.5-release/images/website-drafts-banner.png diff --git a/content/blog/quarto/2024-07-11-1.5-release/index.md b/content/blog/ported/quarto/2024-07-11-1.5-release/index.md similarity index 100% rename from content/blog/quarto/2024-07-11-1.5-release/index.md rename to content/blog/ported/quarto/2024-07-11-1.5-release/index.md diff --git a/content/blog/quarto/2024-07-11-1.5-release/index.qmd b/content/blog/ported/quarto/2024-07-11-1.5-release/index.qmd similarity index 100% rename from content/blog/quarto/2024-07-11-1.5-release/index.qmd rename to content/blog/ported/quarto/2024-07-11-1.5-release/index.qmd diff --git a/content/blog/quarto/2024-10-15-conf-workshops-materials/images/dashboards.png b/content/blog/ported/quarto/2024-10-15-conf-workshops-materials/images/dashboards.png similarity index 100% rename from content/blog/quarto/2024-10-15-conf-workshops-materials/images/dashboards.png rename to content/blog/ported/quarto/2024-10-15-conf-workshops-materials/images/dashboards.png diff --git a/content/blog/quarto/2024-10-15-conf-workshops-materials/images/intro.png b/content/blog/ported/quarto/2024-10-15-conf-workshops-materials/images/intro.png similarity index 100% rename from content/blog/quarto/2024-10-15-conf-workshops-materials/images/intro.png rename to content/blog/ported/quarto/2024-10-15-conf-workshops-materials/images/intro.png diff --git a/content/blog/quarto/2024-10-15-conf-workshops-materials/images/thumbnail.png b/content/blog/ported/quarto/2024-10-15-conf-workshops-materials/images/thumbnail.png similarity index 100% rename from content/blog/quarto/2024-10-15-conf-workshops-materials/images/thumbnail.png rename to content/blog/ported/quarto/2024-10-15-conf-workshops-materials/images/thumbnail.png diff --git a/content/blog/quarto/2024-10-15-conf-workshops-materials/images/websites.png b/content/blog/ported/quarto/2024-10-15-conf-workshops-materials/images/websites.png similarity index 100% rename from content/blog/quarto/2024-10-15-conf-workshops-materials/images/websites.png rename to content/blog/ported/quarto/2024-10-15-conf-workshops-materials/images/websites.png diff --git a/content/blog/quarto/2024-10-15-conf-workshops-materials/index.md b/content/blog/ported/quarto/2024-10-15-conf-workshops-materials/index.md similarity index 100% rename from content/blog/quarto/2024-10-15-conf-workshops-materials/index.md rename to content/blog/ported/quarto/2024-10-15-conf-workshops-materials/index.md diff --git a/content/blog/quarto/2024-10-15-conf-workshops-materials/index.qmd b/content/blog/ported/quarto/2024-10-15-conf-workshops-materials/index.qmd similarity index 100% rename from content/blog/quarto/2024-10-15-conf-workshops-materials/index.qmd rename to content/blog/ported/quarto/2024-10-15-conf-workshops-materials/index.qmd diff --git a/content/blog/quarto/2024-11-06-conf-talks/images/thumbnail.jpg b/content/blog/ported/quarto/2024-11-06-conf-talks/images/thumbnail.jpg similarity index 100% rename from content/blog/quarto/2024-11-06-conf-talks/images/thumbnail.jpg rename to content/blog/ported/quarto/2024-11-06-conf-talks/images/thumbnail.jpg diff --git a/content/blog/quarto/2024-11-06-conf-talks/index.md b/content/blog/ported/quarto/2024-11-06-conf-talks/index.md similarity index 100% rename from content/blog/quarto/2024-11-06-conf-talks/index.md rename to content/blog/ported/quarto/2024-11-06-conf-talks/index.md diff --git a/content/blog/quarto/2024-11-06-conf-talks/index.qmd b/content/blog/ported/quarto/2024-11-06-conf-talks/index.qmd similarity index 100% rename from content/blog/quarto/2024-11-06-conf-talks/index.qmd rename to content/blog/ported/quarto/2024-11-06-conf-talks/index.qmd diff --git a/content/blog/quarto/2024-11-22-dashboards-workshop/index.md b/content/blog/ported/quarto/2024-11-22-dashboards-workshop/index.md similarity index 100% rename from content/blog/quarto/2024-11-22-dashboards-workshop/index.md rename to content/blog/ported/quarto/2024-11-22-dashboards-workshop/index.md diff --git a/content/blog/quarto/2024-11-22-dashboards-workshop/index.qmd b/content/blog/ported/quarto/2024-11-22-dashboards-workshop/index.qmd similarity index 100% rename from content/blog/quarto/2024-11-22-dashboards-workshop/index.qmd rename to content/blog/ported/quarto/2024-11-22-dashboards-workshop/index.qmd diff --git a/content/blog/quarto/2024-11-22-dashboards-workshop/quarto-dashboards.jpg b/content/blog/ported/quarto/2024-11-22-dashboards-workshop/quarto-dashboards.jpg similarity index 100% rename from content/blog/quarto/2024-11-22-dashboards-workshop/quarto-dashboards.jpg rename to content/blog/ported/quarto/2024-11-22-dashboards-workshop/quarto-dashboards.jpg diff --git a/content/blog/quarto/2024-11-25-1.6-release/_brand-example.qmd b/content/blog/ported/quarto/2024-11-25-1.6-release/_brand-example.qmd similarity index 100% rename from content/blog/quarto/2024-11-25-1.6-release/_brand-example.qmd rename to content/blog/ported/quarto/2024-11-25-1.6-release/_brand-example.qmd diff --git a/content/blog/quarto/2024-11-25-1.6-release/_contribs.md b/content/blog/ported/quarto/2024-11-25-1.6-release/_contribs.md similarity index 100% rename from content/blog/quarto/2024-11-25-1.6-release/_contribs.md rename to content/blog/ported/quarto/2024-11-25-1.6-release/_contribs.md diff --git a/content/blog/quarto/2024-11-25-1.6-release/get-contribs.R b/content/blog/ported/quarto/2024-11-25-1.6-release/get-contribs.R similarity index 100% rename from content/blog/quarto/2024-11-25-1.6-release/get-contribs.R rename to content/blog/ported/quarto/2024-11-25-1.6-release/get-contribs.R diff --git a/content/blog/quarto/2024-11-25-1.6-release/index.md b/content/blog/ported/quarto/2024-11-25-1.6-release/index.md similarity index 100% rename from content/blog/quarto/2024-11-25-1.6-release/index.md rename to content/blog/ported/quarto/2024-11-25-1.6-release/index.md diff --git a/content/blog/quarto/2024-11-25-1.6-release/index.qmd b/content/blog/ported/quarto/2024-11-25-1.6-release/index.qmd similarity index 100% rename from content/blog/quarto/2024-11-25-1.6-release/index.qmd rename to content/blog/ported/quarto/2024-11-25-1.6-release/index.qmd diff --git a/content/blog/quarto/2024-11-25-1.6-release/subcells-and-subfloats.png b/content/blog/ported/quarto/2024-11-25-1.6-release/subcells-and-subfloats.png similarity index 100% rename from content/blog/quarto/2024-11-25-1.6-release/subcells-and-subfloats.png rename to content/blog/ported/quarto/2024-11-25-1.6-release/subcells-and-subfloats.png diff --git a/content/blog/quarto/2024-11-25-1.6-release/thumbnail.png b/content/blog/ported/quarto/2024-11-25-1.6-release/thumbnail.png similarity index 100% rename from content/blog/quarto/2024-11-25-1.6-release/thumbnail.png rename to content/blog/ported/quarto/2024-11-25-1.6-release/thumbnail.png diff --git a/content/blog/quarto/2024-12-04-websites-workshop/index.md b/content/blog/ported/quarto/2024-12-04-websites-workshop/index.md similarity index 100% rename from content/blog/quarto/2024-12-04-websites-workshop/index.md rename to content/blog/ported/quarto/2024-12-04-websites-workshop/index.md diff --git a/content/blog/quarto/2024-12-04-websites-workshop/index.qmd b/content/blog/ported/quarto/2024-12-04-websites-workshop/index.qmd similarity index 100% rename from content/blog/quarto/2024-12-04-websites-workshop/index.qmd rename to content/blog/ported/quarto/2024-12-04-websites-workshop/index.qmd diff --git a/content/blog/quarto/2024-12-04-websites-workshop/quarto-websites.jpg b/content/blog/ported/quarto/2024-12-04-websites-workshop/quarto-websites.jpg similarity index 100% rename from content/blog/quarto/2024-12-04-websites-workshop/quarto-websites.jpg rename to content/blog/ported/quarto/2024-12-04-websites-workshop/quarto-websites.jpg diff --git a/content/blog/quarto/2024-12-12-includes-meta/images/img1.png b/content/blog/ported/quarto/2024-12-12-includes-meta/images/img1.png similarity index 100% rename from content/blog/quarto/2024-12-12-includes-meta/images/img1.png rename to content/blog/ported/quarto/2024-12-12-includes-meta/images/img1.png diff --git a/content/blog/quarto/2024-12-12-includes-meta/images/img2.png b/content/blog/ported/quarto/2024-12-12-includes-meta/images/img2.png similarity index 100% rename from content/blog/quarto/2024-12-12-includes-meta/images/img2.png rename to content/blog/ported/quarto/2024-12-12-includes-meta/images/img2.png diff --git a/content/blog/quarto/2024-12-12-includes-meta/images/img3.png b/content/blog/ported/quarto/2024-12-12-includes-meta/images/img3.png similarity index 100% rename from content/blog/quarto/2024-12-12-includes-meta/images/img3.png rename to content/blog/ported/quarto/2024-12-12-includes-meta/images/img3.png diff --git a/content/blog/quarto/2024-12-12-includes-meta/images/img4.png b/content/blog/ported/quarto/2024-12-12-includes-meta/images/img4.png similarity index 100% rename from content/blog/quarto/2024-12-12-includes-meta/images/img4.png rename to content/blog/ported/quarto/2024-12-12-includes-meta/images/img4.png diff --git a/content/blog/quarto/2024-12-12-includes-meta/index.md b/content/blog/ported/quarto/2024-12-12-includes-meta/index.md similarity index 100% rename from content/blog/quarto/2024-12-12-includes-meta/index.md rename to content/blog/ported/quarto/2024-12-12-includes-meta/index.md diff --git a/content/blog/quarto/2024-12-12-includes-meta/index.qmd b/content/blog/ported/quarto/2024-12-12-includes-meta/index.qmd similarity index 100% rename from content/blog/quarto/2024-12-12-includes-meta/index.qmd rename to content/blog/ported/quarto/2024-12-12-includes-meta/index.qmd diff --git a/content/blog/quarto/2024-12-12-includes-meta/thumbnail.jpg b/content/blog/ported/quarto/2024-12-12-includes-meta/thumbnail.jpg similarity index 100% rename from content/blog/quarto/2024-12-12-includes-meta/thumbnail.jpg rename to content/blog/ported/quarto/2024-12-12-includes-meta/thumbnail.jpg diff --git a/content/blog/quarto/2025-01-15-quarto-tip-brand-positron/brand.png b/content/blog/ported/quarto/2025-01-15-quarto-tip-brand-positron/brand.png similarity index 100% rename from content/blog/quarto/2025-01-15-quarto-tip-brand-positron/brand.png rename to content/blog/ported/quarto/2025-01-15-quarto-tip-brand-positron/brand.png diff --git a/content/blog/quarto/2025-01-15-quarto-tip-brand-positron/index.md b/content/blog/ported/quarto/2025-01-15-quarto-tip-brand-positron/index.md similarity index 100% rename from content/blog/quarto/2025-01-15-quarto-tip-brand-positron/index.md rename to content/blog/ported/quarto/2025-01-15-quarto-tip-brand-positron/index.md diff --git a/content/blog/quarto/2025-01-15-quarto-tip-brand-positron/index.qmd b/content/blog/ported/quarto/2025-01-15-quarto-tip-brand-positron/index.qmd similarity index 100% rename from content/blog/quarto/2025-01-15-quarto-tip-brand-positron/index.qmd rename to content/blog/ported/quarto/2025-01-15-quarto-tip-brand-positron/index.qmd diff --git a/content/blog/quarto/2025-04-28-1.7-release/_contribs.md b/content/blog/ported/quarto/2025-04-28-1.7-release/_contribs.md similarity index 100% rename from content/blog/quarto/2025-04-28-1.7-release/_contribs.md rename to content/blog/ported/quarto/2025-04-28-1.7-release/_contribs.md diff --git a/content/blog/quarto/2025-04-28-1.7-release/dark.png b/content/blog/ported/quarto/2025-04-28-1.7-release/dark.png similarity index 100% rename from content/blog/quarto/2025-04-28-1.7-release/dark.png rename to content/blog/ported/quarto/2025-04-28-1.7-release/dark.png diff --git a/content/blog/quarto/2025-04-28-1.7-release/get-contribs.R b/content/blog/ported/quarto/2025-04-28-1.7-release/get-contribs.R similarity index 100% rename from content/blog/quarto/2025-04-28-1.7-release/get-contribs.R rename to content/blog/ported/quarto/2025-04-28-1.7-release/get-contribs.R diff --git a/content/blog/quarto/2025-04-28-1.7-release/index.markdown_strict_files/figure-markdown_strict/unnamed-chunk-1-1.png b/content/blog/ported/quarto/2025-04-28-1.7-release/index.markdown_strict_files/figure-markdown_strict/unnamed-chunk-1-1.png similarity index 100% rename from content/blog/quarto/2025-04-28-1.7-release/index.markdown_strict_files/figure-markdown_strict/unnamed-chunk-1-1.png rename to content/blog/ported/quarto/2025-04-28-1.7-release/index.markdown_strict_files/figure-markdown_strict/unnamed-chunk-1-1.png diff --git a/content/blog/quarto/2025-04-28-1.7-release/index.markdown_strict_files/figure-markdown_strict/unnamed-chunk-1-2.png b/content/blog/ported/quarto/2025-04-28-1.7-release/index.markdown_strict_files/figure-markdown_strict/unnamed-chunk-1-2.png similarity index 100% rename from content/blog/quarto/2025-04-28-1.7-release/index.markdown_strict_files/figure-markdown_strict/unnamed-chunk-1-2.png rename to content/blog/ported/quarto/2025-04-28-1.7-release/index.markdown_strict_files/figure-markdown_strict/unnamed-chunk-1-2.png diff --git a/content/blog/quarto/2025-04-28-1.7-release/index.md b/content/blog/ported/quarto/2025-04-28-1.7-release/index.md similarity index 98% rename from content/blog/quarto/2025-04-28-1.7-release/index.md rename to content/blog/ported/quarto/2025-04-28-1.7-release/index.md index 91a91959f..ad808e8da 100644 --- a/content/blog/quarto/2025-04-28-1.7-release/index.md +++ b/content/blog/ported/quarto/2025-04-28-1.7-release/index.md @@ -36,7 +36,7 @@ slug: 1.7-release Quarto 1.7 is out! You can get the current release from the [download page](https://quarto.org/docs/download/index.html). We are especially enthusiastic about the improvements 1.7 brings to dark mode: you can now specify light and dark themes via brand, map computational outputs to themes, and have your website theme follow your viewer's preference. -To celebrate these changes, this site, [quarto.org](../../..), now has a light and dark mode. +To celebrate these changes, this site, [quarto.org](https://quarto.org/), now has a light and dark mode. Toggle the switch in the navigation bar () to see the difference. You can read about these improvements and some other highlights below. You can find all the changes in this version in the [Release Notes](https://quarto.org/docs/download/changelog/1.7/). diff --git a/content/blog/quarto/2025-04-28-1.7-release/index.qmd b/content/blog/ported/quarto/2025-04-28-1.7-release/index.qmd similarity index 98% rename from content/blog/quarto/2025-04-28-1.7-release/index.qmd rename to content/blog/ported/quarto/2025-04-28-1.7-release/index.qmd index f06b54a4c..04d894c09 100644 --- a/content/blog/quarto/2025-04-28-1.7-release/index.qmd +++ b/content/blog/ported/quarto/2025-04-28-1.7-release/index.qmd @@ -29,7 +29,7 @@ slug: 1.7-release Quarto 1.7 is out! You can get the current release from the [download page](https://quarto.org/docs/download/index.html). We are especially enthusiastic about the improvements 1.7 brings to dark mode: you can now specify light and dark themes via brand, map computational outputs to themes, and have your website theme follow your viewer's preference. -To celebrate these changes, this site, [quarto.org](/), now has a light and dark mode. +To celebrate these changes, this site, [quarto.org](https://quarto.org/), now has a light and dark mode. Toggle the switch in the navigation bar (``{=html}) to see the difference. You can read about these improvements and some other highlights below. You can find all the changes in this version in the [Release Notes](https://quarto.org/docs/download/changelog/1.7/). diff --git a/content/blog/quarto/2025-04-28-1.7-release/light.png b/content/blog/ported/quarto/2025-04-28-1.7-release/light.png similarity index 100% rename from content/blog/quarto/2025-04-28-1.7-release/light.png rename to content/blog/ported/quarto/2025-04-28-1.7-release/light.png diff --git a/content/blog/quarto/2025-04-28-1.7-release/thumbnail-1.7.jpeg b/content/blog/ported/quarto/2025-04-28-1.7-release/thumbnail-1.7.jpeg similarity index 100% rename from content/blog/quarto/2025-04-28-1.7-release/thumbnail-1.7.jpeg rename to content/blog/ported/quarto/2025-04-28-1.7-release/thumbnail-1.7.jpeg diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/featured.png b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/featured.png similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/featured.png rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/featured.png diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/index.md b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/index.md similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/index.md rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/index.md diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/index.qmd b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/index.qmd similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/index.qmd rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/index.qmd diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-dark.png b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-dark.png similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-dark.png rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-dark.png diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-dark.png.original b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-dark.png.original similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-dark.png.original rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-dark.png.original diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-light.png b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-light.png similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-light.png rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-light.png diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-light.png.original b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-light.png.original similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-light.png.original rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-001-light.png.original diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-dark.png b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-dark.png similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-dark.png rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-dark.png diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-dark.png.original b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-dark.png.original similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-dark.png.original rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-dark.png.original diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-light.png b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-light.png similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-light.png rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-light.png diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-light.png.original b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-light.png.original similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-light.png.original rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces-new-002-light.png.original diff --git a/content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces.svg b/content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces.svg similarity index 100% rename from content/blog/quarto/2025-05-19-quarto-codespaces/quarto-codespaces.svg rename to content/blog/ported/quarto/2025-05-19-quarto-codespaces/quarto-codespaces.svg diff --git a/content/blog/quarto/2025-07-24-parameterized-reports-python/corvallis-add-tag.png b/content/blog/ported/quarto/2025-07-24-parameterized-reports-python/corvallis-add-tag.png similarity index 100% rename from content/blog/quarto/2025-07-24-parameterized-reports-python/corvallis-add-tag.png rename to content/blog/ported/quarto/2025-07-24-parameterized-reports-python/corvallis-add-tag.png diff --git a/content/blog/quarto/2025-07-24-parameterized-reports-python/corvallis-ipynb.png b/content/blog/ported/quarto/2025-07-24-parameterized-reports-python/corvallis-ipynb.png similarity index 100% rename from content/blog/quarto/2025-07-24-parameterized-reports-python/corvallis-ipynb.png rename to content/blog/ported/quarto/2025-07-24-parameterized-reports-python/corvallis-ipynb.png diff --git a/content/blog/quarto/2025-07-24-parameterized-reports-python/corvallis-pdf.png b/content/blog/ported/quarto/2025-07-24-parameterized-reports-python/corvallis-pdf.png similarity index 100% rename from content/blog/quarto/2025-07-24-parameterized-reports-python/corvallis-pdf.png rename to content/blog/ported/quarto/2025-07-24-parameterized-reports-python/corvallis-pdf.png diff --git a/content/blog/quarto/2025-07-24-parameterized-reports-python/corvallis-pretty-pdf.png b/content/blog/ported/quarto/2025-07-24-parameterized-reports-python/corvallis-pretty-pdf.png similarity index 100% rename from content/blog/quarto/2025-07-24-parameterized-reports-python/corvallis-pretty-pdf.png rename to content/blog/ported/quarto/2025-07-24-parameterized-reports-python/corvallis-pretty-pdf.png diff --git a/content/blog/quarto/2025-07-24-parameterized-reports-python/corvallis-pretty-pdf.png.original b/content/blog/ported/quarto/2025-07-24-parameterized-reports-python/corvallis-pretty-pdf.png.original similarity index 100% rename from content/blog/quarto/2025-07-24-parameterized-reports-python/corvallis-pretty-pdf.png.original rename to content/blog/ported/quarto/2025-07-24-parameterized-reports-python/corvallis-pretty-pdf.png.original diff --git a/content/blog/quarto/2025-07-24-parameterized-reports-python/index.md b/content/blog/ported/quarto/2025-07-24-parameterized-reports-python/index.md similarity index 100% rename from content/blog/quarto/2025-07-24-parameterized-reports-python/index.md rename to content/blog/ported/quarto/2025-07-24-parameterized-reports-python/index.md diff --git a/content/blog/quarto/2025-07-24-parameterized-reports-python/index.qmd b/content/blog/ported/quarto/2025-07-24-parameterized-reports-python/index.qmd similarity index 100% rename from content/blog/quarto/2025-07-24-parameterized-reports-python/index.qmd rename to content/blog/ported/quarto/2025-07-24-parameterized-reports-python/index.qmd diff --git a/content/blog/quarto/2025-07-24-parameterized-reports-python/thumbnail.png b/content/blog/ported/quarto/2025-07-24-parameterized-reports-python/thumbnail.png similarity index 100% rename from content/blog/quarto/2025-07-24-parameterized-reports-python/thumbnail.png rename to content/blog/ported/quarto/2025-07-24-parameterized-reports-python/thumbnail.png diff --git a/content/blog/quarto/2025-07-28-R-package-release-1.5/index.md b/content/blog/ported/quarto/2025-07-28-R-package-release-1.5/index.md similarity index 100% rename from content/blog/quarto/2025-07-28-R-package-release-1.5/index.md rename to content/blog/ported/quarto/2025-07-28-R-package-release-1.5/index.md diff --git a/content/blog/quarto/2025-07-28-R-package-release-1.5/index.qmd b/content/blog/ported/quarto/2025-07-28-R-package-release-1.5/index.qmd similarity index 100% rename from content/blog/quarto/2025-07-28-R-package-release-1.5/index.qmd rename to content/blog/ported/quarto/2025-07-28-R-package-release-1.5/index.qmd diff --git a/content/blog/quarto/2025-07-28-R-package-release-1.5/thumbnail.png b/content/blog/ported/quarto/2025-07-28-R-package-release-1.5/thumbnail.png similarity index 100% rename from content/blog/quarto/2025-07-28-R-package-release-1.5/thumbnail.png rename to content/blog/ported/quarto/2025-07-28-R-package-release-1.5/thumbnail.png diff --git a/content/blog/quarto/2025-10-13-1.8-release/_contribs.md b/content/blog/ported/quarto/2025-10-13-1.8-release/_contribs.md similarity index 100% rename from content/blog/quarto/2025-10-13-1.8-release/_contribs.md rename to content/blog/ported/quarto/2025-10-13-1.8-release/_contribs.md diff --git a/content/blog/quarto/2025-10-13-1.8-release/get-contribs.R b/content/blog/ported/quarto/2025-10-13-1.8-release/get-contribs.R similarity index 100% rename from content/blog/quarto/2025-10-13-1.8-release/get-contribs.R rename to content/blog/ported/quarto/2025-10-13-1.8-release/get-contribs.R diff --git a/content/blog/quarto/2025-10-13-1.8-release/index.md b/content/blog/ported/quarto/2025-10-13-1.8-release/index.md similarity index 100% rename from content/blog/quarto/2025-10-13-1.8-release/index.md rename to content/blog/ported/quarto/2025-10-13-1.8-release/index.md diff --git a/content/blog/quarto/2025-10-13-1.8-release/index.qmd b/content/blog/ported/quarto/2025-10-13-1.8-release/index.qmd similarity index 100% rename from content/blog/quarto/2025-10-13-1.8-release/index.qmd rename to content/blog/ported/quarto/2025-10-13-1.8-release/index.qmd diff --git a/content/blog/quarto/2025-10-13-1.8-release/thumbnail.png b/content/blog/ported/quarto/2025-10-13-1.8-release/thumbnail.png similarity index 100% rename from content/blog/quarto/2025-10-13-1.8-release/thumbnail.png rename to content/blog/ported/quarto/2025-10-13-1.8-release/thumbnail.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/extensions-marketplace-dark.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/extensions-marketplace-dark.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/extensions-marketplace-dark.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/extensions-marketplace-dark.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/extensions-marketplace-light.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/extensions-marketplace-light.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/extensions-marketplace-light.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/extensions-marketplace-light.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-dark.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-dark.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-dark.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-dark.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-dark.png.original b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-dark.png.original similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-dark.png.original rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-dark.png.original diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-light.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-light.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-light.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-light.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-light.png.original b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-light.png.original similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-light.png.original rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-home-light.png.original diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-dark.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-dark.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-dark.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-dark.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-dark.png.original b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-dark.png.original similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-dark.png.original rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-dark.png.original diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-light.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-light.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-light.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-light.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-light.png.original b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-light.png.original similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-light.png.original rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-modal-light.png.original diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-dark.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-dark.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-dark.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-dark.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-dark.png.original b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-dark.png.original similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-dark.png.original rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-dark.png.original diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-light.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-light.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-light.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-light.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-light.png.original b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-light.png.original similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-light.png.original rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-extensions-template-light.png.original diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-wizard.svg b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-wizard.svg similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-wizard.svg rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/quarto-wizard.svg diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-activity-bar-dark.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-activity-bar-dark.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-activity-bar-dark.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-activity-bar-dark.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-activity-bar-light.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-activity-bar-light.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-activity-bar-light.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-activity-bar-light.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-dark.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-dark.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-dark.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-dark.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-dark.png.original b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-dark.png.original similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-dark.png.original rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-dark.png.original diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-light.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-light.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-light.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-light.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-light.png.original b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-light.png.original similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-light.png.original rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-install-light.png.original diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-dark.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-dark.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-dark.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-dark.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-dark.png.original b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-dark.png.original similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-dark.png.original rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-dark.png.original diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-light.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-light.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-light.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-light.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-light.png.original b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-light.png.original similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-light.png.original rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-template-light.png.original diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-update-dark.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-update-dark.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-update-dark.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-update-dark.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-update-light.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-update-light.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-update-light.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/assets/media/vscode-update-light.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/featured.png b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/featured.png similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/featured.png rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/featured.png diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/index.md b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/index.md similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/index.md rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/index.md diff --git a/content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/index.qmd b/content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/index.qmd similarity index 100% rename from content/blog/quarto/2025-10-20-quarto-wizard-1-0-0/index.qmd rename to content/blog/ported/quarto/2025-10-20-quarto-wizard-1-0-0/index.qmd diff --git a/content/blog/quarto/2025-10-27-conf-workshops-materials/index.md b/content/blog/ported/quarto/2025-10-27-conf-workshops-materials/index.md similarity index 100% rename from content/blog/quarto/2025-10-27-conf-workshops-materials/index.md rename to content/blog/ported/quarto/2025-10-27-conf-workshops-materials/index.md diff --git a/content/blog/quarto/2025-10-27-conf-workshops-materials/index.qmd b/content/blog/ported/quarto/2025-10-27-conf-workshops-materials/index.qmd similarity index 100% rename from content/blog/quarto/2025-10-27-conf-workshops-materials/index.qmd rename to content/blog/ported/quarto/2025-10-27-conf-workshops-materials/index.qmd diff --git a/content/blog/quarto/2025-10-27-conf-workshops-materials/thumbnail.png b/content/blog/ported/quarto/2025-10-27-conf-workshops-materials/thumbnail.png similarity index 100% rename from content/blog/quarto/2025-10-27-conf-workshops-materials/thumbnail.png rename to content/blog/ported/quarto/2025-10-27-conf-workshops-materials/thumbnail.png diff --git a/content/blog/quarto/2025-11-24-conf-talk-videos/index.md b/content/blog/ported/quarto/2025-11-24-conf-talk-videos/index.md similarity index 100% rename from content/blog/quarto/2025-11-24-conf-talk-videos/index.md rename to content/blog/ported/quarto/2025-11-24-conf-talk-videos/index.md diff --git a/content/blog/quarto/2025-11-24-conf-talk-videos/index.qmd b/content/blog/ported/quarto/2025-11-24-conf-talk-videos/index.qmd similarity index 100% rename from content/blog/quarto/2025-11-24-conf-talk-videos/index.qmd rename to content/blog/ported/quarto/2025-11-24-conf-talk-videos/index.qmd diff --git a/content/blog/quarto/2025-11-24-conf-talk-videos/thumbnail.png b/content/blog/ported/quarto/2025-11-24-conf-talk-videos/thumbnail.png similarity index 100% rename from content/blog/quarto/2025-11-24-conf-talk-videos/thumbnail.png rename to content/blog/ported/quarto/2025-11-24-conf-talk-videos/thumbnail.png diff --git a/content/blog/quarto/2026-03-05-pdf-accessibility-and-standards/index.md b/content/blog/ported/quarto/2026-03-05-pdf-accessibility-and-standards/index.md similarity index 100% rename from content/blog/quarto/2026-03-05-pdf-accessibility-and-standards/index.md rename to content/blog/ported/quarto/2026-03-05-pdf-accessibility-and-standards/index.md diff --git a/content/blog/quarto/2026-03-05-pdf-accessibility-and-standards/index.qmd b/content/blog/ported/quarto/2026-03-05-pdf-accessibility-and-standards/index.qmd similarity index 100% rename from content/blog/quarto/2026-03-05-pdf-accessibility-and-standards/index.qmd rename to content/blog/ported/quarto/2026-03-05-pdf-accessibility-and-standards/index.qmd diff --git a/content/blog/quarto/2026-03-05-pdf-accessibility-and-standards/thumbnail.png b/content/blog/ported/quarto/2026-03-05-pdf-accessibility-and-standards/thumbnail.png similarity index 100% rename from content/blog/quarto/2026-03-05-pdf-accessibility-and-standards/thumbnail.png rename to content/blog/ported/quarto/2026-03-05-pdf-accessibility-and-standards/thumbnail.png diff --git a/content/blog/quarto/2026-03-24-1.9-release/_contribs.md b/content/blog/ported/quarto/2026-03-24-1.9-release/_contribs.md similarity index 100% rename from content/blog/quarto/2026-03-24-1.9-release/_contribs.md rename to content/blog/ported/quarto/2026-03-24-1.9-release/_contribs.md diff --git a/content/blog/quarto/2026-03-24-1.9-release/get-contribs.R b/content/blog/ported/quarto/2026-03-24-1.9-release/get-contribs.R similarity index 100% rename from content/blog/quarto/2026-03-24-1.9-release/get-contribs.R rename to content/blog/ported/quarto/2026-03-24-1.9-release/get-contribs.R diff --git a/content/blog/quarto/2026-03-24-1.9-release/index.md b/content/blog/ported/quarto/2026-03-24-1.9-release/index.md similarity index 96% rename from content/blog/quarto/2026-03-24-1.9-release/index.md rename to content/blog/ported/quarto/2026-03-24-1.9-release/index.md index be9024105..b046e0240 100644 --- a/content/blog/quarto/2026-03-24-1.9-release/index.md +++ b/content/blog/ported/quarto/2026-03-24-1.9-release/index.md @@ -53,13 +53,13 @@ Quarto 1.9 brings substantial improvements to Typst output: - New options: `mathfont`, `codefont`, `linestretch`, `linkcolor`, `citecolor`, `filecolor`, `thanks`, and `abstract-title`. - [Theorem styling](https://quarto.org/docs/output-formats/typst.html#theorems) with four appearance options: `simple`, `fancy`, `clouds`, or `rainbow`. -See [this blog post](../../../blog/quarto/2026-03-31-typst-books-and-more/) for details on all the Typst improvements. +See [this blog post](/blog/2026-03-31_typst-books-and-more/) for details on all the Typst improvements. ## PDF Accessibility (Experimental) We're rolling out experimental support for PDF accessibility standards in 1.9. The new `pdf-standard` option enables PDF/A archival formats and PDF/UA accessibility compliance for both LaTeX and Typst outputs. Alt text from `fig-alt` attributes now passes through to PDF for screen reader support, and Typst gains support for alt text on cross-referenced equations. -Read more in our [PDF Accessibility and Standards blog post](../../../blog/quarto/2026-03-05-pdf-accessibility-and-standards/) or the documentation for [LaTeX](https://quarto.org/docs/output-formats/pdf-basics.html#pdf-accessibility-standards) and [Typst](https://quarto.org/docs/output-formats/typst.html#pdf-accessibility-standards). +Read more in our [PDF Accessibility and Standards blog post](/blog/2026-03-05_pdf-accessibility-and-standards/) or the documentation for [LaTeX](https://quarto.org/docs/output-formats/pdf-basics.html#pdf-accessibility-standards) and [Typst](https://quarto.org/docs/output-formats/typst.html#pdf-accessibility-standards). ## Output for LLMs diff --git a/content/blog/quarto/2026-03-24-1.9-release/index.qmd b/content/blog/ported/quarto/2026-03-24-1.9-release/index.qmd similarity index 96% rename from content/blog/quarto/2026-03-24-1.9-release/index.qmd rename to content/blog/ported/quarto/2026-03-24-1.9-release/index.qmd index f2f7e2b83..be5320473 100644 --- a/content/blog/quarto/2026-03-24-1.9-release/index.qmd +++ b/content/blog/ported/quarto/2026-03-24-1.9-release/index.qmd @@ -49,13 +49,13 @@ Quarto 1.9 brings substantial improvements to Typst output: - New options: `mathfont`, `codefont`, `linestretch`, `linkcolor`, `citecolor`, `filecolor`, `thanks`, and `abstract-title`. - [Theorem styling](https://quarto.org/docs/output-formats/typst.html#theorems) with four appearance options: `simple`, `fancy`, `clouds`, or `rainbow`. -See [this blog post](/blog/quarto/2026-03-31-typst-books-and-more/) for details on all the Typst improvements. +See [this blog post](/blog/2026-03-31_typst-books-and-more/) for details on all the Typst improvements. ## PDF Accessibility (Experimental) We're rolling out experimental support for PDF accessibility standards in 1.9. The new `pdf-standard` option enables PDF/A archival formats and PDF/UA accessibility compliance for both LaTeX and Typst outputs. Alt text from `fig-alt` attributes now passes through to PDF for screen reader support, and Typst gains support for alt text on cross-referenced equations. -Read more in our [PDF Accessibility and Standards blog post](/blog/quarto/2026-03-05-pdf-accessibility-and-standards/) or the documentation for [LaTeX](https://quarto.org/docs/output-formats/pdf-basics.html#pdf-accessibility-standards) and [Typst](https://quarto.org/docs/output-formats/typst.html#pdf-accessibility-standards). +Read more in our [PDF Accessibility and Standards blog post](/blog/2026-03-05_pdf-accessibility-and-standards/) or the documentation for [LaTeX](https://quarto.org/docs/output-formats/pdf-basics.html#pdf-accessibility-standards) and [Typst](https://quarto.org/docs/output-formats/typst.html#pdf-accessibility-standards). ## Output for LLMs diff --git a/content/blog/quarto/2026-03-24-1.9-release/thumbnail.png b/content/blog/ported/quarto/2026-03-24-1.9-release/thumbnail.png similarity index 100% rename from content/blog/quarto/2026-03-24-1.9-release/thumbnail.png rename to content/blog/ported/quarto/2026-03-24-1.9-release/thumbnail.png diff --git a/content/blog/quarto/2026-03-31-typst-books-and-more/index.md b/content/blog/ported/quarto/2026-03-31-typst-books-and-more/index.md similarity index 100% rename from content/blog/quarto/2026-03-31-typst-books-and-more/index.md rename to content/blog/ported/quarto/2026-03-31-typst-books-and-more/index.md diff --git a/content/blog/quarto/2026-03-31-typst-books-and-more/index.qmd b/content/blog/ported/quarto/2026-03-31-typst-books-and-more/index.qmd similarity index 100% rename from content/blog/quarto/2026-03-31-typst-books-and-more/index.qmd rename to content/blog/ported/quarto/2026-03-31-typst-books-and-more/index.qmd diff --git a/content/blog/quarto/2026-03-31-typst-books-and-more/typst-article-2.png b/content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-article-2.png similarity index 100% rename from content/blog/quarto/2026-03-31-typst-books-and-more/typst-article-2.png rename to content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-article-2.png diff --git a/content/blog/quarto/2026-03-31-typst-books-and-more/typst-article-3.png b/content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-article-3.png similarity index 100% rename from content/blog/quarto/2026-03-31-typst-books-and-more/typst-article-3.png rename to content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-article-3.png diff --git a/content/blog/quarto/2026-03-31-typst-books-and-more/typst-article-landscape.png b/content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-article-landscape.png similarity index 100% rename from content/blog/quarto/2026-03-31-typst-books-and-more/typst-article-landscape.png rename to content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-article-landscape.png diff --git a/content/blog/quarto/2026-03-31-typst-books-and-more/typst-article.png b/content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-article.png similarity index 100% rename from content/blog/quarto/2026-03-31-typst-books-and-more/typst-article.png rename to content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-article.png diff --git a/content/blog/quarto/2026-03-31-typst-books-and-more/typst-book-1.png b/content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-book-1.png similarity index 100% rename from content/blog/quarto/2026-03-31-typst-books-and-more/typst-book-1.png rename to content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-book-1.png diff --git a/content/blog/quarto/2026-03-31-typst-books-and-more/typst-book-2.png b/content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-book-2.png similarity index 100% rename from content/blog/quarto/2026-03-31-typst-books-and-more/typst-book-2.png rename to content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-book-2.png diff --git a/content/blog/quarto/2026-03-31-typst-books-and-more/typst-book-3.png b/content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-book-3.png similarity index 100% rename from content/blog/quarto/2026-03-31-typst-books-and-more/typst-book-3.png rename to content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-book-3.png diff --git a/content/blog/quarto/2026-03-31-typst-books-and-more/typst-book-part-page.png b/content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-book-part-page.png similarity index 100% rename from content/blog/quarto/2026-03-31-typst-books-and-more/typst-book-part-page.png rename to content/blog/ported/quarto/2026-03-31-typst-books-and-more/typst-book-part-page.png diff --git a/content/blog/quarto/2026-04-06-whats-next-quarto-2/index.md b/content/blog/ported/quarto/2026-04-06-whats-next-quarto-2/index.md similarity index 92% rename from content/blog/quarto/2026-04-06-whats-next-quarto-2/index.md rename to content/blog/ported/quarto/2026-04-06-whats-next-quarto-2/index.md index e2bd7fdcf..6749daa32 100644 --- a/content/blog/quarto/2026-04-06-whats-next-quarto-2/index.md +++ b/content/blog/ported/quarto/2026-04-06-whats-next-quarto-2/index.md @@ -24,7 +24,7 @@ slug: whats-next-quarto-2 --- -We're excited to share an early look at Quarto 2. You might be aware that we [recently released Quarto 1.9](../../../blog/quarto/2026-03-24-1.9-release/), with support for long-standing requests such as PDF accessibility. Quarto is an excellent choice for authors of scientific and technical documents, and the amount and quality of the work you create with it is genuinely humbling for us. Before anything else, we want to thank you for using Quarto; you're all quite literally the reason we build it. +We're excited to share an early look at Quarto 2. You might be aware that we [recently released Quarto 1.9](/blog/2026-03-24_1.9-release/), with support for long-standing requests such as PDF accessibility. Quarto is an excellent choice for authors of scientific and technical documents, and the amount and quality of the work you create with it is genuinely humbling for us. Before anything else, we want to thank you for using Quarto; you're all quite literally the reason we build it. **Quarto 2 is a full rewrite of the Quarto CLI, written from the ground up in Rust** to better support your existing use cases, and enable a number of new, exciting use cases. Most importantly, Quarto 2 will include a built-in collaborative editor, and we plan on adding support for collaborative writing in Posit's commercial products such as Posit Cloud, Connect, and Workbench. With that said, the design of those integrations is still taking shape. diff --git a/content/blog/quarto/2026-04-06-whats-next-quarto-2/index.qmd b/content/blog/ported/quarto/2026-04-06-whats-next-quarto-2/index.qmd similarity index 92% rename from content/blog/quarto/2026-04-06-whats-next-quarto-2/index.qmd rename to content/blog/ported/quarto/2026-04-06-whats-next-quarto-2/index.qmd index d9f7b1404..601875532 100644 --- a/content/blog/quarto/2026-04-06-whats-next-quarto-2/index.qmd +++ b/content/blog/ported/quarto/2026-04-06-whats-next-quarto-2/index.qmd @@ -22,7 +22,7 @@ tags: slug: whats-next-quarto-2 --- -We're excited to share an early look at Quarto 2. You might be aware that we [recently released Quarto 1.9](/blog/quarto/2026-03-24-1.9-release/), with support for long-standing requests such as PDF accessibility. Quarto is an excellent choice for authors of scientific and technical documents, and the amount and quality of the work you create with it is genuinely humbling for us. Before anything else, we want to thank you for using Quarto; you're all quite literally the reason we build it. +We're excited to share an early look at Quarto 2. You might be aware that we [recently released Quarto 1.9](/blog/2026-03-24_1.9-release/), with support for long-standing requests such as PDF accessibility. Quarto is an excellent choice for authors of scientific and technical documents, and the amount and quality of the work you create with it is genuinely humbling for us. Before anything else, we want to thank you for using Quarto; you're all quite literally the reason we build it. **Quarto 2 is a full rewrite of the Quarto CLI, written from the ground up in Rust** to better support your existing use cases, and enable a number of new, exciting use cases. Most importantly, Quarto 2 will include a built-in collaborative editor, and we plan on adding support for collaborative writing in Posit's commercial products such as Posit Cloud, Connect, and Workbench. With that said, the design of those integrations is still taking shape. diff --git a/content/blog/quarto/2026-04-06-whats-next-quarto-2/thumbnail.png b/content/blog/ported/quarto/2026-04-06-whats-next-quarto-2/thumbnail.png similarity index 100% rename from content/blog/quarto/2026-04-06-whats-next-quarto-2/thumbnail.png rename to content/blog/ported/quarto/2026-04-06-whats-next-quarto-2/thumbnail.png diff --git a/content/blog/quarto/2026-04-14-chrome-headless-shell/index.md b/content/blog/ported/quarto/2026-04-14-chrome-headless-shell/index.md similarity index 100% rename from content/blog/quarto/2026-04-14-chrome-headless-shell/index.md rename to content/blog/ported/quarto/2026-04-14-chrome-headless-shell/index.md diff --git a/content/blog/quarto/2026-04-14-chrome-headless-shell/index.qmd b/content/blog/ported/quarto/2026-04-14-chrome-headless-shell/index.qmd similarity index 100% rename from content/blog/quarto/2026-04-14-chrome-headless-shell/index.qmd rename to content/blog/ported/quarto/2026-04-14-chrome-headless-shell/index.qmd diff --git a/content/blog/quarto/2026-04-14-chrome-headless-shell/thumbnail.png b/content/blog/ported/quarto/2026-04-14-chrome-headless-shell/thumbnail.png similarity index 100% rename from content/blog/quarto/2026-04-14-chrome-headless-shell/thumbnail.png rename to content/blog/ported/quarto/2026-04-14-chrome-headless-shell/thumbnail.png diff --git a/content/blog/quarto/2026-05-07-quarto-2-parsing/index.md b/content/blog/ported/quarto/2026-05-07-quarto-2-parsing/index.md similarity index 100% rename from content/blog/quarto/2026-05-07-quarto-2-parsing/index.md rename to content/blog/ported/quarto/2026-05-07-quarto-2-parsing/index.md diff --git a/content/blog/quarto/2026-05-07-quarto-2-parsing/index.qmd b/content/blog/ported/quarto/2026-05-07-quarto-2-parsing/index.qmd similarity index 100% rename from content/blog/quarto/2026-05-07-quarto-2-parsing/index.qmd rename to content/blog/ported/quarto/2026-05-07-quarto-2-parsing/index.qmd diff --git a/content/blog/quarto/2026-05-07-quarto-2-parsing/thumbnail.png b/content/blog/ported/quarto/2026-05-07-quarto-2-parsing/thumbnail.png similarity index 100% rename from content/blog/quarto/2026-05-07-quarto-2-parsing/thumbnail.png rename to content/blog/ported/quarto/2026-05-07-quarto-2-parsing/thumbnail.png diff --git a/content/blog/quarto/_metadata.yml b/content/blog/ported/quarto/_metadata.yml similarity index 100% rename from content/blog/quarto/_metadata.yml rename to content/blog/ported/quarto/_metadata.yml diff --git a/content/blog/quarto/_quarto-1.3-feature.qmd b/content/blog/ported/quarto/_quarto-1.3-feature.qmd similarity index 100% rename from content/blog/quarto/_quarto-1.3-feature.qmd rename to content/blog/ported/quarto/_quarto-1.3-feature.qmd diff --git a/content/blog/quarto/_quarto-1.9-feature.qmd b/content/blog/ported/quarto/_quarto-1.9-feature.qmd similarity index 100% rename from content/blog/quarto/_quarto-1.9-feature.qmd rename to content/blog/ported/quarto/_quarto-1.9-feature.qmd diff --git a/content/blog/quarto/references.bib b/content/blog/ported/quarto/references.bib similarity index 100% rename from content/blog/quarto/references.bib rename to content/blog/ported/quarto/references.bib diff --git a/content/blog/rstudio/2012-05-24-nyc-meetup-r-markdown/index.md b/content/blog/ported/rstudio/2012-05-24-nyc-meetup-r-markdown/index.md similarity index 100% rename from content/blog/rstudio/2012-05-24-nyc-meetup-r-markdown/index.md rename to content/blog/ported/rstudio/2012-05-24-nyc-meetup-r-markdown/index.md diff --git a/content/blog/rstudio/2012-05-24-nyc-meetup-r-markdown/thumbnail.jpg b/content/blog/ported/rstudio/2012-05-24-nyc-meetup-r-markdown/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2012-05-24-nyc-meetup-r-markdown/thumbnail.jpg rename to content/blog/ported/rstudio/2012-05-24-nyc-meetup-r-markdown/thumbnail.jpg diff --git a/content/blog/rstudio/2012-05-24-nyc-meetup-r-markdown/thumbnail.jpg.original b/content/blog/ported/rstudio/2012-05-24-nyc-meetup-r-markdown/thumbnail.jpg.original similarity index 100% rename from content/blog/rstudio/2012-05-24-nyc-meetup-r-markdown/thumbnail.jpg.original rename to content/blog/ported/rstudio/2012-05-24-nyc-meetup-r-markdown/thumbnail.jpg.original diff --git a/content/blog/rstudio/2012-05-25-mathjax-syntax-change/index.md b/content/blog/ported/rstudio/2012-05-25-mathjax-syntax-change/index.md similarity index 100% rename from content/blog/rstudio/2012-05-25-mathjax-syntax-change/index.md rename to content/blog/ported/rstudio/2012-05-25-mathjax-syntax-change/index.md diff --git a/content/blog/rstudio/2012-06-04-announcing-rpubs/index.md b/content/blog/ported/rstudio/2012-06-04-announcing-rpubs/index.md similarity index 100% rename from content/blog/rstudio/2012-06-04-announcing-rpubs/index.md rename to content/blog/ported/rstudio/2012-06-04-announcing-rpubs/index.md diff --git a/content/blog/rstudio/2012-08-20-welcome-hadley-winston-and-garrett/index.md b/content/blog/ported/rstudio/2012-08-20-welcome-hadley-winston-and-garrett/index.md similarity index 100% rename from content/blog/rstudio/2012-08-20-welcome-hadley-winston-and-garrett/index.md rename to content/blog/ported/rstudio/2012-08-20-welcome-hadley-winston-and-garrett/index.md diff --git a/content/blog/rstudio/2012-09-07-ggplot2-0-9-2/index.md b/content/blog/ported/rstudio/2012-09-07-ggplot2-0-9-2/index.md similarity index 100% rename from content/blog/rstudio/2012-09-07-ggplot2-0-9-2/index.md rename to content/blog/ported/rstudio/2012-09-07-ggplot2-0-9-2/index.md diff --git a/content/blog/rstudio/2012-09-16-devtools-0-8/index.md b/content/blog/ported/rstudio/2012-09-16-devtools-0-8/index.md similarity index 100% rename from content/blog/rstudio/2012-09-16-devtools-0-8/index.md rename to content/blog/ported/rstudio/2012-09-16-devtools-0-8/index.md diff --git a/content/blog/rstudio/2012-10-01-where-in-the-world/index.md b/content/blog/ported/rstudio/2012-10-01-where-in-the-world/index.md similarity index 100% rename from content/blog/rstudio/2012-10-01-where-in-the-world/index.md rename to content/blog/ported/rstudio/2012-10-01-where-in-the-world/index.md diff --git a/content/blog/rstudio/2012-10-08-lubridate-1-2-0-now-on-cran/index.md b/content/blog/ported/rstudio/2012-10-08-lubridate-1-2-0-now-on-cran/index.md similarity index 100% rename from content/blog/rstudio/2012-10-08-lubridate-1-2-0-now-on-cran/index.md rename to content/blog/ported/rstudio/2012-10-08-lubridate-1-2-0-now-on-cran/index.md diff --git a/content/blog/rstudio/2012-10-14-httr-0-2/index.md b/content/blog/ported/rstudio/2012-10-14-httr-0-2/index.md similarity index 100% rename from content/blog/rstudio/2012-10-14-httr-0-2/index.md rename to content/blog/ported/rstudio/2012-10-14-httr-0-2/index.md diff --git a/content/blog/rstudio/2012-11-08-introducing-shiny/index.md b/content/blog/ported/rstudio/2012-11-08-introducing-shiny/index.md similarity index 100% rename from content/blog/rstudio/2012-11-08-introducing-shiny/index.md rename to content/blog/ported/rstudio/2012-11-08-introducing-shiny/index.md diff --git a/content/blog/rstudio/2012-12-04-shiny-update/index.md b/content/blog/ported/rstudio/2012-12-04-shiny-update/index.md similarity index 100% rename from content/blog/rstudio/2012-12-04-shiny-update/index.md rename to content/blog/ported/rstudio/2012-12-04-shiny-update/index.md diff --git a/content/blog/rstudio/2012-12-06-ggplot2-plyr-release/index.md b/content/blog/ported/rstudio/2012-12-06-ggplot2-plyr-release/index.md similarity index 100% rename from content/blog/rstudio/2012-12-06-ggplot2-plyr-release/index.md rename to content/blog/ported/rstudio/2012-12-06-ggplot2-plyr-release/index.md diff --git a/content/blog/rstudio/2013-01-22-shiny-server-now-available/index.md b/content/blog/ported/rstudio/2013-01-22-shiny-server-now-available/index.md similarity index 100% rename from content/blog/rstudio/2013-01-22-shiny-server-now-available/index.md rename to content/blog/ported/rstudio/2013-01-22-shiny-server-now-available/index.md diff --git a/content/blog/rstudio/2013-01-23-devtools-1-0/index.md b/content/blog/ported/rstudio/2013-01-23-devtools-1-0/index.md similarity index 100% rename from content/blog/rstudio/2013-01-23-devtools-1-0/index.md rename to content/blog/ported/rstudio/2013-01-23-devtools-1-0/index.md diff --git a/content/blog/rstudio/2013-01-25-shiny-0-3-0-released-2/index.md b/content/blog/ported/rstudio/2013-01-25-shiny-0-3-0-released-2/index.md similarity index 100% rename from content/blog/rstudio/2013-01-25-shiny-0-3-0-released-2/index.md rename to content/blog/ported/rstudio/2013-01-25-shiny-0-3-0-released-2/index.md diff --git a/content/blog/rstudio/2013-02-22-shiny-0-4-0-now-available/index.md b/content/blog/ported/rstudio/2013-02-22-shiny-0-4-0-now-available/index.md similarity index 100% rename from content/blog/rstudio/2013-02-22-shiny-0-4-0-now-available/index.md rename to content/blog/ported/rstudio/2013-02-22-shiny-0-4-0-now-available/index.md diff --git a/content/blog/rstudio/2013-04-17-devtools-1-2/index.md b/content/blog/ported/rstudio/2013-04-17-devtools-1-2/index.md similarity index 100% rename from content/blog/rstudio/2013-04-17-devtools-1-2/index.md rename to content/blog/ported/rstudio/2013-04-17-devtools-1-2/index.md diff --git a/content/blog/rstudio/2013-06-10-rstudio-cran-mirror/index.md b/content/blog/ported/rstudio/2013-06-10-rstudio-cran-mirror/index.md similarity index 100% rename from content/blog/rstudio/2013-06-10-rstudio-cran-mirror/index.md rename to content/blog/ported/rstudio/2013-06-10-rstudio-cran-mirror/index.md diff --git a/content/blog/rstudio/2013-11-14-announcing-packrat/index.md b/content/blog/ported/rstudio/2013-11-14-announcing-packrat/index.md similarity index 100% rename from content/blog/rstudio/2013-11-14-announcing-packrat/index.md rename to content/blog/ported/rstudio/2013-11-14-announcing-packrat/index.md diff --git a/content/blog/rstudio/2013-11-14-announcing-packrat/jurissa-yanoria-sd0fDXBaKqQ-unsplash.jpg b/content/blog/ported/rstudio/2013-11-14-announcing-packrat/jurissa-yanoria-sd0fDXBaKqQ-unsplash.jpg similarity index 100% rename from content/blog/rstudio/2013-11-14-announcing-packrat/jurissa-yanoria-sd0fDXBaKqQ-unsplash.jpg rename to content/blog/ported/rstudio/2013-11-14-announcing-packrat/jurissa-yanoria-sd0fDXBaKqQ-unsplash.jpg diff --git a/content/blog/rstudio/2013-11-14-announcing-packrat/jurissa-yanoria-sd0fDXBaKqQ-unsplash.jpg.original b/content/blog/ported/rstudio/2013-11-14-announcing-packrat/jurissa-yanoria-sd0fDXBaKqQ-unsplash.jpg.original similarity index 100% rename from content/blog/rstudio/2013-11-14-announcing-packrat/jurissa-yanoria-sd0fDXBaKqQ-unsplash.jpg.original rename to content/blog/ported/rstudio/2013-11-14-announcing-packrat/jurissa-yanoria-sd0fDXBaKqQ-unsplash.jpg.original diff --git a/content/blog/rstudio/2013-11-14-announcing-packrat/thumbnail.jpg b/content/blog/ported/rstudio/2013-11-14-announcing-packrat/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2013-11-14-announcing-packrat/thumbnail.jpg rename to content/blog/ported/rstudio/2013-11-14-announcing-packrat/thumbnail.jpg diff --git a/content/blog/rstudio/2013-11-14-announcing-packrat/thumbnail.jpg.original b/content/blog/ported/rstudio/2013-11-14-announcing-packrat/thumbnail.jpg.original similarity index 100% rename from content/blog/rstudio/2013-11-14-announcing-packrat/thumbnail.jpg.original rename to content/blog/ported/rstudio/2013-11-14-announcing-packrat/thumbnail.jpg.original diff --git a/content/blog/rstudio/2013-11-15-shiny-0-8-0-released/index.md b/content/blog/ported/rstudio/2013-11-15-shiny-0-8-0-released/index.md similarity index 100% rename from content/blog/rstudio/2013-11-15-shiny-0-8-0-released/index.md rename to content/blog/ported/rstudio/2013-11-15-shiny-0-8-0-released/index.md diff --git a/content/blog/rstudio/2013-11-27-devtools-1-4/index.md b/content/blog/ported/rstudio/2013-11-27-devtools-1-4/index.md similarity index 100% rename from content/blog/rstudio/2013-11-27-devtools-1-4/index.md rename to content/blog/ported/rstudio/2013-11-27-devtools-1-4/index.md diff --git a/content/blog/rstudio/2013-12-03-shiny-server-0-4/index.md b/content/blog/ported/rstudio/2013-12-03-shiny-server-0-4/index.md similarity index 100% rename from content/blog/rstudio/2013-12-03-shiny-server-0-4/index.md rename to content/blog/ported/rstudio/2013-12-03-shiny-server-0-4/index.md diff --git a/content/blog/rstudio/2013-12-09-roxygen2-3-0-0/index.md b/content/blog/ported/rstudio/2013-12-09-roxygen2-3-0-0/index.md similarity index 100% rename from content/blog/rstudio/2013-12-09-roxygen2-3-0-0/index.md rename to content/blog/ported/rstudio/2013-12-09-roxygen2-3-0-0/index.md diff --git a/content/blog/rstudio/2014-01-17-introducing-dplyr/index.md b/content/blog/ported/rstudio/2014-01-17-introducing-dplyr/index.md similarity index 100% rename from content/blog/rstudio/2014-01-17-introducing-dplyr/index.md rename to content/blog/ported/rstudio/2014-01-17-introducing-dplyr/index.md diff --git a/content/blog/rstudio/2014-01-30-dplyr-0-1-1/index.md b/content/blog/ported/rstudio/2014-01-30-dplyr-0-1-1/index.md similarity index 100% rename from content/blog/rstudio/2014-01-30-dplyr-0-1-1/index.md rename to content/blog/ported/rstudio/2014-01-30-dplyr-0-1-1/index.md diff --git a/content/blog/rstudio/2014-01-30-roxygen2-3-1-0/index.md b/content/blog/ported/rstudio/2014-01-30-roxygen2-3-1-0/index.md similarity index 100% rename from content/blog/rstudio/2014-01-30-roxygen2-3-1-0/index.md rename to content/blog/ported/rstudio/2014-01-30-roxygen2-3-1-0/index.md diff --git a/content/blog/rstudio/2014-02-25-dplyr-0-1-2/index.md b/content/blog/ported/rstudio/2014-02-25-dplyr-0-1-2/index.md similarity index 100% rename from content/blog/rstudio/2014-02-25-dplyr-0-1-2/index.md rename to content/blog/ported/rstudio/2014-02-25-dplyr-0-1-2/index.md diff --git a/content/blog/rstudio/2014-02-25-testthat-0-8/index.md b/content/blog/ported/rstudio/2014-02-25-testthat-0-8/index.md similarity index 100% rename from content/blog/rstudio/2014-02-25-testthat-0-8/index.md rename to content/blog/ported/rstudio/2014-02-25-testthat-0-8/index.md diff --git a/content/blog/rstudio/2014-03-16-dplyr-0-1-3/index.md b/content/blog/ported/rstudio/2014-03-16-dplyr-0-1-3/index.md similarity index 100% rename from content/blog/rstudio/2014-03-16-dplyr-0-1-3/index.md rename to content/blog/ported/rstudio/2014-03-16-dplyr-0-1-3/index.md diff --git a/content/blog/rstudio/2014-03-21-httr-0-3/index.md b/content/blog/ported/rstudio/2014-03-21-httr-0-3/index.md similarity index 100% rename from content/blog/rstudio/2014-03-21-httr-0-3/index.md rename to content/blog/ported/rstudio/2014-03-21-httr-0-3/index.md diff --git a/content/blog/rstudio/2014-03-27-shiny-website-and-0-9/index.md b/content/blog/ported/rstudio/2014-03-27-shiny-website-and-0-9/index.md similarity index 100% rename from content/blog/rstudio/2014-03-27-shiny-website-and-0-9/index.md rename to content/blog/ported/rstudio/2014-03-27-shiny-website-and-0-9/index.md diff --git a/content/blog/rstudio/2014-04-08-devtools-1-5/index.md b/content/blog/ported/rstudio/2014-04-08-devtools-1-5/index.md similarity index 100% rename from content/blog/rstudio/2014-04-08-devtools-1-5/index.md rename to content/blog/ported/rstudio/2014-04-08-devtools-1-5/index.md diff --git a/content/blog/rstudio/2014-05-07-new-shiny-article-style-your-apps-with-css/index.md b/content/blog/ported/rstudio/2014-05-07-new-shiny-article-style-your-apps-with-css/index.md similarity index 100% rename from content/blog/rstudio/2014-05-07-new-shiny-article-style-your-apps-with-css/index.md rename to content/blog/ported/rstudio/2014-05-07-new-shiny-article-style-your-apps-with-css/index.md diff --git a/content/blog/rstudio/2014-05-09-reshape2-1-4/index.md b/content/blog/ported/rstudio/2014-05-09-reshape2-1-4/index.md similarity index 100% rename from content/blog/rstudio/2014-05-09-reshape2-1-4/index.md rename to content/blog/ported/rstudio/2014-05-09-reshape2-1-4/index.md diff --git a/content/blog/rstudio/2014-05-19-roxygen2-4-0-1/index.md b/content/blog/ported/rstudio/2014-05-19-roxygen2-4-0-1/index.md similarity index 100% rename from content/blog/rstudio/2014-05-19-roxygen2-4-0-1/index.md rename to content/blog/ported/rstudio/2014-05-19-roxygen2-4-0-1/index.md diff --git a/content/blog/rstudio/2014-05-21-dplyr-0-2/index.md b/content/blog/ported/rstudio/2014-05-21-dplyr-0-2/index.md similarity index 100% rename from content/blog/rstudio/2014-05-21-dplyr-0-2/index.md rename to content/blog/ported/rstudio/2014-05-21-dplyr-0-2/index.md diff --git a/content/blog/rstudio/2014-05-28-comment-sections-and-help-instructions-at-the-shiny-dev-center/index.md b/content/blog/ported/rstudio/2014-05-28-comment-sections-and-help-instructions-at-the-shiny-dev-center/index.md similarity index 100% rename from content/blog/rstudio/2014-05-28-comment-sections-and-help-instructions-at-the-shiny-dev-center/index.md rename to content/blog/ported/rstudio/2014-05-28-comment-sections-and-help-instructions-at-the-shiny-dev-center/index.md diff --git a/content/blog/rstudio/2014-06-18-r-markdown-v2/index.md b/content/blog/ported/rstudio/2014-06-18-r-markdown-v2/index.md similarity index 100% rename from content/blog/rstudio/2014-06-18-r-markdown-v2/index.md rename to content/blog/ported/rstudio/2014-06-18-r-markdown-v2/index.md diff --git a/content/blog/rstudio/2014-06-19-interactive-documents-an-incredibly-easy-way-to-use-shiny/index.md b/content/blog/ported/rstudio/2014-06-19-interactive-documents-an-incredibly-easy-way-to-use-shiny/index.md similarity index 100% rename from content/blog/rstudio/2014-06-19-interactive-documents-an-incredibly-easy-way-to-use-shiny/index.md rename to content/blog/ported/rstudio/2014-06-19-interactive-documents-an-incredibly-easy-way-to-use-shiny/index.md diff --git a/content/blog/rstudio/2014-06-20-shiny-0-10/index.md b/content/blog/ported/rstudio/2014-06-20-shiny-0-10/index.md similarity index 100% rename from content/blog/rstudio/2014-06-20-shiny-0-10/index.md rename to content/blog/ported/rstudio/2014-06-20-shiny-0-10/index.md diff --git a/content/blog/rstudio/2014-06-23-introducing-ggvis/index.md b/content/blog/ported/rstudio/2014-06-23-introducing-ggvis/index.md similarity index 90% rename from content/blog/rstudio/2014-06-23-introducing-ggvis/index.md rename to content/blog/ported/rstudio/2014-06-23-introducing-ggvis/index.md index 6ffcc5e3c..b3cf6b05f 100644 --- a/content/blog/rstudio/2014-06-23-introducing-ggvis/index.md +++ b/content/blog/ported/rstudio/2014-06-23-introducing-ggvis/index.md @@ -34,7 +34,7 @@ Our first public release of [ggvis](http://ggvis.rstudio.com/), version 0.3, is ggvis integrates with Shiny, so you can use dynamic, interactive ggvis graphics in Shiny applications. We hope that the combination of ggvis and Shiny will make it easy for you to create applications for interactive data exploration and presentation. ggvis plots are inherently reactive and they render in the browser, so they can take advantage of the capabilities provided by modern web browsers. You can use Shiny's interactive components for interactivity as well as more direct forms of interaction with the plot, such as hovering, clicking, and brushing. -ggvis works seamlessly with [R Markdown v2](/blog/rstudio/2014-06-18-r-markdown-v2/) and [interactive documents](/blog/rstudio/2014-06-19-interactive-documents-an-incredibly-easy-way-to-use-shiny/), so you can easily add interactive graphics to your R Markdown documents: +ggvis works seamlessly with [R Markdown v2](/blog/2014-06-18_r-markdown-v2/) and [interactive documents](/blog/2014-06-19_interactive-documents-an-incredibly-easy-way-to-use-shiny/), so you can easily add interactive graphics to your R Markdown documents: ![shiny-doc-ggvis](https://rstudioblog.files.wordpress.com/2014/06/shiny-doc-ggvis1.png) ![ggvis_density](https://rstudioblog.files.wordpress.com/2014/06/ggvis_density.gif) diff --git a/content/blog/rstudio/2014-06-30-shiny-cheat-sheet/index.md b/content/blog/ported/rstudio/2014-06-30-shiny-cheat-sheet/index.md similarity index 100% rename from content/blog/rstudio/2014-06-30-shiny-cheat-sheet/index.md rename to content/blog/ported/rstudio/2014-06-30-shiny-cheat-sheet/index.md diff --git a/content/blog/rstudio/2014-07-21-master-interactive-documents-at-the-shiny-dev-center/index.md b/content/blog/ported/rstudio/2014-07-21-master-interactive-documents-at-the-shiny-dev-center/index.md similarity index 100% rename from content/blog/rstudio/2014-07-21-master-interactive-documents-at-the-shiny-dev-center/index.md rename to content/blog/ported/rstudio/2014-07-21-master-interactive-documents-at-the-shiny-dev-center/index.md diff --git a/content/blog/rstudio/2014-07-22-announcing-packrat-v0-4/index.md b/content/blog/ported/rstudio/2014-07-22-announcing-packrat-v0-4/index.md similarity index 100% rename from content/blog/rstudio/2014-07-22-announcing-packrat-v0-4/index.md rename to content/blog/ported/rstudio/2014-07-22-announcing-packrat-v0-4/index.md diff --git a/content/blog/rstudio/2014-07-22-introducing-tidyr/index.md b/content/blog/ported/rstudio/2014-07-22-introducing-tidyr/index.md similarity index 100% rename from content/blog/rstudio/2014-07-22-introducing-tidyr/index.md rename to content/blog/ported/rstudio/2014-07-22-introducing-tidyr/index.md diff --git a/content/blog/rstudio/2014-07-23-new-data-packages/index.md b/content/blog/ported/rstudio/2014-07-23-new-data-packages/index.md similarity index 100% rename from content/blog/rstudio/2014-07-23-new-data-packages/index.md rename to content/blog/ported/rstudio/2014-07-23-new-data-packages/index.md diff --git a/content/blog/rstudio/2014-07-31-httr-0-4/index.md b/content/blog/ported/rstudio/2014-07-31-httr-0-4/index.md similarity index 100% rename from content/blog/rstudio/2014-07-31-httr-0-4/index.md rename to content/blog/ported/rstudio/2014-07-31-httr-0-4/index.md diff --git a/content/blog/rstudio/2014-08-01-shiny-0-10-1/index.md b/content/blog/ported/rstudio/2014-08-01-shiny-0-10-1/index.md similarity index 100% rename from content/blog/rstudio/2014-08-01-shiny-0-10-1/index.md rename to content/blog/ported/rstudio/2014-08-01-shiny-0-10-1/index.md diff --git a/content/blog/rstudio/2014-08-01-the-r-markdown-cheat-sheet/index.md b/content/blog/ported/rstudio/2014-08-01-the-r-markdown-cheat-sheet/index.md similarity index 100% rename from content/blog/rstudio/2014-08-01-the-r-markdown-cheat-sheet/index.md rename to content/blog/ported/rstudio/2014-08-01-the-r-markdown-cheat-sheet/index.md diff --git a/content/blog/rstudio/2014-09-03-httr-0-5/index.md b/content/blog/ported/rstudio/2014-09-03-httr-0-5/index.md similarity index 100% rename from content/blog/rstudio/2014-09-03-httr-0-5/index.md rename to content/blog/ported/rstudio/2014-09-03-httr-0-5/index.md diff --git a/content/blog/rstudio/2014-09-05-packrat-on-cran/index.md b/content/blog/ported/rstudio/2014-09-05-packrat-on-cran/index.md similarity index 100% rename from content/blog/rstudio/2014-09-05-packrat-on-cran/index.md rename to content/blog/ported/rstudio/2014-09-05-packrat-on-cran/index.md diff --git a/content/blog/rstudio/2014-09-08-track-how-visitors-use-your-shiny-app-with-google-analytics/index.md b/content/blog/ported/rstudio/2014-09-08-track-how-visitors-use-your-shiny-app-with-google-analytics/index.md similarity index 100% rename from content/blog/rstudio/2014-09-08-track-how-visitors-use-your-shiny-app-with-google-analytics/index.md rename to content/blog/ported/rstudio/2014-09-08-track-how-visitors-use-your-shiny-app-with-google-analytics/index.md diff --git a/content/blog/rstudio/2014-09-23-testthat-0-9/index.md b/content/blog/ported/rstudio/2014-09-23-testthat-0-9/index.md similarity index 100% rename from content/blog/rstudio/2014-09-23-testthat-0-9/index.md rename to content/blog/ported/rstudio/2014-09-23-testthat-0-9/index.md diff --git a/content/blog/rstudio/2014-10-02-devtools-1-6/index.md b/content/blog/ported/rstudio/2014-10-02-devtools-1-6/index.md similarity index 100% rename from content/blog/rstudio/2014-10-02-devtools-1-6/index.md rename to content/blog/ported/rstudio/2014-10-02-devtools-1-6/index.md diff --git a/content/blog/rstudio/2014-10-02-shiny-0-10-2/index.md b/content/blog/ported/rstudio/2014-10-02-shiny-0-10-2/index.md similarity index 100% rename from content/blog/rstudio/2014-10-02-shiny-0-10-2/index.md rename to content/blog/ported/rstudio/2014-10-02-shiny-0-10-2/index.md diff --git a/content/blog/rstudio/2014-10-13-dplyr-0-3-2/index.md b/content/blog/ported/rstudio/2014-10-13-dplyr-0-3-2/index.md similarity index 100% rename from content/blog/rstudio/2014-10-13-dplyr-0-3-2/index.md rename to content/blog/ported/rstudio/2014-10-13-dplyr-0-3-2/index.md diff --git a/content/blog/rstudio/2014-10-13-ggvis-0-4/index.md b/content/blog/ported/rstudio/2014-10-13-ggvis-0-4/index.md similarity index 100% rename from content/blog/rstudio/2014-10-13-ggvis-0-4/index.md rename to content/blog/ported/rstudio/2014-10-13-ggvis-0-4/index.md diff --git a/content/blog/rstudio/2014-10-25-rsqlite-1-0-0/index.md b/content/blog/ported/rstudio/2014-10-25-rsqlite-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2014-10-25-rsqlite-1-0-0/index.md rename to content/blog/ported/rstudio/2014-10-25-rsqlite-1-0-0/index.md diff --git a/content/blog/rstudio/2014-11-06-introduction-to-data-science-with-r-video-workshop/index.md b/content/blog/ported/rstudio/2014-11-06-introduction-to-data-science-with-r-video-workshop/index.md similarity index 100% rename from content/blog/rstudio/2014-11-06-introduction-to-data-science-with-r-video-workshop/index.md rename to content/blog/ported/rstudio/2014-11-06-introduction-to-data-science-with-r-video-workshop/index.md diff --git a/content/blog/rstudio/2014-11-24-rvest-easy-web-scraping-with-r/index.md b/content/blog/ported/rstudio/2014-11-24-rvest-easy-web-scraping-with-r/index.md similarity index 100% rename from content/blog/rstudio/2014-11-24-rvest-easy-web-scraping-with-r/index.md rename to content/blog/ported/rstudio/2014-11-24-rvest-easy-web-scraping-with-r/index.md diff --git a/content/blog/rstudio/2014-12-01-magrittr-1-5/index.md b/content/blog/ported/rstudio/2014-12-01-magrittr-1-5/index.md similarity index 100% rename from content/blog/rstudio/2014-12-01-magrittr-1-5/index.md rename to content/blog/ported/rstudio/2014-12-01-magrittr-1-5/index.md diff --git a/content/blog/rstudio/2014-12-08-tidyr-0-2-0/index.md b/content/blog/ported/rstudio/2014-12-08-tidyr-0-2-0/index.md similarity index 100% rename from content/blog/rstudio/2014-12-08-tidyr-0-2-0/index.md rename to content/blog/ported/rstudio/2014-12-08-tidyr-0-2-0/index.md diff --git a/content/blog/rstudio/2014-12-14-httr-0-6-0/index.md b/content/blog/ported/rstudio/2014-12-14-httr-0-6-0/index.md similarity index 100% rename from content/blog/rstudio/2014-12-14-httr-0-6-0/index.md rename to content/blog/ported/rstudio/2014-12-14-httr-0-6-0/index.md diff --git a/content/blog/rstudio/2014-12-18-htmlwidgets-javascript-data-visualization-for-r/index.md b/content/blog/ported/rstudio/2014-12-18-htmlwidgets-javascript-data-visualization-for-r/index.md similarity index 100% rename from content/blog/rstudio/2014-12-18-htmlwidgets-javascript-data-visualization-for-r/index.md rename to content/blog/ported/rstudio/2014-12-18-htmlwidgets-javascript-data-visualization-for-r/index.md diff --git a/content/blog/rstudio/2015-01-09-dplyr-0-4-0/index.md b/content/blog/ported/rstudio/2015-01-09-dplyr-0-4-0/index.md similarity index 100% rename from content/blog/rstudio/2015-01-09-dplyr-0-4-0/index.md rename to content/blog/ported/rstudio/2015-01-09-dplyr-0-4-0/index.md diff --git a/content/blog/rstudio/2015-01-09-ggplot2-updates/index.md b/content/blog/ported/rstudio/2015-01-09-ggplot2-updates/index.md similarity index 100% rename from content/blog/rstudio/2015-01-09-ggplot2-updates/index.md rename to content/blog/ported/rstudio/2015-01-09-ggplot2-updates/index.md diff --git a/content/blog/rstudio/2015-01-09-rmysql-0-1-0/index.md b/content/blog/ported/rstudio/2015-01-09-rmysql-0-1-0/index.md similarity index 100% rename from content/blog/rstudio/2015-01-09-rmysql-0-1-0/index.md rename to content/blog/ported/rstudio/2015-01-09-rmysql-0-1-0/index.md diff --git a/content/blog/rstudio/2015-01-23-shiny-0-11-themes-and-dashboard/index.md b/content/blog/ported/rstudio/2015-01-23-shiny-0-11-themes-and-dashboard/index.md similarity index 100% rename from content/blog/rstudio/2015-01-23-shiny-0-11-themes-and-dashboard/index.md rename to content/blog/ported/rstudio/2015-01-23-shiny-0-11-themes-and-dashboard/index.md diff --git a/content/blog/rstudio/2015-02-11-epoch-rmysql/index.md b/content/blog/ported/rstudio/2015-02-11-epoch-rmysql/index.md similarity index 100% rename from content/blog/rstudio/2015-02-11-epoch-rmysql/index.md rename to content/blog/ported/rstudio/2015-02-11-epoch-rmysql/index.md diff --git a/content/blog/rstudio/2015-03-04-haven-0-1-0/index.md b/content/blog/ported/rstudio/2015-03-04-haven-0-1-0/index.md similarity index 100% rename from content/blog/rstudio/2015-03-04-haven-0-1-0/index.md rename to content/blog/ported/rstudio/2015-03-04-haven-0-1-0/index.md diff --git a/content/blog/rstudio/2015-03-12-package-development-cheatsheet-plus-chinese-translations/index.md b/content/blog/ported/rstudio/2015-03-12-package-development-cheatsheet-plus-chinese-translations/index.md similarity index 100% rename from content/blog/rstudio/2015-03-12-package-development-cheatsheet-plus-chinese-translations/index.md rename to content/blog/ported/rstudio/2015-03-12-package-development-cheatsheet-plus-chinese-translations/index.md diff --git a/content/blog/rstudio/2015-03-30-data-visualization-cheatsheet-plus-spanish-translations/index.md b/content/blog/ported/rstudio/2015-03-30-data-visualization-cheatsheet-plus-spanish-translations/index.md similarity index 100% rename from content/blog/rstudio/2015-03-30-data-visualization-cheatsheet-plus-spanish-translations/index.md rename to content/blog/ported/rstudio/2015-03-30-data-visualization-cheatsheet-plus-spanish-translations/index.md diff --git a/content/blog/rstudio/2015-04-07-design-patterns-for-action-buttons/index.md b/content/blog/ported/rstudio/2015-04-07-design-patterns-for-action-buttons/index.md similarity index 100% rename from content/blog/rstudio/2015-04-07-design-patterns-for-action-buttons/index.md rename to content/blog/ported/rstudio/2015-04-07-design-patterns-for-action-buttons/index.md diff --git a/content/blog/rstudio/2015-04-09-readr-0-1-0/index.md b/content/blog/ported/rstudio/2015-04-09-readr-0-1-0/index.md similarity index 100% rename from content/blog/rstudio/2015-04-09-readr-0-1-0/index.md rename to content/blog/ported/rstudio/2015-04-09-readr-0-1-0/index.md diff --git a/content/blog/rstudio/2015-04-14-interactive-time-series-with-dygraphs/index.md b/content/blog/ported/rstudio/2015-04-14-interactive-time-series-with-dygraphs/index.md similarity index 100% rename from content/blog/rstudio/2015-04-14-interactive-time-series-with-dygraphs/index.md rename to content/blog/ported/rstudio/2015-04-14-interactive-time-series-with-dygraphs/index.md diff --git a/content/blog/rstudio/2015-04-15-readxl-0-1-0/index.md b/content/blog/ported/rstudio/2015-04-15-readxl-0-1-0/index.md similarity index 100% rename from content/blog/rstudio/2015-04-15-readxl-0-1-0/index.md rename to content/blog/ported/rstudio/2015-04-15-readxl-0-1-0/index.md diff --git a/content/blog/rstudio/2015-04-21-xml2/index.md b/content/blog/ported/rstudio/2015-04-21-xml2/index.md similarity index 100% rename from content/blog/rstudio/2015-04-21-xml2/index.md rename to content/blog/ported/rstudio/2015-04-21-xml2/index.md diff --git a/content/blog/rstudio/2015-05-05-stringr-1-0-0/index.md b/content/blog/ported/rstudio/2015-05-05-stringr-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2015-05-05-stringr-1-0-0/index.md rename to content/blog/ported/rstudio/2015-05-05-stringr-1-0-0/index.md diff --git a/content/blog/rstudio/2015-05-11-devtools-1-9-0/index.md b/content/blog/ported/rstudio/2015-05-11-devtools-1-9-0/index.md similarity index 100% rename from content/blog/rstudio/2015-05-11-devtools-1-9-0/index.md rename to content/blog/ported/rstudio/2015-05-11-devtools-1-9-0/index.md diff --git a/content/blog/rstudio/2015-05-28-sparkr-preview-by-vincent-warmerdam/index.md b/content/blog/ported/rstudio/2015-05-28-sparkr-preview-by-vincent-warmerdam/index.md similarity index 100% rename from content/blog/rstudio/2015-05-28-sparkr-preview-by-vincent-warmerdam/index.md rename to content/blog/ported/rstudio/2015-05-28-sparkr-preview-by-vincent-warmerdam/index.md diff --git a/content/blog/rstudio/2015-05-29-testthat-0-10-0/index.md b/content/blog/ported/rstudio/2015-05-29-testthat-0-10-0/index.md similarity index 100% rename from content/blog/rstudio/2015-05-29-testthat-0-10-0/index.md rename to content/blog/ported/rstudio/2015-05-29-testthat-0-10-0/index.md diff --git a/content/blog/rstudio/2015-06-16-shiny-0-12-interactive-plots-with-ggplot2/index.md b/content/blog/ported/rstudio/2015-06-16-shiny-0-12-interactive-plots-with-ggplot2/index.md similarity index 100% rename from content/blog/rstudio/2015-06-16-shiny-0-12-interactive-plots-with-ggplot2/index.md rename to content/blog/ported/rstudio/2015-06-16-shiny-0-12-interactive-plots-with-ggplot2/index.md diff --git a/content/blog/rstudio/2015-06-22-new-shiny-cheat-sheet-and-video-tutorial/index.md b/content/blog/ported/rstudio/2015-06-22-new-shiny-cheat-sheet-and-video-tutorial/index.md similarity index 100% rename from content/blog/rstudio/2015-06-22-new-shiny-cheat-sheet-and-video-tutorial/index.md rename to content/blog/ported/rstudio/2015-06-22-new-shiny-cheat-sheet-and-video-tutorial/index.md diff --git a/content/blog/rstudio/2015-06-24-d3heatmap/index.md b/content/blog/ported/rstudio/2015-06-24-d3heatmap/index.md similarity index 100% rename from content/blog/rstudio/2015-06-24-d3heatmap/index.md rename to content/blog/ported/rstudio/2015-06-24-d3heatmap/index.md diff --git a/content/blog/rstudio/2015-06-24-dt-an-r-interface-to-the-datatables-library/index.md b/content/blog/ported/rstudio/2015-06-24-dt-an-r-interface-to-the-datatables-library/index.md similarity index 100% rename from content/blog/rstudio/2015-06-24-dt-an-r-interface-to-the-datatables-library/index.md rename to content/blog/ported/rstudio/2015-06-24-dt-an-r-interface-to-the-datatables-library/index.md diff --git a/content/blog/rstudio/2015-06-24-leaflet-interactive-web-maps-with-r/index.md b/content/blog/ported/rstudio/2015-06-24-leaflet-interactive-web-maps-with-r/index.md similarity index 100% rename from content/blog/rstudio/2015-06-24-leaflet-interactive-web-maps-with-r/index.md rename to content/blog/ported/rstudio/2015-06-24-leaflet-interactive-web-maps-with-r/index.md diff --git a/content/blog/rstudio/2015-06-30-accelerating-r-rstudio-and-the-new-r-consortium/index.md b/content/blog/ported/rstudio/2015-06-30-accelerating-r-rstudio-and-the-new-r-consortium/index.md similarity index 100% rename from content/blog/rstudio/2015-06-30-accelerating-r-rstudio-and-the-new-r-consortium/index.md rename to content/blog/ported/rstudio/2015-06-30-accelerating-r-rstudio-and-the-new-r-consortium/index.md diff --git a/content/blog/rstudio/2015-07-15-article-spotlight-persistent-data-storage-in-shiny-apps/index.md b/content/blog/ported/rstudio/2015-07-15-article-spotlight-persistent-data-storage-in-shiny-apps/index.md similarity index 100% rename from content/blog/rstudio/2015-07-15-article-spotlight-persistent-data-storage-in-shiny-apps/index.md rename to content/blog/ported/rstudio/2015-07-15-article-spotlight-persistent-data-storage-in-shiny-apps/index.md diff --git a/content/blog/rstudio/2015-07-22-new-r-markdown-articles-section-plus-rmd-to-docx-super-powers/index.md b/content/blog/ported/rstudio/2015-07-22-new-r-markdown-articles-section-plus-rmd-to-docx-super-powers/index.md similarity index 100% rename from content/blog/rstudio/2015-07-22-new-r-markdown-articles-section-plus-rmd-to-docx-super-powers/index.md rename to content/blog/ported/rstudio/2015-07-22-new-r-markdown-articles-section-plus-rmd-to-docx-super-powers/index.md diff --git a/content/blog/rstudio/2015-09-04-dplyr-0-4-3/index.md b/content/blog/ported/rstudio/2015-09-04-dplyr-0-4-3/index.md similarity index 100% rename from content/blog/rstudio/2015-09-04-dplyr-0-4-3/index.md rename to content/blog/ported/rstudio/2015-09-04-dplyr-0-4-3/index.md diff --git a/content/blog/rstudio/2015-09-13-devtools-1-9-1/index.md b/content/blog/ported/rstudio/2015-09-13-devtools-1-9-1/index.md similarity index 100% rename from content/blog/rstudio/2015-09-13-devtools-1-9-1/index.md rename to content/blog/ported/rstudio/2015-09-13-devtools-1-9-1/index.md diff --git a/content/blog/rstudio/2015-09-13-tidyr-0-3-0/index.md b/content/blog/ported/rstudio/2015-09-13-tidyr-0-3-0/index.md similarity index 100% rename from content/blog/rstudio/2015-09-13-tidyr-0-3-0/index.md rename to content/blog/ported/rstudio/2015-09-13-tidyr-0-3-0/index.md diff --git a/content/blog/rstudio/2015-09-24-rvest-0-3-0/index.md b/content/blog/ported/rstudio/2015-09-24-rvest-0-3-0/index.md similarity index 100% rename from content/blog/rstudio/2015-09-24-rvest-0-3-0/index.md rename to content/blog/ported/rstudio/2015-09-24-rvest-0-3-0/index.md diff --git a/content/blog/rstudio/2015-09-29-purrr-0-1-0/index.md b/content/blog/ported/rstudio/2015-09-29-purrr-0-1-0/index.md similarity index 100% rename from content/blog/rstudio/2015-09-29-purrr-0-1-0/index.md rename to content/blog/ported/rstudio/2015-09-29-purrr-0-1-0/index.md diff --git a/content/blog/rstudio/2015-10-15-testthat-0-11-0/index.md b/content/blog/ported/rstudio/2015-10-15-testthat-0-11-0/index.md similarity index 100% rename from content/blog/rstudio/2015-10-15-testthat-0-11-0/index.md rename to content/blog/ported/rstudio/2015-10-15-testthat-0-11-0/index.md diff --git a/content/blog/rstudio/2015-10-28-readr-0-2-0/index.md b/content/blog/ported/rstudio/2015-10-28-readr-0-2-0/index.md similarity index 100% rename from content/blog/rstudio/2015-10-28-readr-0-2-0/index.md rename to content/blog/ported/rstudio/2015-10-28-readr-0-2-0/index.md diff --git a/content/blog/rstudio/2015-10-29-roxygen2-5-0-0/index.md b/content/blog/ported/rstudio/2015-10-29-roxygen2-5-0-0/index.md similarity index 100% rename from content/blog/rstudio/2015-10-29-roxygen2-5-0-0/index.md rename to content/blog/ported/rstudio/2015-10-29-roxygen2-5-0-0/index.md diff --git a/content/blog/rstudio/2015-10-29-shiny-developer-conference-stanford-university-january-2016/index.md b/content/blog/ported/rstudio/2015-10-29-shiny-developer-conference-stanford-university-january-2016/index.md similarity index 100% rename from content/blog/rstudio/2015-10-29-shiny-developer-conference-stanford-university-january-2016/index.md rename to content/blog/ported/rstudio/2015-10-29-shiny-developer-conference-stanford-university-january-2016/index.md diff --git a/content/blog/rstudio/2015-12-10-svglite-1-0-0/index.md b/content/blog/ported/rstudio/2015-12-10-svglite-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2015-12-10-svglite-1-0-0/index.md rename to content/blog/ported/rstudio/2015-12-10-svglite-1-0-0/index.md diff --git a/content/blog/rstudio/2015-12-21-ggplot2-2-0-0/index.md b/content/blog/ported/rstudio/2015-12-21-ggplot2-2-0-0/index.md similarity index 100% rename from content/blog/rstudio/2015-12-21-ggplot2-2-0-0/index.md rename to content/blog/ported/rstudio/2015-12-21-ggplot2-2-0-0/index.md diff --git a/content/blog/rstudio/2016-01-06-purrr-0-2-0/index.md b/content/blog/ported/rstudio/2016-01-06-purrr-0-2-0/index.md similarity index 100% rename from content/blog/rstudio/2016-01-06-purrr-0-2-0/index.md rename to content/blog/ported/rstudio/2016-01-06-purrr-0-2-0/index.md diff --git a/content/blog/rstudio/2016-01-15-rcppparallel-getting-r-and-c-to-work-some-more-in-parallel/index.md b/content/blog/ported/rstudio/2016-01-15-rcppparallel-getting-r-and-c-to-work-some-more-in-parallel/index.md similarity index 100% rename from content/blog/rstudio/2016-01-15-rcppparallel-getting-r-and-c-to-work-some-more-in-parallel/index.md rename to content/blog/ported/rstudio/2016-01-15-rcppparallel-getting-r-and-c-to-work-some-more-in-parallel/index.md diff --git a/content/blog/rstudio/2016-01-20-shiny-0-13-0/index.md b/content/blog/ported/rstudio/2016-01-20-shiny-0-13-0/index.md similarity index 100% rename from content/blog/rstudio/2016-01-20-shiny-0-13-0/index.md rename to content/blog/ported/rstudio/2016-01-20-shiny-0-13-0/index.md diff --git a/content/blog/rstudio/2016-02-02-devtools-1-10-0/index.md b/content/blog/ported/rstudio/2016-02-02-devtools-1-10-0/index.md similarity index 100% rename from content/blog/rstudio/2016-02-02-devtools-1-10-0/index.md rename to content/blog/ported/rstudio/2016-02-02-devtools-1-10-0/index.md diff --git a/content/blog/rstudio/2016-02-02-httr-1-1-0/index.md b/content/blog/ported/rstudio/2016-02-02-httr-1-1-0/index.md similarity index 100% rename from content/blog/rstudio/2016-02-02-httr-1-1-0/index.md rename to content/blog/ported/rstudio/2016-02-02-httr-1-1-0/index.md diff --git a/content/blog/rstudio/2016-02-02-memoise-1-0-0/index.md b/content/blog/ported/rstudio/2016-02-02-memoise-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2016-02-02-memoise-1-0-0/index.md rename to content/blog/ported/rstudio/2016-02-02-memoise-1-0-0/index.md diff --git a/content/blog/rstudio/2016-02-02-tidyr-0-4-0/index.md b/content/blog/ported/rstudio/2016-02-02-tidyr-0-4-0/index.md similarity index 100% rename from content/blog/rstudio/2016-02-02-tidyr-0-4-0/index.md rename to content/blog/ported/rstudio/2016-02-02-tidyr-0-4-0/index.md diff --git a/content/blog/rstudio/2016-03-03-ggplot2-2-1-0/index.md b/content/blog/ported/rstudio/2016-03-03-ggplot2-2-1-0/index.md similarity index 100% rename from content/blog/rstudio/2016-03-03-ggplot2-2-1-0/index.md rename to content/blog/ported/rstudio/2016-03-03-ggplot2-2-1-0/index.md diff --git a/content/blog/rstudio/2016-03-09-r-on-travis-ci/index.md b/content/blog/ported/rstudio/2016-03-09-r-on-travis-ci/index.md similarity index 100% rename from content/blog/rstudio/2016-03-09-r-on-travis-ci/index.md rename to content/blog/ported/rstudio/2016-03-09-r-on-travis-ci/index.md diff --git a/content/blog/rstudio/2016-03-21-r-markdown-custom-formats/index.md b/content/blog/ported/rstudio/2016-03-21-r-markdown-custom-formats/index.md similarity index 100% rename from content/blog/rstudio/2016-03-21-r-markdown-custom-formats/index.md rename to content/blog/ported/rstudio/2016-03-21-r-markdown-custom-formats/index.md diff --git a/content/blog/rstudio/2016-03-21-rmarkdown-v0-9-5/index.md b/content/blog/ported/rstudio/2016-03-21-rmarkdown-v0-9-5/index.md similarity index 100% rename from content/blog/rstudio/2016-03-21-rmarkdown-v0-9-5/index.md rename to content/blog/ported/rstudio/2016-03-21-rmarkdown-v0-9-5/index.md diff --git a/content/blog/rstudio/2016-03-24-tibble-1-0-0/index.md b/content/blog/ported/rstudio/2016-03-24-tibble-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2016-03-24-tibble-1-0-0/index.md rename to content/blog/ported/rstudio/2016-03-24-tibble-1-0-0/index.md diff --git a/content/blog/rstudio/2016-03-29-feather/index.md b/content/blog/ported/rstudio/2016-03-29-feather/index.md similarity index 100% rename from content/blog/rstudio/2016-03-29-feather/index.md rename to content/blog/ported/rstudio/2016-03-29-feather/index.md diff --git a/content/blog/rstudio/2016-04-29-testthat-1-0-0/index.md b/content/blog/ported/rstudio/2016-04-29-testthat-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2016-04-29-testthat-1-0-0/index.md rename to content/blog/ported/rstudio/2016-04-29-testthat-1-0-0/index.md diff --git a/content/blog/rstudio/2016-05-05-shinydevcon-videos-now-available/index.md b/content/blog/ported/rstudio/2016-05-05-shinydevcon-videos-now-available/index.md similarity index 100% rename from content/blog/rstudio/2016-05-05-shinydevcon-videos-now-available/index.md rename to content/blog/ported/rstudio/2016-05-05-shinydevcon-videos-now-available/index.md diff --git a/content/blog/rstudio/2016-05-06-shiny-javascript-tutorials/index.md b/content/blog/ported/rstudio/2016-05-06-shiny-javascript-tutorials/index.md similarity index 100% rename from content/blog/rstudio/2016-05-06-shiny-javascript-tutorials/index.md rename to content/blog/ported/rstudio/2016-05-06-shiny-javascript-tutorials/index.md diff --git a/content/blog/rstudio/2016-05-17-flexdashboard-easy-interactive-dashboards-for-r/index.md b/content/blog/ported/rstudio/2016-05-17-flexdashboard-easy-interactive-dashboards-for-r/index.md similarity index 100% rename from content/blog/rstudio/2016-05-17-flexdashboard-easy-interactive-dashboards-for-r/index.md rename to content/blog/ported/rstudio/2016-05-17-flexdashboard-easy-interactive-dashboards-for-r/index.md diff --git a/content/blog/rstudio/2016-06-13-tidyr-0-5-0/index.md b/content/blog/ported/rstudio/2016-06-13-tidyr-0-5-0/index.md similarity index 100% rename from content/blog/rstudio/2016-06-13-tidyr-0-5-0/index.md rename to content/blog/ported/rstudio/2016-06-13-tidyr-0-5-0/index.md diff --git a/content/blog/rstudio/2016-06-27-dplyr-0-5-0/index.md b/content/blog/ported/rstudio/2016-06-27-dplyr-0-5-0/index.md similarity index 100% rename from content/blog/rstudio/2016-06-27-dplyr-0-5-0/index.md rename to content/blog/ported/rstudio/2016-06-27-dplyr-0-5-0/index.md diff --git a/content/blog/rstudio/2016-07-05-httr-1-2-0/index.md b/content/blog/ported/rstudio/2016-07-05-httr-1-2-0/index.md similarity index 100% rename from content/blog/rstudio/2016-07-05-httr-1-2-0/index.md rename to content/blog/ported/rstudio/2016-07-05-httr-1-2-0/index.md diff --git a/content/blog/rstudio/2016-07-05-tibble-1-1/index.md b/content/blog/ported/rstudio/2016-07-05-tibble-1-1/index.md similarity index 100% rename from content/blog/rstudio/2016-07-05-tibble-1-1/index.md rename to content/blog/ported/rstudio/2016-07-05-tibble-1-1/index.md diff --git a/content/blog/rstudio/2016-07-05-xml2-1-0-0/index.md b/content/blog/ported/rstudio/2016-07-05-xml2-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2016-07-05-xml2-1-0-0/index.md rename to content/blog/ported/rstudio/2016-07-05-xml2-1-0-0/index.md diff --git a/content/blog/rstudio/2016-08-05-readr-1-0-0/index.md b/content/blog/ported/rstudio/2016-08-05-readr-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2016-08-05-readr-1-0-0/index.md rename to content/blog/ported/rstudio/2016-08-05-readr-1-0-0/index.md diff --git a/content/blog/rstudio/2016-08-09-a-new-version-of-dt-0-2-on-cran/index.md b/content/blog/ported/rstudio/2016-08-09-a-new-version-of-dt-0-2-on-cran/index.md similarity index 100% rename from content/blog/rstudio/2016-08-09-a-new-version-of-dt-0-2-on-cran/index.md rename to content/blog/ported/rstudio/2016-08-09-a-new-version-of-dt-0-2-on-cran/index.md diff --git a/content/blog/rstudio/2016-08-15-tidyr-0-6-0/index.md b/content/blog/ported/rstudio/2016-08-15-tidyr-0-6-0/index.md similarity index 100% rename from content/blog/rstudio/2016-08-15-tidyr-0-6-0/index.md rename to content/blog/ported/rstudio/2016-08-15-tidyr-0-6-0/index.md diff --git a/content/blog/rstudio/2016-08-24-stringr-1-1-0/index.md b/content/blog/ported/rstudio/2016-08-24-stringr-1-1-0/index.md similarity index 100% rename from content/blog/rstudio/2016-08-24-stringr-1-1-0/index.md rename to content/blog/ported/rstudio/2016-08-24-stringr-1-1-0/index.md diff --git a/content/blog/rstudio/2016-08-29-tibble-1-2-0/index.md b/content/blog/ported/rstudio/2016-08-29-tibble-1-2-0/index.md similarity index 100% rename from content/blog/rstudio/2016-08-29-tibble-1-2-0/index.md rename to content/blog/ported/rstudio/2016-08-29-tibble-1-2-0/index.md diff --git a/content/blog/rstudio/2016-08-31-forcats-0-1-0/index.md b/content/blog/ported/rstudio/2016-08-31-forcats-0-1-0/index.md similarity index 100% rename from content/blog/rstudio/2016-08-31-forcats-0-1-0/index.md rename to content/blog/ported/rstudio/2016-08-31-forcats-0-1-0/index.md diff --git a/content/blog/rstudio/2016-09-12-shiny-0-14/index.md b/content/blog/ported/rstudio/2016-09-12-shiny-0-14/index.md similarity index 100% rename from content/blog/rstudio/2016-09-12-shiny-0-14/index.md rename to content/blog/ported/rstudio/2016-09-12-shiny-0-14/index.md diff --git a/content/blog/rstudio/2016-09-15-lubridate-1-6-0/index.md b/content/blog/ported/rstudio/2016-09-15-lubridate-1-6-0/index.md similarity index 100% rename from content/blog/rstudio/2016-09-15-lubridate-1-6-0/index.md rename to content/blog/ported/rstudio/2016-09-15-lubridate-1-6-0/index.md diff --git a/content/blog/rstudio/2016-09-15-tidyverse-1-0-0/index.md b/content/blog/ported/rstudio/2016-09-15-tidyverse-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2016-09-15-tidyverse-1-0-0/index.md rename to content/blog/ported/rstudio/2016-09-15-tidyverse-1-0-0/index.md diff --git a/content/blog/rstudio/2016-09-22-shiny-server-1-4-6/index.md b/content/blog/ported/rstudio/2016-09-22-shiny-server-1-4-6/index.md similarity index 100% rename from content/blog/rstudio/2016-09-22-shiny-server-1-4-6/index.md rename to content/blog/ported/rstudio/2016-09-22-shiny-server-1-4-6/index.md diff --git a/content/blog/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-connect.png b/content/blog/ported/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-connect.png similarity index 100% rename from content/blog/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-connect.png rename to content/blog/ported/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-connect.png diff --git a/content/blog/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-dataview.png b/content/blog/ported/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-dataview.png similarity index 100% rename from content/blog/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-dataview.png rename to content/blog/ported/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-dataview.png diff --git a/content/blog/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-tab.png b/content/blog/ported/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-tab.png similarity index 100% rename from content/blog/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-tab.png rename to content/blog/ported/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-spark-tab.png diff --git a/content/blog/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-sparklyr-illustration.png b/content/blog/ported/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-sparklyr-illustration.png similarity index 100% rename from content/blog/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-sparklyr-illustration.png rename to content/blog/ported/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/2016-09-27-sparklyr-illustration.png diff --git a/content/blog/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/index.md b/content/blog/ported/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/index.md similarity index 100% rename from content/blog/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/index.md rename to content/blog/ported/rstudio/2016-09-27-sparklyr-r-interface-for-apache-spark/index.md diff --git a/content/blog/rstudio/2016-09-30-ggplot2-2-2-0-coming-soon/index.md b/content/blog/ported/rstudio/2016-09-30-ggplot2-2-2-0-coming-soon/index.md similarity index 100% rename from content/blog/rstudio/2016-09-30-ggplot2-2-2-0-coming-soon/index.md rename to content/blog/ported/rstudio/2016-09-30-ggplot2-2-2-0-coming-soon/index.md diff --git a/content/blog/rstudio/2016-10-04-haven-1-0-0/index.md b/content/blog/ported/rstudio/2016-10-04-haven-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2016-10-04-haven-1-0-0/index.md rename to content/blog/ported/rstudio/2016-10-04-haven-1-0-0/index.md diff --git a/content/blog/rstudio/2016-10-13-shinythemes-1-1-1/index.md b/content/blog/ported/rstudio/2016-10-13-shinythemes-1-1-1/index.md similarity index 100% rename from content/blog/rstudio/2016-10-13-shinythemes-1-1-1/index.md rename to content/blog/ported/rstudio/2016-10-13-shinythemes-1-1-1/index.md diff --git a/content/blog/rstudio/2016-11-14-ggplot2-2-2-0/index.md b/content/blog/ported/rstudio/2016-11-14-ggplot2-2-2-0/index.md similarity index 100% rename from content/blog/rstudio/2016-11-14-ggplot2-2-2-0/index.md rename to content/blog/ported/rstudio/2016-11-14-ggplot2-2-2-0/index.md diff --git a/content/blog/rstudio/2016-11-14-svglite-1-2-0/index.md b/content/blog/ported/rstudio/2016-11-14-svglite-1-2-0/index.md similarity index 100% rename from content/blog/rstudio/2016-11-14-svglite-1-2-0/index.md rename to content/blog/ported/rstudio/2016-11-14-svglite-1-2-0/index.md diff --git a/content/blog/rstudio/2016-12-02-announcing-bookdown/index.md b/content/blog/ported/rstudio/2016-12-02-announcing-bookdown/index.md similarity index 100% rename from content/blog/rstudio/2016-12-02-announcing-bookdown/index.md rename to content/blog/ported/rstudio/2016-12-02-announcing-bookdown/index.md diff --git a/content/blog/rstudio/2017-01-24-sparklyr-0-5/index.md b/content/blog/ported/rstudio/2017-01-24-sparklyr-0-5/index.md similarity index 100% rename from content/blog/rstudio/2017-01-24-sparklyr-0-5/index.md rename to content/blog/ported/rstudio/2017-01-24-sparklyr-0-5/index.md diff --git a/content/blog/rstudio/2017-01-24-xml-1-1-1/index.md b/content/blog/ported/rstudio/2017-01-24-xml-1-1-1/index.md similarity index 100% rename from content/blog/rstudio/2017-01-24-xml-1-1-1/index.md rename to content/blog/ported/rstudio/2017-01-24-xml-1-1-1/index.md diff --git a/content/blog/rstudio/2017-02-01-roxygen2-6-0-0/index.md b/content/blog/ported/rstudio/2017-02-01-roxygen2-6-0-0/index.md similarity index 100% rename from content/blog/rstudio/2017-02-01-roxygen2-6-0-0/index.md rename to content/blog/ported/rstudio/2017-02-01-roxygen2-6-0-0/index.md diff --git a/content/blog/rstudio/2017-02-22-leaflet-1-1-0/index.md b/content/blog/ported/rstudio/2017-02-22-leaflet-1-1-0/index.md similarity index 100% rename from content/blog/rstudio/2017-02-22-leaflet-1-1-0/index.md rename to content/blog/ported/rstudio/2017-02-22-leaflet-1-1-0/index.md diff --git a/content/blog/rstudio/2017-04-05-shiny-1-0-1/index.md b/content/blog/ported/rstudio/2017-04-05-shiny-1-0-1/index.md similarity index 100% rename from content/blog/rstudio/2017-04-05-shiny-1-0-1/index.md rename to content/blog/ported/rstudio/2017-04-05-shiny-1-0-1/index.md diff --git a/content/blog/rstudio/2017-04-12-tidyverse-updates/index.md b/content/blog/ported/rstudio/2017-04-12-tidyverse-updates/index.md similarity index 100% rename from content/blog/rstudio/2017-04-12-tidyverse-updates/index.md rename to content/blog/ported/rstudio/2017-04-12-tidyverse-updates/index.md diff --git a/content/blog/rstudio/2017-04-13-dplyr-0-6-0-coming-soon/index.md b/content/blog/ported/rstudio/2017-04-13-dplyr-0-6-0-coming-soon/index.md similarity index 100% rename from content/blog/rstudio/2017-04-13-dplyr-0-6-0-coming-soon/index.md rename to content/blog/ported/rstudio/2017-04-13-dplyr-0-6-0-coming-soon/index.md diff --git a/content/blog/rstudio/2017-04-19-readxl-1-0-0/index.md b/content/blog/ported/rstudio/2017-04-19-readxl-1-0-0/index.md similarity index 100% rename from content/blog/rstudio/2017-04-19-readxl-1-0-0/index.md rename to content/blog/ported/rstudio/2017-04-19-readxl-1-0-0/index.md diff --git a/content/blog/rstudio/2017-05-18-shinydashboard-0-6-0/index.md b/content/blog/ported/rstudio/2017-05-18-shinydashboard-0-6-0/index.md similarity index 100% rename from content/blog/rstudio/2017-05-18-shinydashboard-0-6-0/index.md rename to content/blog/ported/rstudio/2017-05-18-shinydashboard-0-6-0/index.md diff --git a/content/blog/rstudio/2017-06-13-dplyr-0-7-0/index.md b/content/blog/ported/rstudio/2017-06-13-dplyr-0-7-0/index.md similarity index 100% rename from content/blog/rstudio/2017-06-13-dplyr-0-7-0/index.md rename to content/blog/ported/rstudio/2017-06-13-dplyr-0-7-0/index.md diff --git a/content/blog/rstudio/2017-06-26-bigrquery-0-4-0/index.md b/content/blog/ported/rstudio/2017-06-26-bigrquery-0-4-0/index.md similarity index 100% rename from content/blog/rstudio/2017-06-26-bigrquery-0-4-0/index.md rename to content/blog/ported/rstudio/2017-06-26-bigrquery-0-4-0/index.md diff --git a/content/blog/rstudio/2017-06-27-dbplyr-1-1-0/index.md b/content/blog/ported/rstudio/2017-06-27-dbplyr-1-1-0/index.md similarity index 100% rename from content/blog/rstudio/2017-06-27-dbplyr-1-1-0/index.md rename to content/blog/ported/rstudio/2017-06-27-dbplyr-1-1-0/index.md diff --git a/content/blog/rstudio/2017-07-07-introducing-learnr/index.md b/content/blog/ported/rstudio/2017-07-07-introducing-learnr/index.md similarity index 100% rename from content/blog/rstudio/2017-07-07-introducing-learnr/index.md rename to content/blog/ported/rstudio/2017-07-07-introducing-learnr/index.md diff --git a/content/blog/rstudio/2017-07-13-haven-1-1-0/index.md b/content/blog/ported/rstudio/2017-07-13-haven-1-1-0/index.md similarity index 100% rename from content/blog/rstudio/2017-07-13-haven-1-1-0/index.md rename to content/blog/ported/rstudio/2017-07-13-haven-1-1-0/index.md diff --git a/content/blog/rstudio/2017-07-31-sparklyr-0-6/index.md b/content/blog/ported/rstudio/2017-07-31-sparklyr-0-6/index.md similarity index 100% rename from content/blog/rstudio/2017-07-31-sparklyr-0-6/index.md rename to content/blog/ported/rstudio/2017-07-31-sparklyr-0-6/index.md diff --git a/content/blog/rstudio/2017-08-15-shiny-1-0-4/2017-08-15-shiny-1-0-4-drag-drop.gif b/content/blog/ported/rstudio/2017-08-15-shiny-1-0-4/2017-08-15-shiny-1-0-4-drag-drop.gif similarity index 100% rename from content/blog/rstudio/2017-08-15-shiny-1-0-4/2017-08-15-shiny-1-0-4-drag-drop.gif rename to content/blog/ported/rstudio/2017-08-15-shiny-1-0-4/2017-08-15-shiny-1-0-4-drag-drop.gif diff --git a/content/blog/rstudio/2017-08-15-shiny-1-0-4/index.md b/content/blog/ported/rstudio/2017-08-15-shiny-1-0-4/index.md similarity index 100% rename from content/blog/rstudio/2017-08-15-shiny-1-0-4/index.md rename to content/blog/ported/rstudio/2017-08-15-shiny-1-0-4/index.md diff --git a/content/blog/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/2017-08-29-shiny-articles-overview.png b/content/blog/ported/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/2017-08-29-shiny-articles-overview.png similarity index 100% rename from content/blog/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/2017-08-29-shiny-articles-overview.png rename to content/blog/ported/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/2017-08-29-shiny-articles-overview.png diff --git a/content/blog/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/2017-08-29-shiny-dev-center-home.png b/content/blog/ported/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/2017-08-29-shiny-dev-center-home.png similarity index 100% rename from content/blog/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/2017-08-29-shiny-dev-center-home.png rename to content/blog/ported/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/2017-08-29-shiny-dev-center-home.png diff --git a/content/blog/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/index.md b/content/blog/ported/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/index.md similarity index 100% rename from content/blog/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/index.md rename to content/blog/ported/rstudio/2017-08-29-shiny-dev-center-gets-a-shiny-new-update/index.md diff --git a/content/blog/rstudio/2017-09-05-keras-for-r/index.md b/content/blog/ported/rstudio/2017-09-05-keras-for-r/index.md similarity index 100% rename from content/blog/rstudio/2017-09-05-keras-for-r/index.md rename to content/blog/ported/rstudio/2017-09-05-keras-for-r/index.md diff --git a/content/blog/rstudio/2017-09-05-keras-for-r/thumbnail.png b/content/blog/ported/rstudio/2017-09-05-keras-for-r/thumbnail.png similarity index 100% rename from content/blog/rstudio/2017-09-05-keras-for-r/thumbnail.png rename to content/blog/ported/rstudio/2017-09-05-keras-for-r/thumbnail.png diff --git a/content/blog/rstudio/2017-09-11-announcing-blogdown/index.md b/content/blog/ported/rstudio/2017-09-11-announcing-blogdown/index.md similarity index 100% rename from content/blog/rstudio/2017-09-11-announcing-blogdown/index.md rename to content/blog/ported/rstudio/2017-09-11-announcing-blogdown/index.md diff --git a/content/blog/rstudio/2017-09-14-rstudio-community/index.md b/content/blog/ported/rstudio/2017-09-14-rstudio-community/index.md similarity index 100% rename from content/blog/rstudio/2017-09-14-rstudio-community/index.md rename to content/blog/ported/rstudio/2017-09-14-rstudio-community/index.md diff --git a/content/blog/rstudio/2017-11-03-r-admins-community/index.md b/content/blog/ported/rstudio/2017-11-03-r-admins-community/index.md similarity index 100% rename from content/blog/rstudio/2017-11-03-r-admins-community/index.md rename to content/blog/ported/rstudio/2017-11-03-r-admins-community/index.md diff --git a/content/blog/rstudio/2017-11-17-pool-0-1-3/index.md b/content/blog/ported/rstudio/2017-11-17-pool-0-1-3/index.md similarity index 100% rename from content/blog/rstudio/2017-11-17-pool-0-1-3/index.md rename to content/blog/ported/rstudio/2017-11-17-pool-0-1-3/index.md diff --git a/content/blog/rstudio/2018-01-29-sparklyr-0-7/index.md b/content/blog/ported/rstudio/2018-01-29-sparklyr-0-7/index.md similarity index 100% rename from content/blog/rstudio/2018-01-29-sparklyr-0-7/index.md rename to content/blog/ported/rstudio/2018-01-29-sparklyr-0-7/index.md diff --git a/content/blog/rstudio/2018-01-29-sparklyr-0-7/unnamed-chunk-7-1.png b/content/blog/ported/rstudio/2018-01-29-sparklyr-0-7/unnamed-chunk-7-1.png similarity index 100% rename from content/blog/rstudio/2018-01-29-sparklyr-0-7/unnamed-chunk-7-1.png rename to content/blog/ported/rstudio/2018-01-29-sparklyr-0-7/unnamed-chunk-7-1.png diff --git a/content/blog/rstudio/2018-02-06-tensorflow-for-r.html/2018-02-06-keras-training-metrics.gif b/content/blog/ported/rstudio/2018-02-06-tensorflow-for-r.html/2018-02-06-keras-training-metrics.gif similarity index 100% rename from content/blog/rstudio/2018-02-06-tensorflow-for-r.html/2018-02-06-keras-training-metrics.gif rename to content/blog/ported/rstudio/2018-02-06-tensorflow-for-r.html/2018-02-06-keras-training-metrics.gif diff --git a/content/blog/rstudio/2018-02-06-tensorflow-for-r.html/2018-02-06-tfruns.png b/content/blog/ported/rstudio/2018-02-06-tensorflow-for-r.html/2018-02-06-tfruns.png similarity index 100% rename from content/blog/rstudio/2018-02-06-tensorflow-for-r.html/2018-02-06-tfruns.png rename to content/blog/ported/rstudio/2018-02-06-tensorflow-for-r.html/2018-02-06-tfruns.png diff --git a/content/blog/rstudio/2018-02-06-tensorflow-for-r.html/index.md b/content/blog/ported/rstudio/2018-02-06-tensorflow-for-r.html/index.md similarity index 100% rename from content/blog/rstudio/2018-02-06-tensorflow-for-r.html/index.md rename to content/blog/ported/rstudio/2018-02-06-tensorflow-for-r.html/index.md diff --git a/content/blog/rstudio/2018-03-26-reticulate-r-interface-to-python/index.md b/content/blog/ported/rstudio/2018-03-26-reticulate-r-interface-to-python/index.md similarity index 100% rename from content/blog/rstudio/2018-03-26-reticulate-r-interface-to-python/index.md rename to content/blog/ported/rstudio/2018-03-26-reticulate-r-interface-to-python/index.md diff --git a/content/blog/rstudio/2018-03-29-dt-0-4/index.md b/content/blog/ported/rstudio/2018-03-29-dt-0-4/index.md similarity index 90% rename from content/blog/rstudio/2018-03-29-dt-0-4/index.md rename to content/blog/ported/rstudio/2018-03-29-dt-0-4/index.md index 6d7dffa6b..64835a077 100644 --- a/content/blog/rstudio/2018-03-29-dt-0-4/index.md +++ b/content/blog/ported/rstudio/2018-03-29-dt-0-4/index.md @@ -27,7 +27,7 @@ ported_categories: --- -It has been [more than two years](/blog/rstudio/2015-06-24-dt-an-r-interface-to-the-datatables-library/) since we announced the initial version of the **DT** package. Today we want to highlight a few significant changes and new features in the recent releases v0.3 and v0.4. The full changes can be found in the [release notes](https://github.com/rstudio/DT/releases). +It has been [more than two years](/blog/2015-06-24_dt-an-r-interface-to-the-datatables-library/) since we announced the initial version of the **DT** package. Today we want to highlight a few significant changes and new features in the recent releases v0.3 and v0.4. The full changes can be found in the [release notes](https://github.com/rstudio/DT/releases). ## Editable tables diff --git a/content/blog/rstudio/2018-04-19-arrow-and-beyond/index.md b/content/blog/ported/rstudio/2018-04-19-arrow-and-beyond/index.md similarity index 100% rename from content/blog/rstudio/2018-04-19-arrow-and-beyond/index.md rename to content/blog/ported/rstudio/2018-04-19-arrow-and-beyond/index.md diff --git a/content/blog/rstudio/2018-05-08-leaflet-2-0-0.html/index.md b/content/blog/ported/rstudio/2018-05-08-leaflet-2-0-0.html/index.md similarity index 100% rename from content/blog/rstudio/2018-05-08-leaflet-2-0-0.html/index.md rename to content/blog/ported/rstudio/2018-05-08-leaflet-2-0-0.html/index.md diff --git a/content/blog/rstudio/2018-05-14-sparklyr-0-8/index.md b/content/blog/ported/rstudio/2018-05-14-sparklyr-0-8/index.md similarity index 100% rename from content/blog/rstudio/2018-05-14-sparklyr-0-8/index.md rename to content/blog/ported/rstudio/2018-05-14-sparklyr-0-8/index.md diff --git a/content/blog/rstudio/2018-06-26-shiny-1-1-0/index.md b/content/blog/ported/rstudio/2018-06-26-shiny-1-1-0/index.md similarity index 100% rename from content/blog/rstudio/2018-06-26-shiny-1-1-0/index.md rename to content/blog/ported/rstudio/2018-06-26-shiny-1-1-0/index.md diff --git a/content/blog/rstudio/2018-07-13-announcing-the-r-markdown-book/index.md b/content/blog/ported/rstudio/2018-07-13-announcing-the-r-markdown-book/index.md similarity index 100% rename from content/blog/rstudio/2018-07-13-announcing-the-r-markdown-book/index.md rename to content/blog/ported/rstudio/2018-07-13-announcing-the-r-markdown-book/index.md diff --git a/content/blog/rstudio/2018-07-25-revamped-bookdown-org/index.md b/content/blog/ported/rstudio/2018-07-25-revamped-bookdown-org/index.md similarity index 86% rename from content/blog/rstudio/2018-07-25-revamped-bookdown-org/index.md rename to content/blog/ported/rstudio/2018-07-25-revamped-bookdown-org/index.md index db131f784..2acc30711 100644 --- a/content/blog/rstudio/2018-07-25-revamped-bookdown-org/index.md +++ b/content/blog/ported/rstudio/2018-07-25-revamped-bookdown-org/index.md @@ -28,7 +28,7 @@ ported_categories: --- -Since we announced the **bookdown** package [in 2016](/blog/rstudio/2016-12-02-announcing-bookdown/), there have been a large number of books, reports, notes, and tutorials written with this package and published to https://bookdown.org. We were excited to see that! At the same time, however, maintaining the list of books on bookdown.org has become more and more difficult because I must update the list manually to filter out books that are only skeletons or not built with **bookdown** (such as slides). It was not only time-consuming for me, but also delayed the exhibition of many awesome books. +Since we announced the **bookdown** package [in 2016](/blog/2016-12-02_announcing-bookdown/), there have been a large number of books, reports, notes, and tutorials written with this package and published to https://bookdown.org. We were excited to see that! At the same time, however, maintaining the list of books on bookdown.org has become more and more difficult because I must update the list manually to filter out books that are only skeletons or not built with **bookdown** (such as slides). It was not only time-consuming for me, but also delayed the exhibition of many awesome books. ![The bookdown logo](https://bookdown.org/yihui/bookdown/images/logo.png) diff --git a/content/blog/rstudio/2018-07-25-revamped-bookdown-org/thumbnail.png b/content/blog/ported/rstudio/2018-07-25-revamped-bookdown-org/thumbnail.png similarity index 100% rename from content/blog/rstudio/2018-07-25-revamped-bookdown-org/thumbnail.png rename to content/blog/ported/rstudio/2018-07-25-revamped-bookdown-org/thumbnail.png diff --git a/content/blog/rstudio/2018-09-12-getting-started-with-deep-learning-in-r/2018-09-12-tensorflow-blog.png b/content/blog/ported/rstudio/2018-09-12-getting-started-with-deep-learning-in-r/2018-09-12-tensorflow-blog.png similarity index 100% rename from content/blog/rstudio/2018-09-12-getting-started-with-deep-learning-in-r/2018-09-12-tensorflow-blog.png rename to content/blog/ported/rstudio/2018-09-12-getting-started-with-deep-learning-in-r/2018-09-12-tensorflow-blog.png diff --git a/content/blog/rstudio/2018-09-12-getting-started-with-deep-learning-in-r/index.md b/content/blog/ported/rstudio/2018-09-12-getting-started-with-deep-learning-in-r/index.md similarity index 100% rename from content/blog/rstudio/2018-09-12-getting-started-with-deep-learning-in-r/index.md rename to content/blog/ported/rstudio/2018-09-12-getting-started-with-deep-learning-in-r/index.md diff --git a/content/blog/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-blog.png b/content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-blog.png similarity index 100% rename from content/blog/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-blog.png rename to content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-blog.png diff --git a/content/blog/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-footnotes-and-asides.png b/content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-footnotes-and-asides.png similarity index 100% rename from content/blog/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-footnotes-and-asides.png rename to content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-footnotes-and-asides.png diff --git a/content/blog/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-fullscreen-layout.png b/content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-fullscreen-layout.png similarity index 100% rename from content/blog/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-fullscreen-layout.png rename to content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-fullscreen-layout.png diff --git a/content/blog/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-metadata.png b/content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-metadata.png similarity index 100% rename from content/blog/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-metadata.png rename to content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-metadata.png diff --git a/content/blog/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-wider-layouts.png b/content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-wider-layouts.png similarity index 100% rename from content/blog/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-wider-layouts.png rename to content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/2018-09-17-radix-wider-layouts.png diff --git a/content/blog/rstudio/2018-09-19-radix-for-r-markdown/index.md b/content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/index.md similarity index 100% rename from content/blog/rstudio/2018-09-19-radix-for-r-markdown/index.md rename to content/blog/ported/rstudio/2018-09-19-radix-for-r-markdown/index.md diff --git a/content/blog/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-monitored-connections.png b/content/blog/ported/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-monitored-connections.png similarity index 100% rename from content/blog/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-monitored-connections.png rename to content/blog/ported/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-monitored-connections.png diff --git a/content/blog/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-shiny-app-books.gif b/content/blog/ported/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-shiny-app-books.gif similarity index 100% rename from content/blog/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-shiny-app-books.gif rename to content/blog/ported/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-shiny-app-books.gif diff --git a/content/blog/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-stream-view.png b/content/blog/ported/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-stream-view.png similarity index 100% rename from content/blog/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-stream-view.png rename to content/blog/ported/rstudio/2018-10-01-sparklyr-0-9/2018-10-01-sparklyr-stream-view.png diff --git a/content/blog/rstudio/2018-10-01-sparklyr-0-9/index.md b/content/blog/ported/rstudio/2018-10-01-sparklyr-0-9/index.md similarity index 100% rename from content/blog/rstudio/2018-10-01-sparklyr-0-9/index.md rename to content/blog/ported/rstudio/2018-10-01-sparklyr-0-9/index.md diff --git a/content/blog/rstudio/2018-11-13-shiny-1-2-0/2018-11-05-shiny-1-2-0.png b/content/blog/ported/rstudio/2018-11-13-shiny-1-2-0/2018-11-05-shiny-1-2-0.png similarity index 100% rename from content/blog/rstudio/2018-11-13-shiny-1-2-0/2018-11-05-shiny-1-2-0.png rename to content/blog/ported/rstudio/2018-11-13-shiny-1-2-0/2018-11-05-shiny-1-2-0.png diff --git a/content/blog/rstudio/2018-11-13-shiny-1-2-0/index.md b/content/blog/ported/rstudio/2018-11-13-shiny-1-2-0/index.md similarity index 100% rename from content/blog/rstudio/2018-11-13-shiny-1-2-0/index.md rename to content/blog/ported/rstudio/2018-11-13-shiny-1-2-0/index.md diff --git a/content/blog/rstudio/2019-02-06-rstudio-conf-2019-workshops/index.md b/content/blog/ported/rstudio/2019-02-06-rstudio-conf-2019-workshops/index.md similarity index 100% rename from content/blog/rstudio/2019-02-06-rstudio-conf-2019-workshops/index.md rename to content/blog/ported/rstudio/2019-02-06-rstudio-conf-2019-workshops/index.md diff --git a/content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-collect.png b/content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-collect.png similarity index 100% rename from content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-collect.png rename to content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-collect.png diff --git a/content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-copy-to.png b/content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-copy-to.png similarity index 100% rename from content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-copy-to.png rename to content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-copy-to.png diff --git a/content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-rstudio-yarn.png b/content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-rstudio-yarn.png similarity index 100% rename from content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-rstudio-yarn.png rename to content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-rstudio-yarn.png diff --git a/content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-spark-apply.png b/content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-spark-apply.png similarity index 100% rename from content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-spark-apply.png rename to content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-spark-apply.png diff --git a/content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-sparklyr-arrow-spark-small.png b/content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-sparklyr-arrow-spark-small.png similarity index 100% rename from content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-sparklyr-arrow-spark-small.png rename to content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-sparklyr-arrow-spark-small.png diff --git a/content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-sparklyr-arrow-spark.png b/content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-sparklyr-arrow-spark.png similarity index 100% rename from content/blog/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-sparklyr-arrow-spark.png rename to content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/2019-03-15-sparklyr-1-0-sparklyr-arrow-spark.png diff --git a/content/blog/rstudio/2019-03-06-sparklyr-1-0/index.md b/content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/index.md similarity index 100% rename from content/blog/rstudio/2019-03-06-sparklyr-1-0/index.md rename to content/blog/ported/rstudio/2019-03-06-sparklyr-1-0/index.md diff --git a/content/blog/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-filter-click.gif b/content/blog/ported/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-filter-click.gif similarity index 100% rename from content/blog/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-filter-click.gif rename to content/blog/ported/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-filter-click.gif diff --git a/content/blog/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-pythagoras.gif b/content/blog/ported/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-pythagoras.gif similarity index 100% rename from content/blog/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-pythagoras.gif rename to content/blog/ported/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-pythagoras.gif diff --git a/content/blog/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-search-by-name.gif b/content/blog/ported/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-search-by-name.gif similarity index 100% rename from content/blog/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-search-by-name.gif rename to content/blog/ported/rstudio/2019-04-26-shiny-1-3-2/2019-04-26-shiny-1-3-2-search-by-name.gif diff --git a/content/blog/rstudio/2019-04-26-shiny-1-3-2/index.md b/content/blog/ported/rstudio/2019-04-26-shiny-1-3-2/index.md similarity index 100% rename from content/blog/rstudio/2019-04-26-shiny-1-3-2/index.md rename to content/blog/ported/rstudio/2019-04-26-shiny-1-3-2/index.md diff --git a/content/blog/rstudio/2019-08-05-the-shiny-developer-series/Shiny-developer-series-flat.png b/content/blog/ported/rstudio/2019-08-05-the-shiny-developer-series/Shiny-developer-series-flat.png similarity index 100% rename from content/blog/rstudio/2019-08-05-the-shiny-developer-series/Shiny-developer-series-flat.png rename to content/blog/ported/rstudio/2019-08-05-the-shiny-developer-series/Shiny-developer-series-flat.png diff --git a/content/blog/rstudio/2019-08-05-the-shiny-developer-series/index.md b/content/blog/ported/rstudio/2019-08-05-the-shiny-developer-series/index.md similarity index 100% rename from content/blog/rstudio/2019-08-05-the-shiny-developer-series/index.md rename to content/blog/ported/rstudio/2019-08-05-the-shiny-developer-series/index.md diff --git a/content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-connect-board.png b/content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-connect-board.png similarity index 100% rename from content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-connect-board.png rename to content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-connect-board.png diff --git a/content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-discover-pins.png b/content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-discover-pins.png similarity index 100% rename from content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-discover-pins.png rename to content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-discover-pins.png diff --git a/content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-explore-pins.png b/content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-explore-pins.png similarity index 100% rename from content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-explore-pins.png rename to content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-explore-pins.png diff --git a/content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-reuse-pin-ggplot2.png b/content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-reuse-pin-ggplot2.png similarity index 100% rename from content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-reuse-pin-ggplot2.png rename to content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-reuse-pin-ggplot2.png diff --git a/content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-share-resources.png b/content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-share-resources.png similarity index 100% rename from content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-share-resources.png rename to content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/2019-09-09-rstudio-share-resources.png diff --git a/content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/index.md b/content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/index.md similarity index 100% rename from content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/index.md rename to content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/index.md diff --git a/content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/thumbnail.png b/content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/thumbnail.png similarity index 100% rename from content/blog/rstudio/2019-09-09-pins-track-discover-and-share-datasets/thumbnail.png rename to content/blog/ported/rstudio/2019-09-09-pins-track-discover-and-share-datasets/thumbnail.png diff --git a/content/blog/rstudio/2019-10-15-shiny-1-4-0/index.md b/content/blog/ported/rstudio/2019-10-15-shiny-1-4-0/index.md similarity index 100% rename from content/blog/rstudio/2019-10-15-shiny-1-4-0/index.md rename to content/blog/ported/rstudio/2019-10-15-shiny-1-4-0/index.md diff --git a/content/blog/rstudio/2019-11-06-renv-project-environments-for-r/index.md b/content/blog/ported/rstudio/2019-11-06-renv-project-environments-for-r/index.md similarity index 100% rename from content/blog/rstudio/2019-11-06-renv-project-environments-for-r/index.md rename to content/blog/ported/rstudio/2019-11-06-renv-project-environments-for-r/index.md diff --git a/content/blog/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_preview.png b/content/blog/ported/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_preview.png similarity index 100% rename from content/blog/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_preview.png rename to content/blog/ported/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_preview.png diff --git a/content/blog/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_rmd.png b/content/blog/ported/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_rmd.png similarity index 100% rename from content/blog/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_rmd.png rename to content/blog/ported/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_rmd.png diff --git a/content/blog/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_rsc.png b/content/blog/ported/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_rsc.png similarity index 100% rename from content/blog/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_rsc.png rename to content/blog/ported/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/blastula_rsc.png diff --git a/content/blog/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/index.Rmd b/content/blog/ported/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/index.Rmd similarity index 100% rename from content/blog/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/index.Rmd rename to content/blog/ported/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/index.Rmd diff --git a/content/blog/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/index.html b/content/blog/ported/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/index.html similarity index 100% rename from content/blog/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/index.html rename to content/blog/ported/rstudio/2019-11-07-emails-from-r-announcing-blastula-0-3/index.html diff --git a/content/blog/rstudio/2019-11-18-artist-in-residence/dplyr_mutate.png b/content/blog/ported/rstudio/2019-11-18-artist-in-residence/dplyr_mutate.png similarity index 100% rename from content/blog/rstudio/2019-11-18-artist-in-residence/dplyr_mutate.png rename to content/blog/ported/rstudio/2019-11-18-artist-in-residence/dplyr_mutate.png diff --git a/content/blog/rstudio/2019-11-18-artist-in-residence/ggplot2_masterpiece.png b/content/blog/ported/rstudio/2019-11-18-artist-in-residence/ggplot2_masterpiece.png similarity index 100% rename from content/blog/rstudio/2019-11-18-artist-in-residence/ggplot2_masterpiece.png rename to content/blog/ported/rstudio/2019-11-18-artist-in-residence/ggplot2_masterpiece.png diff --git a/content/blog/rstudio/2019-11-18-artist-in-residence/horst-eco-r4ds.png b/content/blog/ported/rstudio/2019-11-18-artist-in-residence/horst-eco-r4ds.png similarity index 100% rename from content/blog/rstudio/2019-11-18-artist-in-residence/horst-eco-r4ds.png rename to content/blog/ported/rstudio/2019-11-18-artist-in-residence/horst-eco-r4ds.png diff --git a/content/blog/rstudio/2019-11-18-artist-in-residence/horst_bof_buttons.png b/content/blog/ported/rstudio/2019-11-18-artist-in-residence/horst_bof_buttons.png similarity index 100% rename from content/blog/rstudio/2019-11-18-artist-in-residence/horst_bof_buttons.png rename to content/blog/ported/rstudio/2019-11-18-artist-in-residence/horst_bof_buttons.png diff --git a/content/blog/rstudio/2019-11-18-artist-in-residence/horst_hexes.png b/content/blog/ported/rstudio/2019-11-18-artist-in-residence/horst_hexes.png similarity index 100% rename from content/blog/rstudio/2019-11-18-artist-in-residence/horst_hexes.png rename to content/blog/ported/rstudio/2019-11-18-artist-in-residence/horst_hexes.png diff --git a/content/blog/rstudio/2019-11-18-artist-in-residence/horst_rstudio_air.png b/content/blog/ported/rstudio/2019-11-18-artist-in-residence/horst_rstudio_air.png similarity index 100% rename from content/blog/rstudio/2019-11-18-artist-in-residence/horst_rstudio_air.png rename to content/blog/ported/rstudio/2019-11-18-artist-in-residence/horst_rstudio_air.png diff --git a/content/blog/rstudio/2019-11-18-artist-in-residence/horst_teaching_code.png b/content/blog/ported/rstudio/2019-11-18-artist-in-residence/horst_teaching_code.png similarity index 100% rename from content/blog/rstudio/2019-11-18-artist-in-residence/horst_teaching_code.png rename to content/blog/ported/rstudio/2019-11-18-artist-in-residence/horst_teaching_code.png diff --git a/content/blog/rstudio/2019-11-18-artist-in-residence/index.md b/content/blog/ported/rstudio/2019-11-18-artist-in-residence/index.md similarity index 100% rename from content/blog/rstudio/2019-11-18-artist-in-residence/index.md rename to content/blog/ported/rstudio/2019-11-18-artist-in-residence/index.md diff --git a/content/blog/rstudio/2019-11-18-artist-in-residence/janitor_tyler_tweet.png b/content/blog/ported/rstudio/2019-11-18-artist-in-residence/janitor_tyler_tweet.png similarity index 100% rename from content/blog/rstudio/2019-11-18-artist-in-residence/janitor_tyler_tweet.png rename to content/blog/ported/rstudio/2019-11-18-artist-in-residence/janitor_tyler_tweet.png diff --git a/content/blog/rstudio/2019-11-18-artist-in-residence/rmarkdown_wizards.png b/content/blog/ported/rstudio/2019-11-18-artist-in-residence/rmarkdown_wizards.png similarity index 100% rename from content/blog/rstudio/2019-11-18-artist-in-residence/rmarkdown_wizards.png rename to content/blog/ported/rstudio/2019-11-18-artist-in-residence/rmarkdown_wizards.png diff --git a/content/blog/rstudio/2019-12-02-learnr-0-10-0/index.md b/content/blog/ported/rstudio/2019-12-02-learnr-0-10-0/index.md similarity index 100% rename from content/blog/rstudio/2019-12-02-learnr-0-10-0/index.md rename to content/blog/ported/rstudio/2019-12-02-learnr-0-10-0/index.md diff --git a/content/blog/rstudio/2019-12-02-learnr-0-10-0/learnr-sortable-demo.gif b/content/blog/ported/rstudio/2019-12-02-learnr-0-10-0/learnr-sortable-demo.gif similarity index 100% rename from content/blog/rstudio/2019-12-02-learnr-0-10-0/learnr-sortable-demo.gif rename to content/blog/ported/rstudio/2019-12-02-learnr-0-10-0/learnr-sortable-demo.gif diff --git a/content/blog/rstudio/2019-12-20-reticulate-1-14/index.md b/content/blog/ported/rstudio/2019-12-20-reticulate-1-14/index.md similarity index 100% rename from content/blog/rstudio/2019-12-20-reticulate-1-14/index.md rename to content/blog/ported/rstudio/2019-12-20-reticulate-1-14/index.md diff --git a/content/blog/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-book-cover.jpg b/content/blog/ported/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-book-cover.jpg similarity index 100% rename from content/blog/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-book-cover.jpg rename to content/blog/ported/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-book-cover.jpg diff --git a/content/blog/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-hail-histogram-pd.png b/content/blog/ported/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-hail-histogram-pd.png similarity index 100% rename from content/blog/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-hail-histogram-pd.png rename to content/blog/ported/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-hail-histogram-pd.png diff --git a/content/blog/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-linux-foundation-roadmap.png b/content/blog/ported/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-linux-foundation-roadmap.png similarity index 100% rename from content/blog/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-linux-foundation-roadmap.png rename to content/blog/ported/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/2020-01-29-sparklyr-1-1-linux-foundation-roadmap.png diff --git a/content/blog/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/index.md b/content/blog/ported/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/index.md similarity index 100% rename from content/blog/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/index.md rename to content/blog/ported/rstudio/2020-01-29-sparklyr-1-1-foundations-books-lakes-and-barriers/index.md diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/gt-test-drive.svg b/content/blog/ported/rstudio/2020-04-06-gt-0-2/gt-test-drive.svg similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/gt-test-drive.svg rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/gt-test-drive.svg diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/gt_datasets_labeled.svg b/content/blog/ported/rstudio/2020-04-06-gt-0-2/gt_datasets_labeled.svg similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/gt_datasets_labeled.svg rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/gt_datasets_labeled.svg diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/gt_hex.svg b/content/blog/ported/rstudio/2020-04-06-gt-0-2/gt_hex.svg similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/gt_hex.svg rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/gt_hex.svg diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/gt_parts_of_a_table.svg b/content/blog/ported/rstudio/2020-04-06-gt-0-2/gt_parts_of_a_table.svg similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/gt_parts_of_a_table.svg rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/gt_parts_of_a_table.svg diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/index.Rmd b/content/blog/ported/rstudio/2020-04-06-gt-0-2/index.Rmd similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/index.Rmd rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/index.Rmd diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/index.md b/content/blog/ported/rstudio/2020-04-06-gt-0-2/index.md similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/index.md rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/index.md diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/table_1.png b/content/blog/ported/rstudio/2020-04-06-gt-0-2/table_1.png similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/table_1.png rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/table_1.png diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/table_2.png b/content/blog/ported/rstudio/2020-04-06-gt-0-2/table_2.png similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/table_2.png rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/table_2.png diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/table_3.png b/content/blog/ported/rstudio/2020-04-06-gt-0-2/table_3.png similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/table_3.png rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/table_3.png diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/table_4.png b/content/blog/ported/rstudio/2020-04-06-gt-0-2/table_4.png similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/table_4.png rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/table_4.png diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/table_5.png b/content/blog/ported/rstudio/2020-04-06-gt-0-2/table_5.png similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/table_5.png rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/table_5.png diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/table_6.png b/content/blog/ported/rstudio/2020-04-06-gt-0-2/table_6.png similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/table_6.png rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/table_6.png diff --git a/content/blog/rstudio/2020-04-06-gt-0-2/thumbnail.png b/content/blog/ported/rstudio/2020-04-06-gt-0-2/thumbnail.png similarity index 100% rename from content/blog/rstudio/2020-04-06-gt-0-2/thumbnail.png rename to content/blog/ported/rstudio/2020-04-06-gt-0-2/thumbnail.png diff --git a/content/blog/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/2020-05-06-sparklyr-1-2-spark-backend-foreach-package.png b/content/blog/ported/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/2020-05-06-sparklyr-1-2-spark-backend-foreach-package.png similarity index 100% rename from content/blog/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/2020-05-06-sparklyr-1-2-spark-backend-foreach-package.png rename to content/blog/ported/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/2020-05-06-sparklyr-1-2-spark-backend-foreach-package.png diff --git a/content/blog/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/2020-05-06-sparklyr-1-2-spark-databricks-connect-rstudio.png b/content/blog/ported/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/2020-05-06-sparklyr-1-2-spark-databricks-connect-rstudio.png similarity index 100% rename from content/blog/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/2020-05-06-sparklyr-1-2-spark-databricks-connect-rstudio.png rename to content/blog/ported/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/2020-05-06-sparklyr-1-2-spark-databricks-connect-rstudio.png diff --git a/content/blog/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/index.md b/content/blog/ported/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/index.md similarity index 100% rename from content/blog/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/index.md rename to content/blog/ported/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/index.md diff --git a/content/blog/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/thumbnail.jpg b/content/blog/ported/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/thumbnail.jpg rename to content/blog/ported/rstudio/2020-05-04-sparklyr-1-2-foreach-spark-3-0-and-databricks-connect/thumbnail.jpg diff --git a/content/blog/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/index.md b/content/blog/ported/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/index.md similarity index 100% rename from content/blog/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/index.md rename to content/blog/ported/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/index.md diff --git a/content/blog/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/spark.png b/content/blog/ported/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/spark.png similarity index 100% rename from content/blog/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/spark.png rename to content/blog/ported/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/spark.png diff --git a/content/blog/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/sparklyr.png b/content/blog/ported/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/sparklyr.png similarity index 100% rename from content/blog/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/sparklyr.png rename to content/blog/ported/rstudio/2020-07-16-sparklyr-1-3-higher-order-functions-avro-and-custom-serializers/sparklyr.png diff --git a/content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/_benchmark.Rmd b/content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/_benchmark.Rmd similarity index 100% rename from content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/_benchmark.Rmd rename to content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/_benchmark.Rmd diff --git a/content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/appsilon-logo.png b/content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/appsilon-logo.png similarity index 100% rename from content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/appsilon-logo.png rename to content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/appsilon-logo.png diff --git a/content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/index.md b/content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/index.md similarity index 100% rename from content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/index.md rename to content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/index.md diff --git a/content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/old.jpg b/content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/old.jpg similarity index 100% rename from content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/old.jpg rename to content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/old.jpg diff --git a/content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/profvis.jpg b/content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/profvis.jpg similarity index 100% rename from content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/profvis.jpg rename to content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/profvis.jpg diff --git a/content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/profvis.png b/content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/profvis.png similarity index 100% rename from content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/profvis.png rename to content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/profvis.png diff --git a/content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-comparisons.gif b/content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-comparisons.gif similarity index 100% rename from content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-comparisons.gif rename to content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-comparisons.gif diff --git a/content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-thumbnail.jpg b/content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-thumbnail.jpg rename to content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-thumbnail.jpg diff --git a/content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-thumbnail.jpg.original b/content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-thumbnail.jpg.original similarity index 100% rename from content/blog/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-thumbnail.jpg.original rename to content/blog/ported/rstudio/2020-07-21-4-tips-to-make-your-shiny-dashboard-faster/shiny-thumbnail.jpg.original diff --git a/content/blog/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/index.md b/content/blog/ported/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/index.md similarity index 100% rename from content/blog/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/index.md rename to content/blog/ported/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/index.md diff --git a/content/blog/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/lander-logo.jpg b/content/blog/ported/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/lander-logo.jpg similarity index 100% rename from content/blog/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/lander-logo.jpg rename to content/blog/ported/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/lander-logo.jpg diff --git a/content/blog/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/legos.jpeg b/content/blog/ported/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/legos.jpeg similarity index 100% rename from content/blog/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/legos.jpeg rename to content/blog/ported/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/legos.jpeg diff --git a/content/blog/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/thumbnail.jpeg b/content/blog/ported/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/thumbnail.jpeg similarity index 100% rename from content/blog/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/thumbnail.jpeg rename to content/blog/ported/rstudio/2020-08-13-how-to-deliver-maximum-value-using-r-python/thumbnail.jpeg diff --git a/content/blog/rstudio/2020-09-29-introducing-torch-for-R/index.md b/content/blog/ported/rstudio/2020-09-29-introducing-torch-for-R/index.md similarity index 100% rename from content/blog/rstudio/2020-09-29-introducing-torch-for-R/index.md rename to content/blog/ported/rstudio/2020-09-29-introducing-torch-for-R/index.md diff --git a/content/blog/rstudio/2020-09-29-introducing-torch-for-R/torch.jpg b/content/blog/ported/rstudio/2020-09-29-introducing-torch-for-R/torch.jpg similarity index 100% rename from content/blog/rstudio/2020-09-29-introducing-torch-for-R/torch.jpg rename to content/blog/ported/rstudio/2020-09-29-introducing-torch-for-R/torch.jpg diff --git a/content/blog/rstudio/2020-09-29-introducing-torch-for-R/torch.jpg.original b/content/blog/ported/rstudio/2020-09-29-introducing-torch-for-R/torch.jpg.original similarity index 100% rename from content/blog/rstudio/2020-09-29-introducing-torch-for-R/torch.jpg.original rename to content/blog/ported/rstudio/2020-09-29-introducing-torch-for-R/torch.jpg.original diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/11-create-project.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/11-create-project.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/11-create-project.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/11-create-project.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/12-name-project.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/12-name-project.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/12-name-project.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/12-name-project.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/13-project-card.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/13-project-card.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/13-project-card.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/13-project-card.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/14-create-service-account.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/14-create-service-account.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/14-create-service-account.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/14-create-service-account.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/15-service-account-details.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/15-service-account-details.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/15-service-account-details.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/15-service-account-details.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/21-service-account-created.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/21-service-account-created.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/21-service-account-created.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/21-service-account-created.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/22-create-service-account-key.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/22-create-service-account-key.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/22-create-service-account-key.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/22-create-service-account-key.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/23-select-JSON-form.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/23-select-JSON-form.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/23-select-JSON-form.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/23-select-JSON-form.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/24-key-downloaded.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/24-key-downloaded.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/24-key-downloaded.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/24-key-downloaded.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/30-google-api-dashboard.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/30-google-api-dashboard.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/30-google-api-dashboard.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/30-google-api-dashboard.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/31-google-analytics-api-selection.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/31-google-analytics-api-selection.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/31-google-analytics-api-selection.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/31-google-analytics-api-selection.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/32-google-analytics-api-enable.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/32-google-analytics-api-enable.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/32-google-analytics-api-enable.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/32-google-analytics-api-enable.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/41-IAM-dash.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/41-IAM-dash.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/41-IAM-dash.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/41-IAM-dash.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/42-IAM-add-email.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/42-IAM-add-email.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/42-IAM-add-email.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/42-IAM-add-email.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/43-IAM-show-users.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/43-IAM-show-users.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/43-IAM-show-users.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/43-IAM-show-users.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/51-GA-dashboard.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/51-GA-dashboard.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/51-GA-dashboard.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/51-GA-dashboard.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/52-GA-add-credentials.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/52-GA-add-credentials.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/52-GA-add-credentials.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/52-GA-add-credentials.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/53-GA-add-client-id.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/53-GA-add-client-id.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/53-GA-add-client-id.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/53-GA-add-client-id.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/54-GA-client-id-created.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/54-GA-client-id-created.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/54-GA-client-id-created.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/54-GA-client-id-created.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/images/55-download-ID.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/55-download-ID.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/images/55-download-ID.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/images/55-download-ID.jpg diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/index.Rmd b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/index.Rmd similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/index.Rmd rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/index.Rmd diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/index.html b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/index.html similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/index.html rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/index.html diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/index_files/header-attrs/header-attrs.js b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/index_files/header-attrs/header-attrs.js similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/index_files/header-attrs/header-attrs.js rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/index_files/header-attrs/header-attrs.js diff --git a/content/blog/rstudio/2020-11-27-google-analytics-part1/thumbnail.jpg b/content/blog/ported/rstudio/2020-11-27-google-analytics-part1/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2020-11-27-google-analytics-part1/thumbnail.jpg rename to content/blog/ported/rstudio/2020-11-27-google-analytics-part1/thumbnail.jpg diff --git a/content/blog/rstudio/2020-12-04-distill/Knit-to-html.jpg b/content/blog/ported/rstudio/2020-12-04-distill/Knit-to-html.jpg similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/Knit-to-html.jpg rename to content/blog/ported/rstudio/2020-12-04-distill/Knit-to-html.jpg diff --git a/content/blog/rstudio/2020-12-04-distill/distill-pub.png b/content/blog/ported/rstudio/2020-12-04-distill/distill-pub.png similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/distill-pub.png rename to content/blog/ported/rstudio/2020-12-04-distill/distill-pub.png diff --git a/content/blog/rstudio/2020-12-04-distill/distill.bib b/content/blog/ported/rstudio/2020-12-04-distill/distill.bib similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/distill.bib rename to content/blog/ported/rstudio/2020-12-04-distill/distill.bib diff --git a/content/blog/rstudio/2020-12-04-distill/distill.png b/content/blog/ported/rstudio/2020-12-04-distill/distill.png similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/distill.png rename to content/blog/ported/rstudio/2020-12-04-distill/distill.png diff --git a/content/blog/rstudio/2020-12-04-distill/distill.png.original b/content/blog/ported/rstudio/2020-12-04-distill/distill.png.original similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/distill.png.original rename to content/blog/ported/rstudio/2020-12-04-distill/distill.png.original diff --git a/content/blog/rstudio/2020-12-04-distill/downlit.mp4 b/content/blog/ported/rstudio/2020-12-04-distill/downlit.mp4 similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/downlit.mp4 rename to content/blog/ported/rstudio/2020-12-04-distill/downlit.mp4 diff --git a/content/blog/rstudio/2020-12-04-distill/examples.png b/content/blog/ported/rstudio/2020-12-04-distill/examples.png similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/examples.png rename to content/blog/ported/rstudio/2020-12-04-distill/examples.png diff --git a/content/blog/rstudio/2020-12-04-distill/index.Rmd b/content/blog/ported/rstudio/2020-12-04-distill/index.Rmd similarity index 98% rename from content/blog/rstudio/2020-12-04-distill/index.Rmd rename to content/blog/ported/rstudio/2020-12-04-distill/index.Rmd index dc44676d3..ac696e537 100644 --- a/content/blog/rstudio/2020-12-04-distill/index.Rmd +++ b/content/blog/ported/rstudio/2020-12-04-distill/index.Rmd @@ -25,7 +25,7 @@ tags: - Packages --- -We are proud to announce that version 1.0 of the [distill package](https://pkgs.rstudio.com/distill/) is now on [CRAN](https://cran.r-project.org/web/packages/distill/index.html). While Distill has been around for awhile (and you may remember it by its original name, [Radix](/blog/rstudio/2018-09-19-radix-for-r-markdown/)), this latest version includes so many new features that we wanted to take a moment to re-introduce you to Distill. +We are proud to announce that version 1.0 of the [distill package](https://pkgs.rstudio.com/distill/) is now on [CRAN](https://cran.r-project.org/web/packages/distill/index.html). While Distill has been around for awhile (and you may remember it by its original name, [Radix](/blog/2018-09-19_radix-for-r-markdown/)), this latest version includes so many new features that we wanted to take a moment to re-introduce you to Distill. If you just want to jump in and get starting using Distill, you can install the latest version from CRAN: diff --git a/content/blog/rstudio/2020-12-04-distill/index.html b/content/blog/ported/rstudio/2020-12-04-distill/index.html similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/index.html rename to content/blog/ported/rstudio/2020-12-04-distill/index.html diff --git a/content/blog/rstudio/2020-12-04-distill/index_files/anchor-sections/anchor-sections.css b/content/blog/ported/rstudio/2020-12-04-distill/index_files/anchor-sections/anchor-sections.css similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/index_files/anchor-sections/anchor-sections.css rename to content/blog/ported/rstudio/2020-12-04-distill/index_files/anchor-sections/anchor-sections.css diff --git a/content/blog/rstudio/2020-12-04-distill/index_files/anchor-sections/anchor-sections.js b/content/blog/ported/rstudio/2020-12-04-distill/index_files/anchor-sections/anchor-sections.js similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/index_files/anchor-sections/anchor-sections.js rename to content/blog/ported/rstudio/2020-12-04-distill/index_files/anchor-sections/anchor-sections.js diff --git a/content/blog/rstudio/2020-12-04-distill/index_files/header-attrs/header-attrs.js b/content/blog/ported/rstudio/2020-12-04-distill/index_files/header-attrs/header-attrs.js similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/index_files/header-attrs/header-attrs.js rename to content/blog/ported/rstudio/2020-12-04-distill/index_files/header-attrs/header-attrs.js diff --git a/content/blog/rstudio/2020-12-04-distill/site.png b/content/blog/ported/rstudio/2020-12-04-distill/site.png similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/site.png rename to content/blog/ported/rstudio/2020-12-04-distill/site.png diff --git a/content/blog/rstudio/2020-12-04-distill/theme-after.png b/content/blog/ported/rstudio/2020-12-04-distill/theme-after.png similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/theme-after.png rename to content/blog/ported/rstudio/2020-12-04-distill/theme-after.png diff --git a/content/blog/rstudio/2020-12-04-distill/theme-after.png.original b/content/blog/ported/rstudio/2020-12-04-distill/theme-after.png.original similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/theme-after.png.original rename to content/blog/ported/rstudio/2020-12-04-distill/theme-after.png.original diff --git a/content/blog/rstudio/2020-12-04-distill/theme-before.png b/content/blog/ported/rstudio/2020-12-04-distill/theme-before.png similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/theme-before.png rename to content/blog/ported/rstudio/2020-12-04-distill/theme-before.png diff --git a/content/blog/rstudio/2020-12-04-distill/theme-before.png.original b/content/blog/ported/rstudio/2020-12-04-distill/theme-before.png.original similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/theme-before.png.original rename to content/blog/ported/rstudio/2020-12-04-distill/theme-before.png.original diff --git a/content/blog/rstudio/2020-12-04-distill/thumbnail.jpg b/content/blog/ported/rstudio/2020-12-04-distill/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2020-12-04-distill/thumbnail.jpg rename to content/blog/ported/rstudio/2020-12-04-distill/thumbnail.jpg diff --git a/content/blog/rstudio/2020-12-21-rmd-news/img/Fig-cap-num.png b/content/blog/ported/rstudio/2020-12-21-rmd-news/img/Fig-cap-num.png similarity index 100% rename from content/blog/rstudio/2020-12-21-rmd-news/img/Fig-cap-num.png rename to content/blog/ported/rstudio/2020-12-21-rmd-news/img/Fig-cap-num.png diff --git a/content/blog/rstudio/2020-12-21-rmd-news/img/bookdown-new-theorem.png b/content/blog/ported/rstudio/2020-12-21-rmd-news/img/bookdown-new-theorem.png similarity index 100% rename from content/blog/rstudio/2020-12-21-rmd-news/img/bookdown-new-theorem.png rename to content/blog/ported/rstudio/2020-12-21-rmd-news/img/bookdown-new-theorem.png diff --git a/content/blog/rstudio/2020-12-21-rmd-news/img/bookdown-theorem-engine.png b/content/blog/ported/rstudio/2020-12-21-rmd-news/img/bookdown-theorem-engine.png similarity index 100% rename from content/blog/rstudio/2020-12-21-rmd-news/img/bookdown-theorem-engine.png rename to content/blog/ported/rstudio/2020-12-21-rmd-news/img/bookdown-theorem-engine.png diff --git a/content/blog/rstudio/2020-12-21-rmd-news/index.md b/content/blog/ported/rstudio/2020-12-21-rmd-news/index.md similarity index 98% rename from content/blog/rstudio/2020-12-21-rmd-news/index.md rename to content/blog/ported/rstudio/2020-12-21-rmd-news/index.md index 5147efd22..9587f65d7 100644 --- a/content/blog/rstudio/2020-12-21-rmd-news/index.md +++ b/content/blog/ported/rstudio/2020-12-21-rmd-news/index.md @@ -232,7 +232,7 @@ Finally, we are proud to announce that version 1.0 of the [**distill** package]( install.packages("distill") ``` -In a post earlier this month, we shared some highlights from the [latest version of the **distill** package](/blog/rstudio/2020-12-04-distill/), which now includes site-wide search, a built-in themer, a syntax highlighter optimized for accessibility, and **downlit** integration, to name a few features we are excited about. +In a post earlier this month, we shared some highlights from the [latest version of the **distill** package](/blog/2020-12-07_distill/), which now includes site-wide search, a built-in themer, a syntax highlighter optimized for accessibility, and **downlit** integration, to name a few features we are excited about.

• See the release note for full list of changes.

diff --git a/content/blog/rstudio/2020-12-21-rmd-news/thumbnail.jpg b/content/blog/ported/rstudio/2020-12-21-rmd-news/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2020-12-21-rmd-news/thumbnail.jpg rename to content/blog/ported/rstudio/2020-12-21-rmd-news/thumbnail.jpg diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/Ohio-summary.csv b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/Ohio-summary.csv similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/Ohio-summary.csv rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/Ohio-summary.csv diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/index.Rmd b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/index.Rmd similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/index.Rmd rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/index.Rmd diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/index.html b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/index.html similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/index.html rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/index.html diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/silly-plot-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/silly-plot-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/silly-plot-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/silly-plot-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/thumbnail.jpg b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/thumbnail.jpg rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/thumbnail.jpg diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-1-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-1-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-1-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-1-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-10-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-10-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-10-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-10-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-11-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-11-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-11-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-11-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-12-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-12-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-12-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-12-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-14-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-14-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-14-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-14-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-15-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-15-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-15-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-15-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-16-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-16-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-16-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-16-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-17-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-17-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-17-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-17-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-5-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-5-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-5-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-5-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-7-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-7-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-7-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-7-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-8-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-8-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-8-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-8-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-9-1.png b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-9-1.png similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-9-1.png rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/unnamed-chunk-9-1.png diff --git a/content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/us_states_long.rdata b/content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/us_states_long.rdata similarity index 100% rename from content/blog/rstudio/2020-12-23-exploring-us-covid-19-cases/us_states_long.rdata rename to content/blog/ported/rstudio/2020-12-23-exploring-us-covid-19-cases/us_states_long.rdata diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/01-menu-rmarkdown.jpg b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/01-menu-rmarkdown.jpg similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/01-menu-rmarkdown.jpg rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/01-menu-rmarkdown.jpg diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/02-from-template.jpg b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/02-from-template.jpg similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/02-from-template.jpg rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/02-from-template.jpg diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/03-flexdashboard-template.jpg b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/03-flexdashboard-template.jpg similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/03-flexdashboard-template.jpg rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/03-flexdashboard-template.jpg diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/04-flexdashboard-template-result.jpg b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/04-flexdashboard-template-result.jpg similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/04-flexdashboard-template-result.jpg rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/04-flexdashboard-template-result.jpg diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/05-dashboard-final.jpg b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/05-dashboard-final.jpg similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/05-dashboard-final.jpg rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/05-dashboard-final.jpg diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/data/clickbait_GA_data.csv b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/data/clickbait_GA_data.csv similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/data/clickbait_GA_data.csv rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/data/clickbait_GA_data.csv diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/flexdashboard-template.Rmd b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/flexdashboard-template.Rmd similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/flexdashboard-template.Rmd rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/flexdashboard-template.Rmd diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/flexdashboard-template.html b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/flexdashboard-template.html similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/flexdashboard-template.html rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/flexdashboard-template.html diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index.Rmd b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index.Rmd similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index.Rmd rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index.Rmd diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index.html b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index.html similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index.html rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index.html diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/LICENSE b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/LICENSE similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/LICENSE rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/LICENSE diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/package.json b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/package.json similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/package.json rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/package.json diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/shim.min.js b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/shim.min.js similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/shim.min.js rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/core-js/shim.min.js diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/figure-html/unnamed-chunk-1-1.png b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/figure-html/unnamed-chunk-1-1.png similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/figure-html/unnamed-chunk-1-1.png rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/figure-html/unnamed-chunk-1-1.png diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/header-attrs/header-attrs.js b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/header-attrs/header-attrs.js similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/header-attrs/header-attrs.js rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/header-attrs/header-attrs.js diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/htmlwidgets/htmlwidgets.js b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/htmlwidgets/htmlwidgets.js similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/htmlwidgets/htmlwidgets.js rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/htmlwidgets/htmlwidgets.js diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/react/AUTHORS b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/react/AUTHORS similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/react/AUTHORS rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/react/AUTHORS diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/react/LICENSE.txt b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/react/LICENSE.txt similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/react/LICENSE.txt rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/react/LICENSE.txt diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/react/react-dom.min.js b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/react/react-dom.min.js similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/react/react-dom.min.js rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/react/react-dom.min.js diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/react/react.min.js b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/react/react.min.js similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/react/react.min.js rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/react/react.min.js diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/reactable-binding/reactable.js b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/reactable-binding/reactable.js similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/reactable-binding/reactable.js rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/reactable-binding/reactable.js diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/reactwidget/react-tools.js b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/reactwidget/react-tools.js similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/reactwidget/react-tools.js rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/reactwidget/react-tools.js diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/reactwidget/react-tools.js.map b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/reactwidget/react-tools.js.map similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/index_files/reactwidget/react-tools.js.map rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/index_files/reactwidget/react-tools.js.map diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/thumbnail.jpg b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/thumbnail.jpg rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/thumbnail.jpg diff --git a/content/blog/rstudio/2021-01-06-google-analytics-part2/unnamed-chunk-1-1.png b/content/blog/ported/rstudio/2021-01-06-google-analytics-part2/unnamed-chunk-1-1.png similarity index 100% rename from content/blog/rstudio/2021-01-06-google-analytics-part2/unnamed-chunk-1-1.png rename to content/blog/ported/rstudio/2021-01-06-google-analytics-part2/unnamed-chunk-1-1.png diff --git a/content/blog/rstudio/2021-01-18-blogdown/index.md b/content/blog/ported/rstudio/2021-01-18-blogdown/index.md similarity index 98% rename from content/blog/rstudio/2021-01-18-blogdown/index.md rename to content/blog/ported/rstudio/2021-01-18-blogdown/index.md index 894a4a4b9..3b3a8d132 100644 --- a/content/blog/rstudio/2021-01-18-blogdown/index.md +++ b/content/blog/ported/rstudio/2021-01-18-blogdown/index.md @@ -29,7 +29,7 @@ ported_categories: - Packages --- -The R Markdown team is happy to share that **blogdown** version 1.0 is now available on CRAN. **blogdown** was [originally released](/blog/rstudio/2017-09-11-announcing-blogdown/) in the fall of 2017. The latest version of the package includes some significant improvements to the user experience, and some under-the-hood improvements that you'll benefit from without even knowing! +The R Markdown team is happy to share that **blogdown** version 1.0 is now available on CRAN. **blogdown** was [originally released](/blog/2017-09-11_announcing-blogdown/) in the fall of 2017. The latest version of the package includes some significant improvements to the user experience, and some under-the-hood improvements that you'll benefit from without even knowing! | Latest release | |:------------------------------------------------------------------------------------------:| diff --git a/content/blog/rstudio/2021-01-18-blogdown/thumbnail.jpg b/content/blog/ported/rstudio/2021-01-18-blogdown/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2021-01-18-blogdown/thumbnail.jpg rename to content/blog/ported/rstudio/2021-01-18-blogdown/thumbnail.jpg diff --git a/content/blog/rstudio/2021-02-01-shiny-1-6-0/images/custom-theme.png b/content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/custom-theme.png similarity index 100% rename from content/blog/rstudio/2021-02-01-shiny-1-6-0/images/custom-theme.png rename to content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/custom-theme.png diff --git a/content/blog/rstudio/2021-02-01-shiny-1-6-0/images/custom-theme.png.original b/content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/custom-theme.png.original similarity index 100% rename from content/blog/rstudio/2021-02-01-shiny-1-6-0/images/custom-theme.png.original rename to content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/custom-theme.png.original diff --git a/content/blog/rstudio/2021-02-01-shiny-1-6-0/images/keyboard-outline.png b/content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/keyboard-outline.png similarity index 100% rename from content/blog/rstudio/2021-02-01-shiny-1-6-0/images/keyboard-outline.png rename to content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/keyboard-outline.png diff --git a/content/blog/rstudio/2021-02-01-shiny-1-6-0/images/mouse-outline.png b/content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/mouse-outline.png similarity index 100% rename from content/blog/rstudio/2021-02-01-shiny-1-6-0/images/mouse-outline.png rename to content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/mouse-outline.png diff --git a/content/blog/rstudio/2021-02-01-shiny-1-6-0/images/real-time-theming.mp4 b/content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/real-time-theming.mp4 similarity index 100% rename from content/blog/rstudio/2021-02-01-shiny-1-6-0/images/real-time-theming.mp4 rename to content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/real-time-theming.mp4 diff --git a/content/blog/rstudio/2021-02-01-shiny-1-6-0/images/shiny-logo.png b/content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/shiny-logo.png similarity index 100% rename from content/blog/rstudio/2021-02-01-shiny-1-6-0/images/shiny-logo.png rename to content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/shiny-logo.png diff --git a/content/blog/rstudio/2021-02-01-shiny-1-6-0/images/thematic-after.png b/content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/thematic-after.png similarity index 100% rename from content/blog/rstudio/2021-02-01-shiny-1-6-0/images/thematic-after.png rename to content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/thematic-after.png diff --git a/content/blog/rstudio/2021-02-01-shiny-1-6-0/images/thematic-before.png b/content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/thematic-before.png similarity index 100% rename from content/blog/rstudio/2021-02-01-shiny-1-6-0/images/thematic-before.png rename to content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/images/thematic-before.png diff --git a/content/blog/rstudio/2021-02-01-shiny-1-6-0/index.md b/content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/index.md similarity index 100% rename from content/blog/rstudio/2021-02-01-shiny-1-6-0/index.md rename to content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/index.md diff --git a/content/blog/rstudio/2021-02-01-shiny-1-6-0/thumbnail.jpg b/content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2021-02-01-shiny-1-6-0/thumbnail.jpg rename to content/blog/ported/rstudio/2021-02-01-shiny-1-6-0/thumbnail.jpg diff --git a/content/blog/rstudio/2021-02-12-shiny-app-stories/caching_article_sections.png b/content/blog/ported/rstudio/2021-02-12-shiny-app-stories/caching_article_sections.png similarity index 100% rename from content/blog/rstudio/2021-02-12-shiny-app-stories/caching_article_sections.png rename to content/blog/ported/rstudio/2021-02-12-shiny-app-stories/caching_article_sections.png diff --git a/content/blog/rstudio/2021-02-12-shiny-app-stories/full_app.png b/content/blog/ported/rstudio/2021-02-12-shiny-app-stories/full_app.png similarity index 100% rename from content/blog/rstudio/2021-02-12-shiny-app-stories/full_app.png rename to content/blog/ported/rstudio/2021-02-12-shiny-app-stories/full_app.png diff --git a/content/blog/rstudio/2021-02-12-shiny-app-stories/index.md b/content/blog/ported/rstudio/2021-02-12-shiny-app-stories/index.md similarity index 100% rename from content/blog/rstudio/2021-02-12-shiny-app-stories/index.md rename to content/blog/ported/rstudio/2021-02-12-shiny-app-stories/index.md diff --git a/content/blog/rstudio/2021-03-29-plumber-v1-1-0/a-plumber-hex.png b/content/blog/ported/rstudio/2021-03-29-plumber-v1-1-0/a-plumber-hex.png similarity index 100% rename from content/blog/rstudio/2021-03-29-plumber-v1-1-0/a-plumber-hex.png rename to content/blog/ported/rstudio/2021-03-29-plumber-v1-1-0/a-plumber-hex.png diff --git a/content/blog/rstudio/2021-03-29-plumber-v1-1-0/a-plumber-hex.png.original b/content/blog/ported/rstudio/2021-03-29-plumber-v1-1-0/a-plumber-hex.png.original similarity index 100% rename from content/blog/rstudio/2021-03-29-plumber-v1-1-0/a-plumber-hex.png.original rename to content/blog/ported/rstudio/2021-03-29-plumber-v1-1-0/a-plumber-hex.png.original diff --git a/content/blog/rstudio/2021-03-29-plumber-v1-1-0/future_promise.png b/content/blog/ported/rstudio/2021-03-29-plumber-v1-1-0/future_promise.png similarity index 100% rename from content/blog/rstudio/2021-03-29-plumber-v1-1-0/future_promise.png rename to content/blog/ported/rstudio/2021-03-29-plumber-v1-1-0/future_promise.png diff --git a/content/blog/rstudio/2021-03-29-plumber-v1-1-0/index.md b/content/blog/ported/rstudio/2021-03-29-plumber-v1-1-0/index.md similarity index 100% rename from content/blog/rstudio/2021-03-29-plumber-v1-1-0/index.md rename to content/blog/ported/rstudio/2021-03-29-plumber-v1-1-0/index.md diff --git a/content/blog/rstudio/2021-03-29-plumber-v1-1-0/swagger_ui.png b/content/blog/ported/rstudio/2021-03-29-plumber-v1-1-0/swagger_ui.png similarity index 100% rename from content/blog/rstudio/2021-03-29-plumber-v1-1-0/swagger_ui.png rename to content/blog/ported/rstudio/2021-03-29-plumber-v1-1-0/swagger_ui.png diff --git a/content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/diagram.png b/content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/diagram.png similarity index 100% rename from content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/diagram.png rename to content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/diagram.png diff --git a/content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/footer.jpg b/content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/footer.jpg similarity index 100% rename from content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/footer.jpg rename to content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/footer.jpg diff --git a/content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/header.png b/content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/header.png similarity index 100% rename from content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/header.png rename to content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/header.png diff --git a/content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/health.png b/content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/health.png similarity index 100% rename from content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/health.png rename to content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/health.png diff --git a/content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/index.md b/content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/index.md similarity index 100% rename from content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/index.md rename to content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/index.md diff --git a/content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/screenshot2.png b/content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/screenshot2.png similarity index 100% rename from content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/screenshot2.png rename to content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/screenshot2.png diff --git a/content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/social2.jpg b/content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/social2.jpg similarity index 100% rename from content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/social2.jpg rename to content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/social2.jpg diff --git a/content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/thumbnail.png b/content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/thumbnail.png similarity index 100% rename from content/blog/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/thumbnail.png rename to content/blog/ported/rstudio/2021-04-13-impressions-from-new-zealand-s-r-exchange/thumbnail.png diff --git a/content/blog/rstudio/2021-04-14-rmd-news/index.Rmd b/content/blog/ported/rstudio/2021-04-14-rmd-news/index.Rmd similarity index 98% rename from content/blog/rstudio/2021-04-14-rmd-news/index.Rmd rename to content/blog/ported/rstudio/2021-04-14-rmd-news/index.Rmd index 16763931c..968da8452 100644 --- a/content/blog/rstudio/2021-04-14-rmd-news/index.Rmd +++ b/content/blog/ported/rstudio/2021-04-14-rmd-news/index.Rmd @@ -406,7 +406,7 @@ Let's not forget other packages in the R Markdown family that have been updated + [**knitr**](https://github.com/yihui/knitr/) had 2 releases ([v1.31](https://github.com/yihui/knitr/releases/tag/v1.31) and [v1.32](https://github.com/yihui/knitr/releases/tag/v1.32)), which we'll detail in a separate post on this blog---stay tuned! See [release notes](https://github.com/yihui/knitr/releases/) for details in the meantime -+ [**blogdown**](https://pkgs.rstudio.com/blogdown/) had 3 releases ([v1.1](https://pkgs.rstudio.com/blogdown/news/index.html#changes-in-blogdown-version-1-1-2021-01-19), [v1.2](https://pkgs.rstudio.com/blogdown/news/index.html#changes-in-blogdown-version-1-2-2021-03-04), [v1.3](https://pkgs.rstudio.com/blogdown/news/index.html#changes-in-blogdown-version-1-3-unreleased)), following the [v1.0 release announcement](/blog/rstudio/2021-01-18-blogdown/) in January 2021. See [release note](https://pkgs.rstudio.com/blogdown/news/index.html) for details ++ [**blogdown**](https://pkgs.rstudio.com/blogdown/) had 3 releases ([v1.1](https://pkgs.rstudio.com/blogdown/news/index.html#changes-in-blogdown-version-1-1-2021-01-19), [v1.2](https://pkgs.rstudio.com/blogdown/news/index.html#changes-in-blogdown-version-1-2-2021-03-04), [v1.3](https://pkgs.rstudio.com/blogdown/news/index.html#changes-in-blogdown-version-1-3-unreleased)), following the [v1.0 release announcement](/blog/2021-01-18_blogdown-v1.0/) in January 2021. See [release note](https://pkgs.rstudio.com/blogdown/news/index.html) for details + [**DT**](https://rstudio.github.io/DT/) is now in version 0.18. Fixes and new features keep getting added regularly thanks to the help of [Xianying Tan](https://github.com/shrektan). See [release note](https://github.com/rstudio/DT/releases) for details diff --git a/content/blog/rstudio/2021-04-14-rmd-news/index.html b/content/blog/ported/rstudio/2021-04-14-rmd-news/index.html similarity index 100% rename from content/blog/rstudio/2021-04-14-rmd-news/index.html rename to content/blog/ported/rstudio/2021-04-14-rmd-news/index.html diff --git a/content/blog/rstudio/2021-04-14-rmd-news/index_files/header-attrs/header-attrs.js b/content/blog/ported/rstudio/2021-04-14-rmd-news/index_files/header-attrs/header-attrs.js similarity index 100% rename from content/blog/rstudio/2021-04-14-rmd-news/index_files/header-attrs/header-attrs.js rename to content/blog/ported/rstudio/2021-04-14-rmd-news/index_files/header-attrs/header-attrs.js diff --git a/content/blog/rstudio/2021-04-14-rmd-news/thumbnail.jpg b/content/blog/ported/rstudio/2021-04-14-rmd-news/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2021-04-14-rmd-news/thumbnail.jpg rename to content/blog/ported/rstudio/2021-04-14-rmd-news/thumbnail.jpg diff --git a/content/blog/rstudio/2021-05-20-asa-datafest-2021/datafest_logo.jpg b/content/blog/ported/rstudio/2021-05-20-asa-datafest-2021/datafest_logo.jpg similarity index 100% rename from content/blog/rstudio/2021-05-20-asa-datafest-2021/datafest_logo.jpg rename to content/blog/ported/rstudio/2021-05-20-asa-datafest-2021/datafest_logo.jpg diff --git a/content/blog/rstudio/2021-05-20-asa-datafest-2021/index.md b/content/blog/ported/rstudio/2021-05-20-asa-datafest-2021/index.md similarity index 100% rename from content/blog/rstudio/2021-05-20-asa-datafest-2021/index.md rename to content/blog/ported/rstudio/2021-05-20-asa-datafest-2021/index.md diff --git a/content/blog/rstudio/2021-05-20-asa-datafest-2021/thumbnail.png b/content/blog/ported/rstudio/2021-05-20-asa-datafest-2021/thumbnail.png similarity index 100% rename from content/blog/rstudio/2021-05-20-asa-datafest-2021/thumbnail.png rename to content/blog/ported/rstudio/2021-05-20-asa-datafest-2021/thumbnail.png diff --git a/content/blog/rstudio/2021-07-22-three-shiny-best-practices-seen-in-the-shiny-contest/index.md b/content/blog/ported/rstudio/2021-07-22-three-shiny-best-practices-seen-in-the-shiny-contest/index.md similarity index 100% rename from content/blog/rstudio/2021-07-22-three-shiny-best-practices-seen-in-the-shiny-contest/index.md rename to content/blog/ported/rstudio/2021-07-22-three-shiny-best-practices-seen-in-the-shiny-contest/index.md diff --git a/content/blog/rstudio/2021-07-22-three-shiny-best-practices-seen-in-the-shiny-contest/thumbnail.jpeg b/content/blog/ported/rstudio/2021-07-22-three-shiny-best-practices-seen-in-the-shiny-contest/thumbnail.jpeg similarity index 100% rename from content/blog/rstudio/2021-07-22-three-shiny-best-practices-seen-in-the-shiny-contest/thumbnail.jpeg rename to content/blog/ported/rstudio/2021-07-22-three-shiny-best-practices-seen-in-the-shiny-contest/thumbnail.jpeg diff --git a/content/blog/rstudio/2021-08-18-bookdown-release/index.Rmd b/content/blog/ported/rstudio/2021-08-18-bookdown-release/index.Rmd similarity index 100% rename from content/blog/rstudio/2021-08-18-bookdown-release/index.Rmd rename to content/blog/ported/rstudio/2021-08-18-bookdown-release/index.Rmd diff --git a/content/blog/rstudio/2021-08-18-bookdown-release/index.html b/content/blog/ported/rstudio/2021-08-18-bookdown-release/index.html similarity index 100% rename from content/blog/rstudio/2021-08-18-bookdown-release/index.html rename to content/blog/ported/rstudio/2021-08-18-bookdown-release/index.html diff --git a/content/blog/rstudio/2021-08-18-bookdown-release/index_files/header-attrs/header-attrs.js b/content/blog/ported/rstudio/2021-08-18-bookdown-release/index_files/header-attrs/header-attrs.js similarity index 100% rename from content/blog/rstudio/2021-08-18-bookdown-release/index_files/header-attrs/header-attrs.js rename to content/blog/ported/rstudio/2021-08-18-bookdown-release/index_files/header-attrs/header-attrs.js diff --git a/content/blog/rstudio/2021-08-18-bookdown-release/thumbnail.png b/content/blog/ported/rstudio/2021-08-18-bookdown-release/thumbnail.png similarity index 100% rename from content/blog/rstudio/2021-08-18-bookdown-release/thumbnail.png rename to content/blog/ported/rstudio/2021-08-18-bookdown-release/thumbnail.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/dplyr.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/dplyr.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/dplyr.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/dplyr.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/forcats.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/forcats.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/forcats.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/forcats.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/ggplot2.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/ggplot2.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/ggplot2.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/ggplot2.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/ide.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/ide.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/ide.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/ide.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/import.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/import.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/import.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/import.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/index.md b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/index.md similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/index.md rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/index.md diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/lubridate.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/lubridate.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/lubridate.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/lubridate.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/purrr.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/purrr.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/purrr.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/purrr.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/reticulate.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/reticulate.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/reticulate.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/reticulate.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/rmarkdown.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/rmarkdown.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/rmarkdown.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/rmarkdown.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/shiny.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/shiny.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/shiny.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/shiny.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/strings.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/strings.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/strings.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/strings.png diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/thumbnail.jpg b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/thumbnail.jpg rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/thumbnail.jpg diff --git a/content/blog/rstudio/2021-08-23-cheat-sheet-updates/tidyr.png b/content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/tidyr.png similarity index 100% rename from content/blog/rstudio/2021-08-23-cheat-sheet-updates/tidyr.png rename to content/blog/ported/rstudio/2021-08-23-cheat-sheet-updates/tidyr.png diff --git a/content/blog/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-cloud-boards-azure-gcloud-s3.png b/content/blog/ported/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-cloud-boards-azure-gcloud-s3.png similarity index 100% rename from content/blog/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-cloud-boards-azure-gcloud-s3.png rename to content/blog/ported/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-cloud-boards-azure-gcloud-s3.png diff --git a/content/blog/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-upload-s3-results.png b/content/blog/ported/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-upload-s3-results.png similarity index 100% rename from content/blog/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-upload-s3-results.png rename to content/blog/ported/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-upload-s3-results.png diff --git a/content/blog/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-upload-s3-results.png.original b/content/blog/ported/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-upload-s3-results.png.original similarity index 100% rename from content/blog/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-upload-s3-results.png.original rename to content/blog/ported/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/images/pins-upload-s3-results.png.original diff --git a/content/blog/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/index.md b/content/blog/ported/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/index.md similarity index 100% rename from content/blog/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/index.md rename to content/blog/ported/rstudio/2021-08-23-pins-0-3-0-azure-gcloud-and-s3/index.md diff --git a/content/blog/rstudio/2021-08-23-pins-0-4-0-versioning/images/digitalocean-spaces-pins-versioned.png b/content/blog/ported/rstudio/2021-08-23-pins-0-4-0-versioning/images/digitalocean-spaces-pins-versioned.png similarity index 100% rename from content/blog/rstudio/2021-08-23-pins-0-4-0-versioning/images/digitalocean-spaces-pins-versioned.png rename to content/blog/ported/rstudio/2021-08-23-pins-0-4-0-versioning/images/digitalocean-spaces-pins-versioned.png diff --git a/content/blog/rstudio/2021-08-23-pins-0-4-0-versioning/images/digitalocean-spaces-pins-versioned.png.original b/content/blog/ported/rstudio/2021-08-23-pins-0-4-0-versioning/images/digitalocean-spaces-pins-versioned.png.original similarity index 100% rename from content/blog/rstudio/2021-08-23-pins-0-4-0-versioning/images/digitalocean-spaces-pins-versioned.png.original rename to content/blog/ported/rstudio/2021-08-23-pins-0-4-0-versioning/images/digitalocean-spaces-pins-versioned.png.original diff --git a/content/blog/rstudio/2021-08-23-pins-0-4-0-versioning/images/thumbnail.jpg b/content/blog/ported/rstudio/2021-08-23-pins-0-4-0-versioning/images/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2021-08-23-pins-0-4-0-versioning/images/thumbnail.jpg rename to content/blog/ported/rstudio/2021-08-23-pins-0-4-0-versioning/images/thumbnail.jpg diff --git a/content/blog/rstudio/2021-08-23-pins-0-4-0-versioning/index.md b/content/blog/ported/rstudio/2021-08-23-pins-0-4-0-versioning/index.md similarity index 100% rename from content/blog/rstudio/2021-08-23-pins-0-4-0-versioning/index.md rename to content/blog/ported/rstudio/2021-08-23-pins-0-4-0-versioning/index.md diff --git a/content/blog/rstudio/2021-10-04-pins-1-0-0/index.Rmd b/content/blog/ported/rstudio/2021-10-04-pins-1-0-0/index.Rmd similarity index 100% rename from content/blog/rstudio/2021-10-04-pins-1-0-0/index.Rmd rename to content/blog/ported/rstudio/2021-10-04-pins-1-0-0/index.Rmd diff --git a/content/blog/rstudio/2021-10-04-pins-1-0-0/index.html b/content/blog/ported/rstudio/2021-10-04-pins-1-0-0/index.html similarity index 100% rename from content/blog/rstudio/2021-10-04-pins-1-0-0/index.html rename to content/blog/ported/rstudio/2021-10-04-pins-1-0-0/index.html diff --git a/content/blog/rstudio/2021-10-04-pins-1-0-0/index_files/header-attrs/header-attrs.js b/content/blog/ported/rstudio/2021-10-04-pins-1-0-0/index_files/header-attrs/header-attrs.js similarity index 100% rename from content/blog/rstudio/2021-10-04-pins-1-0-0/index_files/header-attrs/header-attrs.js rename to content/blog/ported/rstudio/2021-10-04-pins-1-0-0/index_files/header-attrs/header-attrs.js diff --git a/content/blog/rstudio/2021-10-04-pins-1-0-0/thumbnail.jpg b/content/blog/ported/rstudio/2021-10-04-pins-1-0-0/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2021-10-04-pins-1-0-0/thumbnail.jpg rename to content/blog/ported/rstudio/2021-10-04-pins-1-0-0/thumbnail.jpg diff --git a/content/blog/rstudio/2021-10-20-the-inspire-u2-program/aaa.png b/content/blog/ported/rstudio/2021-10-20-the-inspire-u2-program/aaa.png similarity index 100% rename from content/blog/rstudio/2021-10-20-the-inspire-u2-program/aaa.png rename to content/blog/ported/rstudio/2021-10-20-the-inspire-u2-program/aaa.png diff --git a/content/blog/rstudio/2021-10-20-the-inspire-u2-program/image.png b/content/blog/ported/rstudio/2021-10-20-the-inspire-u2-program/image.png similarity index 100% rename from content/blog/rstudio/2021-10-20-the-inspire-u2-program/image.png rename to content/blog/ported/rstudio/2021-10-20-the-inspire-u2-program/image.png diff --git a/content/blog/rstudio/2021-10-20-the-inspire-u2-program/index.md b/content/blog/ported/rstudio/2021-10-20-the-inspire-u2-program/index.md similarity index 100% rename from content/blog/rstudio/2021-10-20-the-inspire-u2-program/index.md rename to content/blog/ported/rstudio/2021-10-20-the-inspire-u2-program/index.md diff --git a/content/blog/rstudio/2021-10-20-the-inspire-u2-program/thumbnail.png b/content/blog/ported/rstudio/2021-10-20-the-inspire-u2-program/thumbnail.png similarity index 100% rename from content/blog/rstudio/2021-10-20-the-inspire-u2-program/thumbnail.png rename to content/blog/ported/rstudio/2021-10-20-the-inspire-u2-program/thumbnail.png diff --git a/content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/image1.png b/content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/image1.png similarity index 100% rename from content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/image1.png rename to content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/image1.png diff --git a/content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image2.png b/content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image2.png similarity index 100% rename from content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image2.png rename to content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image2.png diff --git a/content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image3.png b/content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image3.png similarity index 100% rename from content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image3.png rename to content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image3.png diff --git a/content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image4.png b/content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image4.png similarity index 100% rename from content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image4.png rename to content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image4.png diff --git a/content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image5.png b/content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image5.png similarity index 100% rename from content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image5.png rename to content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image5.png diff --git a/content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image6.png b/content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image6.png similarity index 100% rename from content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image6.png rename to content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/images/image6.png diff --git a/content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/index.md b/content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/index.md similarity index 100% rename from content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/index.md rename to content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/index.md diff --git a/content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/thumbnail.png b/content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/thumbnail.png similarity index 100% rename from content/blog/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/thumbnail.png rename to content/blog/ported/rstudio/2021-10-21-embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/thumbnail.png diff --git a/content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image1.png b/content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image1.png similarity index 100% rename from content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image1.png rename to content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image1.png diff --git a/content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image2.png b/content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image2.png similarity index 100% rename from content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image2.png rename to content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image2.png diff --git a/content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image3.png b/content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image3.png similarity index 100% rename from content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image3.png rename to content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image3.png diff --git a/content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image4.png b/content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image4.png similarity index 100% rename from content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image4.png rename to content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/image4.png diff --git a/content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/index.md b/content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/index.md similarity index 100% rename from content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/index.md rename to content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/index.md diff --git a/content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/logo.png b/content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/logo.png similarity index 100% rename from content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/logo.png rename to content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/logo.png diff --git a/content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/thumbnail.png b/content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/thumbnail.png similarity index 100% rename from content/blog/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/thumbnail.png rename to content/blog/ported/rstudio/2021-11-02-how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/thumbnail.png diff --git a/content/blog/rstudio/2021-11-15-augment-tableau-with-r-python/index.md b/content/blog/ported/rstudio/2021-11-15-augment-tableau-with-r-python/index.md similarity index 100% rename from content/blog/rstudio/2021-11-15-augment-tableau-with-r-python/index.md rename to content/blog/ported/rstudio/2021-11-15-augment-tableau-with-r-python/index.md diff --git a/content/blog/rstudio/2021-11-15-augment-tableau-with-r-python/thumbnail.png b/content/blog/ported/rstudio/2021-11-15-augment-tableau-with-r-python/thumbnail.png similarity index 100% rename from content/blog/rstudio/2021-11-15-augment-tableau-with-r-python/thumbnail.png rename to content/blog/ported/rstudio/2021-11-15-augment-tableau-with-r-python/thumbnail.png diff --git a/content/blog/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/images/image1.gif b/content/blog/ported/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/images/image1.gif similarity index 100% rename from content/blog/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/images/image1.gif rename to content/blog/ported/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/images/image1.gif diff --git a/content/blog/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/index.md b/content/blog/ported/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/index.md similarity index 100% rename from content/blog/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/index.md rename to content/blog/ported/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/index.md diff --git a/content/blog/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/thumbnail.jpg b/content/blog/ported/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/thumbnail.jpg rename to content/blog/ported/rstudio/2021-12-08-deep-learning-with-r-keras-for-r-updates/thumbnail.jpg diff --git a/content/blog/rstudio/2021-12-15-sharing-data-with-the-pins-package/images/image1.png b/content/blog/ported/rstudio/2021-12-15-sharing-data-with-the-pins-package/images/image1.png similarity index 100% rename from content/blog/rstudio/2021-12-15-sharing-data-with-the-pins-package/images/image1.png rename to content/blog/ported/rstudio/2021-12-15-sharing-data-with-the-pins-package/images/image1.png diff --git a/content/blog/rstudio/2021-12-15-sharing-data-with-the-pins-package/index.md b/content/blog/ported/rstudio/2021-12-15-sharing-data-with-the-pins-package/index.md similarity index 100% rename from content/blog/rstudio/2021-12-15-sharing-data-with-the-pins-package/index.md rename to content/blog/ported/rstudio/2021-12-15-sharing-data-with-the-pins-package/index.md diff --git a/content/blog/rstudio/2021-12-15-sharing-data-with-the-pins-package/thumbnail.png b/content/blog/ported/rstudio/2021-12-15-sharing-data-with-the-pins-package/thumbnail.png similarity index 100% rename from content/blog/rstudio/2021-12-15-sharing-data-with-the-pins-package/thumbnail.png rename to content/blog/ported/rstudio/2021-12-15-sharing-data-with-the-pins-package/thumbnail.png diff --git a/content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif1.gif b/content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif1.gif similarity index 100% rename from content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif1.gif rename to content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif1.gif diff --git a/content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif2.gif b/content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif2.gif similarity index 100% rename from content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif2.gif rename to content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif2.gif diff --git a/content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif3.gif b/content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif3.gif similarity index 100% rename from content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif3.gif rename to content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif3.gif diff --git a/content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif4.gif b/content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif4.gif similarity index 100% rename from content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif4.gif rename to content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif4.gif diff --git a/content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif5.gif b/content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif5.gif similarity index 100% rename from content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif5.gif rename to content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/gif5.gif diff --git a/content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img1.png b/content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img1.png similarity index 100% rename from content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img1.png rename to content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img1.png diff --git a/content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img2.png b/content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img2.png similarity index 100% rename from content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img2.png rename to content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img2.png diff --git a/content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img3.png b/content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img3.png similarity index 100% rename from content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img3.png rename to content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/img/img3.png diff --git a/content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/index.md b/content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/index.md similarity index 100% rename from content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/index.md rename to content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/index.md diff --git a/content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/thumbnail.png b/content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/thumbnail.png similarity index 100% rename from content/blog/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/thumbnail.png rename to content/blog/ported/rstudio/2021-12-20-dynamic-r-and-python-models-in-tableau-using-plumbertableau/thumbnail.png diff --git a/content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img1.png b/content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img1.png similarity index 100% rename from content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img1.png rename to content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img1.png diff --git a/content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img1.png.original b/content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img1.png.original similarity index 100% rename from content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img1.png.original rename to content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img1.png.original diff --git a/content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img2.png b/content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img2.png similarity index 100% rename from content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img2.png rename to content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img2.png diff --git a/content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img3.gif b/content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img3.gif similarity index 100% rename from content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img3.gif rename to content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/img/img3.gif diff --git a/content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/index.md b/content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/index.md similarity index 100% rename from content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/index.md rename to content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/index.md diff --git a/content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/thumbnail.jpg b/content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/thumbnail.jpg similarity index 100% rename from content/blog/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/thumbnail.jpg rename to content/blog/ported/rstudio/2022-01-06-r-markdown-lesser-known-tips-tricks-2-cleaning-up-your-code/thumbnail.jpg diff --git a/content/blog/shiny/.Rprofile b/content/blog/ported/shiny/.Rprofile similarity index 100% rename from content/blog/shiny/.Rprofile rename to content/blog/ported/shiny/.Rprofile diff --git a/content/blog/shiny/.gitignore b/content/blog/ported/shiny/.gitignore similarity index 100% rename from content/blog/shiny/.gitignore rename to content/blog/ported/shiny/.gitignore diff --git a/content/blog/shiny/_metadata.yml b/content/blog/ported/shiny/_metadata.yml similarity index 100% rename from content/blog/shiny/_metadata.yml rename to content/blog/ported/shiny/_metadata.yml diff --git a/content/blog/shiny/announcing-new-r-shiny-ui-components/bslib.jpg b/content/blog/ported/shiny/announcing-new-r-shiny-ui-components/bslib.jpg similarity index 100% rename from content/blog/shiny/announcing-new-r-shiny-ui-components/bslib.jpg rename to content/blog/ported/shiny/announcing-new-r-shiny-ui-components/bslib.jpg diff --git a/content/blog/shiny/announcing-new-r-shiny-ui-components/card.gif b/content/blog/ported/shiny/announcing-new-r-shiny-ui-components/card.gif similarity index 100% rename from content/blog/shiny/announcing-new-r-shiny-ui-components/card.gif rename to content/blog/ported/shiny/announcing-new-r-shiny-ui-components/card.gif diff --git a/content/blog/shiny/announcing-new-r-shiny-ui-components/fill-illustration.png b/content/blog/ported/shiny/announcing-new-r-shiny-ui-components/fill-illustration.png similarity index 100% rename from content/blog/shiny/announcing-new-r-shiny-ui-components/fill-illustration.png rename to content/blog/ported/shiny/announcing-new-r-shiny-ui-components/fill-illustration.png diff --git a/content/blog/shiny/announcing-new-r-shiny-ui-components/index.md b/content/blog/ported/shiny/announcing-new-r-shiny-ui-components/index.md similarity index 100% rename from content/blog/shiny/announcing-new-r-shiny-ui-components/index.md rename to content/blog/ported/shiny/announcing-new-r-shiny-ui-components/index.md diff --git a/content/blog/shiny/announcing-new-r-shiny-ui-components/index.qmd b/content/blog/ported/shiny/announcing-new-r-shiny-ui-components/index.qmd similarity index 100% rename from content/blog/shiny/announcing-new-r-shiny-ui-components/index.qmd rename to content/blog/ported/shiny/announcing-new-r-shiny-ui-components/index.qmd diff --git a/content/blog/shiny/announcing-new-r-shiny-ui-components/layout-column-wrap.gif b/content/blog/ported/shiny/announcing-new-r-shiny-ui-components/layout-column-wrap.gif similarity index 100% rename from content/blog/shiny/announcing-new-r-shiny-ui-components/layout-column-wrap.gif rename to content/blog/ported/shiny/announcing-new-r-shiny-ui-components/layout-column-wrap.gif diff --git a/content/blog/shiny/announcing-new-r-shiny-ui-components/shinyconflogo.jpg b/content/blog/ported/shiny/announcing-new-r-shiny-ui-components/shinyconflogo.jpg similarity index 100% rename from content/blog/shiny/announcing-new-r-shiny-ui-components/shinyconflogo.jpg rename to content/blog/ported/shiny/announcing-new-r-shiny-ui-components/shinyconflogo.jpg diff --git a/content/blog/shiny/announcing-new-r-shiny-ui-components/value-box.gif b/content/blog/ported/shiny/announcing-new-r-shiny-ui-components/value-box.gif similarity index 100% rename from content/blog/shiny/announcing-new-r-shiny-ui-components/value-box.gif rename to content/blog/ported/shiny/announcing-new-r-shiny-ui-components/value-box.gif diff --git a/content/blog/shiny/bslib-0.9.0/feature.jpg b/content/blog/ported/shiny/bslib-0.9.0/feature.jpg similarity index 100% rename from content/blog/shiny/bslib-0.9.0/feature.jpg rename to content/blog/ported/shiny/bslib-0.9.0/feature.jpg diff --git a/content/blog/shiny/bslib-0.9.0/index.md b/content/blog/ported/shiny/bslib-0.9.0/index.md similarity index 98% rename from content/blog/shiny/bslib-0.9.0/index.md rename to content/blog/ported/shiny/bslib-0.9.0/index.md index 8d563dc7d..444cba719 100644 --- a/content/blog/shiny/bslib-0.9.0/index.md +++ b/content/blog/ported/shiny/bslib-0.9.0/index.md @@ -27,7 +27,7 @@ We are excited to share that with [bslib](https://rstudio.github.io/bslib) v0.9. ## What is brand.yml? [brand.yml](https://posit-dev.github.io/brand-yml) simplifies brand management by consolidating your visual identity---colors, typography, and styling---into a single, easy-to-maintain YAML file. -Last year, we launched brand.yml with initial support in [Quarto](https://quarto.org/docs/authoring/brand.html) and [Shiny for Python](../../../blog/shiny/shiny-python-1.2-brand-yml/), and we're happy to be bringing brand.yml to R as well. +Last year, we launched brand.yml with initial support in [Quarto](https://quarto.org/docs/authoring/brand.html) and [Shiny for Python](/blog/2024-11-25_shiny-python-1.2-brand-yml/), and we're happy to be bringing brand.yml to R as well. If you haven't seen [brand.yml](https://posit-dev.github.io/brand-yml) in action yet, here's an example `_brand.yml` file that includes metadata about the company, its logos, color palette, theme, and the fonts and typographic settings used by the brand. diff --git a/content/blog/shiny/bslib-0.9.0/index.qmd b/content/blog/ported/shiny/bslib-0.9.0/index.qmd similarity index 98% rename from content/blog/shiny/bslib-0.9.0/index.qmd rename to content/blog/ported/shiny/bslib-0.9.0/index.qmd index 5d458f47c..e8c1e4a0a 100644 --- a/content/blog/shiny/bslib-0.9.0/index.qmd +++ b/content/blog/ported/shiny/bslib-0.9.0/index.qmd @@ -32,7 +32,7 @@ We are excited to share that with [bslib] v0.9.0, Shiny for R now supports [bran ## What is brand.yml? [brand.yml] simplifies brand management by consolidating your visual identity—colors, typography, and styling—into a single, easy-to-maintain YAML file. -Last year, we launched brand.yml with initial support in [Quarto](https://quarto.org/docs/authoring/brand.html) and [Shiny for Python](/blog/shiny/shiny-python-1.2-brand-yml/), and we're happy to be bringing brand.yml to R as well. +Last year, we launched brand.yml with initial support in [Quarto](https://quarto.org/docs/authoring/brand.html) and [Shiny for Python](/blog/2024-11-25_shiny-python-1.2-brand-yml/), and we're happy to be bringing brand.yml to R as well. If you haven't seen [brand.yml] in action yet, here's an example `_brand.yml` file that includes metadata about the company, its logos, color palette, theme, and the fonts and typographic settings used by the brand. diff --git a/content/blog/shiny/bslib-0.9.0/shiny-branding.png b/content/blog/ported/shiny/bslib-0.9.0/shiny-branding.png similarity index 100% rename from content/blog/shiny/bslib-0.9.0/shiny-branding.png rename to content/blog/ported/shiny/bslib-0.9.0/shiny-branding.png diff --git a/content/blog/shiny/bslib-0.9.0/shiny-no-branding.png b/content/blog/ported/shiny/bslib-0.9.0/shiny-no-branding.png similarity index 100% rename from content/blog/shiny/bslib-0.9.0/shiny-no-branding.png rename to content/blog/ported/shiny/bslib-0.9.0/shiny-no-branding.png diff --git a/content/blog/shiny/bslib-dashboards/accordion-sidebar.mp4 b/content/blog/ported/shiny/bslib-dashboards/accordion-sidebar.mp4 similarity index 100% rename from content/blog/shiny/bslib-dashboards/accordion-sidebar.mp4 rename to content/blog/ported/shiny/bslib-dashboards/accordion-sidebar.mp4 diff --git a/content/blog/shiny/bslib-dashboards/dashboard-real-time.mp4 b/content/blog/ported/shiny/bslib-dashboards/dashboard-real-time.mp4 similarity index 100% rename from content/blog/shiny/bslib-dashboards/dashboard-real-time.mp4 rename to content/blog/ported/shiny/bslib-dashboards/dashboard-real-time.mp4 diff --git a/content/blog/shiny/bslib-dashboards/dashboard.mp4 b/content/blog/ported/shiny/bslib-dashboards/dashboard.mp4 similarity index 100% rename from content/blog/shiny/bslib-dashboards/dashboard.mp4 rename to content/blog/ported/shiny/bslib-dashboards/dashboard.mp4 diff --git a/content/blog/shiny/bslib-dashboards/feature.png b/content/blog/ported/shiny/bslib-dashboards/feature.png similarity index 100% rename from content/blog/shiny/bslib-dashboards/feature.png rename to content/blog/ported/shiny/bslib-dashboards/feature.png diff --git a/content/blog/shiny/bslib-dashboards/feature.png.original b/content/blog/ported/shiny/bslib-dashboards/feature.png.original similarity index 100% rename from content/blog/shiny/bslib-dashboards/feature.png.original rename to content/blog/ported/shiny/bslib-dashboards/feature.png.original diff --git a/content/blog/shiny/bslib-dashboards/index.md b/content/blog/ported/shiny/bslib-dashboards/index.md similarity index 94% rename from content/blog/shiny/bslib-dashboards/index.md rename to content/blog/ported/shiny/bslib-dashboards/index.md index a87926452..b88ac7531 100644 --- a/content/blog/shiny/bslib-dashboards/index.md +++ b/content/blog/ported/shiny/bslib-dashboards/index.md @@ -39,7 +39,7 @@ You can run the examples in this post yourself (without having to install anythi ### Hello dashboards -`{bslib}`'s [last release](../../../blog/shiny/announcing-new-r-shiny-ui-components/) first introduced some important dashboard components (e.g., cards, value boxes, etc), but this release adds other essential pieces such as sidebar layouts, filling layouts, new column-wise layouts, accordions, and more. `{bslib}`'s new [Getting Started with dashboards](https://rstudio.github.io/bslib/articles/dashboards.html) article introduces all these pieces by first starting with a basic app and working towards some non-trivial dashboards, like the one below: +`{bslib}`'s [last release](/blog/2022-12-20_announcing-new-r-shiny-ui-components/) first introduced some important dashboard components (e.g., cards, value boxes, etc), but this release adds other essential pieces such as sidebar layouts, filling layouts, new column-wise layouts, accordions, and more. `{bslib}`'s new [Getting Started with dashboards](https://rstudio.github.io/bslib/articles/dashboards.html) article introduces all these pieces by first starting with a basic app and working towards some non-trivial dashboards, like the one below: {{< video src="dashboard.mp4" title="A Shiny dashboard for exploring the palmerpenguins dataset built using bslib" >}} diff --git a/content/blog/shiny/bslib-dashboards/index.qmd b/content/blog/ported/shiny/bslib-dashboards/index.qmd similarity index 94% rename from content/blog/shiny/bslib-dashboards/index.qmd rename to content/blog/ported/shiny/bslib-dashboards/index.qmd index f4028318a..9ae33e8de 100644 --- a/content/blog/shiny/bslib-dashboards/index.qmd +++ b/content/blog/ported/shiny/bslib-dashboards/index.qmd @@ -45,7 +45,7 @@ You can run the examples in this post yourself (without having to install anythi ### Hello dashboards -`{bslib}`'s [last release](/blog/shiny/announcing-new-r-shiny-ui-components/) first introduced some important dashboard components (e.g., cards, value boxes, etc), but this release adds other essential pieces such as sidebar layouts, filling layouts, new column-wise layouts, accordions, and more. `{bslib}`'s new [Getting Started with dashboards](https://rstudio.github.io/bslib/articles/dashboards.html) article introduces all these pieces by first starting with a basic app and working towards some non-trivial dashboards, like the one below: +`{bslib}`'s [last release](/blog/2022-12-20_announcing-new-r-shiny-ui-components/) first introduced some important dashboard components (e.g., cards, value boxes, etc), but this release adds other essential pieces such as sidebar layouts, filling layouts, new column-wise layouts, accordions, and more. `{bslib}`'s new [Getting Started with dashboards](https://rstudio.github.io/bslib/articles/dashboards.html) article introduces all these pieces by first starting with a basic app and working towards some non-trivial dashboards, like the one below: :::{.column-screen .bg-blue .py-5 .mt-4 .mb-5} :::{.column-body-outset} diff --git a/content/blog/shiny/bslib-dashboards/layout-columns.mp4 b/content/blog/ported/shiny/bslib-dashboards/layout-columns.mp4 similarity index 100% rename from content/blog/shiny/bslib-dashboards/layout-columns.mp4 rename to content/blog/ported/shiny/bslib-dashboards/layout-columns.mp4 diff --git a/content/blog/shiny/bslib-dashboards/layout-sidebar.mp4 b/content/blog/ported/shiny/bslib-dashboards/layout-sidebar.mp4 similarity index 100% rename from content/blog/shiny/bslib-dashboards/layout-sidebar.mp4 rename to content/blog/ported/shiny/bslib-dashboards/layout-sidebar.mp4 diff --git a/content/blog/shiny/bslib-tooltips/feature.png b/content/blog/ported/shiny/bslib-tooltips/feature.png similarity index 100% rename from content/blog/shiny/bslib-tooltips/feature.png rename to content/blog/ported/shiny/bslib-tooltips/feature.png diff --git a/content/blog/shiny/bslib-tooltips/feature.png.original b/content/blog/ported/shiny/bslib-tooltips/feature.png.original similarity index 100% rename from content/blog/shiny/bslib-tooltips/feature.png.original rename to content/blog/ported/shiny/bslib-tooltips/feature.png.original diff --git a/content/blog/shiny/bslib-tooltips/index.md b/content/blog/ported/shiny/bslib-tooltips/index.md similarity index 98% rename from content/blog/shiny/bslib-tooltips/index.md rename to content/blog/ported/shiny/bslib-tooltips/index.md index 5dc3cb105..58e5e89db 100644 --- a/content/blog/shiny/bslib-tooltips/index.md +++ b/content/blog/ported/shiny/bslib-tooltips/index.md @@ -45,7 +45,7 @@ That said, there are a few new features in `bslib` that we're particularly excit ## bslib -In [the last release of `bslib` (0.5.0)](../../../blog/shiny/bslib-dashboards/), we made significant strides towards `bslib` being our recommended way to [build modern Shiny dashboards](https://rstudio.github.io/bslib/articles/dashboards/index.html). +In [the last release of `bslib` (0.5.0)](/blog/2023-06-07_bslib-dashboards/), we made significant strides towards `bslib` being our recommended way to [build modern Shiny dashboards](https://rstudio.github.io/bslib/articles/dashboards/index.html). In this release, we've added more features to help you make even better dashboards. ### Tooltips and popovers diff --git a/content/blog/shiny/bslib-tooltips/index.qmd b/content/blog/ported/shiny/bslib-tooltips/index.qmd similarity index 98% rename from content/blog/shiny/bslib-tooltips/index.qmd rename to content/blog/ported/shiny/bslib-tooltips/index.qmd index c67958edd..cef43d3b4 100644 --- a/content/blog/shiny/bslib-tooltips/index.qmd +++ b/content/blog/ported/shiny/bslib-tooltips/index.qmd @@ -40,7 +40,7 @@ That said, there are a few new features in `bslib` that we're particularly excit ## bslib -In [the last release of `bslib` (0.5.0)](/blog/shiny/bslib-dashboards/), we made significant strides towards `bslib` being our recommended way to [build modern Shiny dashboards](https://rstudio.github.io/bslib/articles/dashboards/index.html). +In [the last release of `bslib` (0.5.0)](/blog/2023-06-07_bslib-dashboards/), we made significant strides towards `bslib` being our recommended way to [build modern Shiny dashboards](https://rstudio.github.io/bslib/articles/dashboards/index.html). In this release, we've added more features to help you make even better dashboards. ### Tooltips and popovers diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.css b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.css similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.css rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.css diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.min.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.min.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.min.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/code-editor.min.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.css b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.css similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.css rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.css diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.min.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.min.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.min.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/components.min.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.min.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.min.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.min.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/web-components.min.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/webComponents/webComponents.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/webComponents/webComponents.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/webComponents/webComponents.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-css-0.10.0/webComponents/webComponents.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.css b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.css similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.css rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.css diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.min.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.min.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.min.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/code-editor.min.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.css b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.css similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.css rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.css diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.min.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.min.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.min.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/components.min.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.min.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.min.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.min.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/web-components.min.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/webComponents/webComponents.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/webComponents/webComponents.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/webComponents/webComponents.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-component-js-0.10.0/webComponents/webComponents.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.css b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.css similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.css rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.css diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.min.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.min.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.min.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/code-editor.min.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.css b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.css similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.css rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.css diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.min.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.min.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.min.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/components.min.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.min.js.map b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.min.js.map similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.min.js.map rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/web-components.min.js.map diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/webComponents/webComponents.min.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/webComponents/webComponents.min.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/webComponents/webComponents.min.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/dist/webComponents/webComponents.min.js diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/accordion.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/accordion.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/accordion.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/accordion.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/card.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/card.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/card.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/card.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/grid.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/grid.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/grid.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/grid.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/input_submit_textarea.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/input_submit_textarea.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/input_submit_textarea.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/input_submit_textarea.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/mixins/_mixins.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/mixins/_mixins.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/mixins/_mixins.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/mixins/_mixins.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/nav_spacer.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/nav_spacer.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/nav_spacer.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/nav_spacer.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_fillable.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_fillable.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_fillable.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_fillable.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_navbar.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_navbar.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_navbar.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_navbar.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_sidebar.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_sidebar.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_sidebar.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/page_sidebar.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/sidebar.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/sidebar.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/sidebar.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/sidebar.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/toast.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/toast.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/toast.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/toast.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/value_box.scss b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/value_box.scss similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/value_box.scss rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/scss/value_box.scss diff --git a/content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/tag-require.js b/content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/tag-require.js similarity index 100% rename from content/blog/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/tag-require.js rename to content/blog/ported/shiny/bslib-tooltips/index_files/libs/bslib-tag-require-0.10.0/tag-require.js diff --git a/content/blog/shiny/bslib-tooltips/input-switch.mp4 b/content/blog/ported/shiny/bslib-tooltips/input-switch.mp4 similarity index 100% rename from content/blog/shiny/bslib-tooltips/input-switch.mp4 rename to content/blog/ported/shiny/bslib-tooltips/input-switch.mp4 diff --git a/content/blog/shiny/bslib-tooltips/quarto-bslib.mp4 b/content/blog/ported/shiny/bslib-tooltips/quarto-bslib.mp4 similarity index 100% rename from content/blog/shiny/bslib-tooltips/quarto-bslib.mp4 rename to content/blog/ported/shiny/bslib-tooltips/quarto-bslib.mp4 diff --git a/content/blog/shiny/bslib-tooltips/shiny-theme.mp4 b/content/blog/ported/shiny/bslib-tooltips/shiny-theme.mp4 similarity index 100% rename from content/blog/shiny/bslib-tooltips/shiny-theme.mp4 rename to content/blog/ported/shiny/bslib-tooltips/shiny-theme.mp4 diff --git a/content/blog/shiny/bslib-tooltips/tooltips-popovers.mp4 b/content/blog/ported/shiny/bslib-tooltips/tooltips-popovers.mp4 similarity index 100% rename from content/blog/shiny/bslib-tooltips/tooltips-popovers.mp4 rename to content/blog/ported/shiny/bslib-tooltips/tooltips-popovers.mp4 diff --git a/content/blog/shiny/cards-in-shinyuieditor/add-button-in-full-screen.mp4 b/content/blog/ported/shiny/cards-in-shinyuieditor/add-button-in-full-screen.mp4 similarity index 100% rename from content/blog/shiny/cards-in-shinyuieditor/add-button-in-full-screen.mp4 rename to content/blog/ported/shiny/cards-in-shinyuieditor/add-button-in-full-screen.mp4 diff --git a/content/blog/shiny/cards-in-shinyuieditor/add-button-in-full-screen.webm b/content/blog/ported/shiny/cards-in-shinyuieditor/add-button-in-full-screen.webm similarity index 100% rename from content/blog/shiny/cards-in-shinyuieditor/add-button-in-full-screen.webm rename to content/blog/ported/shiny/cards-in-shinyuieditor/add-button-in-full-screen.webm diff --git a/content/blog/shiny/cards-in-shinyuieditor/add-card-to-app.webm b/content/blog/ported/shiny/cards-in-shinyuieditor/add-card-to-app.webm similarity index 100% rename from content/blog/shiny/cards-in-shinyuieditor/add-card-to-app.webm rename to content/blog/ported/shiny/cards-in-shinyuieditor/add-card-to-app.webm diff --git a/content/blog/shiny/cards-in-shinyuieditor/add-footer-to-card.webm b/content/blog/ported/shiny/cards-in-shinyuieditor/add-footer-to-card.webm similarity index 100% rename from content/blog/shiny/cards-in-shinyuieditor/add-footer-to-card.webm rename to content/blog/ported/shiny/cards-in-shinyuieditor/add-footer-to-card.webm diff --git a/content/blog/shiny/cards-in-shinyuieditor/add-plot-to-card.webm b/content/blog/ported/shiny/cards-in-shinyuieditor/add-plot-to-card.webm similarity index 100% rename from content/blog/shiny/cards-in-shinyuieditor/add-plot-to-card.webm rename to content/blog/ported/shiny/cards-in-shinyuieditor/add-plot-to-card.webm diff --git a/content/blog/shiny/cards-in-shinyuieditor/card.gif b/content/blog/ported/shiny/cards-in-shinyuieditor/card.gif similarity index 100% rename from content/blog/shiny/cards-in-shinyuieditor/card.gif rename to content/blog/ported/shiny/cards-in-shinyuieditor/card.gif diff --git a/content/blog/shiny/cards-in-shinyuieditor/cards-thumbnail.png b/content/blog/ported/shiny/cards-in-shinyuieditor/cards-thumbnail.png similarity index 100% rename from content/blog/shiny/cards-in-shinyuieditor/cards-thumbnail.png rename to content/blog/ported/shiny/cards-in-shinyuieditor/cards-thumbnail.png diff --git a/content/blog/shiny/cards-in-shinyuieditor/index.md b/content/blog/ported/shiny/cards-in-shinyuieditor/index.md similarity index 98% rename from content/blog/shiny/cards-in-shinyuieditor/index.md rename to content/blog/ported/shiny/cards-in-shinyuieditor/index.md index e8d2ffdc6..80e753124 100644 --- a/content/blog/shiny/cards-in-shinyuieditor/index.md +++ b/content/blog/ported/shiny/cards-in-shinyuieditor/index.md @@ -48,7 +48,7 @@ remotes::install_github("rstudio/shinyuieditor") -Recently the `bslib` package added a card component that allows for the intuitive sizing of elements. These cards have powerful features like automatically growing their contents to fill the available space. This is especially useful for things like plots. Combined with an optional full-screen mode, it can make it super easy for users to dig into a specific view of your app without navigating to a different page or app. For more info, check out the [blog post announcing cards.](/blog/shiny/announcing-new-r-shiny-ui-components/) +Recently the `bslib` package added a card component that allows for the intuitive sizing of elements. These cards have powerful features like automatically growing their contents to fill the available space. This is especially useful for things like plots. Combined with an optional full-screen mode, it can make it super easy for users to dig into a specific view of your app without navigating to a different page or app. For more info, check out the [blog post announcing cards.](/blog/2022-12-20_announcing-new-r-shiny-ui-components/) ### Adding cards to your app diff --git a/content/blog/shiny/cards-in-shinyuieditor/index.qmd b/content/blog/ported/shiny/cards-in-shinyuieditor/index.qmd similarity index 98% rename from content/blog/shiny/cards-in-shinyuieditor/index.qmd rename to content/blog/ported/shiny/cards-in-shinyuieditor/index.qmd index 2fdd9154c..831c3ee0e 100644 --- a/content/blog/shiny/cards-in-shinyuieditor/index.qmd +++ b/content/blog/ported/shiny/cards-in-shinyuieditor/index.qmd @@ -52,7 +52,7 @@ remotes::install_github("rstudio/shinyuieditor") ![](card.gif){fig-alt="A card, holding a bar chart, expanding to a full screen view"} -Recently the `bslib` package added a card component that allows for the intuitive sizing of elements. These cards have powerful features like automatically growing their contents to fill the available space. This is especially useful for things like plots. Combined with an optional full-screen mode, it can make it super easy for users to dig into a specific view of your app without navigating to a different page or app. For more info, check out the [blog post announcing cards.](/blog/shiny/announcing-new-r-shiny-ui-components/) +Recently the `bslib` package added a card component that allows for the intuitive sizing of elements. These cards have powerful features like automatically growing their contents to fill the available space. This is especially useful for things like plots. Combined with an optional full-screen mode, it can make it super easy for users to dig into a specific view of your app without navigating to a different page or app. For more info, check out the [blog post announcing cards.](/blog/2022-12-20_announcing-new-r-shiny-ui-components/) ### Adding cards to your app diff --git a/content/blog/shiny/chromote-0.5.0/chromote-asciicast.R b/content/blog/ported/shiny/chromote-0.5.0/chromote-asciicast.R similarity index 100% rename from content/blog/shiny/chromote-0.5.0/chromote-asciicast.R rename to content/blog/ported/shiny/chromote-0.5.0/chromote-asciicast.R diff --git a/content/blog/shiny/chromote-0.5.0/chromote-demo.svg b/content/blog/ported/shiny/chromote-0.5.0/chromote-demo.svg similarity index 100% rename from content/blog/shiny/chromote-0.5.0/chromote-demo.svg rename to content/blog/ported/shiny/chromote-0.5.0/chromote-demo.svg diff --git a/content/blog/shiny/chromote-0.5.0/chromote.png b/content/blog/ported/shiny/chromote-0.5.0/chromote.png similarity index 100% rename from content/blog/shiny/chromote-0.5.0/chromote.png rename to content/blog/ported/shiny/chromote-0.5.0/chromote.png diff --git a/content/blog/shiny/chromote-0.5.0/feature.png b/content/blog/ported/shiny/chromote-0.5.0/feature.png similarity index 100% rename from content/blog/shiny/chromote-0.5.0/feature.png rename to content/blog/ported/shiny/chromote-0.5.0/feature.png diff --git a/content/blog/shiny/chromote-0.5.0/index.md b/content/blog/ported/shiny/chromote-0.5.0/index.md similarity index 100% rename from content/blog/shiny/chromote-0.5.0/index.md rename to content/blog/ported/shiny/chromote-0.5.0/index.md diff --git a/content/blog/shiny/chromote-0.5.0/index.qmd b/content/blog/ported/shiny/chromote-0.5.0/index.qmd similarity index 100% rename from content/blog/shiny/chromote-0.5.0/index.qmd rename to content/blog/ported/shiny/chromote-0.5.0/index.qmd diff --git a/content/blog/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid-init.js b/content/blog/ported/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid-init.js similarity index 100% rename from content/blog/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid-init.js rename to content/blog/ported/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid-init.js diff --git a/content/blog/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid.css b/content/blog/ported/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid.css similarity index 100% rename from content/blog/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid.css rename to content/blog/ported/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid.css diff --git a/content/blog/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid.min.js b/content/blog/ported/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid.min.js similarity index 100% rename from content/blog/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid.min.js rename to content/blog/ported/shiny/chromote-0.5.0/index_files/libs/quarto-diagram/mermaid.min.js diff --git a/content/blog/shiny/chromote-0.5.0/old-new-headless.svg b/content/blog/ported/shiny/chromote-0.5.0/old-new-headless.svg similarity index 100% rename from content/blog/shiny/chromote-0.5.0/old-new-headless.svg rename to content/blog/ported/shiny/chromote-0.5.0/old-new-headless.svg diff --git a/content/blog/shiny/conf-2023-recap-andrew-holz/index.md b/content/blog/ported/shiny/conf-2023-recap-andrew-holz/index.md similarity index 100% rename from content/blog/shiny/conf-2023-recap-andrew-holz/index.md rename to content/blog/ported/shiny/conf-2023-recap-andrew-holz/index.md diff --git a/content/blog/shiny/conf-2023-recap-andrew-holz/index.qmd b/content/blog/ported/shiny/conf-2023-recap-andrew-holz/index.qmd similarity index 100% rename from content/blog/shiny/conf-2023-recap-andrew-holz/index.qmd rename to content/blog/ported/shiny/conf-2023-recap-andrew-holz/index.qmd diff --git a/content/blog/shiny/conf-2023-recap-andrew-holz/shinyconflogo.jpg b/content/blog/ported/shiny/conf-2023-recap-andrew-holz/shinyconflogo.jpg similarity index 100% rename from content/blog/shiny/conf-2023-recap-andrew-holz/shinyconflogo.jpg rename to content/blog/ported/shiny/conf-2023-recap-andrew-holz/shinyconflogo.jpg diff --git a/content/blog/shiny/conf-2024-shinytalks/index.md b/content/blog/ported/shiny/conf-2024-shinytalks/index.md similarity index 100% rename from content/blog/shiny/conf-2024-shinytalks/index.md rename to content/blog/ported/shiny/conf-2024-shinytalks/index.md diff --git a/content/blog/shiny/conf-2024-shinytalks/index.qmd b/content/blog/ported/shiny/conf-2024-shinytalks/index.qmd similarity index 100% rename from content/blog/shiny/conf-2024-shinytalks/index.qmd rename to content/blog/ported/shiny/conf-2024-shinytalks/index.qmd diff --git a/content/blog/shiny/conf-2024-shinytalks/shinytalks.jpg b/content/blog/ported/shiny/conf-2024-shinytalks/shinytalks.jpg similarity index 100% rename from content/blog/shiny/conf-2024-shinytalks/shinytalks.jpg rename to content/blog/ported/shiny/conf-2024-shinytalks/shinytalks.jpg diff --git a/content/blog/shiny/conf-2025-shinytalks/conf-recordings-banner.png b/content/blog/ported/shiny/conf-2025-shinytalks/conf-recordings-banner.png similarity index 100% rename from content/blog/shiny/conf-2025-shinytalks/conf-recordings-banner.png rename to content/blog/ported/shiny/conf-2025-shinytalks/conf-recordings-banner.png diff --git a/content/blog/shiny/conf-2025-shinytalks/github.svg b/content/blog/ported/shiny/conf-2025-shinytalks/github.svg similarity index 100% rename from content/blog/shiny/conf-2025-shinytalks/github.svg rename to content/blog/ported/shiny/conf-2025-shinytalks/github.svg diff --git a/content/blog/shiny/conf-2025-shinytalks/index.md b/content/blog/ported/shiny/conf-2025-shinytalks/index.md similarity index 100% rename from content/blog/shiny/conf-2025-shinytalks/index.md rename to content/blog/ported/shiny/conf-2025-shinytalks/index.md diff --git a/content/blog/shiny/conf-2025-shinytalks/index.qmd b/content/blog/ported/shiny/conf-2025-shinytalks/index.qmd similarity index 100% rename from content/blog/shiny/conf-2025-shinytalks/index.qmd rename to content/blog/ported/shiny/conf-2025-shinytalks/index.qmd diff --git a/content/blog/shiny/dynamic-accordion-panels/accordion_form.png b/content/blog/ported/shiny/dynamic-accordion-panels/accordion_form.png similarity index 100% rename from content/blog/shiny/dynamic-accordion-panels/accordion_form.png rename to content/blog/ported/shiny/dynamic-accordion-panels/accordion_form.png diff --git a/content/blog/shiny/dynamic-accordion-panels/basic_form.png b/content/blog/ported/shiny/dynamic-accordion-panels/basic_form.png similarity index 100% rename from content/blog/shiny/dynamic-accordion-panels/basic_form.png rename to content/blog/ported/shiny/dynamic-accordion-panels/basic_form.png diff --git a/content/blog/shiny/dynamic-accordion-panels/comparison.png b/content/blog/ported/shiny/dynamic-accordion-panels/comparison.png similarity index 100% rename from content/blog/shiny/dynamic-accordion-panels/comparison.png rename to content/blog/ported/shiny/dynamic-accordion-panels/comparison.png diff --git a/content/blog/shiny/dynamic-accordion-panels/comparison.png.original b/content/blog/ported/shiny/dynamic-accordion-panels/comparison.png.original similarity index 100% rename from content/blog/shiny/dynamic-accordion-panels/comparison.png.original rename to content/blog/ported/shiny/dynamic-accordion-panels/comparison.png.original diff --git a/content/blog/shiny/dynamic-accordion-panels/forms.jpg b/content/blog/ported/shiny/dynamic-accordion-panels/forms.jpg similarity index 100% rename from content/blog/shiny/dynamic-accordion-panels/forms.jpg rename to content/blog/ported/shiny/dynamic-accordion-panels/forms.jpg diff --git a/content/blog/shiny/dynamic-accordion-panels/index.md b/content/blog/ported/shiny/dynamic-accordion-panels/index.md similarity index 100% rename from content/blog/shiny/dynamic-accordion-panels/index.md rename to content/blog/ported/shiny/dynamic-accordion-panels/index.md diff --git a/content/blog/shiny/dynamic-accordion-panels/index.qmd b/content/blog/ported/shiny/dynamic-accordion-panels/index.qmd similarity index 100% rename from content/blog/shiny/dynamic-accordion-panels/index.qmd rename to content/blog/ported/shiny/dynamic-accordion-panels/index.qmd diff --git a/content/blog/shiny/introducing-component-layouts/components.css b/content/blog/ported/shiny/introducing-component-layouts/components.css similarity index 100% rename from content/blog/shiny/introducing-component-layouts/components.css rename to content/blog/ported/shiny/introducing-component-layouts/components.css diff --git a/content/blog/shiny/introducing-component-layouts/index.md b/content/blog/ported/shiny/introducing-component-layouts/index.md similarity index 99% rename from content/blog/shiny/introducing-component-layouts/index.md rename to content/blog/ported/shiny/introducing-component-layouts/index.md index e0352c1f4..752f7110d 100644 --- a/content/blog/shiny/introducing-component-layouts/index.md +++ b/content/blog/ported/shiny/introducing-component-layouts/index.md @@ -57,7 +57,7 @@ and edit it---right in the browser, without the need to create or host your own Shiny app. This makes it easy to experiment and see the results! -Here is an example of the Value Box preview and code. Use the tabs to switch between the new [Shiny Express syntax](../../../blog/shiny/shiny-express/) and the original Shiny Core syntax. +Here is an example of the Value Box preview and code. Use the tabs to switch between the new [Shiny Express syntax](/blog/2024-01-29_shiny-express/) and the original Shiny Core syntax. diff --git a/content/blog/shiny/introducing-component-layouts/index.qmd b/content/blog/ported/shiny/introducing-component-layouts/index.qmd similarity index 99% rename from content/blog/shiny/introducing-component-layouts/index.qmd rename to content/blog/ported/shiny/introducing-component-layouts/index.qmd index 7a1cead4d..9db3ba3d9 100644 --- a/content/blog/shiny/introducing-component-layouts/index.qmd +++ b/content/blog/ported/shiny/introducing-component-layouts/index.qmd @@ -60,7 +60,7 @@ and edit it—right in the browser, without the need to create or host your own Shiny app. This makes it easy to experiment and see the results! -Here is an example of the Value Box preview and code. Use the tabs to switch between the new [Shiny Express syntax](/blog/shiny/shiny-express/) and the original Shiny Core syntax. +Here is an example of the Value Box preview and code. Use the tabs to switch between the new [Shiny Express syntax](/blog/2024-01-29_shiny-express/) and the original Shiny Core syntax. :::{.column-page .py-4} diff --git a/content/blog/shiny/introducing-component-layouts/layouts-thumb.jpg b/content/blog/ported/shiny/introducing-component-layouts/layouts-thumb.jpg similarity index 100% rename from content/blog/shiny/introducing-component-layouts/layouts-thumb.jpg rename to content/blog/ported/shiny/introducing-component-layouts/layouts-thumb.jpg diff --git a/content/blog/shiny/introducing-component-layouts/sidebar-layouts.jpg b/content/blog/ported/shiny/introducing-component-layouts/sidebar-layouts.jpg similarity index 100% rename from content/blog/shiny/introducing-component-layouts/sidebar-layouts.jpg rename to content/blog/ported/shiny/introducing-component-layouts/sidebar-layouts.jpg diff --git a/content/blog/shiny/introducing-shiny-templates/index.md b/content/blog/ported/shiny/introducing-shiny-templates/index.md similarity index 100% rename from content/blog/shiny/introducing-shiny-templates/index.md rename to content/blog/ported/shiny/introducing-shiny-templates/index.md diff --git a/content/blog/shiny/introducing-shiny-templates/index.qmd b/content/blog/ported/shiny/introducing-shiny-templates/index.qmd similarity index 100% rename from content/blog/shiny/introducing-shiny-templates/index.qmd rename to content/blog/ported/shiny/introducing-shiny-templates/index.qmd diff --git a/content/blog/shiny/introducing-shiny-templates/templates2.jpg b/content/blog/ported/shiny/introducing-shiny-templates/templates2.jpg similarity index 100% rename from content/blog/shiny/introducing-shiny-templates/templates2.jpg rename to content/blog/ported/shiny/introducing-shiny-templates/templates2.jpg diff --git a/content/blog/shiny/listing.lua b/content/blog/ported/shiny/listing.lua similarity index 100% rename from content/blog/shiny/listing.lua rename to content/blog/ported/shiny/listing.lua diff --git a/content/blog/shiny/promises-1.5.0/feature.png b/content/blog/ported/shiny/promises-1.5.0/feature.png similarity index 100% rename from content/blog/shiny/promises-1.5.0/feature.png rename to content/blog/ported/shiny/promises-1.5.0/feature.png diff --git a/content/blog/shiny/promises-1.5.0/index.md b/content/blog/ported/shiny/promises-1.5.0/index.md similarity index 100% rename from content/blog/shiny/promises-1.5.0/index.md rename to content/blog/ported/shiny/promises-1.5.0/index.md diff --git a/content/blog/shiny/promises-1.5.0/index.qmd b/content/blog/ported/shiny/promises-1.5.0/index.qmd similarity index 100% rename from content/blog/shiny/promises-1.5.0/index.qmd rename to content/blog/ported/shiny/promises-1.5.0/index.qmd diff --git a/content/blog/shiny/promises-1.5.0/logfire-disconnected.png b/content/blog/ported/shiny/promises-1.5.0/logfire-disconnected.png similarity index 100% rename from content/blog/shiny/promises-1.5.0/logfire-disconnected.png rename to content/blog/ported/shiny/promises-1.5.0/logfire-disconnected.png diff --git a/content/blog/shiny/promises-1.5.0/logfire-nested.png b/content/blog/ported/shiny/promises-1.5.0/logfire-nested.png similarity index 100% rename from content/blog/shiny/promises-1.5.0/logfire-nested.png rename to content/blog/ported/shiny/promises-1.5.0/logfire-nested.png diff --git a/content/blog/shiny/promises-1.5.0/logfire.R b/content/blog/ported/shiny/promises-1.5.0/logfire.R similarity index 100% rename from content/blog/shiny/promises-1.5.0/logfire.R rename to content/blog/ported/shiny/promises-1.5.0/logfire.R diff --git a/content/blog/shiny/pyproject.toml b/content/blog/ported/shiny/pyproject.toml similarity index 100% rename from content/blog/shiny/pyproject.toml rename to content/blog/ported/shiny/pyproject.toml diff --git a/content/blog/shiny/querychat-python-r/diamonds-bespoke-py.png b/content/blog/ported/shiny/querychat-python-r/diamonds-bespoke-py.png similarity index 100% rename from content/blog/shiny/querychat-python-r/diamonds-bespoke-py.png rename to content/blog/ported/shiny/querychat-python-r/diamonds-bespoke-py.png diff --git a/content/blog/shiny/querychat-python-r/diamonds-bespoke-py.png.original b/content/blog/ported/shiny/querychat-python-r/diamonds-bespoke-py.png.original similarity index 100% rename from content/blog/shiny/querychat-python-r/diamonds-bespoke-py.png.original rename to content/blog/ported/shiny/querychat-python-r/diamonds-bespoke-py.png.original diff --git a/content/blog/shiny/querychat-python-r/diamonds-bespoke-r.png b/content/blog/ported/shiny/querychat-python-r/diamonds-bespoke-r.png similarity index 100% rename from content/blog/shiny/querychat-python-r/diamonds-bespoke-r.png rename to content/blog/ported/shiny/querychat-python-r/diamonds-bespoke-r.png diff --git a/content/blog/shiny/querychat-python-r/diamonds-bespoke-r.png.original b/content/blog/ported/shiny/querychat-python-r/diamonds-bespoke-r.png.original similarity index 100% rename from content/blog/shiny/querychat-python-r/diamonds-bespoke-r.png.original rename to content/blog/ported/shiny/querychat-python-r/diamonds-bespoke-r.png.original diff --git a/content/blog/shiny/querychat-python-r/diamonds-drop-py.png b/content/blog/ported/shiny/querychat-python-r/diamonds-drop-py.png similarity index 100% rename from content/blog/shiny/querychat-python-r/diamonds-drop-py.png rename to content/blog/ported/shiny/querychat-python-r/diamonds-drop-py.png diff --git a/content/blog/shiny/querychat-python-r/diamonds-drop-r.png b/content/blog/ported/shiny/querychat-python-r/diamonds-drop-r.png similarity index 100% rename from content/blog/shiny/querychat-python-r/diamonds-drop-r.png rename to content/blog/ported/shiny/querychat-python-r/diamonds-drop-r.png diff --git a/content/blog/shiny/querychat-python-r/diamonds-py.png b/content/blog/ported/shiny/querychat-python-r/diamonds-py.png similarity index 100% rename from content/blog/shiny/querychat-python-r/diamonds-py.png rename to content/blog/ported/shiny/querychat-python-r/diamonds-py.png diff --git a/content/blog/shiny/querychat-python-r/diamonds-py.png.original b/content/blog/ported/shiny/querychat-python-r/diamonds-py.png.original similarity index 100% rename from content/blog/shiny/querychat-python-r/diamonds-py.png.original rename to content/blog/ported/shiny/querychat-python-r/diamonds-py.png.original diff --git a/content/blog/shiny/querychat-python-r/diamonds-r.png b/content/blog/ported/shiny/querychat-python-r/diamonds-r.png similarity index 100% rename from content/blog/shiny/querychat-python-r/diamonds-r.png rename to content/blog/ported/shiny/querychat-python-r/diamonds-r.png diff --git a/content/blog/shiny/querychat-python-r/diamonds-r.png.original b/content/blog/ported/shiny/querychat-python-r/diamonds-r.png.original similarity index 100% rename from content/blog/shiny/querychat-python-r/diamonds-r.png.original rename to content/blog/ported/shiny/querychat-python-r/diamonds-r.png.original diff --git a/content/blog/shiny/querychat-python-r/index.md b/content/blog/ported/shiny/querychat-python-r/index.md similarity index 99% rename from content/blog/shiny/querychat-python-r/index.md rename to content/blog/ported/shiny/querychat-python-r/index.md index 52163852e..1fc2b4f5e 100644 --- a/content/blog/shiny/querychat-python-r/index.md +++ b/content/blog/ported/shiny/querychat-python-r/index.md @@ -446,7 +446,7 @@ This brings four important benefits: ## How it works: tool calling -If you read [The Shiny Side of LLMs](../../../blog/shiny/shiny-side-of-llms-part-2/#when-llms-guess-tools-know) blog series, you already know a bit about tool calling. In that series we explored how LLMs can call external tools instead of trying to do everything themselves, and `querychat` is a very practical example of this idea in action. +If you read [The Shiny Side of LLMs](/blog/2025-09-05_shiny-side-of-llms-part-2/#when-llms-guess-tools-know) blog series, you already know a bit about tool calling. In that series we explored how LLMs can call external tools instead of trying to do everything themselves, and `querychat` is a very practical example of this idea in action. Tool calling is essentially a bridge between an LLM and your Python or R session. The model does not execute code. Instead, it requests your Python or R session execute a certain function with certain inputs (e.g., a SQL statement). Once Python or R performs the execution, the result is then passed back to the model for interpretation. diff --git a/content/blog/shiny/querychat-python-r/index.qmd b/content/blog/ported/shiny/querychat-python-r/index.qmd similarity index 99% rename from content/blog/shiny/querychat-python-r/index.qmd rename to content/blog/ported/shiny/querychat-python-r/index.qmd index c53279e1f..dbf19ef1a 100644 --- a/content/blog/shiny/querychat-python-r/index.qmd +++ b/content/blog/ported/shiny/querychat-python-r/index.qmd @@ -368,7 +368,7 @@ This brings four important benefits: # How it works: tool calling -If you read [The Shiny Side of LLMs](/blog/shiny/shiny-side-of-llms-part-2/#when-llms-guess-tools-know) blog series, you already know a bit about tool calling. In that series we explored how LLMs can call external tools instead of trying to do everything themselves, and `querychat` is a very practical example of this idea in action. +If you read [The Shiny Side of LLMs](/blog/2025-09-05_shiny-side-of-llms-part-2/#when-llms-guess-tools-know) blog series, you already know a bit about tool calling. In that series we explored how LLMs can call external tools instead of trying to do everything themselves, and `querychat` is a very practical example of this idea in action. Tool calling is essentially a bridge between an LLM and your Python or R session. The model does not execute code. Instead, it requests your Python or R session execute a certain function with certain inputs (e.g., a SQL statement). Once Python or R performs the execution, the result is then passed back to the model for interpretation. diff --git a/content/blog/shiny/querychat-python-r/querychat-python-r-header.png b/content/blog/ported/shiny/querychat-python-r/querychat-python-r-header.png similarity index 100% rename from content/blog/shiny/querychat-python-r/querychat-python-r-header.png rename to content/blog/ported/shiny/querychat-python-r/querychat-python-r-header.png diff --git a/content/blog/shiny/querychat-python-r/shescore-querychat-python.png b/content/blog/ported/shiny/querychat-python-r/shescore-querychat-python.png similarity index 100% rename from content/blog/shiny/querychat-python-r/shescore-querychat-python.png rename to content/blog/ported/shiny/querychat-python-r/shescore-querychat-python.png diff --git a/content/blog/shiny/querychat-python-r/shescores-original-py.gif b/content/blog/ported/shiny/querychat-python-r/shescores-original-py.gif similarity index 100% rename from content/blog/shiny/querychat-python-r/shescores-original-py.gif rename to content/blog/ported/shiny/querychat-python-r/shescores-original-py.gif diff --git a/content/blog/shiny/querychat-python-r/shescores-original-py.png b/content/blog/ported/shiny/querychat-python-r/shescores-original-py.png similarity index 100% rename from content/blog/shiny/querychat-python-r/shescores-original-py.png rename to content/blog/ported/shiny/querychat-python-r/shescores-original-py.png diff --git a/content/blog/shiny/querychat-python-r/shescores-original-py.png.original b/content/blog/ported/shiny/querychat-python-r/shescores-original-py.png.original similarity index 100% rename from content/blog/shiny/querychat-python-r/shescores-original-py.png.original rename to content/blog/ported/shiny/querychat-python-r/shescores-original-py.png.original diff --git a/content/blog/shiny/querychat-python-r/shescores-original-r.png b/content/blog/ported/shiny/querychat-python-r/shescores-original-r.png similarity index 100% rename from content/blog/shiny/querychat-python-r/shescores-original-r.png rename to content/blog/ported/shiny/querychat-python-r/shescores-original-r.png diff --git a/content/blog/shiny/querychat-python-r/shescores-original-r.png.original b/content/blog/ported/shiny/querychat-python-r/shescores-original-r.png.original similarity index 100% rename from content/blog/shiny/querychat-python-r/shescores-original-r.png.original rename to content/blog/ported/shiny/querychat-python-r/shescores-original-r.png.original diff --git a/content/blog/shiny/querychat-python-r/shescores-querychat-py.gif b/content/blog/ported/shiny/querychat-python-r/shescores-querychat-py.gif similarity index 100% rename from content/blog/shiny/querychat-python-r/shescores-querychat-py.gif rename to content/blog/ported/shiny/querychat-python-r/shescores-querychat-py.gif diff --git a/content/blog/shiny/querychat-python-r/tabset.css b/content/blog/ported/shiny/querychat-python-r/tabset.css similarity index 100% rename from content/blog/shiny/querychat-python-r/tabset.css rename to content/blog/ported/shiny/querychat-python-r/tabset.css diff --git a/content/blog/shiny/renv.lock b/content/blog/ported/shiny/renv.lock similarity index 100% rename from content/blog/shiny/renv.lock rename to content/blog/ported/shiny/renv.lock diff --git a/content/blog/shiny/renv/.gitignore b/content/blog/ported/shiny/renv/.gitignore similarity index 100% rename from content/blog/shiny/renv/.gitignore rename to content/blog/ported/shiny/renv/.gitignore diff --git a/content/blog/shiny/renv/activate.R b/content/blog/ported/shiny/renv/activate.R similarity index 100% rename from content/blog/shiny/renv/activate.R rename to content/blog/ported/shiny/renv/activate.R diff --git a/content/blog/shiny/renv/settings.json b/content/blog/ported/shiny/renv/settings.json similarity index 100% rename from content/blog/shiny/renv/settings.json rename to content/blog/ported/shiny/renv/settings.json diff --git a/content/blog/shiny/responsive-shiny-layouts/index.md b/content/blog/ported/shiny/responsive-shiny-layouts/index.md similarity index 100% rename from content/blog/shiny/responsive-shiny-layouts/index.md rename to content/blog/ported/shiny/responsive-shiny-layouts/index.md diff --git a/content/blog/shiny/responsive-shiny-layouts/index.qmd b/content/blog/ported/shiny/responsive-shiny-layouts/index.qmd similarity index 100% rename from content/blog/shiny/responsive-shiny-layouts/index.qmd rename to content/blog/ported/shiny/responsive-shiny-layouts/index.qmd diff --git a/content/blog/shiny/responsive-shiny-layouts/shiny-layouts.jpg b/content/blog/ported/shiny/responsive-shiny-layouts/shiny-layouts.jpg similarity index 100% rename from content/blog/shiny/responsive-shiny-layouts/shiny-layouts.jpg rename to content/blog/ported/shiny/responsive-shiny-layouts/shiny-layouts.jpg diff --git a/content/blog/shiny/shiny-assistant/csv-viewer.png b/content/blog/ported/shiny/shiny-assistant/csv-viewer.png similarity index 100% rename from content/blog/shiny/shiny-assistant/csv-viewer.png rename to content/blog/ported/shiny/shiny-assistant/csv-viewer.png diff --git a/content/blog/shiny/shiny-assistant/index.md b/content/blog/ported/shiny/shiny-assistant/index.md similarity index 100% rename from content/blog/shiny/shiny-assistant/index.md rename to content/blog/ported/shiny/shiny-assistant/index.md diff --git a/content/blog/shiny/shiny-assistant/index.qmd b/content/blog/ported/shiny/shiny-assistant/index.qmd similarity index 100% rename from content/blog/shiny/shiny-assistant/index.qmd rename to content/blog/ported/shiny/shiny-assistant/index.qmd diff --git a/content/blog/shiny/shiny-assistant/linear-regression.png b/content/blog/ported/shiny/shiny-assistant/linear-regression.png similarity index 100% rename from content/blog/shiny/shiny-assistant/linear-regression.png rename to content/blog/ported/shiny/shiny-assistant/linear-regression.png diff --git a/content/blog/shiny/shiny-assistant/mortgage-calculator-1.mp4 b/content/blog/ported/shiny/shiny-assistant/mortgage-calculator-1.mp4 similarity index 100% rename from content/blog/shiny/shiny-assistant/mortgage-calculator-1.mp4 rename to content/blog/ported/shiny/shiny-assistant/mortgage-calculator-1.mp4 diff --git a/content/blog/shiny/shiny-assistant/mortgage-calculator-2.mp4 b/content/blog/ported/shiny/shiny-assistant/mortgage-calculator-2.mp4 similarity index 100% rename from content/blog/shiny/shiny-assistant/mortgage-calculator-2.mp4 rename to content/blog/ported/shiny/shiny-assistant/mortgage-calculator-2.mp4 diff --git a/content/blog/shiny/shiny-assistant/mortgage-calculator-3.mp4 b/content/blog/ported/shiny/shiny-assistant/mortgage-calculator-3.mp4 similarity index 100% rename from content/blog/shiny/shiny-assistant/mortgage-calculator-3.mp4 rename to content/blog/ported/shiny/shiny-assistant/mortgage-calculator-3.mp4 diff --git a/content/blog/shiny/shiny-assistant/mortgage-calculator-4.mp4 b/content/blog/ported/shiny/shiny-assistant/mortgage-calculator-4.mp4 similarity index 100% rename from content/blog/shiny/shiny-assistant/mortgage-calculator-4.mp4 rename to content/blog/ported/shiny/shiny-assistant/mortgage-calculator-4.mp4 diff --git a/content/blog/shiny/shiny-assistant/qr-generator.png b/content/blog/ported/shiny/shiny-assistant/qr-generator.png similarity index 100% rename from content/blog/shiny/shiny-assistant/qr-generator.png rename to content/blog/ported/shiny/shiny-assistant/qr-generator.png diff --git a/content/blog/shiny/shiny-assistant/r-python-switch.png b/content/blog/ported/shiny/shiny-assistant/r-python-switch.png similarity index 100% rename from content/blog/shiny/shiny-assistant/r-python-switch.png rename to content/blog/ported/shiny/shiny-assistant/r-python-switch.png diff --git a/content/blog/shiny/shiny-assistant/shiny-ai-chatbot.jpg b/content/blog/ported/shiny/shiny-assistant/shiny-ai-chatbot.jpg similarity index 100% rename from content/blog/shiny/shiny-assistant/shiny-ai-chatbot.jpg rename to content/blog/ported/shiny/shiny-assistant/shiny-ai-chatbot.jpg diff --git a/content/blog/shiny/shiny-assistant/shiny-assistant.gif b/content/blog/ported/shiny/shiny-assistant/shiny-assistant.gif similarity index 100% rename from content/blog/shiny/shiny-assistant/shiny-assistant.gif rename to content/blog/ported/shiny/shiny-assistant/shiny-assistant.gif diff --git a/content/blog/shiny/shiny-assistant/shiny-assistant.mp4 b/content/blog/ported/shiny/shiny-assistant/shiny-assistant.mp4 similarity index 100% rename from content/blog/shiny/shiny-assistant/shiny-assistant.mp4 rename to content/blog/ported/shiny/shiny-assistant/shiny-assistant.mp4 diff --git a/content/blog/shiny/shiny-at-conf-2025/index.md b/content/blog/ported/shiny/shiny-at-conf-2025/index.md similarity index 67% rename from content/blog/shiny/shiny-at-conf-2025/index.md rename to content/blog/ported/shiny/shiny-at-conf-2025/index.md index 1ed0bf9be..0ce4de7af 100644 --- a/content/blog/shiny/shiny-at-conf-2025/index.md +++ b/content/blog/ported/shiny/shiny-at-conf-2025/index.md @@ -52,64 +52,64 @@ We'd love to chat and say hello! **Speaker:** Kim Schouten · **Track:** Shiny for Humans · **When:** Wed, Sep 17 10:20 AM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_modular-layout-as-code-approach-for-customizable-shiny-dashboards-kim-schouten-de-nza/) +[Video](/resources/videos/2025-11-07_modular-layout-as-code-approach-for-customizable-shiny-dashboards-kim-schouten-de-nza/) ### shinyGovStyle - accessible government design in RShiny **Speaker:** Cameron Race · **Track:** Shiny for Humans · **When:** Wed, Sep 17 10:40 AM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_shinygovstyle-accessible-gov-design-in-rshiny-cameron-race-sarah-wong-brown-positconf2025/) +[Video](/resources/videos/2025-11-07_shinygovstyle-accessible-gov-design-in-rshiny-cameron-race-sarah-wong-brown-positconf2025/) ### Death by Dropdown? Engineer Insightful Shiny Apps with Behavioral Science **Speaker:** Jeremy Winget, PhD · **Track:** Shiny for Humans · **When:** Wed, Sep 17 11:00 AM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_engineer-insightful-shiny-apps-with-behavioral-science-jeremy-winget-crossstack-positconf/) +[Video](/resources/videos/2025-11-07_engineer-insightful-shiny-apps-with-behavioral-science-jeremy-winget-crossstack-positconf/) ### Design of Everyday Shiny Apps **Speaker:** Casey Aguilar-Gervase, Maya Gans · **Track:** Shiny for Humans · **When:** Wed, Sep 17 11:20 AM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_design-of-everyday-shiny-apps-casey-aguilar-gervase-amp-maya-gans-atorus-positconf2025/) +[Video](/resources/videos/2025-11-07_design-of-everyday-shiny-apps-casey-aguilar-gervase-amp-maya-gans-atorus-positconf2025/) ### Old Apps, New Tricks: How AI can write Automated Tests for your Shiny Apps **Speaker:** Karan Gathani · **Track:** Shiny New Tricks · **When:** Wed, Sep 17 1:00 PM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_old-apps-new-tricks-how-ai-can-write-automated-tests-for-your-shiny-apps-karan-gathani-posit/) · [Slides](https://docs.google.com/presentation/d/130bJNGp3XIlKPaouA8K0Lv0O3P7OFesW/edit?usp=sharing&ouid=105060716153365836674) +[Video](/resources/videos/2025-11-07_old-apps-new-tricks-how-ai-can-write-automated-tests-for-your-shiny-apps-karan-gathani-posit/) · [Slides](https://docs.google.com/presentation/d/130bJNGp3XIlKPaouA8K0Lv0O3P7OFesW/edit?usp=sharing&ouid=105060716153365836674) ### Web applications with Shiny and React (and AI) **Speaker:** Winston Chang · **Track:** Shiny New Tricks · **When:** Wed, Sep 17 1:20 PM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_web-applications-with-shiny-and-react-and-ai-winston-chang-posit-positconf2025/) +[Video](/resources/videos/2025-11-07_web-applications-with-shiny-and-react-and-ai-winston-chang-posit-positconf2025/) ### Observability at scale: Monitoring Shiny Applications with OpenTelemetry **Speaker:** Barret Schloerke · **Track:** Shiny New Tricks · **When:** Wed, Sep 17 1:40 PM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_observability-at-scale-barret-schloerke-posit-positconf2025/) · [Slides](https://github.com/schloerke/presentation-2025-09-17-posit-conf-otel) +[Video](/resources/videos/2025-11-07_observability-at-scale-barret-schloerke-posit-positconf2025/) · [Slides](https://github.com/schloerke/presentation-2025-09-17-posit-conf-otel) ### shinystate: Launching collaboration and session management to new heights in Shiny applications **Speaker:** Eric Nantz · **Track:** Shiny New Tricks · **When:** Wed, Sep 17 2:20 PM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_shinystate-eric-nantz-eli-lilly-positconf2025/) +[Video](/resources/videos/2025-11-07_shinystate-eric-nantz-eli-lilly-positconf2025/) ### Disposable Shiny Apps **Speaker:** James Wade · **Track:** The Power of Presentation · **When:** Thu, Sep 18 10:20 AM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_disposable-shiny-apps-james-wade-dow-positconf2025/) +[Video](/resources/videos/2025-11-07_disposable-shiny-apps-james-wade-dow-positconf2025/) ### Talk data to me: How to present youR data to any audience **Speaker:** Freda Warner · **Track:** The Power of Presentation · **When:** Thu, Sep 18 11:00 AM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_talk-data-to-me-how-to-present-your-data-to-any-audience-freda-warner-cihr-positconf2025/) +[Video](/resources/videos/2025-11-07_talk-data-to-me-how-to-present-your-data-to-any-audience-freda-warner-cihr-positconf2025/) ### Theming Made Easy: Introducing brand.yml **Speaker:** Garrick Aden-Buie · **Track:** The Power of Presentation · **When:** Thu, Sep 18 11:20 AM · **Room:** Regency VII -[Video](../../../resources/videos/2025-11-07_theming-made-easy-introducing-brandyml-garrick-aden-buie-posit-positconf2025/) +[Video](/resources/videos/2025-11-07_theming-made-easy-introducing-brandyml-garrick-aden-buie-posit-positconf2025/) diff --git a/content/blog/shiny/shiny-at-conf-2025/index.qmd b/content/blog/ported/shiny/shiny-at-conf-2025/index.qmd similarity index 100% rename from content/blog/shiny/shiny-at-conf-2025/index.qmd rename to content/blog/ported/shiny/shiny-at-conf-2025/index.qmd diff --git a/content/blog/shiny/shiny-at-conf-2025/shiny-team.jpg b/content/blog/ported/shiny/shiny-at-conf-2025/shiny-team.jpg similarity index 100% rename from content/blog/shiny/shiny-at-conf-2025/shiny-team.jpg rename to content/blog/ported/shiny/shiny-at-conf-2025/shiny-team.jpg diff --git a/content/blog/shiny/shiny-at-conf-2025/shiny-team.jpg.original b/content/blog/ported/shiny/shiny-at-conf-2025/shiny-team.jpg.original similarity index 100% rename from content/blog/shiny/shiny-at-conf-2025/shiny-team.jpg.original rename to content/blog/ported/shiny/shiny-at-conf-2025/shiny-team.jpg.original diff --git a/content/blog/shiny/shiny-at-conf-2025/talks.yml b/content/blog/ported/shiny/shiny-at-conf-2025/talks.yml similarity index 100% rename from content/blog/shiny/shiny-at-conf-2025/talks.yml rename to content/blog/ported/shiny/shiny-at-conf-2025/talks.yml diff --git a/content/blog/shiny/shiny-at-scipy-2025/index.md b/content/blog/ported/shiny/shiny-at-scipy-2025/index.md similarity index 100% rename from content/blog/shiny/shiny-at-scipy-2025/index.md rename to content/blog/ported/shiny/shiny-at-scipy-2025/index.md diff --git a/content/blog/shiny/shiny-at-scipy-2025/index.qmd b/content/blog/ported/shiny/shiny-at-scipy-2025/index.qmd similarity index 100% rename from content/blog/shiny/shiny-at-scipy-2025/index.qmd rename to content/blog/ported/shiny/shiny-at-scipy-2025/index.qmd diff --git a/content/blog/shiny/shiny-at-scipy-2025/scipy-og.jpg b/content/blog/ported/shiny/shiny-at-scipy-2025/scipy-og.jpg similarity index 100% rename from content/blog/shiny/shiny-at-scipy-2025/scipy-og.jpg rename to content/blog/ported/shiny/shiny-at-scipy-2025/scipy-og.jpg diff --git a/content/blog/shiny/shiny-at-scipy-2025/scipy-og.mp4 b/content/blog/ported/shiny/shiny-at-scipy-2025/scipy-og.mp4 similarity index 100% rename from content/blog/shiny/shiny-at-scipy-2025/scipy-og.mp4 rename to content/blog/ported/shiny/shiny-at-scipy-2025/scipy-og.mp4 diff --git a/content/blog/shiny/shiny-at-scipy-2025/scipy-posit-shiny-team.jpg b/content/blog/ported/shiny/shiny-at-scipy-2025/scipy-posit-shiny-team.jpg similarity index 100% rename from content/blog/shiny/shiny-at-scipy-2025/scipy-posit-shiny-team.jpg rename to content/blog/ported/shiny/shiny-at-scipy-2025/scipy-posit-shiny-team.jpg diff --git a/content/blog/shiny/shiny-at-scipy-2025/scipy-posit-shiny-team.jpg.original b/content/blog/ported/shiny/shiny-at-scipy-2025/scipy-posit-shiny-team.jpg.original similarity index 100% rename from content/blog/shiny/shiny-at-scipy-2025/scipy-posit-shiny-team.jpg.original rename to content/blog/ported/shiny/shiny-at-scipy-2025/scipy-posit-shiny-team.jpg.original diff --git a/content/blog/shiny/shiny-at-scipy-2025/talks.yml b/content/blog/ported/shiny/shiny-at-scipy-2025/talks.yml similarity index 100% rename from content/blog/shiny/shiny-at-scipy-2025/talks.yml rename to content/blog/ported/shiny/shiny-at-scipy-2025/talks.yml diff --git a/content/blog/shiny/shiny-express/hello-world.png b/content/blog/ported/shiny/shiny-express/hello-world.png similarity index 100% rename from content/blog/shiny/shiny-express/hello-world.png rename to content/blog/ported/shiny/shiny-express/hello-world.png diff --git a/content/blog/shiny/shiny-express/index.md b/content/blog/ported/shiny/shiny-express/index.md similarity index 100% rename from content/blog/shiny/shiny-express/index.md rename to content/blog/ported/shiny/shiny-express/index.md diff --git a/content/blog/shiny/shiny-express/index.qmd b/content/blog/ported/shiny/shiny-express/index.qmd similarity index 100% rename from content/blog/shiny/shiny-express/index.qmd rename to content/blog/ported/shiny/shiny-express/index.qmd diff --git a/content/blog/shiny/shiny-express/learning-curve.png b/content/blog/ported/shiny/shiny-express/learning-curve.png similarity index 100% rename from content/blog/shiny/shiny-express/learning-curve.png rename to content/blog/ported/shiny/shiny-express/learning-curve.png diff --git a/content/blog/shiny/shiny-express/plot.png b/content/blog/ported/shiny/shiny-express/plot.png similarity index 100% rename from content/blog/shiny/shiny-express/plot.png rename to content/blog/ported/shiny/shiny-express/plot.png diff --git a/content/blog/shiny/shiny-express/shiny-express-v1b.jpg b/content/blog/ported/shiny/shiny-express/shiny-express-v1b.jpg similarity index 100% rename from content/blog/shiny/shiny-express/shiny-express-v1b.jpg rename to content/blog/ported/shiny/shiny-express/shiny-express-v1b.jpg diff --git a/content/blog/shiny/shiny-express/shiny-express-v2.jpg b/content/blog/ported/shiny/shiny-express/shiny-express-v2.jpg similarity index 100% rename from content/blog/shiny/shiny-express/shiny-express-v2.jpg rename to content/blog/ported/shiny/shiny-express/shiny-express-v2.jpg diff --git a/content/blog/shiny/shiny-express/tipping-dashboard.png b/content/blog/ported/shiny/shiny-express/tipping-dashboard.png similarity index 100% rename from content/blog/shiny/shiny-express/tipping-dashboard.png rename to content/blog/ported/shiny/shiny-express/tipping-dashboard.png diff --git a/content/blog/shiny/shiny-express/tipping-dashboard.png.original b/content/blog/ported/shiny/shiny-express/tipping-dashboard.png.original similarity index 100% rename from content/blog/shiny/shiny-express/tipping-dashboard.png.original rename to content/blog/ported/shiny/shiny-express/tipping-dashboard.png.original diff --git a/content/blog/shiny/shiny-on-hugging-face/index.md b/content/blog/ported/shiny/shiny-on-hugging-face/index.md similarity index 100% rename from content/blog/shiny/shiny-on-hugging-face/index.md rename to content/blog/ported/shiny/shiny-on-hugging-face/index.md diff --git a/content/blog/shiny/shiny-on-hugging-face/index.qmd b/content/blog/ported/shiny/shiny-on-hugging-face/index.qmd similarity index 100% rename from content/blog/shiny/shiny-on-hugging-face/index.qmd rename to content/blog/ported/shiny/shiny-on-hugging-face/index.qmd diff --git a/content/blog/shiny/shiny-on-hugging-face/shiny-on-hf-thumb.jpg b/content/blog/ported/shiny/shiny-on-hugging-face/shiny-on-hf-thumb.jpg similarity index 100% rename from content/blog/shiny/shiny-on-hugging-face/shiny-on-hf-thumb.jpg rename to content/blog/ported/shiny/shiny-on-hugging-face/shiny-on-hf-thumb.jpg diff --git a/content/blog/shiny/shiny-python-0.4.0/data-grid-select.mp4 b/content/blog/ported/shiny/shiny-python-0.4.0/data-grid-select.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-0.4.0/data-grid-select.mp4 rename to content/blog/ported/shiny/shiny-python-0.4.0/data-grid-select.mp4 diff --git a/content/blog/shiny/shiny-python-0.4.0/data-grid.mp4 b/content/blog/ported/shiny/shiny-python-0.4.0/data-grid.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-0.4.0/data-grid.mp4 rename to content/blog/ported/shiny/shiny-python-0.4.0/data-grid.mp4 diff --git a/content/blog/shiny/shiny-python-0.4.0/data-table.png b/content/blog/ported/shiny/shiny-python-0.4.0/data-table.png similarity index 100% rename from content/blog/shiny/shiny-python-0.4.0/data-table.png rename to content/blog/ported/shiny/shiny-python-0.4.0/data-table.png diff --git a/content/blog/shiny/shiny-python-0.4.0/index.md b/content/blog/ported/shiny/shiny-python-0.4.0/index.md similarity index 100% rename from content/blog/shiny/shiny-python-0.4.0/index.md rename to content/blog/ported/shiny/shiny-python-0.4.0/index.md diff --git a/content/blog/shiny/shiny-python-0.4.0/index.qmd b/content/blog/ported/shiny/shiny-python-0.4.0/index.qmd similarity index 100% rename from content/blog/shiny/shiny-python-0.4.0/index.qmd rename to content/blog/ported/shiny/shiny-python-0.4.0/index.qmd diff --git a/content/blog/shiny/shiny-python-0.4.0/shiny-040.png b/content/blog/ported/shiny/shiny-python-0.4.0/shiny-040.png similarity index 100% rename from content/blog/shiny/shiny-python-0.4.0/shiny-040.png rename to content/blog/ported/shiny/shiny-python-0.4.0/shiny-040.png diff --git a/content/blog/shiny/shiny-python-0.4.0/sidebar-new.png b/content/blog/ported/shiny/shiny-python-0.4.0/sidebar-new.png similarity index 100% rename from content/blog/shiny/shiny-python-0.4.0/sidebar-new.png rename to content/blog/ported/shiny/shiny-python-0.4.0/sidebar-new.png diff --git a/content/blog/shiny/shiny-python-0.4.0/sidebar-old.png b/content/blog/ported/shiny/shiny-python-0.4.0/sidebar-old.png similarity index 100% rename from content/blog/shiny/shiny-python-0.4.0/sidebar-old.png rename to content/blog/ported/shiny/shiny-python-0.4.0/sidebar-old.png diff --git a/content/blog/shiny/shiny-python-0.5.0/data-grid-filter.mp4 b/content/blog/ported/shiny/shiny-python-0.5.0/data-grid-filter.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-0.5.0/data-grid-filter.mp4 rename to content/blog/ported/shiny/shiny-python-0.5.0/data-grid-filter.mp4 diff --git a/content/blog/shiny/shiny-python-0.5.0/help-icon.png b/content/blog/ported/shiny/shiny-python-0.5.0/help-icon.png similarity index 100% rename from content/blog/shiny/shiny-python-0.5.0/help-icon.png rename to content/blog/ported/shiny/shiny-python-0.5.0/help-icon.png diff --git a/content/blog/shiny/shiny-python-0.5.0/index.md b/content/blog/ported/shiny/shiny-python-0.5.0/index.md similarity index 95% rename from content/blog/shiny/shiny-python-0.5.0/index.md rename to content/blog/ported/shiny/shiny-python-0.5.0/index.md index 7d122c1b0..5f49f0691 100644 --- a/content/blog/shiny/shiny-python-0.5.0/index.md +++ b/content/blog/ported/shiny/shiny-python-0.5.0/index.md @@ -74,7 +74,7 @@ These theme changes will be available to Shiny for R as well, via a new [bslib]( ## Data table filtering -In case you missed it, [last month we introduced](../../../blog/shiny/shiny-python-0.4.0/) an interactive data table output that's designed to easily scale to tens of thousands of rows. This month, we've added the ability to let viewers filter the data table by column. +In case you missed it, [last month we introduced](/blog/2023-06-28_shiny-python-0.4.0/) an interactive data table output that's designed to easily scale to tens of thousands of rows. This month, we've added the ability to let viewers filter the data table by column. {{< video src="data-grid-filter.mp4" title="Filtering a data table" >}} diff --git a/content/blog/shiny/shiny-python-0.5.0/index.qmd b/content/blog/ported/shiny/shiny-python-0.5.0/index.qmd similarity index 95% rename from content/blog/shiny/shiny-python-0.5.0/index.qmd rename to content/blog/ported/shiny/shiny-python-0.5.0/index.qmd index 27b3e0c10..45fb24e89 100644 --- a/content/blog/shiny/shiny-python-0.5.0/index.qmd +++ b/content/blog/ported/shiny/shiny-python-0.5.0/index.qmd @@ -73,7 +73,7 @@ These theme changes will be available to Shiny for R as well, via a new [bslib]( ## Data table filtering -In case you missed it, [last month we introduced](/blog/shiny/shiny-python-0.4.0/) an interactive data table output that's designed to easily scale to tens of thousands of rows. This month, we've added the ability to let viewers filter the data table by column. +In case you missed it, [last month we introduced](/blog/2023-06-28_shiny-python-0.4.0/) an interactive data table output that's designed to easily scale to tens of thousands of rows. This month, we've added the ability to let viewers filter the data table by column. {{< video data-grid-filter.mp4 title="Filtering a data table" diff --git a/content/blog/shiny/shiny-python-0.5.0/shiny-050.png b/content/blog/ported/shiny/shiny-python-0.5.0/shiny-050.png similarity index 100% rename from content/blog/shiny/shiny-python-0.5.0/shiny-050.png rename to content/blog/ported/shiny/shiny-python-0.5.0/shiny-050.png diff --git a/content/blog/shiny/shiny-python-0.5.0/theme-after.png b/content/blog/ported/shiny/shiny-python-0.5.0/theme-after.png similarity index 100% rename from content/blog/shiny/shiny-python-0.5.0/theme-after.png rename to content/blog/ported/shiny/shiny-python-0.5.0/theme-after.png diff --git a/content/blog/shiny/shiny-python-0.5.0/theme-before.png b/content/blog/ported/shiny/shiny-python-0.5.0/theme-before.png similarity index 100% rename from content/blog/shiny/shiny-python-0.5.0/theme-before.png rename to content/blog/ported/shiny/shiny-python-0.5.0/theme-before.png diff --git a/content/blog/shiny/shiny-python-0.5.0/tooltip-help.png b/content/blog/ported/shiny/shiny-python-0.5.0/tooltip-help.png similarity index 100% rename from content/blog/shiny/shiny-python-0.5.0/tooltip-help.png rename to content/blog/ported/shiny/shiny-python-0.5.0/tooltip-help.png diff --git a/content/blog/shiny/shiny-python-0.5.0/tooltip.png b/content/blog/ported/shiny/shiny-python-0.5.0/tooltip.png similarity index 100% rename from content/blog/shiny/shiny-python-0.5.0/tooltip.png rename to content/blog/ported/shiny/shiny-python-0.5.0/tooltip.png diff --git a/content/blog/shiny/shiny-python-0.6.0/index.md b/content/blog/ported/shiny/shiny-python-0.6.0/index.md similarity index 100% rename from content/blog/shiny/shiny-python-0.6.0/index.md rename to content/blog/ported/shiny/shiny-python-0.6.0/index.md diff --git a/content/blog/shiny/shiny-python-0.6.0/index.qmd b/content/blog/ported/shiny/shiny-python-0.6.0/index.qmd similarity index 100% rename from content/blog/shiny/shiny-python-0.6.0/index.qmd rename to content/blog/ported/shiny/shiny-python-0.6.0/index.qmd diff --git a/content/blog/shiny/shiny-python-0.6.0/model_monitoring.png b/content/blog/ported/shiny/shiny-python-0.6.0/model_monitoring.png similarity index 100% rename from content/blog/shiny/shiny-python-0.6.0/model_monitoring.png rename to content/blog/ported/shiny/shiny-python-0.6.0/model_monitoring.png diff --git a/content/blog/shiny/shiny-python-0.6.0/page_sidebar_resize.mp4 b/content/blog/ported/shiny/shiny-python-0.6.0/page_sidebar_resize.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-0.6.0/page_sidebar_resize.mp4 rename to content/blog/ported/shiny/shiny-python-0.6.0/page_sidebar_resize.mp4 diff --git a/content/blog/shiny/shiny-python-0.6.0/shiny-060.png b/content/blog/ported/shiny/shiny-python-0.6.0/shiny-060.png similarity index 100% rename from content/blog/shiny/shiny-python-0.6.0/shiny-060.png rename to content/blog/ported/shiny/shiny-python-0.6.0/shiny-060.png diff --git a/content/blog/shiny/shiny-python-0.6.1/component-gallery.gif b/content/blog/ported/shiny/shiny-python-0.6.1/component-gallery.gif similarity index 100% rename from content/blog/shiny/shiny-python-0.6.1/component-gallery.gif rename to content/blog/ported/shiny/shiny-python-0.6.1/component-gallery.gif diff --git a/content/blog/shiny/shiny-python-0.6.1/debugger.png b/content/blog/ported/shiny/shiny-python-0.6.1/debugger.png similarity index 100% rename from content/blog/shiny/shiny-python-0.6.1/debugger.png rename to content/blog/ported/shiny/shiny-python-0.6.1/debugger.png diff --git a/content/blog/shiny/shiny-python-0.6.1/index.md b/content/blog/ported/shiny/shiny-python-0.6.1/index.md similarity index 100% rename from content/blog/shiny/shiny-python-0.6.1/index.md rename to content/blog/ported/shiny/shiny-python-0.6.1/index.md diff --git a/content/blog/shiny/shiny-python-0.6.1/index.qmd b/content/blog/ported/shiny/shiny-python-0.6.1/index.qmd similarity index 100% rename from content/blog/shiny/shiny-python-0.6.1/index.qmd rename to content/blog/ported/shiny/shiny-python-0.6.1/index.qmd diff --git a/content/blog/shiny/shiny-python-0.6.1/shiny-061.png b/content/blog/ported/shiny/shiny-python-0.6.1/shiny-061.png similarity index 100% rename from content/blog/shiny/shiny-python-0.6.1/shiny-061.png rename to content/blog/ported/shiny/shiny-python-0.6.1/shiny-061.png diff --git a/content/blog/shiny/shiny-python-0.9.0/edit-your-data.gif b/content/blog/ported/shiny/shiny-python-0.9.0/edit-your-data.gif similarity index 100% rename from content/blog/shiny/shiny-python-0.9.0/edit-your-data.gif rename to content/blog/ported/shiny/shiny-python-0.9.0/edit-your-data.gif diff --git a/content/blog/shiny/shiny-python-0.9.0/error-console.png b/content/blog/ported/shiny/shiny-python-0.9.0/error-console.png similarity index 100% rename from content/blog/shiny/shiny-python-0.9.0/error-console.png rename to content/blog/ported/shiny/shiny-python-0.9.0/error-console.png diff --git a/content/blog/shiny/shiny-python-0.9.0/index.md b/content/blog/ported/shiny/shiny-python-0.9.0/index.md similarity index 100% rename from content/blog/shiny/shiny-python-0.9.0/index.md rename to content/blog/ported/shiny/shiny-python-0.9.0/index.md diff --git a/content/blog/shiny/shiny-python-0.9.0/index.qmd b/content/blog/ported/shiny/shiny-python-0.9.0/index.qmd similarity index 100% rename from content/blog/shiny/shiny-python-0.9.0/index.qmd rename to content/blog/ported/shiny/shiny-python-0.9.0/index.qmd diff --git a/content/blog/shiny/shiny-python-0.9.0/quarto-and-shiny-express.md b/content/blog/ported/shiny/shiny-python-0.9.0/quarto-and-shiny-express.md similarity index 100% rename from content/blog/shiny/shiny-python-0.9.0/quarto-and-shiny-express.md rename to content/blog/ported/shiny/shiny-python-0.9.0/quarto-and-shiny-express.md diff --git a/content/blog/shiny/shiny-python-0.9.0/quarto-and-shiny-express.png b/content/blog/ported/shiny/shiny-python-0.9.0/quarto-and-shiny-express.png similarity index 100% rename from content/blog/shiny/shiny-python-0.9.0/quarto-and-shiny-express.png rename to content/blog/ported/shiny/shiny-python-0.9.0/quarto-and-shiny-express.png diff --git a/content/blog/shiny/shiny-python-0.9.0/shiny-090.png b/content/blog/ported/shiny/shiny-python-0.9.0/shiny-090.png similarity index 100% rename from content/blog/shiny/shiny-python-0.9.0/shiny-090.png rename to content/blog/ported/shiny/shiny-python-0.9.0/shiny-090.png diff --git a/content/blog/shiny/shiny-python-0.9.0/shiny-template.png b/content/blog/ported/shiny/shiny-python-0.9.0/shiny-template.png similarity index 100% rename from content/blog/shiny/shiny-python-0.9.0/shiny-template.png rename to content/blog/ported/shiny/shiny-python-0.9.0/shiny-template.png diff --git a/content/blog/shiny/shiny-python-1.0/chat.mp4 b/content/blog/ported/shiny/shiny-python-1.0/chat.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-1.0/chat.mp4 rename to content/blog/ported/shiny/shiny-python-1.0/chat.mp4 diff --git a/content/blog/shiny/shiny-python-1.0/chat2.mp4 b/content/blog/ported/shiny/shiny-python-1.0/chat2.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-1.0/chat2.mp4 rename to content/blog/ported/shiny/shiny-python-1.0/chat2.mp4 diff --git a/content/blog/shiny/shiny-python-1.0/data-frame-edit-selection.mp4 b/content/blog/ported/shiny/shiny-python-1.0/data-frame-edit-selection.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-1.0/data-frame-edit-selection.mp4 rename to content/blog/ported/shiny/shiny-python-1.0/data-frame-edit-selection.mp4 diff --git a/content/blog/shiny/shiny-python-1.0/data-frame-polars.png b/content/blog/ported/shiny/shiny-python-1.0/data-frame-polars.png similarity index 100% rename from content/blog/shiny/shiny-python-1.0/data-frame-polars.png rename to content/blog/ported/shiny/shiny-python-1.0/data-frame-polars.png diff --git a/content/blog/shiny/shiny-python-1.0/data-frame-styles.png b/content/blog/ported/shiny/shiny-python-1.0/data-frame-styles.png similarity index 100% rename from content/blog/shiny/shiny-python-1.0/data-frame-styles.png rename to content/blog/ported/shiny/shiny-python-1.0/data-frame-styles.png diff --git a/content/blog/shiny/shiny-python-1.0/index.md b/content/blog/ported/shiny/shiny-python-1.0/index.md similarity index 96% rename from content/blog/shiny/shiny-python-1.0/index.md rename to content/blog/ported/shiny/shiny-python-1.0/index.md index 45aec972f..cdcb97f74 100644 --- a/content/blog/shiny/shiny-python-1.0/index.md +++ b/content/blog/ported/shiny/shiny-python-1.0/index.md @@ -42,11 +42,11 @@ In this post, we'll talk about what v1.0 means to us, and then get into the feas For the Shiny team, bestowing the "v1.0" label on a piece of software is a declaration of a certain level of quality, feature completeness, and API stability. -In April 2023, we [removed the alpha tag from Shiny for Python](../../../blog/shiny/shiny-python-general-availability/), signaling our team's belief that its level of quality and runtime stability made it appropriate for production use. +In April 2023, we [removed the alpha tag from Shiny for Python](/blog/2023-04-18_shiny-python-general-availability/), signaling our team's belief that its level of quality and runtime stability made it appropriate for production use. And that belief has borne out: the feedback we've received from real-world users of the framework has been overwhelmingly positive. -At that time, we chose not to use a 1.0 moniker, preferring to stick to 0.x until after we had shipped essential features like [interactive data tables](../../../blog/shiny/shiny-python-0.4.0/) (June 2023) and [dashboard UI components](../../../blog/shiny/shiny-python-0.6.0/) (Nov 2023). -And soon after that, we came up with [Shiny Express](../../../blog/shiny/shiny-express/), a completely new syntax for writing Shiny apps, which meant another period of heavy feedback and potential revisions of the API. +At that time, we chose not to use a 1.0 moniker, preferring to stick to 0.x until after we had shipped essential features like [interactive data tables](/blog/2023-06-28_shiny-python-0.4.0/) (June 2023) and [dashboard UI components](/blog/2023-11-15_shiny-python-0.6.0/) (Nov 2023). +And soon after that, we came up with [Shiny Express](/blog/2024-01-29_shiny-express/), a completely new syntax for writing Shiny apps, which meant another period of heavy feedback and potential revisions of the API. Sitting here in July 2024, it feels like a great time to acknowledge Shiny for Python's maturity by bestowing it with the big 1-point-0. The API feels appropriately stable now, and most of the new features of the last few releases have been about building on top of Shiny's existing API design vocabulary, rather than extending or changing it (although one notable brand-new primitive is Modules for Shiny Express, which you can read about below). diff --git a/content/blog/shiny/shiny-python-1.0/index.qmd b/content/blog/ported/shiny/shiny-python-1.0/index.qmd similarity index 96% rename from content/blog/shiny/shiny-python-1.0/index.qmd rename to content/blog/ported/shiny/shiny-python-1.0/index.qmd index 3f5797cb9..08468440a 100644 --- a/content/blog/shiny/shiny-python-1.0/index.qmd +++ b/content/blog/ported/shiny/shiny-python-1.0/index.qmd @@ -42,11 +42,11 @@ In this post, we'll talk about what v1.0 means to us, and then get into the feas For the Shiny team, bestowing the "v1.0" label on a piece of software is a declaration of a certain level of quality, feature completeness, and API stability. -In April 2023, we [removed the alpha tag from Shiny for Python](/blog/shiny/shiny-python-general-availability/), signaling our team's belief that its level of quality and runtime stability made it appropriate for production use. +In April 2023, we [removed the alpha tag from Shiny for Python](/blog/2023-04-18_shiny-python-general-availability/), signaling our team's belief that its level of quality and runtime stability made it appropriate for production use. And that belief has borne out: the feedback we've received from real-world users of the framework has been overwhelmingly positive. -At that time, we chose not to use a 1.0 moniker, preferring to stick to 0.x until after we had shipped essential features like [interactive data tables](/blog/shiny/shiny-python-0.4.0/) (June 2023) and [dashboard UI components](/blog/shiny/shiny-python-0.6.0/) (Nov 2023). -And soon after that, we came up with [Shiny Express](/blog/shiny/shiny-express/), a completely new syntax for writing Shiny apps, which meant another period of heavy feedback and potential revisions of the API. +At that time, we chose not to use a 1.0 moniker, preferring to stick to 0.x until after we had shipped essential features like [interactive data tables](/blog/2023-06-28_shiny-python-0.4.0/) (June 2023) and [dashboard UI components](/blog/2023-11-15_shiny-python-0.6.0/) (Nov 2023). +And soon after that, we came up with [Shiny Express](/blog/2024-01-29_shiny-express/), a completely new syntax for writing Shiny apps, which meant another period of heavy feedback and potential revisions of the API. Sitting here in July 2024, it feels like a great time to acknowledge Shiny for Python's maturity by bestowing it with the big 1-point-0. The API feels appropriately stable now, and most of the new features of the last few releases have been about building on top of Shiny's existing API design vocabulary, rather than extending or changing it (although one notable brand-new primitive is Modules for Shiny Express, which you can read about below). diff --git a/content/blog/shiny/shiny-python-1.0/leverage_controllers.mp4 b/content/blog/ported/shiny/shiny-python-1.0/leverage_controllers.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-1.0/leverage_controllers.mp4 rename to content/blog/ported/shiny/shiny-python-1.0/leverage_controllers.mp4 diff --git a/content/blog/shiny/shiny-python-1.0/placeholder.png b/content/blog/ported/shiny/shiny-python-1.0/placeholder.png similarity index 100% rename from content/blog/shiny/shiny-python-1.0/placeholder.png rename to content/blog/ported/shiny/shiny-python-1.0/placeholder.png diff --git a/content/blog/shiny/shiny-python-1.0/shinyforpython-1.0.jpg b/content/blog/ported/shiny/shiny-python-1.0/shinyforpython-1.0.jpg similarity index 100% rename from content/blog/shiny/shiny-python-1.0/shinyforpython-1.0.jpg rename to content/blog/ported/shiny/shiny-python-1.0/shinyforpython-1.0.jpg diff --git a/content/blog/shiny/shiny-python-1.0/shinyforpython-1.0.mp4 b/content/blog/ported/shiny/shiny-python-1.0/shinyforpython-1.0.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-1.0/shinyforpython-1.0.mp4 rename to content/blog/ported/shiny/shiny-python-1.0/shinyforpython-1.0.mp4 diff --git a/content/blog/shiny/shiny-python-1.0/shinymedia.jpg b/content/blog/ported/shiny/shiny-python-1.0/shinymedia.jpg similarity index 100% rename from content/blog/shiny/shiny-python-1.0/shinymedia.jpg rename to content/blog/ported/shiny/shiny-python-1.0/shinymedia.jpg diff --git a/content/blog/shiny/shiny-python-1.0/shinyswatch.jpg b/content/blog/ported/shiny/shiny-python-1.0/shinyswatch.jpg similarity index 100% rename from content/blog/shiny/shiny-python-1.0/shinyswatch.jpg rename to content/blog/ported/shiny/shiny-python-1.0/shinyswatch.jpg diff --git a/content/blog/shiny/shiny-python-1.2-brand-yml/brand-yml-feature.svg b/content/blog/ported/shiny/shiny-python-1.2-brand-yml/brand-yml-feature.svg similarity index 100% rename from content/blog/shiny/shiny-python-1.2-brand-yml/brand-yml-feature.svg rename to content/blog/ported/shiny/shiny-python-1.2-brand-yml/brand-yml-feature.svg diff --git a/content/blog/shiny/shiny-python-1.2-brand-yml/brand-yml-wide.svg b/content/blog/ported/shiny/shiny-python-1.2-brand-yml/brand-yml-wide.svg similarity index 100% rename from content/blog/shiny/shiny-python-1.2-brand-yml/brand-yml-wide.svg rename to content/blog/ported/shiny/shiny-python-1.2-brand-yml/brand-yml-wide.svg diff --git a/content/blog/shiny/shiny-python-1.2-brand-yml/index.md b/content/blog/ported/shiny/shiny-python-1.2-brand-yml/index.md similarity index 100% rename from content/blog/shiny/shiny-python-1.2-brand-yml/index.md rename to content/blog/ported/shiny/shiny-python-1.2-brand-yml/index.md diff --git a/content/blog/shiny/shiny-python-1.2-brand-yml/index.qmd b/content/blog/ported/shiny/shiny-python-1.2-brand-yml/index.qmd similarity index 100% rename from content/blog/shiny/shiny-python-1.2-brand-yml/index.qmd rename to content/blog/ported/shiny/shiny-python-1.2-brand-yml/index.qmd diff --git a/content/blog/shiny/shiny-python-1.2/app-data-types.py b/content/blog/ported/shiny/shiny-python-1.2/app-data-types.py similarity index 100% rename from content/blog/shiny/shiny-python-1.2/app-data-types.py rename to content/blog/ported/shiny/shiny-python-1.2/app-data-types.py diff --git a/content/blog/shiny/shiny-python-1.2/app-pa.py b/content/blog/ported/shiny/shiny-python-1.2/app-pa.py similarity index 100% rename from content/blog/shiny/shiny-python-1.2/app-pa.py rename to content/blog/ported/shiny/shiny-python-1.2/app-pa.py diff --git a/content/blog/shiny/shiny-python-1.2/index.md b/content/blog/ported/shiny/shiny-python-1.2/index.md similarity index 100% rename from content/blog/shiny/shiny-python-1.2/index.md rename to content/blog/ported/shiny/shiny-python-1.2/index.md diff --git a/content/blog/shiny/shiny-python-1.2/index.qmd b/content/blog/ported/shiny/shiny-python-1.2/index.qmd similarity index 100% rename from content/blog/shiny/shiny-python-1.2/index.qmd rename to content/blog/ported/shiny/shiny-python-1.2/index.qmd diff --git a/content/blog/shiny/shiny-python-1.2/narwhals_w_shiny.jpeg b/content/blog/ported/shiny/shiny-python-1.2/narwhals_w_shiny.jpeg similarity index 100% rename from content/blog/shiny/shiny-python-1.2/narwhals_w_shiny.jpeg rename to content/blog/ported/shiny/shiny-python-1.2/narwhals_w_shiny.jpeg diff --git a/content/blog/shiny/shiny-python-1.2/pa-sp500.gif b/content/blog/ported/shiny/shiny-python-1.2/pa-sp500.gif similarity index 100% rename from content/blog/shiny/shiny-python-1.2/pa-sp500.gif rename to content/blog/ported/shiny/shiny-python-1.2/pa-sp500.gif diff --git a/content/blog/shiny/shiny-python-1.2/requirements.txt b/content/blog/ported/shiny/shiny-python-1.2/requirements.txt similarity index 100% rename from content/blog/shiny/shiny-python-1.2/requirements.txt rename to content/blog/ported/shiny/shiny-python-1.2/requirements.txt diff --git a/content/blog/shiny/shiny-python-1.2/shinyforpython-120.jpg b/content/blog/ported/shiny/shiny-python-1.2/shinyforpython-120.jpg similarity index 100% rename from content/blog/shiny/shiny-python-1.2/shinyforpython-120.jpg rename to content/blog/ported/shiny/shiny-python-1.2/shinyforpython-120.jpg diff --git a/content/blog/shiny/shiny-python-1.4/genai-docs.png b/content/blog/ported/shiny/shiny-python-1.4/genai-docs.png similarity index 100% rename from content/blog/shiny/shiny-python-1.4/genai-docs.png rename to content/blog/ported/shiny/shiny-python-1.4/genai-docs.png diff --git a/content/blog/shiny/shiny-python-1.4/genai-docs.png.original b/content/blog/ported/shiny/shiny-python-1.4/genai-docs.png.original similarity index 100% rename from content/blog/shiny/shiny-python-1.4/genai-docs.png.original rename to content/blog/ported/shiny/shiny-python-1.4/genai-docs.png.original diff --git a/content/blog/shiny/shiny-python-1.4/genai-templates.png b/content/blog/ported/shiny/shiny-python-1.4/genai-templates.png similarity index 100% rename from content/blog/shiny/shiny-python-1.4/genai-templates.png rename to content/blog/ported/shiny/shiny-python-1.4/genai-templates.png diff --git a/content/blog/shiny/shiny-python-1.4/genai-templates.png.original b/content/blog/ported/shiny/shiny-python-1.4/genai-templates.png.original similarity index 100% rename from content/blog/shiny/shiny-python-1.4/genai-templates.png.original rename to content/blog/ported/shiny/shiny-python-1.4/genai-templates.png.original diff --git a/content/blog/shiny/shiny-python-1.4/index.md b/content/blog/ported/shiny/shiny-python-1.4/index.md similarity index 100% rename from content/blog/shiny/shiny-python-1.4/index.md rename to content/blog/ported/shiny/shiny-python-1.4/index.md diff --git a/content/blog/shiny/shiny-python-1.4/index.qmd b/content/blog/ported/shiny/shiny-python-1.4/index.qmd similarity index 100% rename from content/blog/shiny/shiny-python-1.4/index.qmd rename to content/blog/ported/shiny/shiny-python-1.4/index.qmd diff --git a/content/blog/shiny/shiny-python-1.4/shiny-bookmark.png b/content/blog/ported/shiny/shiny-python-1.4/shiny-bookmark.png similarity index 100% rename from content/blog/shiny/shiny-python-1.4/shiny-bookmark.png rename to content/blog/ported/shiny/shiny-python-1.4/shiny-bookmark.png diff --git a/content/blog/shiny/shiny-python-1.6/index.md b/content/blog/ported/shiny/shiny-python-1.6/index.md similarity index 100% rename from content/blog/shiny/shiny-python-1.6/index.md rename to content/blog/ported/shiny/shiny-python-1.6/index.md diff --git a/content/blog/shiny/shiny-python-1.6/index.qmd b/content/blog/ported/shiny/shiny-python-1.6/index.qmd similarity index 100% rename from content/blog/shiny/shiny-python-1.6/index.qmd rename to content/blog/ported/shiny/shiny-python-1.6/index.qmd diff --git a/content/blog/shiny/shiny-python-1.6/media.md b/content/blog/ported/shiny/shiny-python-1.6/media.md similarity index 100% rename from content/blog/shiny/shiny-python-1.6/media.md rename to content/blog/ported/shiny/shiny-python-1.6/media.md diff --git a/content/blog/shiny/shiny-python-1.6/py-shiny-otel-toolbars-square.png b/content/blog/ported/shiny/shiny-python-1.6/py-shiny-otel-toolbars-square.png similarity index 100% rename from content/blog/shiny/shiny-python-1.6/py-shiny-otel-toolbars-square.png rename to content/blog/ported/shiny/shiny-python-1.6/py-shiny-otel-toolbars-square.png diff --git a/content/blog/shiny/shiny-python-1.6/py-shiny-otel-toolbars.png b/content/blog/ported/shiny/shiny-python-1.6/py-shiny-otel-toolbars.png similarity index 100% rename from content/blog/shiny/shiny-python-1.6/py-shiny-otel-toolbars.png rename to content/blog/ported/shiny/shiny-python-1.6/py-shiny-otel-toolbars.png diff --git a/content/blog/shiny/shiny-python-1.6/toolbar_ex1.png b/content/blog/ported/shiny/shiny-python-1.6/toolbar_ex1.png similarity index 100% rename from content/blog/shiny/shiny-python-1.6/toolbar_ex1.png rename to content/blog/ported/shiny/shiny-python-1.6/toolbar_ex1.png diff --git a/content/blog/shiny/shiny-python-1.6/toolbar_info_ex.png b/content/blog/ported/shiny/shiny-python-1.6/toolbar_info_ex.png similarity index 100% rename from content/blog/shiny/shiny-python-1.6/toolbar_info_ex.png rename to content/blog/ported/shiny/shiny-python-1.6/toolbar_info_ex.png diff --git a/content/blog/shiny/shiny-python-1.6/toolbar_textarea.png b/content/blog/ported/shiny/shiny-python-1.6/toolbar_textarea.png similarity index 100% rename from content/blog/shiny/shiny-python-1.6/toolbar_textarea.png rename to content/blog/ported/shiny/shiny-python-1.6/toolbar_textarea.png diff --git a/content/blog/shiny/shiny-python-1.6/weather_app_logfire.png b/content/blog/ported/shiny/shiny-python-1.6/weather_app_logfire.png similarity index 100% rename from content/blog/shiny/shiny-python-1.6/weather_app_logfire.png rename to content/blog/ported/shiny/shiny-python-1.6/weather_app_logfire.png diff --git a/content/blog/shiny/shiny-python-1.6/weather_app_ui.png b/content/blog/ported/shiny/shiny-python-1.6/weather_app_ui.png similarity index 100% rename from content/blog/shiny/shiny-python-1.6/weather_app_ui.png rename to content/blog/ported/shiny/shiny-python-1.6/weather_app_ui.png diff --git a/content/blog/shiny/shiny-python-chatstream/20-questions.mp4 b/content/blog/ported/shiny/shiny-python-chatstream/20-questions.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-chatstream/20-questions.mp4 rename to content/blog/ported/shiny/shiny-python-chatstream/20-questions.mp4 diff --git a/content/blog/shiny/shiny-python-chatstream/basic.mp4 b/content/blog/ported/shiny/shiny-python-chatstream/basic.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-chatstream/basic.mp4 rename to content/blog/ported/shiny/shiny-python-chatstream/basic.mp4 diff --git a/content/blog/shiny/shiny-python-chatstream/index.md b/content/blog/ported/shiny/shiny-python-chatstream/index.md similarity index 98% rename from content/blog/shiny/shiny-python-chatstream/index.md rename to content/blog/ported/shiny/shiny-python-chatstream/index.md index 5d1b18616..5353cbe44 100644 --- a/content/blog/shiny/shiny-python-chatstream/index.md +++ b/content/blog/ported/shiny/shiny-python-chatstream/index.md @@ -29,7 +29,7 @@ tags: **Update:** As of version 1.0, Shiny now has a built-in LLM chat component, which supersedes the chatstream package described in this blog post. -See the [Shiny 1.0 blog post](../../../blog/shiny/shiny-python-1.0/#new-chat-component) for more information. +See the [Shiny 1.0 blog post](/blog/2024-07-22_shiny-python-1.0/#new-chat-component) for more information. diff --git a/content/blog/shiny/shiny-python-chatstream/index.qmd b/content/blog/ported/shiny/shiny-python-chatstream/index.qmd similarity index 98% rename from content/blog/shiny/shiny-python-chatstream/index.qmd rename to content/blog/ported/shiny/shiny-python-chatstream/index.qmd index faf11abfd..d1ea459bf 100644 --- a/content/blog/shiny/shiny-python-chatstream/index.qmd +++ b/content/blog/ported/shiny/shiny-python-chatstream/index.qmd @@ -22,7 +22,7 @@ tags: **Update:** As of version 1.0, Shiny now has a built-in LLM chat component, which supersedes the chatstream package described in this blog post. -See the [Shiny 1.0 blog post](/blog/shiny/shiny-python-1.0/#new-chat-component) for more information. +See the [Shiny 1.0 blog post](/blog/2024-07-22_shiny-python-1.0/#new-chat-component) for more information. ::: diff --git a/content/blog/shiny/shiny-python-chatstream/recipes-card.mp4 b/content/blog/ported/shiny/shiny-python-chatstream/recipes-card.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-chatstream/recipes-card.mp4 rename to content/blog/ported/shiny/shiny-python-chatstream/recipes-card.mp4 diff --git a/content/blog/shiny/shiny-python-chatstream/recipes.mp4 b/content/blog/ported/shiny/shiny-python-chatstream/recipes.mp4 similarity index 100% rename from content/blog/shiny/shiny-python-chatstream/recipes.mp4 rename to content/blog/ported/shiny/shiny-python-chatstream/recipes.mp4 diff --git a/content/blog/shiny/shiny-python-chatstream/shiny-ai-chatbot.jpg b/content/blog/ported/shiny/shiny-python-chatstream/shiny-ai-chatbot.jpg similarity index 100% rename from content/blog/shiny/shiny-python-chatstream/shiny-ai-chatbot.jpg rename to content/blog/ported/shiny/shiny-python-chatstream/shiny-ai-chatbot.jpg diff --git a/content/blog/shiny/shiny-python-general-availability/index.md b/content/blog/ported/shiny/shiny-python-general-availability/index.md similarity index 100% rename from content/blog/shiny/shiny-python-general-availability/index.md rename to content/blog/ported/shiny/shiny-python-general-availability/index.md diff --git a/content/blog/shiny/shiny-python-general-availability/index.qmd b/content/blog/ported/shiny/shiny-python-general-availability/index.qmd similarity index 100% rename from content/blog/shiny/shiny-python-general-availability/index.qmd rename to content/blog/ported/shiny/shiny-python-general-availability/index.qmd diff --git a/content/blog/shiny/shiny-python-general-availability/shiny-for-python.jpg b/content/blog/ported/shiny/shiny-python-general-availability/shiny-for-python.jpg similarity index 100% rename from content/blog/shiny/shiny-python-general-availability/shiny-for-python.jpg rename to content/blog/ported/shiny/shiny-python-general-availability/shiny-for-python.jpg diff --git a/content/blog/shiny/shiny-python-testing/index.md b/content/blog/ported/shiny/shiny-python-testing/index.md similarity index 100% rename from content/blog/shiny/shiny-python-testing/index.md rename to content/blog/ported/shiny/shiny-python-testing/index.md diff --git a/content/blog/shiny/shiny-python-testing/index.qmd b/content/blog/ported/shiny/shiny-python-testing/index.qmd similarity index 100% rename from content/blog/shiny/shiny-python-testing/index.qmd rename to content/blog/ported/shiny/shiny-python-testing/index.qmd diff --git a/content/blog/shiny/shiny-python-testing/testing-og.jpg b/content/blog/ported/shiny/shiny-python-testing/testing-og.jpg similarity index 100% rename from content/blog/shiny/shiny-python-testing/testing-og.jpg rename to content/blog/ported/shiny/shiny-python-testing/testing-og.jpg diff --git a/content/blog/shiny/shiny-r-1.12/demo-app-and-logfire.png b/content/blog/ported/shiny/shiny-r-1.12/demo-app-and-logfire.png similarity index 100% rename from content/blog/shiny/shiny-r-1.12/demo-app-and-logfire.png rename to content/blog/ported/shiny/shiny-r-1.12/demo-app-and-logfire.png diff --git a/content/blog/shiny/shiny-r-1.12/demo-app-and-logfire.png.original b/content/blog/ported/shiny/shiny-r-1.12/demo-app-and-logfire.png.original similarity index 100% rename from content/blog/shiny/shiny-r-1.12/demo-app-and-logfire.png.original rename to content/blog/ported/shiny/shiny-r-1.12/demo-app-and-logfire.png.original diff --git a/content/blog/shiny/shiny-r-1.12/demo-app.png b/content/blog/ported/shiny/shiny-r-1.12/demo-app.png similarity index 100% rename from content/blog/shiny/shiny-r-1.12/demo-app.png rename to content/blog/ported/shiny/shiny-r-1.12/demo-app.png diff --git a/content/blog/shiny/shiny-r-1.12/demo-logfire-and-app.png b/content/blog/ported/shiny/shiny-r-1.12/demo-logfire-and-app.png similarity index 100% rename from content/blog/shiny/shiny-r-1.12/demo-logfire-and-app.png rename to content/blog/ported/shiny/shiny-r-1.12/demo-logfire-and-app.png diff --git a/content/blog/shiny/shiny-r-1.12/demo-logfire-and-app.png.original b/content/blog/ported/shiny/shiny-r-1.12/demo-logfire-and-app.png.original similarity index 100% rename from content/blog/shiny/shiny-r-1.12/demo-logfire-and-app.png.original rename to content/blog/ported/shiny/shiny-r-1.12/demo-logfire-and-app.png.original diff --git a/content/blog/shiny/shiny-r-1.12/demo-logfire.png b/content/blog/ported/shiny/shiny-r-1.12/demo-logfire.png similarity index 100% rename from content/blog/shiny/shiny-r-1.12/demo-logfire.png rename to content/blog/ported/shiny/shiny-r-1.12/demo-logfire.png diff --git a/content/blog/shiny/shiny-r-1.12/demo-logfire.png.original b/content/blog/ported/shiny/shiny-r-1.12/demo-logfire.png.original similarity index 100% rename from content/blog/shiny/shiny-r-1.12/demo-logfire.png.original rename to content/blog/ported/shiny/shiny-r-1.12/demo-logfire.png.original diff --git a/content/blog/shiny/shiny-r-1.12/feature-header.png b/content/blog/ported/shiny/shiny-r-1.12/feature-header.png similarity index 100% rename from content/blog/shiny/shiny-r-1.12/feature-header.png rename to content/blog/ported/shiny/shiny-r-1.12/feature-header.png diff --git a/content/blog/shiny/shiny-r-1.12/feature.png b/content/blog/ported/shiny/shiny-r-1.12/feature.png similarity index 100% rename from content/blog/shiny/shiny-r-1.12/feature.png rename to content/blog/ported/shiny/shiny-r-1.12/feature.png diff --git a/content/blog/shiny/shiny-r-1.12/index.md b/content/blog/ported/shiny/shiny-r-1.12/index.md similarity index 100% rename from content/blog/shiny/shiny-r-1.12/index.md rename to content/blog/ported/shiny/shiny-r-1.12/index.md diff --git a/content/blog/shiny/shiny-r-1.12/index.qmd b/content/blog/ported/shiny/shiny-r-1.12/index.qmd similarity index 100% rename from content/blog/shiny/shiny-r-1.12/index.qmd rename to content/blog/ported/shiny/shiny-r-1.12/index.qmd diff --git a/content/blog/shiny/shiny-r-1.12/opentelemetry-horizontal-color.png b/content/blog/ported/shiny/shiny-r-1.12/opentelemetry-horizontal-color.png similarity index 100% rename from content/blog/shiny/shiny-r-1.12/opentelemetry-horizontal-color.png rename to content/blog/ported/shiny/shiny-r-1.12/opentelemetry-horizontal-color.png diff --git a/content/blog/shiny/shiny-r-1.8.0/feature.jpg b/content/blog/ported/shiny/shiny-r-1.8.0/feature.jpg similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/feature.jpg rename to content/blog/ported/shiny/shiny-r-1.8.0/feature.jpg diff --git a/content/blog/shiny/shiny-r-1.8.0/flights-dark.png b/content/blog/ported/shiny/shiny-r-1.8.0/flights-dark.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/flights-dark.png rename to content/blog/ported/shiny/shiny-r-1.8.0/flights-dark.png diff --git a/content/blog/shiny/shiny-r-1.8.0/flights-light.png b/content/blog/ported/shiny/shiny-r-1.8.0/flights-light.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/flights-light.png rename to content/blog/ported/shiny/shiny-r-1.8.0/flights-light.png diff --git a/content/blog/shiny/shiny-r-1.8.0/flights-new.png b/content/blog/ported/shiny/shiny-r-1.8.0/flights-new.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/flights-new.png rename to content/blog/ported/shiny/shiny-r-1.8.0/flights-new.png diff --git a/content/blog/shiny/shiny-r-1.8.0/flights-new.png.original b/content/blog/ported/shiny/shiny-r-1.8.0/flights-new.png.original similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/flights-new.png.original rename to content/blog/ported/shiny/shiny-r-1.8.0/flights-new.png.original diff --git a/content/blog/shiny/shiny-r-1.8.0/flights-old.png b/content/blog/ported/shiny/shiny-r-1.8.0/flights-old.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/flights-old.png rename to content/blog/ported/shiny/shiny-r-1.8.0/flights-old.png diff --git a/content/blog/shiny/shiny-r-1.8.0/flights-old.png.original b/content/blog/ported/shiny/shiny-r-1.8.0/flights-old.png.original similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/flights-old.png.original rename to content/blog/ported/shiny/shiny-r-1.8.0/flights-old.png.original diff --git a/content/blog/shiny/shiny-r-1.8.0/index.md b/content/blog/ported/shiny/shiny-r-1.8.0/index.md similarity index 99% rename from content/blog/shiny/shiny-r-1.8.0/index.md rename to content/blog/ported/shiny/shiny-r-1.8.0/index.md index b0a4aed9e..fc4aa9e85 100644 --- a/content/blog/shiny/shiny-r-1.8.0/index.md +++ b/content/blog/ported/shiny/shiny-r-1.8.0/index.md @@ -74,7 +74,7 @@ In this post, we'll cover three main topics: the [new shiny look](#new-shiny-loo ## A shiny new look -In our [last post](../../../blog/shiny/bslib-tooltips/#towards-a-new-shiny-theme), we previewed a new look for `bslib`-powered UIs, which is designed with dashboards in mind. +In our [last post](/blog/2023-08-16_bslib-tooltips/#towards-a-new-shiny-theme), we previewed a new look for `bslib`-powered UIs, which is designed with dashboards in mind. This release of `bslib` adds more polish to this new "preset" theme and makes it the default for `bslib` powered UIs. To use the new layouts, simply create an app using any `page_*()` function in bslib for the UI. diff --git a/content/blog/shiny/shiny-r-1.8.0/index.qmd b/content/blog/ported/shiny/shiny-r-1.8.0/index.qmd similarity index 99% rename from content/blog/shiny/shiny-r-1.8.0/index.qmd rename to content/blog/ported/shiny/shiny-r-1.8.0/index.qmd index 5f841a810..415b2161e 100644 --- a/content/blog/shiny/shiny-r-1.8.0/index.qmd +++ b/content/blog/ported/shiny/shiny-r-1.8.0/index.qmd @@ -95,7 +95,7 @@ In this post, we'll cover three main topics: the [new shiny look](#new-shiny-loo ## A shiny new look {#new-shiny-look} -In our [last post](/blog/shiny/bslib-tooltips/#towards-a-new-shiny-theme), we previewed a new look for `bslib`-powered UIs, which is designed with dashboards in mind. +In our [last post](/blog/2023-08-16_bslib-tooltips/#towards-a-new-shiny-theme), we previewed a new look for `bslib`-powered UIs, which is designed with dashboards in mind. This release of `bslib` adds more polish to this new "preset" theme and makes it the default for `bslib` powered UIs. To use the new layouts, simply create an app using any `page_*()` function in bslib for the UI. diff --git a/content/blog/shiny/shiny-r-1.8.0/selectize.gif b/content/blog/ported/shiny/shiny-r-1.8.0/selectize.gif similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/selectize.gif rename to content/blog/ported/shiny/shiny-r-1.8.0/selectize.gif diff --git a/content/blog/shiny/shiny-r-1.8.0/shiny-preset-inputs.gif b/content/blog/ported/shiny/shiny-r-1.8.0/shiny-preset-inputs.gif similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/shiny-preset-inputs.gif rename to content/blog/ported/shiny/shiny-r-1.8.0/shiny-preset-inputs.gif diff --git a/content/blog/shiny/shiny-r-1.8.0/shiny-preset-modal.png b/content/blog/ported/shiny/shiny-r-1.8.0/shiny-preset-modal.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/shiny-preset-modal.png rename to content/blog/ported/shiny/shiny-r-1.8.0/shiny-preset-modal.png diff --git a/content/blog/shiny/shiny-r-1.8.0/shiny-preset-notifications.gif b/content/blog/ported/shiny/shiny-r-1.8.0/shiny-preset-notifications.gif similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/shiny-preset-notifications.gif rename to content/blog/ported/shiny/shiny-r-1.8.0/shiny-preset-notifications.gif diff --git a/content/blog/shiny/shiny-r-1.8.0/shiny-preset-progress-bar.gif b/content/blog/ported/shiny/shiny-r-1.8.0/shiny-preset-progress-bar.gif similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/shiny-preset-progress-bar.gif rename to content/blog/ported/shiny/shiny-r-1.8.0/shiny-preset-progress-bar.gif diff --git a/content/blog/shiny/shiny-r-1.8.0/simple-new.png b/content/blog/ported/shiny/shiny-r-1.8.0/simple-new.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/simple-new.png rename to content/blog/ported/shiny/shiny-r-1.8.0/simple-new.png diff --git a/content/blog/shiny/shiny-r-1.8.0/simple-new.png.original b/content/blog/ported/shiny/shiny-r-1.8.0/simple-new.png.original similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/simple-new.png.original rename to content/blog/ported/shiny/shiny-r-1.8.0/simple-new.png.original diff --git a/content/blog/shiny/shiny-r-1.8.0/simple-old.png b/content/blog/ported/shiny/shiny-r-1.8.0/simple-old.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/simple-old.png rename to content/blog/ported/shiny/shiny-r-1.8.0/simple-old.png diff --git a/content/blog/shiny/shiny-r-1.8.0/simple-old.png.original b/content/blog/ported/shiny/shiny-r-1.8.0/simple-old.png.original similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/simple-old.png.original rename to content/blog/ported/shiny/shiny-r-1.8.0/simple-old.png.original diff --git a/content/blog/shiny/shiny-r-1.8.0/value-box-gradient.png b/content/blog/ported/shiny/shiny-r-1.8.0/value-box-gradient.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/value-box-gradient.png rename to content/blog/ported/shiny/shiny-r-1.8.0/value-box-gradient.png diff --git a/content/blog/shiny/shiny-r-1.8.0/value-box-icons.png b/content/blog/ported/shiny/shiny-r-1.8.0/value-box-icons.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/value-box-icons.png rename to content/blog/ported/shiny/shiny-r-1.8.0/value-box-icons.png diff --git a/content/blog/shiny/shiny-r-1.8.0/value-box-text.png b/content/blog/ported/shiny/shiny-r-1.8.0/value-box-text.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.0/value-box-text.png rename to content/blog/ported/shiny/shiny-r-1.8.0/value-box-text.png diff --git a/content/blog/shiny/shiny-r-1.8.1/error-dialog.png b/content/blog/ported/shiny/shiny-r-1.8.1/error-dialog.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.1/error-dialog.png rename to content/blog/ported/shiny/shiny-r-1.8.1/error-dialog.png diff --git a/content/blog/shiny/shiny-r-1.8.1/feature.png b/content/blog/ported/shiny/shiny-r-1.8.1/feature.png similarity index 100% rename from content/blog/shiny/shiny-r-1.8.1/feature.png rename to content/blog/ported/shiny/shiny-r-1.8.1/feature.png diff --git a/content/blog/shiny/shiny-r-1.8.1/full-screen.gif b/content/blog/ported/shiny/shiny-r-1.8.1/full-screen.gif similarity index 100% rename from content/blog/shiny/shiny-r-1.8.1/full-screen.gif rename to content/blog/ported/shiny/shiny-r-1.8.1/full-screen.gif diff --git a/content/blog/shiny/shiny-r-1.8.1/index.md b/content/blog/ported/shiny/shiny-r-1.8.1/index.md similarity index 100% rename from content/blog/shiny/shiny-r-1.8.1/index.md rename to content/blog/ported/shiny/shiny-r-1.8.1/index.md diff --git a/content/blog/shiny/shiny-r-1.8.1/index.qmd b/content/blog/ported/shiny/shiny-r-1.8.1/index.qmd similarity index 100% rename from content/blog/shiny/shiny-r-1.8.1/index.qmd rename to content/blog/ported/shiny/shiny-r-1.8.1/index.qmd diff --git a/content/blog/shiny/shiny-r-1.8.1/task-button.gif b/content/blog/ported/shiny/shiny-r-1.8.1/task-button.gif similarity index 100% rename from content/blog/shiny/shiny-r-1.8.1/task-button.gif rename to content/blog/ported/shiny/shiny-r-1.8.1/task-button.gif diff --git a/content/blog/shiny/shiny-side-of-llms-part-1/index.md b/content/blog/ported/shiny/shiny-side-of-llms-part-1/index.md similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-1/index.md rename to content/blog/ported/shiny/shiny-side-of-llms-part-1/index.md diff --git a/content/blog/shiny/shiny-side-of-llms-part-1/index.qmd b/content/blog/ported/shiny/shiny-side-of-llms-part-1/index.qmd similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-1/index.qmd rename to content/blog/ported/shiny/shiny-side-of-llms-part-1/index.qmd diff --git a/content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-back-propagation-1.png b/content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-back-propagation-1.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-back-propagation-1.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-back-propagation-1.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-back-propagation-2.png b/content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-back-propagation-2.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-back-propagation-2.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-back-propagation-2.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-chat.png b/content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-chat.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-chat.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-chat.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-code-gen.png b/content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-code-gen.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-code-gen.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-code-gen.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-header.png b/content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-header.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-header.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-header.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-image-gen.png b/content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-image-gen.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-image-gen.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-image-gen.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-stats.png b/content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-stats.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-stats.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-1/shiny-side-of-llms-stats.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-2/index.md b/content/blog/ported/shiny/shiny-side-of-llms-part-2/index.md similarity index 99% rename from content/blog/shiny/shiny-side-of-llms-part-2/index.md rename to content/blog/ported/shiny/shiny-side-of-llms-part-2/index.md index bec9289b4..29816efc3 100644 --- a/content/blog/shiny/shiny-side-of-llms-part-2/index.md +++ b/content/blog/ported/shiny/shiny-side-of-llms-part-2/index.md @@ -30,7 +30,7 @@ tags: Welcome back to "The Shiny Side of LLMs": a blog series for Python and R users who want to build real, useful LLM-powered apps without getting buried in jargon or deep learning theory. -In [Part 1: What LLMs Actually Do (and What They Don't)](../../../blog/shiny/shiny-side-of-llms-part-1/), we looked at how large language models generate responses, why they sometimes seem so smart (and other times so confidently wrong), and what kinds of tasks they're actually good at. Now it's time to get hands-on! +In [Part 1: What LLMs Actually Do (and What They Don't)](/blog/2025-07-31_shiny-side-of-llms-part-1/), we looked at how large language models generate responses, why they sometimes seem so smart (and other times so confidently wrong), and what kinds of tasks they're actually good at. Now it's time to get hands-on! In this part, we'll focus on what it means to talk to an LLM. We'll cover crafting prompts to parsing responses, and everything in between. You'll learn: @@ -347,7 +347,7 @@ chat$chat( -The `chat` object is a stateful object, which means it "remembers stuff". It accumulates conversation history by default. This history is provided to the LLM with every subsequent question. So if you send a second question, it will package your prompt so it contains the first question, the first answer, and your second question. This is desired behaviour for multi-turn conversations since it allows the model to "remember" previous interactions. That's important, because out of the box, the model doesn't remember what you said two messages ago. It only has the input you provide, right here, right now. That's its entire world. So every time (with every request) you have to remind the LLM of prior context. You can learn more about this in [the first part of this series](../../../blog/shiny/shiny-side-of-llms-part-1/). +The `chat` object is a stateful object, which means it "remembers stuff". It accumulates conversation history by default. This history is provided to the LLM with every subsequent question. So if you send a second question, it will package your prompt so it contains the first question, the first answer, and your second question. This is desired behaviour for multi-turn conversations since it allows the model to "remember" previous interactions. That's important, because out of the box, the model doesn't remember what you said two messages ago. It only has the input you provide, right here, right now. That's its entire world. So every time (with every request) you have to remind the LLM of prior context. You can learn more about this in [the first part of this series](/blog/2025-07-31_shiny-side-of-llms-part-1/).
@@ -1404,7 +1404,7 @@ chat$chat(interpolate(
-Did you already notice that some meta-data, like the percentage of slides with code and/or images is inconsistent? For example, the "percent_with_code" is 40, but other times it's 37.5 or 45. It seems like a broken calculator! To understand why this happens you can read [part 1](../../../blog/shiny/shiny-side-of-llms-part-1/) again, where we talk about why LLMs are really good at some tasks, and others, well... Not so much. That doesn't mean it's completely out of our hands. We can help the LLM with a "tool". Keep on reading to learn more about that concept. +Did you already notice that some meta-data, like the percentage of slides with code and/or images is inconsistent? For example, the "percent_with_code" is 40, but other times it's 37.5 or 45. It seems like a broken calculator! To understand why this happens you can read [part 1](/blog/2025-07-31_shiny-side-of-llms-part-1/) again, where we talk about why LLMs are really good at some tasks, and others, well... Not so much. That doesn't mean it's completely out of our hands. We can help the LLM with a "tool". Keep on reading to learn more about that concept.
@@ -1869,7 +1869,7 @@ chat$chat(interpolate( -And of course Claude believes that all the suggested improvements increase the relevant scores. However, don't be surprised if the numbers are off. Remember from [part 1](../../../blog/shiny/shiny-side-of-llms-part-1/) that it's just a model that predicts a next token. It's good to do some sanity checks. +And of course Claude believes that all the suggested improvements increase the relevant scores. However, don't be surprised if the numbers are off. Remember from [part 1](/blog/2025-07-31_shiny-side-of-llms-part-1/) that it's just a model that predicts a next token. It's good to do some sanity checks. # Ensuring structured and consistent output diff --git a/content/blog/shiny/shiny-side-of-llms-part-2/index.qmd b/content/blog/ported/shiny/shiny-side-of-llms-part-2/index.qmd similarity index 99% rename from content/blog/shiny/shiny-side-of-llms-part-2/index.qmd rename to content/blog/ported/shiny/shiny-side-of-llms-part-2/index.qmd index 754bfe03c..f1d8f099b 100644 --- a/content/blog/shiny/shiny-side-of-llms-part-2/index.qmd +++ b/content/blog/ported/shiny/shiny-side-of-llms-part-2/index.qmd @@ -20,7 +20,7 @@ tags: Welcome back to ”The Shiny Side of LLMs”: a blog series for Python and R users who want to build real, useful LLM-powered apps without getting buried in jargon or deep learning theory. -In [Part 1: What LLMs Actually Do (and What They Don’t)](/blog/shiny/shiny-side-of-llms-part-1/), we looked at how large language models generate responses, why they sometimes seem so smart (and other times so confidently wrong), and what kinds of tasks they’re actually good at. Now it’s time to get hands-on! +In [Part 1: What LLMs Actually Do (and What They Don’t)](/blog/2025-07-31_shiny-side-of-llms-part-1/), we looked at how large language models generate responses, why they sometimes seem so smart (and other times so confidently wrong), and what kinds of tasks they’re actually good at. Now it’s time to get hands-on! In this part, we’ll focus on what it means to talk to an LLM. We’ll cover crafting prompts to parsing responses, and everything in between. You’ll learn: @@ -290,7 +290,7 @@ chat$chat( ``` ::: -The `chat` object is a stateful object, which means it “remembers stuff”. It accumulates conversation history by default. This history is provided to the LLM with every subsequent question. So if you send a second question, it will package your prompt so it contains the first question, the first answer, and your second question. This is desired behaviour for multi-turn conversations since it allows the model to “remember” previous interactions. That’s important, because out of the box, the model doesn’t remember what you said two messages ago. It only has the input you provide, right here, right now. That’s its entire world. So every time (with every request) you have to remind the LLM of prior context. You can learn more about this in [the first part of this series](/blog/shiny/shiny-side-of-llms-part-1/). +The `chat` object is a stateful object, which means it “remembers stuff”. It accumulates conversation history by default. This history is provided to the LLM with every subsequent question. So if you send a second question, it will package your prompt so it contains the first question, the first answer, and your second question. This is desired behaviour for multi-turn conversations since it allows the model to “remember” previous interactions. That’s important, because out of the box, the model doesn’t remember what you said two messages ago. It only has the input you provide, right here, right now. That’s its entire world. So every time (with every request) you have to remind the LLM of prior context. You can learn more about this in [the first part of this series](/blog/2025-07-31_shiny-side-of-llms-part-1/). ::: callout-note ## Some chat terminology @@ -1291,7 +1291,7 @@ chat$chat(interpolate( ::: callout-warning ## Inconsistencies in the output -Did you already notice that some meta-data, like the percentage of slides with code and/or images is inconsistent? For example, the “percent_with_code” is 40, but other times it’s 37.5 or 45. It seems like a broken calculator! To understand why this happens you can read [part 1](/blog/shiny/shiny-side-of-llms-part-1/) again, where we talk about why LLMs are really good at some tasks, and others, well… Not so much. That doesn’t mean it’s completely out of our hands. We can help the LLM with a “tool”. Keep on reading to learn more about that concept. +Did you already notice that some meta-data, like the percentage of slides with code and/or images is inconsistent? For example, the “percent_with_code” is 40, but other times it’s 37.5 or 45. It seems like a broken calculator! To understand why this happens you can read [part 1](/blog/2025-07-31_shiny-side-of-llms-part-1/) again, where we talk about why LLMs are really good at some tasks, and others, well… Not so much. That doesn’t mean it’s completely out of our hands. We can help the LLM with a “tool”. Keep on reading to learn more about that concept. ::: It’s not too bad for a first try and it serves as a basis we can depart from. We can go back and forth many times, aka do some “prompt engineering”, to make sure we are getting results that are usable. The prompt that we used mostly returns a broad analysis (makes sense, we asked it to), but if we want our users to take action we need to provide specific improvements. So we could extend our prompt with “provide specific and actionable improvements” and provide specific instructions like “keep each suggestion concise and mention the slide number(s) if applicable”: @@ -1746,7 +1746,7 @@ chat$chat(interpolate( ``` ::: -And of course Claude believes that all the suggested improvements increase the relevant scores. However, don’t be surprised if the numbers are off. Remember from [part 1](/blog/shiny/shiny-side-of-llms-part-1/) that it’s just a model that predicts a next token. It’s good to do some sanity checks. +And of course Claude believes that all the suggested improvements increase the relevant scores. However, don’t be surprised if the numbers are off. Remember from [part 1](/blog/2025-07-31_shiny-side-of-llms-part-1/) that it’s just a model that predicts a next token. It’s good to do some sanity checks. # Ensuring structured and consistent output diff --git a/content/blog/shiny/shiny-side-of-llms-part-2/shiny-side-of-llms-header.png b/content/blog/ported/shiny/shiny-side-of-llms-part-2/shiny-side-of-llms-header.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-2/shiny-side-of-llms-header.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-2/shiny-side-of-llms-header.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-2/tabset.css b/content/blog/ported/shiny/shiny-side-of-llms-part-2/tabset.css similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-2/tabset.css rename to content/blog/ported/shiny/shiny-side-of-llms-part-2/tabset.css diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/index.md b/content/blog/ported/shiny/shiny-side-of-llms-part-3/index.md similarity index 98% rename from content/blog/shiny/shiny-side-of-llms-part-3/index.md rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/index.md index d9126d986..91d5cf7a0 100644 --- a/content/blog/shiny/shiny-side-of-llms-part-3/index.md +++ b/content/blog/ported/shiny/shiny-side-of-llms-part-3/index.md @@ -29,7 +29,7 @@ tags: You've made it to third part of "The Shiny Side of LLMs" series, where we turn everything we've learned into something real and interactive! Our weapon of choice: Shiny, of course. -In the first part, [What LLMs Actually Do (and What They Don't)](../../../blog/shiny/shiny-side-of-llms-part-1/), we explored what LLMs actually do. We covered how they generate text, what they're good (and bad) at, and we covered most of the jargon that gets thrown around. Then in part two, [Talking to LLMs: From Prompt to Response](../../../blog/shiny/shiny-side-of-llms-part-2/), we got practical. You learned how to structure prompts, send them to a model via an API using [`chatlas`](https://posit-dev.github.io/chatlas/) or [`ellmer`](https://ellmer.tidyverse.org), and handle the responses in your code. Now it's time to wrap that logic in an interface your users can love and can actually interact with! +In the first part, [What LLMs Actually Do (and What They Don't)](/blog/2025-07-31_shiny-side-of-llms-part-1/), we explored what LLMs actually do. We covered how they generate text, what they're good (and bad) at, and we covered most of the jargon that gets thrown around. Then in part two, [Talking to LLMs: From Prompt to Response](/blog/2025-09-05_shiny-side-of-llms-part-2/), we got practical. You learned how to structure prompts, send them to a model via an API using [`chatlas`](https://posit-dev.github.io/chatlas/) or [`ellmer`](https://ellmer.tidyverse.org), and handle the responses in your code. Now it's time to wrap that logic in an interface your users can love and can actually interact with! In this post, we'll cover how to: @@ -96,7 +96,7 @@ Fun fact: this article contains side-by-side examples in both Python and R. To s
-Remember you need to [grab an API key for your chosen LLM provider](../../../blog/shiny/shiny-side-of-llms-part-2/#what-do-you-need). You need this key to authenticate. Store this key as an environment variable. For example, to use Claude from Anthropic, `ANTHROPIC_API_KEY=yourkey` needs to be in `.Renviron` or `.env` file. +Remember you need to [grab an API key for your chosen LLM provider](/blog/2025-09-05_shiny-side-of-llms-part-2/#what-do-you-need). You need this key to authenticate. Store this key as an environment variable. For example, to use Claude from Anthropic, `ANTHROPIC_API_KEY=yourkey` needs to be in `.Renviron` or `.env` file.
@@ -334,12 +334,12 @@ Return your answer as a JSON array of objects, where each object has the followi -[`chat_async()`](https://ellmer.tidyverse.org/reference/Chat.html#method-chat-async-) starts the work and returns a promise, this special kind of placeholder. Then [`%...>%`](https://rstudio.github.io/promises/reference/pipes.html) attaches the next step, like printing the result, once it's ready. This keeps your R session running without waiting or freezing. Note that it resolves to a string (probably Markdown), which is slightly different than just using the `chat()` method. This is also why the output looks a little bit different compared to [part two of this series](../../../blog/shiny/shiny-side-of-llms-part-2/). +[`chat_async()`](https://ellmer.tidyverse.org/reference/Chat.html#method-chat-async-) starts the work and returns a promise, this special kind of placeholder. Then [`%...>%`](https://rstudio.github.io/promises/reference/pipes.html) attaches the next step, like printing the result, once it's ready. This keeps your R session running without waiting or freezing. Note that it resolves to a string (probably Markdown), which is slightly different than just using the `chat()` method. This is also why the output looks a little bit different compared to [part two of this series](/blog/2025-09-05_shiny-side-of-llms-part-2/). -And before you're thinking: "hey, we were using structured output [in the last part](../../../blog/shiny/shiny-side-of-llms-part-2/), right?" Yes! Luckily there's also a method called `chat_structured_async()` (see docs for [Python](https://posit-dev.github.io/chatlas/reference/Chat.html#chatlas.Chat.chat_structured_async) and [R](https://ellmer.tidyverse.org/reference/Chat.html#method-extract-data-async-)). How convenient! We'll use that a little bit later. +And before you're thinking: "hey, we were using structured output [in the last part](/blog/2025-09-05_shiny-side-of-llms-part-2/), right?" Yes! Luckily there's also a method called `chat_structured_async()` (see docs for [Python](https://posit-dev.github.io/chatlas/reference/Chat.html#chatlas.Chat.chat_structured_async) and [R](https://ellmer.tidyverse.org/reference/Chat.html#method-extract-data-async-)). How convenient! We'll use that a little bit later. # Chatting with an LLM via Shiny @@ -705,7 +705,7 @@ No matter what language you use to display this basic UI, the result is the same ![](shiny-side-of-llms-ui-only.png) -That's already a start! Of course it doesn't do anything yet and is filled with placeholders, so we need some logic in the server part. The main engine behind DeckCheck is our conversation with the LLM. This logic is *almost* a copy-paste from part two, [Talking to LLMs: From Prompt to Response](../../../blog/shiny/shiny-side-of-llms-part-2/), combined with what we learned earlier in this article about async. +That's already a start! Of course it doesn't do anything yet and is filled with placeholders, so we need some logic in the server part. The main engine behind DeckCheck is our conversation with the LLM. This logic is *almost* a copy-paste from part two, [Talking to LLMs: From Prompt to Response](/blog/2025-09-05_shiny-side-of-llms-part-2/), combined with what we learned earlier in this article about async. The star of this main engine is something called "extended task". As mentioned previously, by default, Shiny runs code synchronously. That means if we ask it to render a Quarto presentation or send a request to an LLM, the app would block until that job is done. The whole interface would freeze. That's no fun for the user. That's why Shiny has an option to run extended tasks ([`extended_task`](https://shiny.posit.co/py/docs/nonblocking.html) in Python, [`ExtendedTask`](https://shiny.posit.co/r/articles/improve/nonblocking/) in R). It lets us run non-blocking jobs asynchronously in the background, so our app can stay responsive. It works together with a special action button, `input_task_button`, which is designed to trigger long running tasks. In order for this button to work you need to **bind** the button to the extended task with `bind_task_button`. diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/index.qmd b/content/blog/ported/shiny/shiny-side-of-llms-part-3/index.qmd similarity index 98% rename from content/blog/shiny/shiny-side-of-llms-part-3/index.qmd rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/index.qmd index c8d168055..dd723b676 100644 --- a/content/blog/shiny/shiny-side-of-llms-part-3/index.qmd +++ b/content/blog/ported/shiny/shiny-side-of-llms-part-3/index.qmd @@ -20,7 +20,7 @@ tags: You've made it to third part of "The Shiny Side of LLMs" series, where we turn everything we've learned into something real and interactive! Our weapon of choice: Shiny, of course. -In the first part, [What LLMs Actually Do (and What They Don't)](/blog/shiny/shiny-side-of-llms-part-1/), we explored what LLMs actually do. We covered how they generate text, what they're good (and bad) at, and we covered most of the jargon that gets thrown around. Then in part two, [Talking to LLMs: From Prompt to Response](/blog/shiny/shiny-side-of-llms-part-2/), we got practical. You learned how to structure prompts, send them to a model via an API using [`chatlas`](https://posit-dev.github.io/chatlas/) or [`ellmer`](https://ellmer.tidyverse.org), and handle the responses in your code. Now it's time to wrap that logic in an interface your users can love and can actually interact with! +In the first part, [What LLMs Actually Do (and What They Don't)](/blog/2025-07-31_shiny-side-of-llms-part-1/), we explored what LLMs actually do. We covered how they generate text, what they're good (and bad) at, and we covered most of the jargon that gets thrown around. Then in part two, [Talking to LLMs: From Prompt to Response](/blog/2025-09-05_shiny-side-of-llms-part-2/), we got practical. You learned how to structure prompts, send them to a model via an API using [`chatlas`](https://posit-dev.github.io/chatlas/) or [`ellmer`](https://ellmer.tidyverse.org), and handle the responses in your code. Now it's time to wrap that logic in an interface your users can love and can actually interact with! In this post, we'll cover how to: @@ -71,7 +71,7 @@ Fun fact: this article contains side-by-side examples in both Python and R. To s ::: callout-tip ## Getting your API key -Remember you need to [grab an API key for your chosen LLM provider](/blog/shiny/shiny-side-of-llms-part-2/#what-do-you-need). You need this key to authenticate. Store this key as an environment variable. For example, to use Claude from Anthropic, `ANTHROPIC_API_KEY=yourkey` needs to be in `.Renviron` or `.env` file. +Remember you need to [grab an API key for your chosen LLM provider](/blog/2025-09-05_shiny-side-of-llms-part-2/#what-do-you-need). You need this key to authenticate. Store this key as an environment variable. For example, to use Claude from Anthropic, `ANTHROPIC_API_KEY=yourkey` needs to be in `.Renviron` or `.env` file. ::: Going from a script-like workflow to an app requires a different way of thinking. We simply have other expectations from a web app compared to just a regular Python or R script. We want things to be interactive, and ideally we want to have the result instantly. If we click on something, we expect something to happen, fast. Ever encountered a web page that stayed blank for just 5 seconds? How long did that feel? Like 10 minutes? Or didn't you even stick out the 5 seconds? Yes, you are impatient! You need to see something is happening, and get some visual feedback. @@ -289,10 +289,10 @@ Return your answer as a JSON array of objects, where each object has the followi #> [1] "```json\n[\n {\n \"aspect\": \"clarity\",\n \"feedback\": \"The title is somewhat ambiguous - 'shiny side' could mean positive aspects of LLMs or reference the Shiny framework. The wordplay may confuse rather than clarify the content focus.\",\n \"suggestion\": \"Consider 'Building LLM Demos with Shiny' or 'Interactive LLM Exploration Using Shiny' to clearly communicate both the tool and topic.\"\n },\n {\n \"aspect\": \"tone\",\n \"feedback\": \"The playful wordplay fits well with the lightning talk format and conference atmosphere. It's approachable and not intimidating for audiences with varying technical backgrounds.\",\n \"suggestion\": null\n },\n {\n \"aspect\": \"relevance\",\n \"feedback\": \"Highly relevant for posit::conf audience who are familiar with Shiny. The title connects a trending AI topic with a beloved R/Python tool, making LLMs accessible to the community.\",\n \"suggestion\": \"Consider adding a subtitle for context: 'The Shiny Side of LLMs: Interactive Demos for AI Exploration' to enhance relevance while keeping the clever wordplay.\"\n }\n]\n```" ``` -[`chat_async()`](https://ellmer.tidyverse.org/reference/Chat.html#method-chat-async-) starts the work and returns a promise, this special kind of placeholder. Then [`%...>%`](https://rstudio.github.io/promises/reference/pipes.html) attaches the next step, like printing the result, once it's ready. This keeps your R session running without waiting or freezing. Note that it resolves to a string (probably Markdown), which is slightly different than just using the `chat()` method. This is also why the output looks a little bit different compared to [part two of this series](/blog/shiny/shiny-side-of-llms-part-2/). +[`chat_async()`](https://ellmer.tidyverse.org/reference/Chat.html#method-chat-async-) starts the work and returns a promise, this special kind of placeholder. Then [`%...>%`](https://rstudio.github.io/promises/reference/pipes.html) attaches the next step, like printing the result, once it's ready. This keeps your R session running without waiting or freezing. Note that it resolves to a string (probably Markdown), which is slightly different than just using the `chat()` method. This is also why the output looks a little bit different compared to [part two of this series](/blog/2025-09-05_shiny-side-of-llms-part-2/). ::: -And before you're thinking: "hey, we were using structured output [in the last part](/blog/shiny/shiny-side-of-llms-part-2/), right?" Yes! Luckily there's also a method called `chat_structured_async()` (see docs for [Python](https://posit-dev.github.io/chatlas/reference/Chat.html#chatlas.Chat.chat_structured_async) and [R](https://ellmer.tidyverse.org/reference/Chat.html#method-extract-data-async-)). How convenient! We'll use that a little bit later. +And before you're thinking: "hey, we were using structured output [in the last part](/blog/2025-09-05_shiny-side-of-llms-part-2/), right?" Yes! Luckily there's also a method called `chat_structured_async()` (see docs for [Python](https://posit-dev.github.io/chatlas/reference/Chat.html#chatlas.Chat.chat_structured_async) and [R](https://ellmer.tidyverse.org/reference/Chat.html#method-extract-data-async-)). How convenient! We'll use that a little bit later. # Chatting with an LLM via Shiny @@ -640,7 +640,7 @@ No matter what language you use to display this basic UI, the result is the same ![](shiny-side-of-llms-ui-only.png) -That's already a start! Of course it doesn't do anything yet and is filled with placeholders, so we need some logic in the server part. The main engine behind DeckCheck is our conversation with the LLM. This logic is *almost* a copy-paste from part two, [Talking to LLMs: From Prompt to Response](/blog/shiny/shiny-side-of-llms-part-2/), combined with what we learned earlier in this article about async. +That's already a start! Of course it doesn't do anything yet and is filled with placeholders, so we need some logic in the server part. The main engine behind DeckCheck is our conversation with the LLM. This logic is *almost* a copy-paste from part two, [Talking to LLMs: From Prompt to Response](/blog/2025-09-05_shiny-side-of-llms-part-2/), combined with what we learned earlier in this article about async. The star of this main engine is something called "extended task". As mentioned previously, by default, Shiny runs code synchronously. That means if we ask it to render a Quarto presentation or send a request to an LLM, the app would block until that job is done. The whole interface would freeze. That's no fun for the user. That's why Shiny has an option to run extended tasks ([`extended_task`](https://shiny.posit.co/py/docs/nonblocking.html) in Python, [`ExtendedTask`](https://shiny.posit.co/r/articles/improve/nonblocking/) in R). It lets us run non-blocking jobs asynchronously in the background, so our app can stay responsive. It works together with a special action button, `input_task_button`, which is designed to trigger long running tasks. In order for this button to work you need to **bind** the button to the extended task with `bind_task_button`. diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-chat-py.png b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-chat-py.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-chat-py.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-chat-py.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-chat-r.png b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-chat-r.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-chat-r.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-chat-r.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-deckcheck-full.gif b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-deckcheck-full.gif similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-deckcheck-full.gif rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-deckcheck-full.gif diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-design-1.png b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-design-1.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-design-1.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-design-1.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-design-2.png b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-design-2.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-design-2.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-design-2.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-error-msg.png b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-error-msg.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-error-msg.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-error-msg.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-error-msg.png.original b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-error-msg.png.original similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-error-msg.png.original rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-error-msg.png.original diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-header.png b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-header.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-header.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-header.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-loading-ux.gif b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-loading-ux.gif similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-loading-ux.gif rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-loading-ux.gif diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-pipeline.png b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-pipeline.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-pipeline.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-pipeline.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-plot-py.gif b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-plot-py.gif similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-plot-py.gif rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-plot-py.gif diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-plot-r.gif b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-plot-r.gif similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-plot-r.gif rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-plot-r.gif diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-table-r.png b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-table-r.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-table-r.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-table-r.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-tooltips-py.gif b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-tooltips-py.gif similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-tooltips-py.gif rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-tooltips-py.gif diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-tooltips-r.gif b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-tooltips-r.gif similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-tooltips-r.gif rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-tooltips-r.gif diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-ui-only.png b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-ui-only.png similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-ui-only.png rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-ui-only.png diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-ui-only.png.original b/content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-ui-only.png.original similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-ui-only.png.original rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/shiny-side-of-llms-ui-only.png.original diff --git a/content/blog/shiny/shiny-side-of-llms-part-3/tabset.css b/content/blog/ported/shiny/shiny-side-of-llms-part-3/tabset.css similarity index 100% rename from content/blog/shiny/shiny-side-of-llms-part-3/tabset.css rename to content/blog/ported/shiny/shiny-side-of-llms-part-3/tabset.css diff --git a/content/blog/shiny/shiny-vscode-1.0.0/feature.png b/content/blog/ported/shiny/shiny-vscode-1.0.0/feature.png similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/feature.png rename to content/blog/ported/shiny/shiny-vscode-1.0.0/feature.png diff --git a/content/blog/shiny/shiny-vscode-1.0.0/index.md b/content/blog/ported/shiny/shiny-vscode-1.0.0/index.md similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/index.md rename to content/blog/ported/shiny/shiny-vscode-1.0.0/index.md diff --git a/content/blog/shiny/shiny-vscode-1.0.0/index.qmd b/content/blog/ported/shiny/shiny-vscode-1.0.0/index.qmd similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/index.qmd rename to content/blog/ported/shiny/shiny-vscode-1.0.0/index.qmd diff --git a/content/blog/shiny/shiny-vscode-1.0.0/mp4ToWebm b/content/blog/ported/shiny/shiny-vscode-1.0.0/mp4ToWebm similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/mp4ToWebm rename to content/blog/ported/shiny/shiny-vscode-1.0.0/mp4ToWebm diff --git a/content/blog/shiny/shiny-vscode-1.0.0/shiny-marketplace-header.png b/content/blog/ported/shiny/shiny-vscode-1.0.0/shiny-marketplace-header.png similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/shiny-marketplace-header.png rename to content/blog/ported/shiny/shiny-vscode-1.0.0/shiny-marketplace-header.png diff --git a/content/blog/shiny/shiny-vscode-1.0.0/videos/create-shiny-py-multiple.mp4 b/content/blog/ported/shiny/shiny-vscode-1.0.0/videos/create-shiny-py-multiple.mp4 similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/videos/create-shiny-py-multiple.mp4 rename to content/blog/ported/shiny/shiny-vscode-1.0.0/videos/create-shiny-py-multiple.mp4 diff --git a/content/blog/shiny/shiny-vscode-1.0.0/videos/create-shiny-py-multiple.webm b/content/blog/ported/shiny/shiny-vscode-1.0.0/videos/create-shiny-py-multiple.webm similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/videos/create-shiny-py-multiple.webm rename to content/blog/ported/shiny/shiny-vscode-1.0.0/videos/create-shiny-py-multiple.webm diff --git a/content/blog/shiny/shiny-vscode-1.0.0/videos/create-shiny-r-single.mp4 b/content/blog/ported/shiny/shiny-vscode-1.0.0/videos/create-shiny-r-single.mp4 similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/videos/create-shiny-r-single.mp4 rename to content/blog/ported/shiny/shiny-vscode-1.0.0/videos/create-shiny-r-single.mp4 diff --git a/content/blog/shiny/shiny-vscode-1.0.0/videos/create-shiny-r-single.webm b/content/blog/ported/shiny/shiny-vscode-1.0.0/videos/create-shiny-r-single.webm similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/videos/create-shiny-r-single.webm rename to content/blog/ported/shiny/shiny-vscode-1.0.0/videos/create-shiny-r-single.webm diff --git a/content/blog/shiny/shiny-vscode-1.0.0/videos/run-shiny-r-app.mp4 b/content/blog/ported/shiny/shiny-vscode-1.0.0/videos/run-shiny-r-app.mp4 similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/videos/run-shiny-r-app.mp4 rename to content/blog/ported/shiny/shiny-vscode-1.0.0/videos/run-shiny-r-app.mp4 diff --git a/content/blog/shiny/shiny-vscode-1.0.0/videos/run-shiny-r-app.webm b/content/blog/ported/shiny/shiny-vscode-1.0.0/videos/run-shiny-r-app.webm similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/videos/run-shiny-r-app.webm rename to content/blog/ported/shiny/shiny-vscode-1.0.0/videos/run-shiny-r-app.webm diff --git a/content/blog/shiny/shiny-vscode-1.0.0/videos/save-shiny-py.mp4 b/content/blog/ported/shiny/shiny-vscode-1.0.0/videos/save-shiny-py.mp4 similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/videos/save-shiny-py.mp4 rename to content/blog/ported/shiny/shiny-vscode-1.0.0/videos/save-shiny-py.mp4 diff --git a/content/blog/shiny/shiny-vscode-1.0.0/videos/save-shiny-py.webm b/content/blog/ported/shiny/shiny-vscode-1.0.0/videos/save-shiny-py.webm similarity index 100% rename from content/blog/shiny/shiny-vscode-1.0.0/videos/save-shiny-py.webm rename to content/blog/ported/shiny/shiny-vscode-1.0.0/videos/save-shiny-py.webm diff --git a/content/blog/shiny/shinychat-tool-ui/.gitignore b/content/blog/ported/shiny/shinychat-tool-ui/.gitignore similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/.gitignore rename to content/blog/ported/shiny/shinychat-tool-ui/.gitignore diff --git a/content/blog/shiny/shinychat-tool-ui/_feature.R b/content/blog/ported/shiny/shinychat-tool-ui/_feature.R similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/_feature.R rename to content/blog/ported/shiny/shinychat-tool-ui/_feature.R diff --git a/content/blog/shiny/shinychat-tool-ui/feature.png b/content/blog/ported/shiny/shinychat-tool-ui/feature.png similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature.png rename to content/blog/ported/shiny/shinychat-tool-ui/feature.png diff --git a/content/blog/shiny/shinychat-tool-ui/feature.png.original b/content/blog/ported/shiny/shinychat-tool-ui/feature.png.original similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature.png.original rename to content/blog/ported/shiny/shinychat-tool-ui/feature.png.original diff --git a/content/blog/shiny/shinychat-tool-ui/feature/index.html b/content/blog/ported/shiny/shinychat-tool-ui/feature/index.html similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/index.html rename to content/blog/ported/shiny/shinychat-tool-ui/feature/index.html diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.bundle.min.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.bundle.min.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.bundle.min.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.bundle.min.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.bundle.min.js.map b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.bundle.min.js.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.bundle.min.js.map rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.bundle.min.js.map diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.min.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.min.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.min.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/bootstrap.min.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/font.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/font.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/font.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/font.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/07d40e985ad7c747025dabb9f22142c4.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/07d40e985ad7c747025dabb9f22142c4.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/07d40e985ad7c747025dabb9f22142c4.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/07d40e985ad7c747025dabb9f22142c4.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyC0ITw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyC0ITw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyC0ITw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyC0ITw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCAIT5lu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCAIT5lu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCAIT5lu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCAIT5lu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCIIT5lu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCIIT5lu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCIIT5lu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCIIT5lu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCMIT5lu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCMIT5lu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCMIT5lu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCMIT5lu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCkIT5lu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCkIT5lu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCkIT5lu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCkIT5lu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1f5e011d6aae0d98fc0518e1a303e99a.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1f5e011d6aae0d98fc0518e1a303e99a.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1f5e011d6aae0d98fc0518e1a303e99a.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/1f5e011d6aae0d98fc0518e1a303e99a.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcQ72j00.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcQ72j00.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcQ72j00.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcQ72j00.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcg72j00.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcg72j00.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcg72j00.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcg72j00.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcw72j00.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcw72j00.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcw72j00.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcw72j00.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKew72j00.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKew72j00.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKew72j00.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKew72j00.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfA72j00.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfA72j00.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfA72j00.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfA72j00.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfw72.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfw72.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfw72.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfw72.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/626330658504e338ee86aec8e957426b.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/626330658504e338ee86aec8e957426b.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/626330658504e338ee86aec8e957426b.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/626330658504e338ee86aec8e957426b.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNBeudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNBeudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNBeudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNBeudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNdeudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNdeudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNdeudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNdeudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNheudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNheudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNheudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNheudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNleudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNleudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNleudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNleudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNteudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNteudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNteudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNteudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO0KTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO0KTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO0KTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO0KTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO8KTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO8KTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO8KTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO8KTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOMKTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOMKTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOMKTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOMKTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOQKTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOQKTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOQKTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOQKTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOwKTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOwKTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOwKTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOwKTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjx4wXg.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjx4wXg.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjx4wXg.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjx4wXg.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIMeaBXso.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIMeaBXso.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIMeaBXso.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIMeaBXso.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofINeaB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofINeaB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofINeaB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofINeaB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIO-aBXso.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIO-aBXso.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIO-aBXso.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIO-aBXso.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOOaBXso.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOOaBXso.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOOaBXso.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOOaBXso.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOuaBXso.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOuaBXso.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOuaBXso.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOuaBXso.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.eot b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.eot similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.eot rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.eot diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.svg b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.svg similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.svg rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.svg diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.ttf b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.ttf similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.ttf rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.ttf diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.woff b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.woff similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.woff rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.woff diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/bootstrap/glyphicons-halflings-regular.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/ee91700cdbf7ce16c054c2bb8946c736.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/ee91700cdbf7ce16c054c2bb8946c736.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/ee91700cdbf7ce16c054c2bb8946c736.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/ee91700cdbf7ce16c054c2bb8946c736.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfuQltOxU.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfuQltOxU.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfuQltOxU.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfuQltOxU.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfvQlt.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfvQlt.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfvQlt.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfvQlt.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/bs3compat.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/bs3compat.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/bs3compat.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/bs3compat.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/tabs.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/tabs.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/tabs.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/tabs.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/transition.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/transition.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/transition.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bs3compat-0.9.0.9002/transition.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/bslib-component-css.min.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/bslib-component-css.min.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/bslib-component-css.min.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/bslib-component-css.min.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/font.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/font.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/font.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/font.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/07d40e985ad7c747025dabb9f22142c4.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/07d40e985ad7c747025dabb9f22142c4.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/07d40e985ad7c747025dabb9f22142c4.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/07d40e985ad7c747025dabb9f22142c4.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyC0ITw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyC0ITw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyC0ITw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyC0ITw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCAIT5lu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCAIT5lu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCAIT5lu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCAIT5lu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCIIT5lu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCIIT5lu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCIIT5lu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCIIT5lu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCMIT5lu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCMIT5lu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCMIT5lu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCMIT5lu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCkIT5lu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCkIT5lu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCkIT5lu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1Ptug8zYS_SKggPNyCkIT5lu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1f5e011d6aae0d98fc0518e1a303e99a.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1f5e011d6aae0d98fc0518e1a303e99a.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1f5e011d6aae0d98fc0518e1a303e99a.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/1f5e011d6aae0d98fc0518e1a303e99a.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcQ72j00.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcQ72j00.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcQ72j00.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcQ72j00.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcg72j00.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcg72j00.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcg72j00.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcg72j00.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcw72j00.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcw72j00.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcw72j00.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKcw72j00.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKew72j00.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKew72j00.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKew72j00.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKew72j00.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKfA72j00.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKfA72j00.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKfA72j00.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKfA72j00.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKfw72.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKfw72.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKfw72.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCs6KVjbNBYlgoKfw72.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/626330658504e338ee86aec8e957426b.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/626330658504e338ee86aec8e957426b.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/626330658504e338ee86aec8e957426b.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/626330658504e338ee86aec8e957426b.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNBeudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNBeudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNBeudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNBeudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNdeudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNdeudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNdeudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNdeudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNheudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNheudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNheudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNheudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNleudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNleudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNleudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNleudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNteudwk.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNteudwk.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNteudwk.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNteudwk.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO0KTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO0KTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO0KTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO0KTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO8KTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO8KTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO8KTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fO8KTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOMKTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOMKTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOMKTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOMKTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOQKTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOQKTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOQKTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOQKTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOwKTet_.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOwKTet_.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOwKTet_.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/CSR64z1Qlv-GDxkbKVQ_fOwKTet_.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6uyw4BMUTPHjx4wXg.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6uyw4BMUTPHjx4wXg.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6uyw4BMUTPHjx4wXg.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6uyw4BMUTPHjx4wXg.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIMeaBXso.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIMeaBXso.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIMeaBXso.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIMeaBXso.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofINeaB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofINeaB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofINeaB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofINeaB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIO-aBXso.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIO-aBXso.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIO-aBXso.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIO-aBXso.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIOOaBXso.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIOOaBXso.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIOOaBXso.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIOOaBXso.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIOuaBXso.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIOuaBXso.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIOuaBXso.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/XRXV3I6Li01BKofIOuaBXso.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.eot b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.eot similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.eot rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.eot diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.svg b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.svg similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.svg rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.svg diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.ttf b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.ttf similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.ttf rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.ttf diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.woff b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.woff similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.woff rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.woff diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/bootstrap/glyphicons-halflings-regular.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/ee91700cdbf7ce16c054c2bb8946c736.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/ee91700cdbf7ce16c054c2bb8946c736.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/ee91700cdbf7ce16c054c2bb8946c736.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/ee91700cdbf7ce16c054c2bb8946c736.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/q5uGsou0JOdh94bfuQltOxU.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/q5uGsou0JOdh94bfuQltOxU.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/q5uGsou0JOdh94bfuQltOxU.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/q5uGsou0JOdh94bfuQltOxU.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/q5uGsou0JOdh94bfvQlt.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/q5uGsou0JOdh94bfvQlt.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/q5uGsou0JOdh94bfvQlt.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-css-0.9.0.9002/fonts/q5uGsou0JOdh94bfvQlt.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.js.map b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.js.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.js.map rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.js.map diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.min.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.min.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.min.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.min.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.min.js.map b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.min.js.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.min.js.map rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/components.min.js.map diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.js.map b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.js.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.js.map rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.js.map diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.min.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.min.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.min.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.min.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.min.js.map b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.min.js.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.min.js.map rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/web-components.min.js.map diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/webComponents/webComponents.min.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/webComponents/webComponents.min.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/webComponents/webComponents.min.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/bslib-component-js-0.9.0.9002/webComponents/webComponents.min.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/all.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/all.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/all.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/all.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/all.min.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/all.min.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/all.min.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/all.min.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/v4-shims.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/v4-shims.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/v4-shims.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/v4-shims.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/v4-shims.min.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/v4-shims.min.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/v4-shims.min.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/css/v4-shims.min.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-brands-400.ttf b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-brands-400.ttf similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-brands-400.ttf rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-brands-400.ttf diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-brands-400.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-brands-400.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-brands-400.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-brands-400.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-regular-400.ttf b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-regular-400.ttf similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-regular-400.ttf rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-regular-400.ttf diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-regular-400.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-regular-400.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-regular-400.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-regular-400.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-solid-900.ttf b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-solid-900.ttf similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-solid-900.ttf rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-solid-900.ttf diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-solid-900.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-solid-900.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-solid-900.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-solid-900.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-v4compatibility.ttf b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-v4compatibility.ttf similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-v4compatibility.ttf rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-v4compatibility.ttf diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-v4compatibility.woff2 b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-v4compatibility.woff2 similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-v4compatibility.woff2 rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/font-awesome-6.5.2/webfonts/fa-v4compatibility.woff2 diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/htmltools-fill-0.5.8.1/fill.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/htmltools-fill-0.5.8.1/fill.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/htmltools-fill-0.5.8.1/fill.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/htmltools-fill-0.5.8.1/fill.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/jquery-3.7.1/jquery.min.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/jquery-3.7.1/jquery.min.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/jquery-3.7.1/jquery.min.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/jquery-3.7.1/jquery.min.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/GIT_VERSION b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/GIT_VERSION similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/GIT_VERSION rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/GIT_VERSION diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.css.map b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.css.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.css.map rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.css.map diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.js.map b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.js.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.js.map rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/chat/chat.js.map diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.css b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.css rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.css diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.css.map b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.css.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.css.map rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.css.map diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.js b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.js rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.js diff --git a/content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.js.map b/content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.js.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.js.map rename to content/blog/ported/shiny/shinychat-tool-ui/feature/lib/shinychat-0.3.0/markdown-stream/markdown-stream.js.map diff --git a/content/blog/shiny/shinychat-tool-ui/index.md b/content/blog/ported/shiny/shinychat-tool-ui/index.md similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index.md rename to content/blog/ported/shiny/shinychat-tool-ui/index.md diff --git a/content/blog/shiny/shinychat-tool-ui/index.qmd b/content/blog/ported/shiny/shinychat-tool-ui/index.qmd similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index.qmd rename to content/blog/ported/shiny/shinychat-tool-ui/index.qmd diff --git a/content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/GIT_VERSION b/content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/GIT_VERSION similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/GIT_VERSION rename to content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/GIT_VERSION diff --git a/content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.css b/content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.css rename to content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.css diff --git a/content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.css.map b/content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.css.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.css.map rename to content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.css.map diff --git a/content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.js b/content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.js rename to content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.js diff --git a/content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.js.map b/content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.js.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.js.map rename to content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/chat/chat.js.map diff --git a/content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.css b/content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.css similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.css rename to content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.css diff --git a/content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.css.map b/content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.css.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.css.map rename to content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.css.map diff --git a/content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.js b/content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.js similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.js rename to content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.js diff --git a/content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.js.map b/content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.js.map similarity index 100% rename from content/blog/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.js.map rename to content/blog/ported/shiny/shinychat-tool-ui/index_files/libs/shinychat-0.3.0/markdown-stream/markdown-stream.js.map diff --git a/content/blog/shiny/shinyswatch-0.7.0/feature.jpg b/content/blog/ported/shiny/shinyswatch-0.7.0/feature.jpg similarity index 100% rename from content/blog/shiny/shinyswatch-0.7.0/feature.jpg rename to content/blog/ported/shiny/shinyswatch-0.7.0/feature.jpg diff --git a/content/blog/shiny/shinyswatch-0.7.0/index.md b/content/blog/ported/shiny/shinyswatch-0.7.0/index.md similarity index 98% rename from content/blog/shiny/shinyswatch-0.7.0/index.md rename to content/blog/ported/shiny/shinyswatch-0.7.0/index.md index dc560b9e5..d4228ea88 100644 --- a/content/blog/shiny/shinyswatch-0.7.0/index.md +++ b/content/blog/ported/shiny/shinyswatch-0.7.0/index.md @@ -47,7 +47,7 @@ This release includes a number of new features that we're excited to share with Some of these changes may require you to update your existing code, so please read on to learn more! Prior to shinyswatch v0.7.0, the Shiny themes provided by shinyswatch were fixed and could not be customized. -With this release, we're taking advantage of new theming features added in [Shiny v1.0](../../../blog/shiny/shiny-python-1.0/) to allow you to customize the shinyswatch themes! +With this release, we're taking advantage of new theming features added in [Shiny v1.0](/blog/2024-07-22_shiny-python-1.0/) to allow you to customize the shinyswatch themes! This change, however, necessitated a few small breaking changes in shinyswatch that we'll cover first. diff --git a/content/blog/shiny/shinyswatch-0.7.0/index.qmd b/content/blog/ported/shiny/shinyswatch-0.7.0/index.qmd similarity index 98% rename from content/blog/shiny/shinyswatch-0.7.0/index.qmd rename to content/blog/ported/shiny/shinyswatch-0.7.0/index.qmd index 746567da8..bac1651f3 100644 --- a/content/blog/shiny/shinyswatch-0.7.0/index.qmd +++ b/content/blog/ported/shiny/shinyswatch-0.7.0/index.qmd @@ -45,7 +45,7 @@ This release includes a number of new features that we're excited to share with Some of these changes may require you to update your existing code, so please read on to learn more! Prior to shinyswatch v0.7.0, the Shiny themes provided by shinyswatch were fixed and could not be customized. -With this release, we're taking advantage of new theming features added in [Shiny v1.0](/blog/shiny/shiny-python-1.0/) to allow you to customize the shinyswatch themes! +With this release, we're taking advantage of new theming features added in [Shiny v1.0](/blog/2024-07-22_shiny-python-1.0/) to allow you to customize the shinyswatch themes! This change, however, necessitated a few small breaking changes in shinyswatch that we'll cover first. diff --git a/content/blog/shiny/shinyuieditor-out-of-alpha/index.md b/content/blog/ported/shiny/shinyuieditor-out-of-alpha/index.md similarity index 100% rename from content/blog/shiny/shinyuieditor-out-of-alpha/index.md rename to content/blog/ported/shiny/shinyuieditor-out-of-alpha/index.md diff --git a/content/blog/shiny/shinyuieditor-out-of-alpha/index.qmd b/content/blog/ported/shiny/shinyuieditor-out-of-alpha/index.qmd similarity index 100% rename from content/blog/shiny/shinyuieditor-out-of-alpha/index.qmd rename to content/blog/ported/shiny/shinyuieditor-out-of-alpha/index.qmd diff --git a/content/blog/shiny/shinyuieditor-out-of-alpha/out-of-alpha-main.jpeg b/content/blog/ported/shiny/shinyuieditor-out-of-alpha/out-of-alpha-main.jpeg similarity index 100% rename from content/blog/shiny/shinyuieditor-out-of-alpha/out-of-alpha-main.jpeg rename to content/blog/ported/shiny/shinyuieditor-out-of-alpha/out-of-alpha-main.jpeg diff --git a/content/blog/shiny/shinyuieditor-out-of-alpha/render-function-cleanup-small.mp4 b/content/blog/ported/shiny/shinyuieditor-out-of-alpha/render-function-cleanup-small.mp4 similarity index 100% rename from content/blog/shiny/shinyuieditor-out-of-alpha/render-function-cleanup-small.mp4 rename to content/blog/ported/shiny/shinyuieditor-out-of-alpha/render-function-cleanup-small.mp4 diff --git a/content/blog/shiny/shinyuieditor-out-of-alpha/synced-ids-small.mp4 b/content/blog/ported/shiny/shinyuieditor-out-of-alpha/synced-ids-small.mp4 similarity index 100% rename from content/blog/shiny/shinyuieditor-out-of-alpha/synced-ids-small.mp4 rename to content/blog/ported/shiny/shinyuieditor-out-of-alpha/synced-ids-small.mp4 diff --git a/content/blog/shiny/the-past-and-future-of-shiny-joe-cheng/history-of-shiny.jpg b/content/blog/ported/shiny/the-past-and-future-of-shiny-joe-cheng/history-of-shiny.jpg similarity index 100% rename from content/blog/shiny/the-past-and-future-of-shiny-joe-cheng/history-of-shiny.jpg rename to content/blog/ported/shiny/the-past-and-future-of-shiny-joe-cheng/history-of-shiny.jpg diff --git a/content/blog/shiny/the-past-and-future-of-shiny-joe-cheng/index.md b/content/blog/ported/shiny/the-past-and-future-of-shiny-joe-cheng/index.md similarity index 100% rename from content/blog/shiny/the-past-and-future-of-shiny-joe-cheng/index.md rename to content/blog/ported/shiny/the-past-and-future-of-shiny-joe-cheng/index.md diff --git a/content/blog/shiny/the-past-and-future-of-shiny-joe-cheng/index.qmd b/content/blog/ported/shiny/the-past-and-future-of-shiny-joe-cheng/index.qmd similarity index 100% rename from content/blog/shiny/the-past-and-future-of-shiny-joe-cheng/index.qmd rename to content/blog/ported/shiny/the-past-and-future-of-shiny-joe-cheng/index.qmd diff --git a/content/blog/shiny/weather-lookup-about/NOAA_stations.jpg b/content/blog/ported/shiny/weather-lookup-about/NOAA_stations.jpg similarity index 100% rename from content/blog/shiny/weather-lookup-about/NOAA_stations.jpg rename to content/blog/ported/shiny/weather-lookup-about/NOAA_stations.jpg diff --git a/content/blog/shiny/weather-lookup-about/about.jpg b/content/blog/ported/shiny/weather-lookup-about/about.jpg similarity index 100% rename from content/blog/shiny/weather-lookup-about/about.jpg rename to content/blog/ported/shiny/weather-lookup-about/about.jpg diff --git a/content/blog/shiny/weather-lookup-about/full_app.png b/content/blog/ported/shiny/weather-lookup-about/full_app.png similarity index 100% rename from content/blog/shiny/weather-lookup-about/full_app.png rename to content/blog/ported/shiny/weather-lookup-about/full_app.png diff --git a/content/blog/shiny/weather-lookup-about/index.md b/content/blog/ported/shiny/weather-lookup-about/index.md similarity index 100% rename from content/blog/shiny/weather-lookup-about/index.md rename to content/blog/ported/shiny/weather-lookup-about/index.md diff --git a/content/blog/shiny/weather-lookup-about/index.qmd b/content/blog/ported/shiny/weather-lookup-about/index.qmd similarity index 100% rename from content/blog/shiny/weather-lookup-about/index.qmd rename to content/blog/ported/shiny/weather-lookup-about/index.qmd diff --git a/content/blog/shiny/weather-lookup-about/nyt_inspiration.png b/content/blog/ported/shiny/weather-lookup-about/nyt_inspiration.png similarity index 100% rename from content/blog/shiny/weather-lookup-about/nyt_inspiration.png rename to content/blog/ported/shiny/weather-lookup-about/nyt_inspiration.png diff --git a/content/blog/shiny/weather-lookup-about/nyt_inspiration.png.original b/content/blog/ported/shiny/weather-lookup-about/nyt_inspiration.png.original similarity index 100% rename from content/blog/shiny/weather-lookup-about/nyt_inspiration.png.original rename to content/blog/ported/shiny/weather-lookup-about/nyt_inspiration.png.original diff --git a/content/blog/shiny/weather-lookup-about/previous_city_button.mp4 b/content/blog/ported/shiny/weather-lookup-about/previous_city_button.mp4 similarity index 100% rename from content/blog/shiny/weather-lookup-about/previous_city_button.mp4 rename to content/blog/ported/shiny/weather-lookup-about/previous_city_button.mp4 diff --git a/content/blog/shiny/weather-lookup-about/previous_city_button.webm b/content/blog/ported/shiny/weather-lookup-about/previous_city_button.webm similarity index 100% rename from content/blog/shiny/weather-lookup-about/previous_city_button.webm rename to content/blog/ported/shiny/weather-lookup-about/previous_city_button.webm diff --git a/content/blog/shiny/weather-lookup-about/station_data_example.png b/content/blog/ported/shiny/weather-lookup-about/station_data_example.png similarity index 100% rename from content/blog/shiny/weather-lookup-about/station_data_example.png rename to content/blog/ported/shiny/weather-lookup-about/station_data_example.png diff --git a/content/blog/shiny/weather-lookup-about/station_info_panel.png b/content/blog/ported/shiny/weather-lookup-about/station_info_panel.png similarity index 100% rename from content/blog/shiny/weather-lookup-about/station_info_panel.png rename to content/blog/ported/shiny/weather-lookup-about/station_info_panel.png diff --git a/content/blog/shiny/weather-lookup-about/temp_and_prcp_plots.png b/content/blog/ported/shiny/weather-lookup-about/temp_and_prcp_plots.png similarity index 100% rename from content/blog/shiny/weather-lookup-about/temp_and_prcp_plots.png rename to content/blog/ported/shiny/weather-lookup-about/temp_and_prcp_plots.png diff --git a/content/blog/shiny/weather-lookup-about/weather_about.png b/content/blog/ported/shiny/weather-lookup-about/weather_about.png similarity index 100% rename from content/blog/shiny/weather-lookup-about/weather_about.png rename to content/blog/ported/shiny/weather-lookup-about/weather_about.png diff --git a/content/blog/shiny/weather-lookup-bslib/app_w_theme.png b/content/blog/ported/shiny/weather-lookup-bslib/app_w_theme.png similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/app_w_theme.png rename to content/blog/ported/shiny/weather-lookup-bslib/app_w_theme.png diff --git a/content/blog/shiny/weather-lookup-bslib/app_wo_theme.png b/content/blog/ported/shiny/weather-lookup-bslib/app_wo_theme.png similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/app_wo_theme.png rename to content/blog/ported/shiny/weather-lookup-bslib/app_wo_theme.png diff --git a/content/blog/shiny/weather-lookup-bslib/bslib.jpg b/content/blog/ported/shiny/weather-lookup-bslib/bslib.jpg similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/bslib.jpg rename to content/blog/ported/shiny/weather-lookup-bslib/bslib.jpg diff --git a/content/blog/shiny/weather-lookup-bslib/bslib_theme_compare.png b/content/blog/ported/shiny/weather-lookup-bslib/bslib_theme_compare.png similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/bslib_theme_compare.png rename to content/blog/ported/shiny/weather-lookup-bslib/bslib_theme_compare.png diff --git a/content/blog/shiny/weather-lookup-bslib/current_station_bubbles_after.png b/content/blog/ported/shiny/weather-lookup-bslib/current_station_bubbles_after.png similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/current_station_bubbles_after.png rename to content/blog/ported/shiny/weather-lookup-bslib/current_station_bubbles_after.png diff --git a/content/blog/shiny/weather-lookup-bslib/current_station_bubbles_before.png b/content/blog/ported/shiny/weather-lookup-bslib/current_station_bubbles_before.png similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/current_station_bubbles_before.png rename to content/blog/ported/shiny/weather-lookup-bslib/current_station_bubbles_before.png diff --git a/content/blog/shiny/weather-lookup-bslib/current_station_bubbles_darkly.png b/content/blog/ported/shiny/weather-lookup-bslib/current_station_bubbles_darkly.png similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/current_station_bubbles_darkly.png rename to content/blog/ported/shiny/weather-lookup-bslib/current_station_bubbles_darkly.png diff --git a/content/blog/shiny/weather-lookup-bslib/full_app.png b/content/blog/ported/shiny/weather-lookup-bslib/full_app.png similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/full_app.png rename to content/blog/ported/shiny/weather-lookup-bslib/full_app.png diff --git a/content/blog/shiny/weather-lookup-bslib/index.md b/content/blog/ported/shiny/weather-lookup-bslib/index.md similarity index 98% rename from content/blog/shiny/weather-lookup-bslib/index.md rename to content/blog/ported/shiny/weather-lookup-bslib/index.md index a6a2141cb..8d9001d2d 100644 --- a/content/blog/shiny/weather-lookup-bslib/index.md +++ b/content/blog/ported/shiny/weather-lookup-bslib/index.md @@ -26,7 +26,7 @@ tags: ## Weather App -The code and results in this post come from the [weather lookup app.](https://connect.posit.it/explore_your_weather/) Here we will just briefly cover the relevant parts of the app, for a more complete intro check out the [accompanying post](../../../blog/shiny/weather-lookup-about/) introducing it. +The code and results in this post come from the [weather lookup app.](https://connect.posit.it/explore_your_weather/) Here we will just briefly cover the relevant parts of the app, for a more complete intro check out the [accompanying post](/blog/2021-01-04_weather-lookup-about/) introducing it. ![](full_app.png) diff --git a/content/blog/shiny/weather-lookup-bslib/index.qmd b/content/blog/ported/shiny/weather-lookup-bslib/index.qmd similarity index 99% rename from content/blog/shiny/weather-lookup-bslib/index.qmd rename to content/blog/ported/shiny/weather-lookup-bslib/index.qmd index 496d1199a..6c35c98e2 100644 --- a/content/blog/shiny/weather-lookup-bslib/index.qmd +++ b/content/blog/ported/shiny/weather-lookup-bslib/index.qmd @@ -21,7 +21,7 @@ tags: ## Weather App -The code and results in this post come from the [weather lookup app.](https://connect.posit.it/explore_your_weather/) Here we will just briefly cover the relevant parts of the app, for a more complete intro check out the [accompanying post](/blog/shiny/weather-lookup-about/) introducing it. +The code and results in this post come from the [weather lookup app.](https://connect.posit.it/explore_your_weather/) Here we will just briefly cover the relevant parts of the app, for a more complete intro check out the [accompanying post](/blog/2021-01-04_weather-lookup-about/) introducing it. :::{.column-page-inset .lightbox} ![](full_app.png) diff --git a/content/blog/shiny/weather-lookup-bslib/plot_w_theme.png b/content/blog/ported/shiny/weather-lookup-bslib/plot_w_theme.png similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/plot_w_theme.png rename to content/blog/ported/shiny/weather-lookup-bslib/plot_w_theme.png diff --git a/content/blog/shiny/weather-lookup-bslib/plot_wo_theme.png b/content/blog/ported/shiny/weather-lookup-bslib/plot_wo_theme.png similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/plot_wo_theme.png rename to content/blog/ported/shiny/weather-lookup-bslib/plot_wo_theme.png diff --git a/content/blog/shiny/weather-lookup-bslib/switching_themes.gif b/content/blog/ported/shiny/weather-lookup-bslib/switching_themes.gif similarity index 100% rename from content/blog/shiny/weather-lookup-bslib/switching_themes.gif rename to content/blog/ported/shiny/weather-lookup-bslib/switching_themes.gif diff --git a/content/blog/shiny/weather-lookup-caching/caching.jpg b/content/blog/ported/shiny/weather-lookup-caching/caching.jpg similarity index 100% rename from content/blog/shiny/weather-lookup-caching/caching.jpg rename to content/blog/ported/shiny/weather-lookup-caching/caching.jpg diff --git a/content/blog/shiny/weather-lookup-caching/full_app.png b/content/blog/ported/shiny/weather-lookup-caching/full_app.png similarity index 100% rename from content/blog/shiny/weather-lookup-caching/full_app.png rename to content/blog/ported/shiny/weather-lookup-caching/full_app.png diff --git a/content/blog/shiny/weather-lookup-caching/index.md b/content/blog/ported/shiny/weather-lookup-caching/index.md similarity index 99% rename from content/blog/shiny/weather-lookup-caching/index.md rename to content/blog/ported/shiny/weather-lookup-caching/index.md index 80a4a0578..45fb064cd 100644 --- a/content/blog/shiny/weather-lookup-caching/index.md +++ b/content/blog/ported/shiny/weather-lookup-caching/index.md @@ -25,7 +25,7 @@ To learn more about using caching in Shiny, see the [caching article](https://sh ## Weather App -The code and results in this post come from the [weather lookup app.](https://connect.posit.it/explore_your_weather/) Here we will just briefly cover the relevant parts of the app, for a more complete intro check out the [accompanying post](/blog/shiny/weather-lookup-about/) introducing it. +The code and results in this post come from the [weather lookup app.](https://connect.posit.it/explore_your_weather/) Here we will just briefly cover the relevant parts of the app, for a more complete intro check out the [accompanying post](/blog/2021-01-04_weather-lookup-about/) introducing it. ![](full_app.png) diff --git a/content/blog/shiny/weather-lookup-caching/index.qmd b/content/blog/ported/shiny/weather-lookup-caching/index.qmd similarity index 99% rename from content/blog/shiny/weather-lookup-caching/index.qmd rename to content/blog/ported/shiny/weather-lookup-caching/index.qmd index 1cffcb57d..5e4a7528d 100644 --- a/content/blog/shiny/weather-lookup-caching/index.qmd +++ b/content/blog/ported/shiny/weather-lookup-caching/index.qmd @@ -27,7 +27,7 @@ To learn more about using caching in Shiny, see the [caching article](https://sh ## Weather App -The code and results in this post come from the [weather lookup app.](https://connect.posit.it/explore_your_weather/) Here we will just briefly cover the relevant parts of the app, for a more complete intro check out the [accompanying post](/blog/shiny/weather-lookup-about/) introducing it. +The code and results in this post come from the [weather lookup app.](https://connect.posit.it/explore_your_weather/) Here we will just briefly cover the relevant parts of the app, for a more complete intro check out the [accompanying post](/blog/2021-01-04_weather-lookup-about/) introducing it. :::{.column-page-inset .lightbox} ![](full_app.png) diff --git a/content/blog/shiny/weather-lookup-caching/no_caching_performance.mp4 b/content/blog/ported/shiny/weather-lookup-caching/no_caching_performance.mp4 similarity index 100% rename from content/blog/shiny/weather-lookup-caching/no_caching_performance.mp4 rename to content/blog/ported/shiny/weather-lookup-caching/no_caching_performance.mp4 diff --git a/content/blog/shiny/weather-lookup-caching/no_caching_performance.webm b/content/blog/ported/shiny/weather-lookup-caching/no_caching_performance.webm similarity index 100% rename from content/blog/shiny/weather-lookup-caching/no_caching_performance.webm rename to content/blog/ported/shiny/weather-lookup-caching/no_caching_performance.webm diff --git a/content/blog/shiny/weather-lookup-caching/runtime_comparison.png b/content/blog/ported/shiny/weather-lookup-caching/runtime_comparison.png similarity index 100% rename from content/blog/shiny/weather-lookup-caching/runtime_comparison.png rename to content/blog/ported/shiny/weather-lookup-caching/runtime_comparison.png diff --git a/content/blog/shiny/weather-lookup-caching/speed_comparison.mp4 b/content/blog/ported/shiny/weather-lookup-caching/speed_comparison.mp4 similarity index 100% rename from content/blog/shiny/weather-lookup-caching/speed_comparison.mp4 rename to content/blog/ported/shiny/weather-lookup-caching/speed_comparison.mp4 diff --git a/content/blog/shiny/weather-lookup-caching/speed_comparison.webm b/content/blog/ported/shiny/weather-lookup-caching/speed_comparison.webm similarity index 100% rename from content/blog/shiny/weather-lookup-caching/speed_comparison.webm rename to content/blog/ported/shiny/weather-lookup-caching/speed_comparison.webm diff --git a/content/blog/shiny/weather-lookup-caching/station_info_panel.png b/content/blog/ported/shiny/weather-lookup-caching/station_info_panel.png similarity index 100% rename from content/blog/shiny/weather-lookup-caching/station_info_panel.png rename to content/blog/ported/shiny/weather-lookup-caching/station_info_panel.png diff --git a/content/blog/shiny/weather-lookup-caching/weather_caching.png b/content/blog/ported/shiny/weather-lookup-caching/weather_caching.png similarity index 100% rename from content/blog/shiny/weather-lookup-caching/weather_caching.png rename to content/blog/ported/shiny/weather-lookup-caching/weather_caching.png diff --git a/content/blog/tidyverse/2017/01-lubridate-1.7.0/index.Rmd b/content/blog/ported/tidyverse/2017/01-lubridate-1.7.0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/01-lubridate-1.7.0/index.Rmd rename to content/blog/ported/tidyverse/2017/01-lubridate-1.7.0/index.Rmd diff --git a/content/blog/tidyverse/2017/01-lubridate-1.7.0/index.html b/content/blog/ported/tidyverse/2017/01-lubridate-1.7.0/index.html similarity index 100% rename from content/blog/tidyverse/2017/01-lubridate-1.7.0/index.html rename to content/blog/ported/tidyverse/2017/01-lubridate-1.7.0/index.html diff --git a/content/blog/tidyverse/2017/01-lubridate-1.7.0/lubridate-1.7.0-sq.jpg b/content/blog/ported/tidyverse/2017/01-lubridate-1.7.0/lubridate-1.7.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/01-lubridate-1.7.0/lubridate-1.7.0-sq.jpg rename to content/blog/ported/tidyverse/2017/01-lubridate-1.7.0/lubridate-1.7.0-sq.jpg diff --git a/content/blog/tidyverse/2017/01-lubridate-1.7.0/lubridate-1.7.0-wd.jpg b/content/blog/ported/tidyverse/2017/01-lubridate-1.7.0/lubridate-1.7.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/01-lubridate-1.7.0/lubridate-1.7.0-wd.jpg rename to content/blog/ported/tidyverse/2017/01-lubridate-1.7.0/lubridate-1.7.0-wd.jpg diff --git a/content/blog/tidyverse/2017/08-contributing/contributing-sq.jpg b/content/blog/ported/tidyverse/2017/08-contributing/contributing-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/08-contributing/contributing-sq.jpg rename to content/blog/ported/tidyverse/2017/08-contributing/contributing-sq.jpg diff --git a/content/blog/tidyverse/2017/08-contributing/contributing-wd.jpg b/content/blog/ported/tidyverse/2017/08-contributing/contributing-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/08-contributing/contributing-wd.jpg rename to content/blog/ported/tidyverse/2017/08-contributing/contributing-wd.jpg diff --git a/content/blog/tidyverse/2017/08-contributing/index.md b/content/blog/ported/tidyverse/2017/08-contributing/index.md similarity index 100% rename from content/blog/tidyverse/2017/08-contributing/index.md rename to content/blog/ported/tidyverse/2017/08-contributing/index.md diff --git a/content/blog/tidyverse/2017/16-withr-2.1.0/index.Rmd b/content/blog/ported/tidyverse/2017/16-withr-2.1.0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/16-withr-2.1.0/index.Rmd rename to content/blog/ported/tidyverse/2017/16-withr-2.1.0/index.Rmd diff --git a/content/blog/tidyverse/2017/16-withr-2.1.0/index.html b/content/blog/ported/tidyverse/2017/16-withr-2.1.0/index.html similarity index 100% rename from content/blog/tidyverse/2017/16-withr-2.1.0/index.html rename to content/blog/ported/tidyverse/2017/16-withr-2.1.0/index.html diff --git a/content/blog/tidyverse/2017/16-withr-2.1.0/test.png b/content/blog/ported/tidyverse/2017/16-withr-2.1.0/test.png similarity index 100% rename from content/blog/tidyverse/2017/16-withr-2.1.0/test.png rename to content/blog/ported/tidyverse/2017/16-withr-2.1.0/test.png diff --git a/content/blog/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-11-1.png b/content/blog/ported/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-11-1.png similarity index 100% rename from content/blog/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-11-1.png rename to content/blog/ported/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-11-1.png diff --git a/content/blog/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-2-1.png b/content/blog/ported/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-2-1.png similarity index 100% rename from content/blog/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-2-1.png rename to content/blog/ported/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-2-1.png diff --git a/content/blog/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-5-1.png b/content/blog/ported/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-5-1.png similarity index 100% rename from content/blog/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-5-1.png rename to content/blog/ported/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-5-1.png diff --git a/content/blog/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-6-1.png b/content/blog/ported/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-6-1.png similarity index 100% rename from content/blog/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-6-1.png rename to content/blog/ported/tidyverse/2017/16-withr-2.1.0/unnamed-chunk-6-1.png diff --git a/content/blog/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-sq.jpg b/content/blog/ported/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-sq.jpg rename to content/blog/ported/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-sq.jpg diff --git a/content/blog/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-wd.jpg b/content/blog/ported/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-wd.jpg rename to content/blog/ported/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-wd.jpg diff --git a/content/blog/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-wd.jpg.original b/content/blog/ported/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-wd.jpg.original similarity index 100% rename from content/blog/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-wd.jpg.original rename to content/blog/ported/tidyverse/2017/16-withr-2.1.0/withr-2.1.0-wd.jpg.original diff --git a/content/blog/tidyverse/2017/20-styler-1-0-0/index.Rmd b/content/blog/ported/tidyverse/2017/20-styler-1-0-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/20-styler-1-0-0/index.Rmd rename to content/blog/ported/tidyverse/2017/20-styler-1-0-0/index.Rmd diff --git a/content/blog/tidyverse/2017/20-styler-1-0-0/index.html b/content/blog/ported/tidyverse/2017/20-styler-1-0-0/index.html similarity index 100% rename from content/blog/tidyverse/2017/20-styler-1-0-0/index.html rename to content/blog/ported/tidyverse/2017/20-styler-1-0-0/index.html diff --git a/content/blog/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-addin.png b/content/blog/ported/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-addin.png similarity index 100% rename from content/blog/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-addin.png rename to content/blog/ported/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-addin.png diff --git a/content/blog/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-sq.jpg b/content/blog/ported/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-sq.jpg rename to content/blog/ported/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-sq.jpg diff --git a/content/blog/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-wd.jpg b/content/blog/ported/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-wd.jpg rename to content/blog/ported/tidyverse/2017/20-styler-1-0-0/styler-1.0.0-wd.jpg diff --git a/content/blog/tidyverse/2017/28-usethis-1-0-0/index.Rmd b/content/blog/ported/tidyverse/2017/28-usethis-1-0-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/28-usethis-1-0-0/index.Rmd rename to content/blog/ported/tidyverse/2017/28-usethis-1-0-0/index.Rmd diff --git a/content/blog/tidyverse/2017/28-usethis-1-0-0/index.html b/content/blog/ported/tidyverse/2017/28-usethis-1-0-0/index.html similarity index 100% rename from content/blog/tidyverse/2017/28-usethis-1-0-0/index.html rename to content/blog/ported/tidyverse/2017/28-usethis-1-0-0/index.html diff --git a/content/blog/tidyverse/2017/28-usethis-1-0-0/usethis-1.0.0-sq.jpg b/content/blog/ported/tidyverse/2017/28-usethis-1-0-0/usethis-1.0.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/28-usethis-1-0-0/usethis-1.0.0-sq.jpg rename to content/blog/ported/tidyverse/2017/28-usethis-1-0-0/usethis-1.0.0-sq.jpg diff --git a/content/blog/tidyverse/2017/28-usethis-1-0-0/usethis-1.0.0-wd.jpg b/content/blog/ported/tidyverse/2017/28-usethis-1-0-0/usethis-1.0.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/28-usethis-1-0-0/usethis-1.0.0-wd.jpg rename to content/blog/ported/tidyverse/2017/28-usethis-1-0-0/usethis-1.0.0-wd.jpg diff --git a/content/blog/tidyverse/2017/29-dbplyr-1-2/dbplyr-1-2-sq.jpg b/content/blog/ported/tidyverse/2017/29-dbplyr-1-2/dbplyr-1-2-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/29-dbplyr-1-2/dbplyr-1-2-sq.jpg rename to content/blog/ported/tidyverse/2017/29-dbplyr-1-2/dbplyr-1-2-sq.jpg diff --git a/content/blog/tidyverse/2017/29-dbplyr-1-2/dbplyr-1-2-wd.jpg b/content/blog/ported/tidyverse/2017/29-dbplyr-1-2/dbplyr-1-2-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/29-dbplyr-1-2/dbplyr-1-2-wd.jpg rename to content/blog/ported/tidyverse/2017/29-dbplyr-1-2/dbplyr-1-2-wd.jpg diff --git a/content/blog/tidyverse/2017/29-dbplyr-1-2/index.Rmd b/content/blog/ported/tidyverse/2017/29-dbplyr-1-2/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/29-dbplyr-1-2/index.Rmd rename to content/blog/ported/tidyverse/2017/29-dbplyr-1-2/index.Rmd diff --git a/content/blog/tidyverse/2017/29-dbplyr-1-2/index.html b/content/blog/ported/tidyverse/2017/29-dbplyr-1-2/index.html similarity index 100% rename from content/blog/tidyverse/2017/29-dbplyr-1-2/index.html rename to content/blog/ported/tidyverse/2017/29-dbplyr-1-2/index.html diff --git a/content/blog/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-sq.jpg b/content/blog/ported/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-sq.jpg rename to content/blog/ported/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-sq.jpg diff --git a/content/blog/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-wd.jpg b/content/blog/ported/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-wd.jpg rename to content/blog/ported/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-wd.jpg diff --git a/content/blog/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-wd.jpg.original b/content/blog/ported/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-wd.jpg.original similarity index 100% rename from content/blog/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-wd.jpg.original rename to content/blog/ported/tidyverse/2017/31-glue-1.2.0/glue-1.2.0-wd.jpg.original diff --git a/content/blog/tidyverse/2017/31-glue-1.2.0/index.Rmd b/content/blog/ported/tidyverse/2017/31-glue-1.2.0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/31-glue-1.2.0/index.Rmd rename to content/blog/ported/tidyverse/2017/31-glue-1.2.0/index.Rmd diff --git a/content/blog/tidyverse/2017/31-glue-1.2.0/index.html b/content/blog/ported/tidyverse/2017/31-glue-1.2.0/index.html similarity index 100% rename from content/blog/tidyverse/2017/31-glue-1.2.0/index.html rename to content/blog/ported/tidyverse/2017/31-glue-1.2.0/index.html diff --git a/content/blog/tidyverse/2017/erratum-tidyr/erratum-tidyr-0.7.0-sq.jpg b/content/blog/ported/tidyverse/2017/erratum-tidyr/erratum-tidyr-0.7.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/erratum-tidyr/erratum-tidyr-0.7.0-sq.jpg rename to content/blog/ported/tidyverse/2017/erratum-tidyr/erratum-tidyr-0.7.0-sq.jpg diff --git a/content/blog/tidyverse/2017/erratum-tidyr/erratum-tidyr-0.7.0-wd.jpg b/content/blog/ported/tidyverse/2017/erratum-tidyr/erratum-tidyr-0.7.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/erratum-tidyr/erratum-tidyr-0.7.0-wd.jpg rename to content/blog/ported/tidyverse/2017/erratum-tidyr/erratum-tidyr-0.7.0-wd.jpg diff --git a/content/blog/tidyverse/2017/erratum-tidyr/index.Rmd b/content/blog/ported/tidyverse/2017/erratum-tidyr/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/erratum-tidyr/index.Rmd rename to content/blog/ported/tidyverse/2017/erratum-tidyr/index.Rmd diff --git a/content/blog/tidyverse/2017/erratum-tidyr/index.html b/content/blog/ported/tidyverse/2017/erratum-tidyr/index.html similarity index 100% rename from content/blog/tidyverse/2017/erratum-tidyr/index.html rename to content/blog/ported/tidyverse/2017/erratum-tidyr/index.html diff --git a/content/blog/tidyverse/2017/ggplot2-internship/ggplot2-internship-sq.jpg b/content/blog/ported/tidyverse/2017/ggplot2-internship/ggplot2-internship-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-internship/ggplot2-internship-sq.jpg rename to content/blog/ported/tidyverse/2017/ggplot2-internship/ggplot2-internship-sq.jpg diff --git a/content/blog/tidyverse/2017/ggplot2-internship/ggplot2-internship-wd.jpg b/content/blog/ported/tidyverse/2017/ggplot2-internship/ggplot2-internship-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-internship/ggplot2-internship-wd.jpg rename to content/blog/ported/tidyverse/2017/ggplot2-internship/ggplot2-internship-wd.jpg diff --git a/content/blog/tidyverse/2017/ggplot2-internship/index.Rmd b/content/blog/ported/tidyverse/2017/ggplot2-internship/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-internship/index.Rmd rename to content/blog/ported/tidyverse/2017/ggplot2-internship/index.Rmd diff --git a/content/blog/tidyverse/2017/ggplot2-internship/index.html b/content/blog/ported/tidyverse/2017/ggplot2-internship/index.html similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-internship/index.html rename to content/blog/ported/tidyverse/2017/ggplot2-internship/index.html diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/facet-vars-1.png b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/facet-vars-1.png similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/facet-vars-1.png rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/facet-vars-1.png diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/ggplot2-tidy-evaluation-sq.jpg b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/ggplot2-tidy-evaluation-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/ggplot2-tidy-evaluation-sq.jpg rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/ggplot2-tidy-evaluation-sq.jpg diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/ggplot2-tidy-evaluation-wd.jpg b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/ggplot2-tidy-evaluation-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/ggplot2-tidy-evaluation-wd.jpg rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/ggplot2-tidy-evaluation-wd.jpg diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/index.Rmarkdown b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/index.Rmarkdown rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/index.Rmarkdown diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/index.markdown b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/index.markdown similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/index.markdown rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/index.markdown diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/labelled-grid-1.png b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/labelled-grid-1.png similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/labelled-grid-1.png rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/labelled-grid-1.png diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/piechart-basic-1.png b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/piechart-basic-1.png similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/piechart-basic-1.png rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/piechart-basic-1.png diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/piechart-qq-1.png b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/piechart-qq-1.png similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/piechart-qq-1.png rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/piechart-qq-1.png diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/scatter-by-1.png b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/scatter-by-1.png similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/scatter-by-1.png rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/scatter-by-1.png diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/vars-env-1.png b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/vars-env-1.png similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/vars-env-1.png rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/vars-env-1.png diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/wrap-by-1.png b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/wrap-by-1.png similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/wrap-by-1.png rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/wrap-by-1.png diff --git a/content/blog/tidyverse/2017/ggplot2-tidy-evaluation/wrap-cut-1.png b/content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/wrap-cut-1.png similarity index 100% rename from content/blog/tidyverse/2017/ggplot2-tidy-evaluation/wrap-cut-1.png rename to content/blog/ported/tidyverse/2017/ggplot2-tidy-evaluation/wrap-cut-1.png diff --git a/content/blog/tidyverse/2017/googledrive-initial-release/googledrive-initial-release-sq.jpg b/content/blog/ported/tidyverse/2017/googledrive-initial-release/googledrive-initial-release-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/googledrive-initial-release/googledrive-initial-release-sq.jpg rename to content/blog/ported/tidyverse/2017/googledrive-initial-release/googledrive-initial-release-sq.jpg diff --git a/content/blog/tidyverse/2017/googledrive-initial-release/googledrive-initial-release-wd.jpg b/content/blog/ported/tidyverse/2017/googledrive-initial-release/googledrive-initial-release-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/googledrive-initial-release/googledrive-initial-release-wd.jpg rename to content/blog/ported/tidyverse/2017/googledrive-initial-release/googledrive-initial-release-wd.jpg diff --git a/content/blog/tidyverse/2017/googledrive-initial-release/index.md b/content/blog/ported/tidyverse/2017/googledrive-initial-release/index.md similarity index 100% rename from content/blog/tidyverse/2017/googledrive-initial-release/index.md rename to content/blog/ported/tidyverse/2017/googledrive-initial-release/index.md diff --git a/content/blog/tidyverse/2017/lucy-experience/01_first.png b/content/blog/ported/tidyverse/2017/lucy-experience/01_first.png similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/01_first.png rename to content/blog/ported/tidyverse/2017/lucy-experience/01_first.png diff --git a/content/blog/tidyverse/2017/lucy-experience/02_upload.png b/content/blog/ported/tidyverse/2017/lucy-experience/02_upload.png similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/02_upload.png rename to content/blog/ported/tidyverse/2017/lucy-experience/02_upload.png diff --git a/content/blog/tidyverse/2017/lucy-experience/03_delete.png b/content/blog/ported/tidyverse/2017/lucy-experience/03_delete.png similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/03_delete.png rename to content/blog/ported/tidyverse/2017/lucy-experience/03_delete.png diff --git a/content/blog/tidyverse/2017/lucy-experience/03_markdown-docs.png b/content/blog/ported/tidyverse/2017/lucy-experience/03_markdown-docs.png similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/03_markdown-docs.png rename to content/blog/ported/tidyverse/2017/lucy-experience/03_markdown-docs.png diff --git a/content/blog/tidyverse/2017/lucy-experience/04_travis.png b/content/blog/ported/tidyverse/2017/lucy-experience/04_travis.png similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/04_travis.png rename to content/blog/ported/tidyverse/2017/lucy-experience/04_travis.png diff --git a/content/blog/tidyverse/2017/lucy-experience/05_test.png b/content/blog/ported/tidyverse/2017/lucy-experience/05_test.png similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/05_test.png rename to content/blog/ported/tidyverse/2017/lucy-experience/05_test.png diff --git a/content/blog/tidyverse/2017/lucy-experience/06_clean-up.png b/content/blog/ported/tidyverse/2017/lucy-experience/06_clean-up.png similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/06_clean-up.png rename to content/blog/ported/tidyverse/2017/lucy-experience/06_clean-up.png diff --git a/content/blog/tidyverse/2017/lucy-experience/08_s3-methods.png b/content/blog/ported/tidyverse/2017/lucy-experience/08_s3-methods.png similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/08_s3-methods.png rename to content/blog/ported/tidyverse/2017/lucy-experience/08_s3-methods.png diff --git a/content/blog/tidyverse/2017/lucy-experience/index.md b/content/blog/ported/tidyverse/2017/lucy-experience/index.md similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/index.md rename to content/blog/ported/tidyverse/2017/lucy-experience/index.md diff --git a/content/blog/tidyverse/2017/lucy-experience/lucy-internship-sq.jpg b/content/blog/ported/tidyverse/2017/lucy-experience/lucy-internship-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/lucy-internship-sq.jpg rename to content/blog/ported/tidyverse/2017/lucy-experience/lucy-internship-sq.jpg diff --git a/content/blog/tidyverse/2017/lucy-experience/lucy-internship-wd.jpg b/content/blog/ported/tidyverse/2017/lucy-experience/lucy-internship-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/lucy-experience/lucy-internship-wd.jpg rename to content/blog/ported/tidyverse/2017/lucy-experience/lucy-internship-wd.jpg diff --git a/content/blog/tidyverse/2017/nov-updates-2017/index.Rmd b/content/blog/ported/tidyverse/2017/nov-updates-2017/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/nov-updates-2017/index.Rmd rename to content/blog/ported/tidyverse/2017/nov-updates-2017/index.Rmd diff --git a/content/blog/tidyverse/2017/nov-updates-2017/index.html b/content/blog/ported/tidyverse/2017/nov-updates-2017/index.html similarity index 100% rename from content/blog/tidyverse/2017/nov-updates-2017/index.html rename to content/blog/ported/tidyverse/2017/nov-updates-2017/index.html diff --git a/content/blog/tidyverse/2017/nov-updates-2017/nov-updates-2017-sq.jpg b/content/blog/ported/tidyverse/2017/nov-updates-2017/nov-updates-2017-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/nov-updates-2017/nov-updates-2017-sq.jpg rename to content/blog/ported/tidyverse/2017/nov-updates-2017/nov-updates-2017-sq.jpg diff --git a/content/blog/tidyverse/2017/nov-updates-2017/nov-updates-2017-wd.jpg b/content/blog/ported/tidyverse/2017/nov-updates-2017/nov-updates-2017-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/nov-updates-2017/nov-updates-2017-wd.jpg rename to content/blog/ported/tidyverse/2017/nov-updates-2017/nov-updates-2017-wd.jpg diff --git a/content/blog/tidyverse/2017/purrr-0.2.3/index.Rmd b/content/blog/ported/tidyverse/2017/purrr-0.2.3/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/purrr-0.2.3/index.Rmd rename to content/blog/ported/tidyverse/2017/purrr-0.2.3/index.Rmd diff --git a/content/blog/tidyverse/2017/purrr-0.2.3/index.html b/content/blog/ported/tidyverse/2017/purrr-0.2.3/index.html similarity index 100% rename from content/blog/tidyverse/2017/purrr-0.2.3/index.html rename to content/blog/ported/tidyverse/2017/purrr-0.2.3/index.html diff --git a/content/blog/tidyverse/2017/purrr-0.2.3/purrr-0.2.3-sq.jpg b/content/blog/ported/tidyverse/2017/purrr-0.2.3/purrr-0.2.3-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/purrr-0.2.3/purrr-0.2.3-sq.jpg rename to content/blog/ported/tidyverse/2017/purrr-0.2.3/purrr-0.2.3-sq.jpg diff --git a/content/blog/tidyverse/2017/purrr-0.2.3/purrr-0.2.3-wd.jpg b/content/blog/ported/tidyverse/2017/purrr-0.2.3/purrr-0.2.3-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/purrr-0.2.3/purrr-0.2.3-wd.jpg rename to content/blog/ported/tidyverse/2017/purrr-0.2.3/purrr-0.2.3-wd.jpg diff --git a/content/blog/tidyverse/2017/rstudio-community/index.md b/content/blog/ported/tidyverse/2017/rstudio-community/index.md similarity index 100% rename from content/blog/tidyverse/2017/rstudio-community/index.md rename to content/blog/ported/tidyverse/2017/rstudio-community/index.md diff --git a/content/blog/tidyverse/2017/rstudio-community/rstudio-community-sq.jpg b/content/blog/ported/tidyverse/2017/rstudio-community/rstudio-community-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/rstudio-community/rstudio-community-sq.jpg rename to content/blog/ported/tidyverse/2017/rstudio-community/rstudio-community-sq.jpg diff --git a/content/blog/tidyverse/2017/rstudio-community/rstudio-community-wd.jpg b/content/blog/ported/tidyverse/2017/rstudio-community/rstudio-community-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/rstudio-community/rstudio-community-wd.jpg rename to content/blog/ported/tidyverse/2017/rstudio-community/rstudio-community-wd.jpg diff --git a/content/blog/tidyverse/2017/testthat-2-0/index.Rmd b/content/blog/ported/tidyverse/2017/testthat-2-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/testthat-2-0/index.Rmd rename to content/blog/ported/tidyverse/2017/testthat-2-0/index.Rmd diff --git a/content/blog/tidyverse/2017/testthat-2-0/index.html b/content/blog/ported/tidyverse/2017/testthat-2-0/index.html similarity index 100% rename from content/blog/tidyverse/2017/testthat-2-0/index.html rename to content/blog/ported/tidyverse/2017/testthat-2-0/index.html diff --git a/content/blog/tidyverse/2017/testthat-2-0/progress.gif b/content/blog/ported/tidyverse/2017/testthat-2-0/progress.gif similarity index 100% rename from content/blog/tidyverse/2017/testthat-2-0/progress.gif rename to content/blog/ported/tidyverse/2017/testthat-2-0/progress.gif diff --git a/content/blog/tidyverse/2017/testthat-2-0/testthat-2-0-0-sq.jpg b/content/blog/ported/tidyverse/2017/testthat-2-0/testthat-2-0-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/testthat-2-0/testthat-2-0-0-sq.jpg rename to content/blog/ported/tidyverse/2017/testthat-2-0/testthat-2-0-0-sq.jpg diff --git a/content/blog/tidyverse/2017/testthat-2-0/testthat-2-0-0-wd.jpg b/content/blog/ported/tidyverse/2017/testthat-2-0/testthat-2-0-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/testthat-2-0/testthat-2-0-0-wd.jpg rename to content/blog/ported/tidyverse/2017/testthat-2-0/testthat-2-0-0-wd.jpg diff --git a/content/blog/tidyverse/2017/tidyr-0.7.0/index.Rmd b/content/blog/ported/tidyverse/2017/tidyr-0.7.0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/tidyr-0.7.0/index.Rmd rename to content/blog/ported/tidyverse/2017/tidyr-0.7.0/index.Rmd diff --git a/content/blog/tidyverse/2017/tidyr-0.7.0/index.html b/content/blog/ported/tidyverse/2017/tidyr-0.7.0/index.html similarity index 100% rename from content/blog/tidyverse/2017/tidyr-0.7.0/index.html rename to content/blog/ported/tidyverse/2017/tidyr-0.7.0/index.html diff --git a/content/blog/tidyverse/2017/tidyr-0.7.0/tidyr-0.7.0-sq.jpg b/content/blog/ported/tidyverse/2017/tidyr-0.7.0/tidyr-0.7.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/tidyr-0.7.0/tidyr-0.7.0-sq.jpg rename to content/blog/ported/tidyverse/2017/tidyr-0.7.0/tidyr-0.7.0-sq.jpg diff --git a/content/blog/tidyverse/2017/tidyr-0.7.0/tidyr-0.7.0-wd.jpg b/content/blog/ported/tidyverse/2017/tidyr-0.7.0/tidyr-0.7.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/tidyr-0.7.0/tidyr-0.7.0-wd.jpg rename to content/blog/ported/tidyverse/2017/tidyr-0.7.0/tidyr-0.7.0-wd.jpg diff --git a/content/blog/tidyverse/2017/tidyverse_1.2.0/index.Rmd b/content/blog/ported/tidyverse/2017/tidyverse_1.2.0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/tidyverse_1.2.0/index.Rmd rename to content/blog/ported/tidyverse/2017/tidyverse_1.2.0/index.Rmd diff --git a/content/blog/tidyverse/2017/tidyverse_1.2.0/index.html b/content/blog/ported/tidyverse/2017/tidyverse_1.2.0/index.html similarity index 100% rename from content/blog/tidyverse/2017/tidyverse_1.2.0/index.html rename to content/blog/ported/tidyverse/2017/tidyverse_1.2.0/index.html diff --git a/content/blog/tidyverse/2017/tidyverse_1.2.0/reprex_addin.png b/content/blog/ported/tidyverse/2017/tidyverse_1.2.0/reprex_addin.png similarity index 100% rename from content/blog/tidyverse/2017/tidyverse_1.2.0/reprex_addin.png rename to content/blog/ported/tidyverse/2017/tidyverse_1.2.0/reprex_addin.png diff --git a/content/blog/tidyverse/2017/tidyverse_1.2.0/tidyverse_1-2-0_pkg_load.gif b/content/blog/ported/tidyverse/2017/tidyverse_1.2.0/tidyverse_1-2-0_pkg_load.gif similarity index 100% rename from content/blog/tidyverse/2017/tidyverse_1.2.0/tidyverse_1-2-0_pkg_load.gif rename to content/blog/ported/tidyverse/2017/tidyverse_1.2.0/tidyverse_1-2-0_pkg_load.gif diff --git a/content/blog/tidyverse/2017/tidyverse_1.2.0/tidyverse_1.2.0-sq.jpg b/content/blog/ported/tidyverse/2017/tidyverse_1.2.0/tidyverse_1.2.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/tidyverse_1.2.0/tidyverse_1.2.0-sq.jpg rename to content/blog/ported/tidyverse/2017/tidyverse_1.2.0/tidyverse_1.2.0-sq.jpg diff --git a/content/blog/tidyverse/2017/tidyverse_1.2.0/tidyverse_1.2.0-wd.jpg b/content/blog/ported/tidyverse/2017/tidyverse_1.2.0/tidyverse_1.2.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/tidyverse_1.2.0/tidyverse_1.2.0-wd.jpg rename to content/blog/ported/tidyverse/2017/tidyverse_1.2.0/tidyverse_1.2.0-wd.jpg diff --git a/content/blog/tidyverse/2017/tidyverse_1.2.0/tidyverse_logo_function.gif b/content/blog/ported/tidyverse/2017/tidyverse_1.2.0/tidyverse_logo_function.gif similarity index 100% rename from content/blog/tidyverse/2017/tidyverse_1.2.0/tidyverse_logo_function.gif rename to content/blog/ported/tidyverse/2017/tidyverse_1.2.0/tidyverse_logo_function.gif diff --git a/content/blog/tidyverse/2017/welcome/index.md b/content/blog/ported/tidyverse/2017/welcome/index.md similarity index 100% rename from content/blog/tidyverse/2017/welcome/index.md rename to content/blog/ported/tidyverse/2017/welcome/index.md diff --git a/content/blog/tidyverse/2017/welcome/welcome-sq.jpg b/content/blog/ported/tidyverse/2017/welcome/welcome-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/welcome/welcome-sq.jpg rename to content/blog/ported/tidyverse/2017/welcome/welcome-sq.jpg diff --git a/content/blog/tidyverse/2017/welcome/welcome-wd.jpg b/content/blog/ported/tidyverse/2017/welcome/welcome-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/welcome/welcome-wd.jpg rename to content/blog/ported/tidyverse/2017/welcome/welcome-wd.jpg diff --git a/content/blog/tidyverse/2017/workflow-vs-script/index.Rmd b/content/blog/ported/tidyverse/2017/workflow-vs-script/index.Rmd similarity index 100% rename from content/blog/tidyverse/2017/workflow-vs-script/index.Rmd rename to content/blog/ported/tidyverse/2017/workflow-vs-script/index.Rmd diff --git a/content/blog/tidyverse/2017/workflow-vs-script/index.html b/content/blog/ported/tidyverse/2017/workflow-vs-script/index.html similarity index 100% rename from content/blog/tidyverse/2017/workflow-vs-script/index.html rename to content/blog/ported/tidyverse/2017/workflow-vs-script/index.html diff --git a/content/blog/tidyverse/2017/workflow-vs-script/workflow-vs-script-sq.jpg b/content/blog/ported/tidyverse/2017/workflow-vs-script/workflow-vs-script-sq.jpg similarity index 100% rename from content/blog/tidyverse/2017/workflow-vs-script/workflow-vs-script-sq.jpg rename to content/blog/ported/tidyverse/2017/workflow-vs-script/workflow-vs-script-sq.jpg diff --git a/content/blog/tidyverse/2017/workflow-vs-script/workflow-vs-script-wd.jpg b/content/blog/ported/tidyverse/2017/workflow-vs-script/workflow-vs-script-wd.jpg similarity index 100% rename from content/blog/tidyverse/2017/workflow-vs-script/workflow-vs-script-wd.jpg rename to content/blog/ported/tidyverse/2017/workflow-vs-script/workflow-vs-script-wd.jpg diff --git a/content/blog/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/index.Rmarkdown b/content/blog/ported/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/index.markdown b/content/blog/ported/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/index.markdown rename to content/blog/ported/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/index.markdown diff --git a/content/blog/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/tidyverse-and-r-lib-year-in-review-sq.jpg b/content/blog/ported/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/tidyverse-and-r-lib-year-in-review-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/tidyverse-and-r-lib-year-in-review-sq.jpg rename to content/blog/ported/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/tidyverse-and-r-lib-year-in-review-sq.jpg diff --git a/content/blog/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/tidyverse-and-r-lib-year-in-review-wd.jpg b/content/blog/ported/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/tidyverse-and-r-lib-year-in-review-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/tidyverse-and-r-lib-year-in-review-wd.jpg rename to content/blog/ported/tidyverse/2018/14-tidyverse-and-r-lib-year-in-review/tidyverse-and-r-lib-year-in-review-wd.jpg diff --git a/content/blog/tidyverse/2018/bench-1.0.1/autoplot-1.png b/content/blog/ported/tidyverse/2018/bench-1.0.1/autoplot-1.png similarity index 100% rename from content/blog/tidyverse/2018/bench-1.0.1/autoplot-1.png rename to content/blog/ported/tidyverse/2018/bench-1.0.1/autoplot-1.png diff --git a/content/blog/tidyverse/2018/bench-1.0.1/bench-1.0.1-sq.jpg b/content/blog/ported/tidyverse/2018/bench-1.0.1/bench-1.0.1-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/bench-1.0.1/bench-1.0.1-sq.jpg rename to content/blog/ported/tidyverse/2018/bench-1.0.1/bench-1.0.1-sq.jpg diff --git a/content/blog/tidyverse/2018/bench-1.0.1/bench-1.0.1-wd.jpg b/content/blog/ported/tidyverse/2018/bench-1.0.1/bench-1.0.1-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/bench-1.0.1/bench-1.0.1-wd.jpg rename to content/blog/ported/tidyverse/2018/bench-1.0.1/bench-1.0.1-wd.jpg diff --git a/content/blog/tidyverse/2018/bench-1.0.1/custom-plot-1.png b/content/blog/ported/tidyverse/2018/bench-1.0.1/custom-plot-1.png similarity index 100% rename from content/blog/tidyverse/2018/bench-1.0.1/custom-plot-1.png rename to content/blog/ported/tidyverse/2018/bench-1.0.1/custom-plot-1.png diff --git a/content/blog/tidyverse/2018/bench-1.0.1/index.Rmd b/content/blog/ported/tidyverse/2018/bench-1.0.1/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/bench-1.0.1/index.Rmd rename to content/blog/ported/tidyverse/2018/bench-1.0.1/index.Rmd diff --git a/content/blog/tidyverse/2018/bench-1.0.1/index.html b/content/blog/ported/tidyverse/2018/bench-1.0.1/index.html similarity index 100% rename from content/blog/tidyverse/2018/bench-1.0.1/index.html rename to content/blog/ported/tidyverse/2018/bench-1.0.1/index.html diff --git a/content/blog/tidyverse/2018/bigrquery-1-0-0/bigrquery-1-0-0-sq.jpg b/content/blog/ported/tidyverse/2018/bigrquery-1-0-0/bigrquery-1-0-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/bigrquery-1-0-0/bigrquery-1-0-0-sq.jpg rename to content/blog/ported/tidyverse/2018/bigrquery-1-0-0/bigrquery-1-0-0-sq.jpg diff --git a/content/blog/tidyverse/2018/bigrquery-1-0-0/bigrquery-1-0-0-wd.jpg b/content/blog/ported/tidyverse/2018/bigrquery-1-0-0/bigrquery-1-0-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/bigrquery-1-0-0/bigrquery-1-0-0-wd.jpg rename to content/blog/ported/tidyverse/2018/bigrquery-1-0-0/bigrquery-1-0-0-wd.jpg diff --git a/content/blog/tidyverse/2018/bigrquery-1-0-0/index.Rmd b/content/blog/ported/tidyverse/2018/bigrquery-1-0-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/bigrquery-1-0-0/index.Rmd rename to content/blog/ported/tidyverse/2018/bigrquery-1-0-0/index.Rmd diff --git a/content/blog/tidyverse/2018/bigrquery-1-0-0/index.html b/content/blog/ported/tidyverse/2018/bigrquery-1-0-0/index.html similarity index 100% rename from content/blog/tidyverse/2018/bigrquery-1-0-0/index.html rename to content/blog/ported/tidyverse/2018/bigrquery-1-0-0/index.html diff --git a/content/blog/tidyverse/2018/broom-0-5-0/broom-0-5-0-sq.jpg b/content/blog/ported/tidyverse/2018/broom-0-5-0/broom-0-5-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/broom-0-5-0/broom-0-5-0-sq.jpg rename to content/blog/ported/tidyverse/2018/broom-0-5-0/broom-0-5-0-sq.jpg diff --git a/content/blog/tidyverse/2018/broom-0-5-0/broom-0-5-0-wd.jpg b/content/blog/ported/tidyverse/2018/broom-0-5-0/broom-0-5-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/broom-0-5-0/broom-0-5-0-wd.jpg rename to content/blog/ported/tidyverse/2018/broom-0-5-0/broom-0-5-0-wd.jpg diff --git a/content/blog/tidyverse/2018/broom-0-5-0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/broom-0-5-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/broom-0-5-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/broom-0-5-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/broom-0-5-0/index.markdown b/content/blog/ported/tidyverse/2018/broom-0-5-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/broom-0-5-0/index.markdown rename to content/blog/ported/tidyverse/2018/broom-0-5-0/index.markdown diff --git a/content/blog/tidyverse/2018/carpe-talk/carpe-talk-sq.jpg b/content/blog/ported/tidyverse/2018/carpe-talk/carpe-talk-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/carpe-talk/carpe-talk-sq.jpg rename to content/blog/ported/tidyverse/2018/carpe-talk/carpe-talk-sq.jpg diff --git a/content/blog/tidyverse/2018/carpe-talk/carpe-talk-wd.jpg b/content/blog/ported/tidyverse/2018/carpe-talk/carpe-talk-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/carpe-talk/carpe-talk-wd.jpg rename to content/blog/ported/tidyverse/2018/carpe-talk/carpe-talk-wd.jpg diff --git a/content/blog/tidyverse/2018/carpe-talk/carpe-talk-wd.jpg.original b/content/blog/ported/tidyverse/2018/carpe-talk/carpe-talk-wd.jpg.original similarity index 100% rename from content/blog/tidyverse/2018/carpe-talk/carpe-talk-wd.jpg.original rename to content/blog/ported/tidyverse/2018/carpe-talk/carpe-talk-wd.jpg.original diff --git a/content/blog/tidyverse/2018/carpe-talk/index.markdown b/content/blog/ported/tidyverse/2018/carpe-talk/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/carpe-talk/index.markdown rename to content/blog/ported/tidyverse/2018/carpe-talk/index.markdown diff --git a/content/blog/tidyverse/2018/carpe-talk/infer-github-readme.jpg b/content/blog/ported/tidyverse/2018/carpe-talk/infer-github-readme.jpg similarity index 100% rename from content/blog/tidyverse/2018/carpe-talk/infer-github-readme.jpg rename to content/blog/ported/tidyverse/2018/carpe-talk/infer-github-readme.jpg diff --git a/content/blog/tidyverse/2018/carpe-talk/infer-github-top.jpg b/content/blog/ported/tidyverse/2018/carpe-talk/infer-github-top.jpg similarity index 100% rename from content/blog/tidyverse/2018/carpe-talk/infer-github-top.jpg rename to content/blog/ported/tidyverse/2018/carpe-talk/infer-github-top.jpg diff --git a/content/blog/tidyverse/2018/carpe-talk/infer-pkgdown-netlify.jpg b/content/blog/ported/tidyverse/2018/carpe-talk/infer-pkgdown-netlify.jpg similarity index 100% rename from content/blog/tidyverse/2018/carpe-talk/infer-pkgdown-netlify.jpg rename to content/blog/ported/tidyverse/2018/carpe-talk/infer-pkgdown-netlify.jpg diff --git a/content/blog/tidyverse/2018/carpe-talk/infer-title-slide.jpg b/content/blog/ported/tidyverse/2018/carpe-talk/infer-title-slide.jpg similarity index 100% rename from content/blog/tidyverse/2018/carpe-talk/infer-title-slide.jpg rename to content/blog/ported/tidyverse/2018/carpe-talk/infer-title-slide.jpg diff --git a/content/blog/tidyverse/2018/conflicted/conflicted-sq.jpg b/content/blog/ported/tidyverse/2018/conflicted/conflicted-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/conflicted/conflicted-sq.jpg rename to content/blog/ported/tidyverse/2018/conflicted/conflicted-sq.jpg diff --git a/content/blog/tidyverse/2018/conflicted/conflicted-wd.jpg b/content/blog/ported/tidyverse/2018/conflicted/conflicted-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/conflicted/conflicted-wd.jpg rename to content/blog/ported/tidyverse/2018/conflicted/conflicted-wd.jpg diff --git a/content/blog/tidyverse/2018/conflicted/index.Rmd b/content/blog/ported/tidyverse/2018/conflicted/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/conflicted/index.Rmd rename to content/blog/ported/tidyverse/2018/conflicted/index.Rmd diff --git a/content/blog/tidyverse/2018/conflicted/index.html b/content/blog/ported/tidyverse/2018/conflicted/index.html similarity index 100% rename from content/blog/tidyverse/2018/conflicted/index.html rename to content/blog/ported/tidyverse/2018/conflicted/index.html diff --git a/content/blog/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-sq.jpg b/content/blog/ported/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-sq.jpg rename to content/blog/ported/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-sq.jpg diff --git a/content/blog/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-wd.jpg b/content/blog/ported/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-wd.jpg rename to content/blog/ported/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-wd.jpg diff --git a/content/blog/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-wd.jpg.original b/content/blog/ported/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-wd.jpg.original similarity index 100% rename from content/blog/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-wd.jpg.original rename to content/blog/ported/tidyverse/2018/devtools-2.0.0/devtools-2-0-0-wd.jpg.original diff --git a/content/blog/tidyverse/2018/devtools-2.0.0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/devtools-2.0.0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/devtools-2.0.0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/devtools-2.0.0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/devtools-2.0.0/index.markdown b/content/blog/ported/tidyverse/2018/devtools-2.0.0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/devtools-2.0.0/index.markdown rename to content/blog/ported/tidyverse/2018/devtools-2.0.0/index.markdown diff --git a/content/blog/tidyverse/2018/devtools-2.0.0/upgrade-menu.png b/content/blog/ported/tidyverse/2018/devtools-2.0.0/upgrade-menu.png similarity index 100% rename from content/blog/tidyverse/2018/devtools-2.0.0/upgrade-menu.png rename to content/blog/ported/tidyverse/2018/devtools-2.0.0/upgrade-menu.png diff --git a/content/blog/tidyverse/2018/dplyr-0-7-5/dplyr-0.7.5-sq.jpg b/content/blog/ported/tidyverse/2018/dplyr-0-7-5/dplyr-0.7.5-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/dplyr-0-7-5/dplyr-0.7.5-sq.jpg rename to content/blog/ported/tidyverse/2018/dplyr-0-7-5/dplyr-0.7.5-sq.jpg diff --git a/content/blog/tidyverse/2018/dplyr-0-7-5/dplyr-0.7.5-wd.jpg b/content/blog/ported/tidyverse/2018/dplyr-0-7-5/dplyr-0.7.5-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/dplyr-0-7-5/dplyr-0.7.5-wd.jpg rename to content/blog/ported/tidyverse/2018/dplyr-0-7-5/dplyr-0.7.5-wd.jpg diff --git a/content/blog/tidyverse/2018/dplyr-0-7-5/index.Rmd b/content/blog/ported/tidyverse/2018/dplyr-0-7-5/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/dplyr-0-7-5/index.Rmd rename to content/blog/ported/tidyverse/2018/dplyr-0-7-5/index.Rmd diff --git a/content/blog/tidyverse/2018/dplyr-0-7-5/index.html b/content/blog/ported/tidyverse/2018/dplyr-0-7-5/index.html similarity index 100% rename from content/blog/tidyverse/2018/dplyr-0-7-5/index.html rename to content/blog/ported/tidyverse/2018/dplyr-0-7-5/index.html diff --git a/content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-sq.jpg b/content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-sq.jpg rename to content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-sq.jpg diff --git a/content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-wd.jpg b/content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-wd.jpg rename to content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-wd.jpg diff --git a/content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-wd.jpg.original b/content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-wd.jpg.original similarity index 100% rename from content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-wd.jpg.original rename to content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/dplyr-0-8-0-release-candidate-wd.jpg.original diff --git a/content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/index.Rmarkdown b/content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/index.markdown b/content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/index.markdown rename to content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/index.markdown diff --git a/content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/timings_summarise_mean.jpeg b/content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/timings_summarise_mean.jpeg similarity index 100% rename from content/blog/tidyverse/2018/dplyr-0-8-0-release-candidate/timings_summarise_mean.jpeg rename to content/blog/ported/tidyverse/2018/dplyr-0-8-0-release-candidate/timings_summarise_mean.jpeg diff --git a/content/blog/tidyverse/2018/forcats-0-3-0/forcats-0-3-0-sq.jpg b/content/blog/ported/tidyverse/2018/forcats-0-3-0/forcats-0-3-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/forcats-0-3-0/forcats-0-3-0-sq.jpg rename to content/blog/ported/tidyverse/2018/forcats-0-3-0/forcats-0-3-0-sq.jpg diff --git a/content/blog/tidyverse/2018/forcats-0-3-0/forcats-0-3-0-wd.jpg b/content/blog/ported/tidyverse/2018/forcats-0-3-0/forcats-0-3-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/forcats-0-3-0/forcats-0-3-0-wd.jpg rename to content/blog/ported/tidyverse/2018/forcats-0-3-0/forcats-0-3-0-wd.jpg diff --git a/content/blog/tidyverse/2018/forcats-0-3-0/index.Rmd b/content/blog/ported/tidyverse/2018/forcats-0-3-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/forcats-0-3-0/index.Rmd rename to content/blog/ported/tidyverse/2018/forcats-0-3-0/index.Rmd diff --git a/content/blog/tidyverse/2018/forcats-0-3-0/index.html b/content/blog/ported/tidyverse/2018/forcats-0-3-0/index.html similarity index 100% rename from content/blog/tidyverse/2018/forcats-0-3-0/index.html rename to content/blog/ported/tidyverse/2018/forcats-0-3-0/index.html diff --git a/content/blog/tidyverse/2018/fs-1.0.0/colour.png b/content/blog/ported/tidyverse/2018/fs-1.0.0/colour.png similarity index 100% rename from content/blog/tidyverse/2018/fs-1.0.0/colour.png rename to content/blog/ported/tidyverse/2018/fs-1.0.0/colour.png diff --git a/content/blog/tidyverse/2018/fs-1.0.0/fs-1.0.0-sq.jpg b/content/blog/ported/tidyverse/2018/fs-1.0.0/fs-1.0.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/fs-1.0.0/fs-1.0.0-sq.jpg rename to content/blog/ported/tidyverse/2018/fs-1.0.0/fs-1.0.0-sq.jpg diff --git a/content/blog/tidyverse/2018/fs-1.0.0/fs-1.0.0-wd.jpg b/content/blog/ported/tidyverse/2018/fs-1.0.0/fs-1.0.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/fs-1.0.0/fs-1.0.0-wd.jpg rename to content/blog/ported/tidyverse/2018/fs-1.0.0/fs-1.0.0-wd.jpg diff --git a/content/blog/tidyverse/2018/fs-1.0.0/index.Rmd b/content/blog/ported/tidyverse/2018/fs-1.0.0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/fs-1.0.0/index.Rmd rename to content/blog/ported/tidyverse/2018/fs-1.0.0/index.Rmd diff --git a/content/blog/tidyverse/2018/fs-1.0.0/index.html b/content/blog/ported/tidyverse/2018/fs-1.0.0/index.html similarity index 100% rename from content/blog/tidyverse/2018/fs-1.0.0/index.html rename to content/blog/ported/tidyverse/2018/fs-1.0.0/index.html diff --git a/content/blog/tidyverse/2018/generics-0.0.1/generics-0.0.1-sq.jpg b/content/blog/ported/tidyverse/2018/generics-0.0.1/generics-0.0.1-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/generics-0.0.1/generics-0.0.1-sq.jpg rename to content/blog/ported/tidyverse/2018/generics-0.0.1/generics-0.0.1-sq.jpg diff --git a/content/blog/tidyverse/2018/generics-0.0.1/generics-0.0.1-wd.jpg b/content/blog/ported/tidyverse/2018/generics-0.0.1/generics-0.0.1-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/generics-0.0.1/generics-0.0.1-wd.jpg rename to content/blog/ported/tidyverse/2018/generics-0.0.1/generics-0.0.1-wd.jpg diff --git a/content/blog/tidyverse/2018/generics-0.0.1/index.Rmarkdown b/content/blog/ported/tidyverse/2018/generics-0.0.1/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/generics-0.0.1/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/generics-0.0.1/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/generics-0.0.1/index.markdown b/content/blog/ported/tidyverse/2018/generics-0.0.1/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/generics-0.0.1/index.markdown rename to content/blog/ported/tidyverse/2018/generics-0.0.1/index.markdown diff --git a/content/blog/tidyverse/2018/ggplot2-2-3-0/ggplot2-2-3-0-sq.jpg b/content/blog/ported/tidyverse/2018/ggplot2-2-3-0/ggplot2-2-3-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-2-3-0/ggplot2-2-3-0-sq.jpg rename to content/blog/ported/tidyverse/2018/ggplot2-2-3-0/ggplot2-2-3-0-sq.jpg diff --git a/content/blog/tidyverse/2018/ggplot2-2-3-0/ggplot2-2-3-0-wd.jpg b/content/blog/ported/tidyverse/2018/ggplot2-2-3-0/ggplot2-2-3-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-2-3-0/ggplot2-2-3-0-wd.jpg rename to content/blog/ported/tidyverse/2018/ggplot2-2-3-0/ggplot2-2-3-0-wd.jpg diff --git a/content/blog/tidyverse/2018/ggplot2-2-3-0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/ggplot2-2-3-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-2-3-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/ggplot2-2-3-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/ggplot2-2-3-0/index.markdown b/content/blog/ported/tidyverse/2018/ggplot2-2-3-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-2-3-0/index.markdown rename to content/blog/ported/tidyverse/2018/ggplot2-2-3-0/index.markdown diff --git a/content/blog/tidyverse/2018/ggplot2-2-3-0/label-both-1.png b/content/blog/ported/tidyverse/2018/ggplot2-2-3-0/label-both-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-2-3-0/label-both-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-2-3-0/label-both-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-2-3-0/sf-1.png b/content/blog/ported/tidyverse/2018/ggplot2-2-3-0/sf-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-2-3-0/sf-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-2-3-0/sf-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/dodge-st-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/dodge-st-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/dodge-st-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/dodge-st-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/dodge-st-2.png b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/dodge-st-2.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/dodge-st-2.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/dodge-st-2.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/ggplot2-3-0-0-sq.jpg b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/ggplot2-3-0-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/ggplot2-3-0-0-sq.jpg rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/ggplot2-3-0-0-sq.jpg diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/ggplot2-3-0-0-wd.jpg b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/ggplot2-3-0-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/ggplot2-3-0-0-wd.jpg rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/ggplot2-3-0-0-wd.jpg diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/guide-colorbar-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/guide-colorbar-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/guide-colorbar-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/guide-colorbar-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/index.markdown b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/index.markdown rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/index.markdown diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/label-both-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/label-both-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/label-both-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/label-both-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/nsa-independent-scale-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/nsa-independent-scale-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/nsa-independent-scale-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/nsa-independent-scale-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/sf-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/sf-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/sf-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/sf-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/tag-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/tag-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/tag-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/tag-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/viridis-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/viridis-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/viridis-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/viridis-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-0-0/viridis-c-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-0-0/viridis-c-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-0-0/viridis-c-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-0-0/viridis-c-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-1-0/color-vs-colour-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-1-0/color-vs-colour-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-1-0/color-vs-colour-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-1-0/color-vs-colour-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-1-0/coord-sf-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-1-0/coord-sf-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-1-0/coord-sf-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-1-0/coord-sf-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-1-0/geom-sf-text-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-1-0/geom-sf-text-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-1-0/geom-sf-text-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-1-0/geom-sf-text-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-1-0/ggplot2-3-1-0-sq.jpg b/content/blog/ported/tidyverse/2018/ggplot2-3-1-0/ggplot2-3-1-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-1-0/ggplot2-3-1-0-sq.jpg rename to content/blog/ported/tidyverse/2018/ggplot2-3-1-0/ggplot2-3-1-0-sq.jpg diff --git a/content/blog/tidyverse/2018/ggplot2-3-1-0/ggplot2-3-1-0-wd.jpg b/content/blog/ported/tidyverse/2018/ggplot2-3-1-0/ggplot2-3-1-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-1-0/ggplot2-3-1-0-wd.jpg rename to content/blog/ported/tidyverse/2018/ggplot2-3-1-0/ggplot2-3-1-0-wd.jpg diff --git a/content/blog/tidyverse/2018/ggplot2-3-1-0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/ggplot2-3-1-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-1-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/ggplot2-3-1-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/ggplot2-3-1-0/index.markdown b/content/blog/ported/tidyverse/2018/ggplot2-3-1-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-1-0/index.markdown rename to content/blog/ported/tidyverse/2018/ggplot2-3-1-0/index.markdown diff --git a/content/blog/tidyverse/2018/ggplot2-3-1-0/stat-density-2d-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-1-0/stat-density-2d-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-1-0/stat-density-2d-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-1-0/stat-density-2d-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-1-0/stat_sf_coordinates-1.png b/content/blog/ported/tidyverse/2018/ggplot2-3-1-0/stat_sf_coordinates-1.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-1-0/stat_sf_coordinates-1.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-1-0/stat_sf_coordinates-1.png diff --git a/content/blog/tidyverse/2018/ggplot2-3-1-0/stat_sf_coordinates-2.png b/content/blog/ported/tidyverse/2018/ggplot2-3-1-0/stat_sf_coordinates-2.png similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-3-1-0/stat_sf_coordinates-2.png rename to content/blog/ported/tidyverse/2018/ggplot2-3-1-0/stat_sf_coordinates-2.png diff --git a/content/blog/tidyverse/2018/ggplot2-community-posts/ggplot2-community-posts-sq.jpg b/content/blog/ported/tidyverse/2018/ggplot2-community-posts/ggplot2-community-posts-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-community-posts/ggplot2-community-posts-sq.jpg rename to content/blog/ported/tidyverse/2018/ggplot2-community-posts/ggplot2-community-posts-sq.jpg diff --git a/content/blog/tidyverse/2018/ggplot2-community-posts/ggplot2-community-posts-wd.jpg b/content/blog/ported/tidyverse/2018/ggplot2-community-posts/ggplot2-community-posts-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-community-posts/ggplot2-community-posts-wd.jpg rename to content/blog/ported/tidyverse/2018/ggplot2-community-posts/ggplot2-community-posts-wd.jpg diff --git a/content/blog/tidyverse/2018/ggplot2-community-posts/index.Rmarkdown b/content/blog/ported/tidyverse/2018/ggplot2-community-posts/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-community-posts/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/ggplot2-community-posts/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/ggplot2-community-posts/index.markdown b/content/blog/ported/tidyverse/2018/ggplot2-community-posts/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/ggplot2-community-posts/index.markdown rename to content/blog/ported/tidyverse/2018/ggplot2-community-posts/index.markdown diff --git a/content/blog/tidyverse/2018/haven-1-1-2/haven-1-1-2-sq.jpg b/content/blog/ported/tidyverse/2018/haven-1-1-2/haven-1-1-2-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/haven-1-1-2/haven-1-1-2-sq.jpg rename to content/blog/ported/tidyverse/2018/haven-1-1-2/haven-1-1-2-sq.jpg diff --git a/content/blog/tidyverse/2018/haven-1-1-2/haven-1-1-2-wd.jpg b/content/blog/ported/tidyverse/2018/haven-1-1-2/haven-1-1-2-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/haven-1-1-2/haven-1-1-2-wd.jpg rename to content/blog/ported/tidyverse/2018/haven-1-1-2/haven-1-1-2-wd.jpg diff --git a/content/blog/tidyverse/2018/haven-1-1-2/index.Rmd b/content/blog/ported/tidyverse/2018/haven-1-1-2/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/haven-1-1-2/index.Rmd rename to content/blog/ported/tidyverse/2018/haven-1-1-2/index.Rmd diff --git a/content/blog/tidyverse/2018/haven-1-1-2/index.html b/content/blog/ported/tidyverse/2018/haven-1-1-2/index.html similarity index 100% rename from content/blog/tidyverse/2018/haven-1-1-2/index.html rename to content/blog/ported/tidyverse/2018/haven-1-1-2/index.html diff --git a/content/blog/tidyverse/2018/httr-1-4-0/httr-1-4-0-sq.jpg b/content/blog/ported/tidyverse/2018/httr-1-4-0/httr-1-4-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/httr-1-4-0/httr-1-4-0-sq.jpg rename to content/blog/ported/tidyverse/2018/httr-1-4-0/httr-1-4-0-sq.jpg diff --git a/content/blog/tidyverse/2018/httr-1-4-0/httr-1-4-0-wd.jpg b/content/blog/ported/tidyverse/2018/httr-1-4-0/httr-1-4-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/httr-1-4-0/httr-1-4-0-wd.jpg rename to content/blog/ported/tidyverse/2018/httr-1-4-0/httr-1-4-0-wd.jpg diff --git a/content/blog/tidyverse/2018/httr-1-4-0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/httr-1-4-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/httr-1-4-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/httr-1-4-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/httr-1-4-0/index.markdown b/content/blog/ported/tidyverse/2018/httr-1-4-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/httr-1-4-0/index.markdown rename to content/blog/ported/tidyverse/2018/httr-1-4-0/index.markdown diff --git a/content/blog/tidyverse/2018/lobstr/index.Rmarkdown b/content/blog/ported/tidyverse/2018/lobstr/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/lobstr/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/lobstr/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/lobstr/index.markdown b/content/blog/ported/tidyverse/2018/lobstr/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/lobstr/index.markdown rename to content/blog/ported/tidyverse/2018/lobstr/index.markdown diff --git a/content/blog/tidyverse/2018/lobstr/lobstr-sq.jpg b/content/blog/ported/tidyverse/2018/lobstr/lobstr-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/lobstr/lobstr-sq.jpg rename to content/blog/ported/tidyverse/2018/lobstr/lobstr-sq.jpg diff --git a/content/blog/tidyverse/2018/lobstr/lobstr-wd.jpg b/content/blog/ported/tidyverse/2018/lobstr/lobstr-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/lobstr/lobstr-wd.jpg rename to content/blog/ported/tidyverse/2018/lobstr/lobstr-wd.jpg diff --git a/content/blog/tidyverse/2018/parsnip-0-0-1/index.Rmarkdown b/content/blog/ported/tidyverse/2018/parsnip-0-0-1/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/parsnip-0-0-1/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/parsnip-0-0-1/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/parsnip-0-0-1/index.markdown b/content/blog/ported/tidyverse/2018/parsnip-0-0-1/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/parsnip-0-0-1/index.markdown rename to content/blog/ported/tidyverse/2018/parsnip-0-0-1/index.markdown diff --git a/content/blog/tidyverse/2018/parsnip-0-0-1/parsnip-0-0-1-sq.jpg b/content/blog/ported/tidyverse/2018/parsnip-0-0-1/parsnip-0-0-1-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/parsnip-0-0-1/parsnip-0-0-1-sq.jpg rename to content/blog/ported/tidyverse/2018/parsnip-0-0-1/parsnip-0-0-1-sq.jpg diff --git a/content/blog/tidyverse/2018/parsnip-0-0-1/parsnip-0-0-1-wd.jpg b/content/blog/ported/tidyverse/2018/parsnip-0-0-1/parsnip-0-0-1-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/parsnip-0-0-1/parsnip-0-0-1-wd.jpg rename to content/blog/ported/tidyverse/2018/parsnip-0-0-1/parsnip-0-0-1-wd.jpg diff --git a/content/blog/tidyverse/2018/pillar-1-2-1/index.Rmd b/content/blog/ported/tidyverse/2018/pillar-1-2-1/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/pillar-1-2-1/index.Rmd rename to content/blog/ported/tidyverse/2018/pillar-1-2-1/index.Rmd diff --git a/content/blog/tidyverse/2018/pillar-1-2-1/index.html b/content/blog/ported/tidyverse/2018/pillar-1-2-1/index.html similarity index 100% rename from content/blog/tidyverse/2018/pillar-1-2-1/index.html rename to content/blog/ported/tidyverse/2018/pillar-1-2-1/index.html diff --git a/content/blog/tidyverse/2018/pillar-1-2-1/pillar-1-2-1-sq.jpg b/content/blog/ported/tidyverse/2018/pillar-1-2-1/pillar-1-2-1-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/pillar-1-2-1/pillar-1-2-1-sq.jpg rename to content/blog/ported/tidyverse/2018/pillar-1-2-1/pillar-1-2-1-sq.jpg diff --git a/content/blog/tidyverse/2018/pillar-1-2-1/pillar-1-2-1-wd.jpg b/content/blog/ported/tidyverse/2018/pillar-1-2-1/pillar-1-2-1-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/pillar-1-2-1/pillar-1-2-1-wd.jpg rename to content/blog/ported/tidyverse/2018/pillar-1-2-1/pillar-1-2-1-wd.jpg diff --git a/content/blog/tidyverse/2018/pillar-1-2-2/colored-list-col.png b/content/blog/ported/tidyverse/2018/pillar-1-2-2/colored-list-col.png similarity index 100% rename from content/blog/tidyverse/2018/pillar-1-2-2/colored-list-col.png rename to content/blog/ported/tidyverse/2018/pillar-1-2-2/colored-list-col.png diff --git a/content/blog/tidyverse/2018/pillar-1-2-2/index.Rmd b/content/blog/ported/tidyverse/2018/pillar-1-2-2/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/pillar-1-2-2/index.Rmd rename to content/blog/ported/tidyverse/2018/pillar-1-2-2/index.Rmd diff --git a/content/blog/tidyverse/2018/pillar-1-2-2/index.html b/content/blog/ported/tidyverse/2018/pillar-1-2-2/index.html similarity index 100% rename from content/blog/tidyverse/2018/pillar-1-2-2/index.html rename to content/blog/ported/tidyverse/2018/pillar-1-2-2/index.html diff --git a/content/blog/tidyverse/2018/pillar-1-2-2/pillar-1-2-2-sq.jpg b/content/blog/ported/tidyverse/2018/pillar-1-2-2/pillar-1-2-2-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/pillar-1-2-2/pillar-1-2-2-sq.jpg rename to content/blog/ported/tidyverse/2018/pillar-1-2-2/pillar-1-2-2-sq.jpg diff --git a/content/blog/tidyverse/2018/pillar-1-2-2/pillar-1-2-2-wd.jpg b/content/blog/ported/tidyverse/2018/pillar-1-2-2/pillar-1-2-2-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/pillar-1-2-2/pillar-1-2-2-wd.jpg rename to content/blog/ported/tidyverse/2018/pillar-1-2-2/pillar-1-2-2-wd.jpg diff --git a/content/blog/tidyverse/2018/pkgdown-1-0-0/index.Rmd b/content/blog/ported/tidyverse/2018/pkgdown-1-0-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-0-0/index.Rmd rename to content/blog/ported/tidyverse/2018/pkgdown-1-0-0/index.Rmd diff --git a/content/blog/tidyverse/2018/pkgdown-1-0-0/index.html b/content/blog/ported/tidyverse/2018/pkgdown-1-0-0/index.html similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-0-0/index.html rename to content/blog/ported/tidyverse/2018/pkgdown-1-0-0/index.html diff --git a/content/blog/tidyverse/2018/pkgdown-1-0-0/pkgdown-1-0-0-sq.jpg b/content/blog/ported/tidyverse/2018/pkgdown-1-0-0/pkgdown-1-0-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-0-0/pkgdown-1-0-0-sq.jpg rename to content/blog/ported/tidyverse/2018/pkgdown-1-0-0/pkgdown-1-0-0-sq.jpg diff --git a/content/blog/tidyverse/2018/pkgdown-1-0-0/pkgdown-1-0-0-wd.jpg b/content/blog/ported/tidyverse/2018/pkgdown-1-0-0/pkgdown-1-0-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-0-0/pkgdown-1-0-0-wd.jpg rename to content/blog/ported/tidyverse/2018/pkgdown-1-0-0/pkgdown-1-0-0-wd.jpg diff --git a/content/blog/tidyverse/2018/pkgdown-1-1-0/index.Rmd b/content/blog/ported/tidyverse/2018/pkgdown-1-1-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-1-0/index.Rmd rename to content/blog/ported/tidyverse/2018/pkgdown-1-1-0/index.Rmd diff --git a/content/blog/tidyverse/2018/pkgdown-1-1-0/index.html b/content/blog/ported/tidyverse/2018/pkgdown-1-1-0/index.html similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-1-0/index.html rename to content/blog/ported/tidyverse/2018/pkgdown-1-1-0/index.html diff --git a/content/blog/tidyverse/2018/pkgdown-1-1-0/pkgdown-1-1-0-sq.jpg b/content/blog/ported/tidyverse/2018/pkgdown-1-1-0/pkgdown-1-1-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-1-0/pkgdown-1-1-0-sq.jpg rename to content/blog/ported/tidyverse/2018/pkgdown-1-1-0/pkgdown-1-1-0-sq.jpg diff --git a/content/blog/tidyverse/2018/pkgdown-1-1-0/pkgdown-1-1-0-wd.jpg b/content/blog/ported/tidyverse/2018/pkgdown-1-1-0/pkgdown-1-1-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-1-0/pkgdown-1-1-0-wd.jpg rename to content/blog/ported/tidyverse/2018/pkgdown-1-1-0/pkgdown-1-1-0-wd.jpg diff --git a/content/blog/tidyverse/2018/pkgdown-1-3-0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/pkgdown-1-3-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-3-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/pkgdown-1-3-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/pkgdown-1-3-0/index.markdown b/content/blog/ported/tidyverse/2018/pkgdown-1-3-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-3-0/index.markdown rename to content/blog/ported/tidyverse/2018/pkgdown-1-3-0/index.markdown diff --git a/content/blog/tidyverse/2018/pkgdown-1-3-0/pkgdown-1-3-0-sq.jpg b/content/blog/ported/tidyverse/2018/pkgdown-1-3-0/pkgdown-1-3-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-3-0/pkgdown-1-3-0-sq.jpg rename to content/blog/ported/tidyverse/2018/pkgdown-1-3-0/pkgdown-1-3-0-sq.jpg diff --git a/content/blog/tidyverse/2018/pkgdown-1-3-0/pkgdown-1-3-0-wd.jpg b/content/blog/ported/tidyverse/2018/pkgdown-1-3-0/pkgdown-1-3-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/pkgdown-1-3-0/pkgdown-1-3-0-wd.jpg rename to content/blog/ported/tidyverse/2018/pkgdown-1-3-0/pkgdown-1-3-0-wd.jpg diff --git a/content/blog/tidyverse/2018/processx-3.2.0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/processx-3.2.0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/processx-3.2.0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/processx-3.2.0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/processx-3.2.0/index.markdown b/content/blog/ported/tidyverse/2018/processx-3.2.0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/processx-3.2.0/index.markdown rename to content/blog/ported/tidyverse/2018/processx-3.2.0/index.markdown diff --git a/content/blog/tidyverse/2018/processx-3.2.0/processx-3.2.0-sq.jpg b/content/blog/ported/tidyverse/2018/processx-3.2.0/processx-3.2.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/processx-3.2.0/processx-3.2.0-sq.jpg rename to content/blog/ported/tidyverse/2018/processx-3.2.0/processx-3.2.0-sq.jpg diff --git a/content/blog/tidyverse/2018/processx-3.2.0/processx-3.2.0-wd.jpg b/content/blog/ported/tidyverse/2018/processx-3.2.0/processx-3.2.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/processx-3.2.0/processx-3.2.0-wd.jpg rename to content/blog/ported/tidyverse/2018/processx-3.2.0/processx-3.2.0-wd.jpg diff --git a/content/blog/tidyverse/2018/readr-1.3.1/index.Rmarkdown b/content/blog/ported/tidyverse/2018/readr-1.3.1/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/readr-1.3.1/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/readr-1.3.1/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/readr-1.3.1/index.markdown b/content/blog/ported/tidyverse/2018/readr-1.3.1/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/readr-1.3.1/index.markdown rename to content/blog/ported/tidyverse/2018/readr-1.3.1/index.markdown diff --git a/content/blog/tidyverse/2018/readr-1.3.1/readr-1-3-1-sq.jpg b/content/blog/ported/tidyverse/2018/readr-1.3.1/readr-1-3-1-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/readr-1.3.1/readr-1-3-1-sq.jpg rename to content/blog/ported/tidyverse/2018/readr-1.3.1/readr-1-3-1-sq.jpg diff --git a/content/blog/tidyverse/2018/readr-1.3.1/readr-1-3-1-wd.jpg b/content/blog/ported/tidyverse/2018/readr-1.3.1/readr-1-3-1-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/readr-1.3.1/readr-1-3-1-wd.jpg rename to content/blog/ported/tidyverse/2018/readr-1.3.1/readr-1-3-1-wd.jpg diff --git a/content/blog/tidyverse/2018/readr-1.3.1/readr-colors.png b/content/blog/ported/tidyverse/2018/readr-1.3.1/readr-colors.png similarity index 100% rename from content/blog/tidyverse/2018/readr-1.3.1/readr-colors.png rename to content/blog/ported/tidyverse/2018/readr-1.3.1/readr-colors.png diff --git a/content/blog/tidyverse/2018/readxl-1-1-0/index.Rmd b/content/blog/ported/tidyverse/2018/readxl-1-1-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/readxl-1-1-0/index.Rmd rename to content/blog/ported/tidyverse/2018/readxl-1-1-0/index.Rmd diff --git a/content/blog/tidyverse/2018/readxl-1-1-0/index.html b/content/blog/ported/tidyverse/2018/readxl-1-1-0/index.html similarity index 100% rename from content/blog/tidyverse/2018/readxl-1-1-0/index.html rename to content/blog/ported/tidyverse/2018/readxl-1-1-0/index.html diff --git a/content/blog/tidyverse/2018/readxl-1-1-0/readxl-1-1-0-sq.jpg b/content/blog/ported/tidyverse/2018/readxl-1-1-0/readxl-1-1-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/readxl-1-1-0/readxl-1-1-0-sq.jpg rename to content/blog/ported/tidyverse/2018/readxl-1-1-0/readxl-1-1-0-sq.jpg diff --git a/content/blog/tidyverse/2018/readxl-1-1-0/readxl-1-1-0-wd.jpg b/content/blog/ported/tidyverse/2018/readxl-1-1-0/readxl-1-1-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/readxl-1-1-0/readxl-1-1-0-wd.jpg rename to content/blog/ported/tidyverse/2018/readxl-1-1-0/readxl-1-1-0-wd.jpg diff --git a/content/blog/tidyverse/2018/readxl-1-2-0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/readxl-1-2-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/readxl-1-2-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/readxl-1-2-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/readxl-1-2-0/index.markdown b/content/blog/ported/tidyverse/2018/readxl-1-2-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/readxl-1-2-0/index.markdown rename to content/blog/ported/tidyverse/2018/readxl-1-2-0/index.markdown diff --git a/content/blog/tidyverse/2018/readxl-1-2-0/readxl-1-2-0-sq.jpg b/content/blog/ported/tidyverse/2018/readxl-1-2-0/readxl-1-2-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/readxl-1-2-0/readxl-1-2-0-sq.jpg rename to content/blog/ported/tidyverse/2018/readxl-1-2-0/readxl-1-2-0-sq.jpg diff --git a/content/blog/tidyverse/2018/readxl-1-2-0/readxl-1-2-0-wd.jpg b/content/blog/ported/tidyverse/2018/readxl-1-2-0/readxl-1-2-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/readxl-1-2-0/readxl-1-2-0-wd.jpg rename to content/blog/ported/tidyverse/2018/readxl-1-2-0/readxl-1-2-0-wd.jpg diff --git a/content/blog/tidyverse/2018/rlang-0-3-0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/rlang-0-3-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/rlang-0-3-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/rlang-0-3-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/rlang-0-3-0/index.markdown b/content/blog/ported/tidyverse/2018/rlang-0-3-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/rlang-0-3-0/index.markdown rename to content/blog/ported/tidyverse/2018/rlang-0-3-0/index.markdown diff --git a/content/blog/tidyverse/2018/rlang-0-3-0/rlang-0-3-0-sq.jpg b/content/blog/ported/tidyverse/2018/rlang-0-3-0/rlang-0-3-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/rlang-0-3-0/rlang-0-3-0-sq.jpg rename to content/blog/ported/tidyverse/2018/rlang-0-3-0/rlang-0-3-0-sq.jpg diff --git a/content/blog/tidyverse/2018/rlang-0-3-0/rlang-0-3-0-wd.jpg b/content/blog/ported/tidyverse/2018/rlang-0-3-0/rlang-0-3-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/rlang-0-3-0/rlang-0-3-0-wd.jpg rename to content/blog/ported/tidyverse/2018/rlang-0-3-0/rlang-0-3-0-wd.jpg diff --git a/content/blog/tidyverse/2018/rlang-0.2.0/index.Rmd b/content/blog/ported/tidyverse/2018/rlang-0.2.0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/rlang-0.2.0/index.Rmd rename to content/blog/ported/tidyverse/2018/rlang-0.2.0/index.Rmd diff --git a/content/blog/tidyverse/2018/rlang-0.2.0/index.html b/content/blog/ported/tidyverse/2018/rlang-0.2.0/index.html similarity index 100% rename from content/blog/tidyverse/2018/rlang-0.2.0/index.html rename to content/blog/ported/tidyverse/2018/rlang-0.2.0/index.html diff --git a/content/blog/tidyverse/2018/rlang-0.2.0/rlang-0.2.0-sq.jpg b/content/blog/ported/tidyverse/2018/rlang-0.2.0/rlang-0.2.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/rlang-0.2.0/rlang-0.2.0-sq.jpg rename to content/blog/ported/tidyverse/2018/rlang-0.2.0/rlang-0.2.0-sq.jpg diff --git a/content/blog/tidyverse/2018/rlang-0.2.0/rlang-0.2.0-wd.jpg b/content/blog/ported/tidyverse/2018/rlang-0.2.0/rlang-0.2.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/rlang-0.2.0/rlang-0.2.0-wd.jpg rename to content/blog/ported/tidyverse/2018/rlang-0.2.0/rlang-0.2.0-wd.jpg diff --git a/content/blog/tidyverse/2018/roxygen2-6-1-0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/roxygen2-6-1-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/roxygen2-6-1-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/roxygen2-6-1-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/roxygen2-6-1-0/index.markdown b/content/blog/ported/tidyverse/2018/roxygen2-6-1-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/roxygen2-6-1-0/index.markdown rename to content/blog/ported/tidyverse/2018/roxygen2-6-1-0/index.markdown diff --git a/content/blog/tidyverse/2018/roxygen2-6-1-0/roxygen2-6-1-0-sq.jpg b/content/blog/ported/tidyverse/2018/roxygen2-6-1-0/roxygen2-6-1-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/roxygen2-6-1-0/roxygen2-6-1-0-sq.jpg rename to content/blog/ported/tidyverse/2018/roxygen2-6-1-0/roxygen2-6-1-0-sq.jpg diff --git a/content/blog/tidyverse/2018/roxygen2-6-1-0/roxygen2-6-1-0-wd.jpg b/content/blog/ported/tidyverse/2018/roxygen2-6-1-0/roxygen2-6-1-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/roxygen2-6-1-0/roxygen2-6-1-0-wd.jpg rename to content/blog/ported/tidyverse/2018/roxygen2-6-1-0/roxygen2-6-1-0-wd.jpg diff --git a/content/blog/tidyverse/2018/scales-1-0-0/index.Rmarkdown b/content/blog/ported/tidyverse/2018/scales-1-0-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/scales-1-0-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/scales-1-0-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/scales-1-0-0/index.markdown b/content/blog/ported/tidyverse/2018/scales-1-0-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/scales-1-0-0/index.markdown rename to content/blog/ported/tidyverse/2018/scales-1-0-0/index.markdown diff --git a/content/blog/tidyverse/2018/scales-1-0-0/logbreaks-1.png b/content/blog/ported/tidyverse/2018/scales-1-0-0/logbreaks-1.png similarity index 100% rename from content/blog/tidyverse/2018/scales-1-0-0/logbreaks-1.png rename to content/blog/ported/tidyverse/2018/scales-1-0-0/logbreaks-1.png diff --git a/content/blog/tidyverse/2018/scales-1-0-0/scales-1-0-0-sq.jpg b/content/blog/ported/tidyverse/2018/scales-1-0-0/scales-1-0-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/scales-1-0-0/scales-1-0-0-sq.jpg rename to content/blog/ported/tidyverse/2018/scales-1-0-0/scales-1-0-0-sq.jpg diff --git a/content/blog/tidyverse/2018/scales-1-0-0/scales-1-0-0-wd.jpg b/content/blog/ported/tidyverse/2018/scales-1-0-0/scales-1-0-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/scales-1-0-0/scales-1-0-0-wd.jpg rename to content/blog/ported/tidyverse/2018/scales-1-0-0/scales-1-0-0-wd.jpg diff --git a/content/blog/tidyverse/2018/stringr-1-3-0/index.Rmd b/content/blog/ported/tidyverse/2018/stringr-1-3-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/stringr-1-3-0/index.Rmd rename to content/blog/ported/tidyverse/2018/stringr-1-3-0/index.Rmd diff --git a/content/blog/tidyverse/2018/stringr-1-3-0/index.html b/content/blog/ported/tidyverse/2018/stringr-1-3-0/index.html similarity index 100% rename from content/blog/tidyverse/2018/stringr-1-3-0/index.html rename to content/blog/ported/tidyverse/2018/stringr-1-3-0/index.html diff --git a/content/blog/tidyverse/2018/stringr-1-3-0/stringr-1-3-0-sq.jpg b/content/blog/ported/tidyverse/2018/stringr-1-3-0/stringr-1-3-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/stringr-1-3-0/stringr-1-3-0-sq.jpg rename to content/blog/ported/tidyverse/2018/stringr-1-3-0/stringr-1-3-0-sq.jpg diff --git a/content/blog/tidyverse/2018/stringr-1-3-0/stringr-1-3-0-wd.jpg b/content/blog/ported/tidyverse/2018/stringr-1-3-0/stringr-1-3-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/stringr-1-3-0/stringr-1-3-0-wd.jpg rename to content/blog/ported/tidyverse/2018/stringr-1-3-0/stringr-1-3-0-wd.jpg diff --git a/content/blog/tidyverse/2018/textrecipes-0-0-1/index.Rmarkdown b/content/blog/ported/tidyverse/2018/textrecipes-0-0-1/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/textrecipes-0-0-1/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/textrecipes-0-0-1/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/textrecipes-0-0-1/index.markdown b/content/blog/ported/tidyverse/2018/textrecipes-0-0-1/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/textrecipes-0-0-1/index.markdown rename to content/blog/ported/tidyverse/2018/textrecipes-0-0-1/index.markdown diff --git a/content/blog/tidyverse/2018/textrecipes-0-0-1/textrecipes-0-0-1-sq.jpg b/content/blog/ported/tidyverse/2018/textrecipes-0-0-1/textrecipes-0-0-1-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/textrecipes-0-0-1/textrecipes-0-0-1-sq.jpg rename to content/blog/ported/tidyverse/2018/textrecipes-0-0-1/textrecipes-0-0-1-sq.jpg diff --git a/content/blog/tidyverse/2018/textrecipes-0-0-1/textrecipes-0-0-1-wd.jpg b/content/blog/ported/tidyverse/2018/textrecipes-0-0-1/textrecipes-0-0-1-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/textrecipes-0-0-1/textrecipes-0-0-1-wd.jpg rename to content/blog/ported/tidyverse/2018/textrecipes-0-0-1/textrecipes-0-0-1-wd.jpg diff --git a/content/blog/tidyverse/2018/tibble-1-4-1/index.Rmd b/content/blog/ported/tidyverse/2018/tibble-1-4-1/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-1/index.Rmd rename to content/blog/ported/tidyverse/2018/tibble-1-4-1/index.Rmd diff --git a/content/blog/tidyverse/2018/tibble-1-4-1/index.html b/content/blog/ported/tidyverse/2018/tibble-1-4-1/index.html similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-1/index.html rename to content/blog/ported/tidyverse/2018/tibble-1-4-1/index.html diff --git a/content/blog/tidyverse/2018/tibble-1-4-1/screenshot.png b/content/blog/ported/tidyverse/2018/tibble-1-4-1/screenshot.png similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-1/screenshot.png rename to content/blog/ported/tidyverse/2018/tibble-1-4-1/screenshot.png diff --git a/content/blog/tidyverse/2018/tibble-1-4-1/tibble-1-4-1-sq.jpg b/content/blog/ported/tidyverse/2018/tibble-1-4-1/tibble-1-4-1-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-1/tibble-1-4-1-sq.jpg rename to content/blog/ported/tidyverse/2018/tibble-1-4-1/tibble-1-4-1-sq.jpg diff --git a/content/blog/tidyverse/2018/tibble-1-4-1/tibble-1-4-1-wd.jpg b/content/blog/ported/tidyverse/2018/tibble-1-4-1/tibble-1-4-1-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-1/tibble-1-4-1-wd.jpg rename to content/blog/ported/tidyverse/2018/tibble-1-4-1/tibble-1-4-1-wd.jpg diff --git a/content/blog/tidyverse/2018/tibble-1-4-2/bold.png b/content/blog/ported/tidyverse/2018/tibble-1-4-2/bold.png similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-2/bold.png rename to content/blog/ported/tidyverse/2018/tibble-1-4-2/bold.png diff --git a/content/blog/tidyverse/2018/tibble-1-4-2/default.png b/content/blog/ported/tidyverse/2018/tibble-1-4-2/default.png similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-2/default.png rename to content/blog/ported/tidyverse/2018/tibble-1-4-2/default.png diff --git a/content/blog/tidyverse/2018/tibble-1-4-2/index.Rmd b/content/blog/ported/tidyverse/2018/tibble-1-4-2/index.Rmd similarity index 91% rename from content/blog/tidyverse/2018/tibble-1-4-2/index.Rmd rename to content/blog/ported/tidyverse/2018/tibble-1-4-2/index.Rmd index db9045ca7..9278f91bc 100644 --- a/content/blog/tidyverse/2018/tibble-1-4-2/index.Rmd +++ b/content/blog/ported/tidyverse/2018/tibble-1-4-2/index.Rmd @@ -30,7 +30,7 @@ library(tibble) knitr::opts_chunk$set(collapse = TRUE, comment = "#>") ``` -We’re excited to announce version 1.4.2 of the *tibble* package, a minor update focusing mostly on display and performance. This is a small release designed to address the biggest issues introduced in [version 1.4.1](/blog/tidyverse/2018/tibble-1-4-1/). We've introduced a number of option to give you greater control over the appearance, and tweaked the default to work better for more people. (The option names start with `pillar`, because that's the package that is actually responsible for printing; the new options are available with *pillar* 1.1.0 which will be installed automatically when you install or upgrade *tibble*.) +We’re excited to announce version 1.4.2 of the *tibble* package, a minor update focusing mostly on display and performance. This is a small release designed to address the biggest issues introduced in [version 1.4.1](/blog/2018-01-03_tibble-1-4-1/). We've introduced a number of option to give you greater control over the appearance, and tweaked the default to work better for more people. (The option names start with `pillar`, because that's the package that is actually responsible for printing; the new options are available with *pillar* 1.1.0 which will be installed automatically when you install or upgrade *tibble*.) In addition, tibbles are now displayed faster, even very wide ones. The subsetting performance has also improved. There are some other small improvements and bug fixes: please see the [release notes](https://github.com/tidyverse/tibble/releases/tag/v1.4.2) for a complete list. Use the [issue tracker](https://github.com/tidyverse/tibble/issues) to submit bugs or suggest ideas, your contributions are always welcome. diff --git a/content/blog/tidyverse/2018/tibble-1-4-2/index.html b/content/blog/ported/tidyverse/2018/tibble-1-4-2/index.html similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-2/index.html rename to content/blog/ported/tidyverse/2018/tibble-1-4-2/index.html diff --git a/content/blog/tidyverse/2018/tibble-1-4-2/min-title-chars-10.png b/content/blog/ported/tidyverse/2018/tibble-1-4-2/min-title-chars-10.png similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-2/min-title-chars-10.png rename to content/blog/ported/tidyverse/2018/tibble-1-4-2/min-title-chars-10.png diff --git a/content/blog/tidyverse/2018/tibble-1-4-2/neg.png b/content/blog/ported/tidyverse/2018/tibble-1-4-2/neg.png similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-2/neg.png rename to content/blog/ported/tidyverse/2018/tibble-1-4-2/neg.png diff --git a/content/blog/tidyverse/2018/tibble-1-4-2/sigfig-5.png b/content/blog/ported/tidyverse/2018/tibble-1-4-2/sigfig-5.png similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-2/sigfig-5.png rename to content/blog/ported/tidyverse/2018/tibble-1-4-2/sigfig-5.png diff --git a/content/blog/tidyverse/2018/tibble-1-4-2/subtle.png b/content/blog/ported/tidyverse/2018/tibble-1-4-2/subtle.png similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-2/subtle.png rename to content/blog/ported/tidyverse/2018/tibble-1-4-2/subtle.png diff --git a/content/blog/tidyverse/2018/tibble-1-4-2/tibble-1-4-2-sq.jpg b/content/blog/ported/tidyverse/2018/tibble-1-4-2/tibble-1-4-2-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-2/tibble-1-4-2-sq.jpg rename to content/blog/ported/tidyverse/2018/tibble-1-4-2/tibble-1-4-2-sq.jpg diff --git a/content/blog/tidyverse/2018/tibble-1-4-2/tibble-1-4-2-wd.jpg b/content/blog/ported/tidyverse/2018/tibble-1-4-2/tibble-1-4-2-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/tibble-1-4-2/tibble-1-4-2-wd.jpg rename to content/blog/ported/tidyverse/2018/tibble-1-4-2/tibble-1-4-2-wd.jpg diff --git a/content/blog/tidyverse/2018/tibble-2.0.0-pre-announce/index.Rmarkdown b/content/blog/ported/tidyverse/2018/tibble-2.0.0-pre-announce/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/tibble-2.0.0-pre-announce/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/tibble-2.0.0-pre-announce/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/tibble-2.0.0-pre-announce/index.markdown b/content/blog/ported/tidyverse/2018/tibble-2.0.0-pre-announce/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/tibble-2.0.0-pre-announce/index.markdown rename to content/blog/ported/tidyverse/2018/tibble-2.0.0-pre-announce/index.markdown diff --git a/content/blog/tidyverse/2018/tibble-2.0.0-pre-announce/tibble-2.0.0-pre-announce-sq.jpg b/content/blog/ported/tidyverse/2018/tibble-2.0.0-pre-announce/tibble-2.0.0-pre-announce-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/tibble-2.0.0-pre-announce/tibble-2.0.0-pre-announce-sq.jpg rename to content/blog/ported/tidyverse/2018/tibble-2.0.0-pre-announce/tibble-2.0.0-pre-announce-sq.jpg diff --git a/content/blog/tidyverse/2018/tibble-2.0.0-pre-announce/tibble-2.0.0-pre-announce-wd.jpg b/content/blog/ported/tidyverse/2018/tibble-2.0.0-pre-announce/tibble-2.0.0-pre-announce-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/tibble-2.0.0-pre-announce/tibble-2.0.0-pre-announce-wd.jpg rename to content/blog/ported/tidyverse/2018/tibble-2.0.0-pre-announce/tibble-2.0.0-pre-announce-wd.jpg diff --git a/content/blog/tidyverse/2018/tidymodels-updates/index.Rmarkdown b/content/blog/ported/tidyverse/2018/tidymodels-updates/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/tidymodels-updates/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/tidymodels-updates/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/tidymodels-updates/index.markdown b/content/blog/ported/tidyverse/2018/tidymodels-updates/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/tidymodels-updates/index.markdown rename to content/blog/ported/tidyverse/2018/tidymodels-updates/index.markdown diff --git a/content/blog/tidyverse/2018/tidymodels-updates/tidymodels-update-nov-18-sq.jpg b/content/blog/ported/tidyverse/2018/tidymodels-updates/tidymodels-update-nov-18-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/tidymodels-updates/tidymodels-update-nov-18-sq.jpg rename to content/blog/ported/tidyverse/2018/tidymodels-updates/tidymodels-update-nov-18-sq.jpg diff --git a/content/blog/tidyverse/2018/tidymodels-updates/tidymodels-update-nov-18-wd.jpg b/content/blog/ported/tidyverse/2018/tidymodels-updates/tidymodels-update-nov-18-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/tidymodels-updates/tidymodels-update-nov-18-wd.jpg rename to content/blog/ported/tidyverse/2018/tidymodels-updates/tidymodels-update-nov-18-wd.jpg diff --git a/content/blog/tidyverse/2018/tidymodels-updates/unnamed-chunk-4-1.png b/content/blog/ported/tidyverse/2018/tidymodels-updates/unnamed-chunk-4-1.png similarity index 100% rename from content/blog/tidyverse/2018/tidymodels-updates/unnamed-chunk-4-1.png rename to content/blog/ported/tidyverse/2018/tidymodels-updates/unnamed-chunk-4-1.png diff --git a/content/blog/tidyverse/2018/tidymodels/index.Rmarkdown b/content/blog/ported/tidyverse/2018/tidymodels/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/tidymodels/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/tidymodels/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/tidymodels/index.markdown b/content/blog/ported/tidyverse/2018/tidymodels/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/tidymodels/index.markdown rename to content/blog/ported/tidyverse/2018/tidymodels/index.markdown diff --git a/content/blog/tidyverse/2018/tidymodels/tidymodels-sq.png b/content/blog/ported/tidyverse/2018/tidymodels/tidymodels-sq.png similarity index 100% rename from content/blog/tidyverse/2018/tidymodels/tidymodels-sq.png rename to content/blog/ported/tidyverse/2018/tidymodels/tidymodels-sq.png diff --git a/content/blog/tidyverse/2018/tidymodels/tidymodels-wd.png b/content/blog/ported/tidyverse/2018/tidymodels/tidymodels-wd.png similarity index 100% rename from content/blog/tidyverse/2018/tidymodels/tidymodels-wd.png rename to content/blog/ported/tidyverse/2018/tidymodels/tidymodels-wd.png diff --git a/content/blog/tidyverse/2018/tidyr-0-8-0/index.Rmd b/content/blog/ported/tidyverse/2018/tidyr-0-8-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/tidyr-0-8-0/index.Rmd rename to content/blog/ported/tidyverse/2018/tidyr-0-8-0/index.Rmd diff --git a/content/blog/tidyverse/2018/tidyr-0-8-0/index.html b/content/blog/ported/tidyverse/2018/tidyr-0-8-0/index.html similarity index 100% rename from content/blog/tidyverse/2018/tidyr-0-8-0/index.html rename to content/blog/ported/tidyverse/2018/tidyr-0-8-0/index.html diff --git a/content/blog/tidyverse/2018/tidyr-0-8-0/tidyr-0-8-0-sq.jpg b/content/blog/ported/tidyverse/2018/tidyr-0-8-0/tidyr-0-8-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/tidyr-0-8-0/tidyr-0-8-0-sq.jpg rename to content/blog/ported/tidyverse/2018/tidyr-0-8-0/tidyr-0-8-0-sq.jpg diff --git a/content/blog/tidyverse/2018/tidyr-0-8-0/tidyr-0-8-0-wd.jpg b/content/blog/ported/tidyverse/2018/tidyr-0-8-0/tidyr-0-8-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/tidyr-0-8-0/tidyr-0-8-0-wd.jpg rename to content/blog/ported/tidyverse/2018/tidyr-0-8-0/tidyr-0-8-0-wd.jpg diff --git a/content/blog/tidyverse/2018/tidyverse-developer-day-2019/index.Rmarkdown b/content/blog/ported/tidyverse/2018/tidyverse-developer-day-2019/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-developer-day-2019/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/tidyverse-developer-day-2019/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/tidyverse-developer-day-2019/index.markdown b/content/blog/ported/tidyverse/2018/tidyverse-developer-day-2019/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-developer-day-2019/index.markdown rename to content/blog/ported/tidyverse/2018/tidyverse-developer-day-2019/index.markdown diff --git a/content/blog/tidyverse/2018/tidyverse-developer-day-2019/tidyverse-developer-day-2019-sq.jpg b/content/blog/ported/tidyverse/2018/tidyverse-developer-day-2019/tidyverse-developer-day-2019-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-developer-day-2019/tidyverse-developer-day-2019-sq.jpg rename to content/blog/ported/tidyverse/2018/tidyverse-developer-day-2019/tidyverse-developer-day-2019-sq.jpg diff --git a/content/blog/tidyverse/2018/tidyverse-developer-day-2019/tidyverse-developer-day-2019-wd.jpg b/content/blog/ported/tidyverse/2018/tidyverse-developer-day-2019/tidyverse-developer-day-2019-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-developer-day-2019/tidyverse-developer-day-2019-wd.jpg rename to content/blog/ported/tidyverse/2018/tidyverse-developer-day-2019/tidyverse-developer-day-2019-wd.jpg diff --git a/content/blog/tidyverse/2018/tidyverse-developer-day/index.Rmarkdown b/content/blog/ported/tidyverse/2018/tidyverse-developer-day/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-developer-day/index.Rmarkdown rename to content/blog/ported/tidyverse/2018/tidyverse-developer-day/index.Rmarkdown diff --git a/content/blog/tidyverse/2018/tidyverse-developer-day/index.markdown b/content/blog/ported/tidyverse/2018/tidyverse-developer-day/index.markdown similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-developer-day/index.markdown rename to content/blog/ported/tidyverse/2018/tidyverse-developer-day/index.markdown diff --git a/content/blog/tidyverse/2018/tidyverse-developer-day/tidyverse-developer-day-sq.jpg b/content/blog/ported/tidyverse/2018/tidyverse-developer-day/tidyverse-developer-day-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-developer-day/tidyverse-developer-day-sq.jpg rename to content/blog/ported/tidyverse/2018/tidyverse-developer-day/tidyverse-developer-day-sq.jpg diff --git a/content/blog/tidyverse/2018/tidyverse-developer-day/tidyverse-developer-day-wd.jpg b/content/blog/ported/tidyverse/2018/tidyverse-developer-day/tidyverse-developer-day-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-developer-day/tidyverse-developer-day-wd.jpg rename to content/blog/ported/tidyverse/2018/tidyverse-developer-day/tidyverse-developer-day-wd.jpg diff --git a/content/blog/tidyverse/2018/tidyverse-not-for-packages/index.Rmd b/content/blog/ported/tidyverse/2018/tidyverse-not-for-packages/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-not-for-packages/index.Rmd rename to content/blog/ported/tidyverse/2018/tidyverse-not-for-packages/index.Rmd diff --git a/content/blog/tidyverse/2018/tidyverse-not-for-packages/index.html b/content/blog/ported/tidyverse/2018/tidyverse-not-for-packages/index.html similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-not-for-packages/index.html rename to content/blog/ported/tidyverse/2018/tidyverse-not-for-packages/index.html diff --git a/content/blog/tidyverse/2018/tidyverse-not-for-packages/tidyverse-not-for-packages-sq.jpg b/content/blog/ported/tidyverse/2018/tidyverse-not-for-packages/tidyverse-not-for-packages-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-not-for-packages/tidyverse-not-for-packages-sq.jpg rename to content/blog/ported/tidyverse/2018/tidyverse-not-for-packages/tidyverse-not-for-packages-sq.jpg diff --git a/content/blog/tidyverse/2018/tidyverse-not-for-packages/tidyverse-not-for-packages-wd.jpg b/content/blog/ported/tidyverse/2018/tidyverse-not-for-packages/tidyverse-not-for-packages-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/tidyverse-not-for-packages/tidyverse-not-for-packages-wd.jpg rename to content/blog/ported/tidyverse/2018/tidyverse-not-for-packages/tidyverse-not-for-packages-wd.jpg diff --git a/content/blog/tidyverse/2018/upvoting-issues/index.Rmd b/content/blog/ported/tidyverse/2018/upvoting-issues/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/upvoting-issues/index.Rmd rename to content/blog/ported/tidyverse/2018/upvoting-issues/index.Rmd diff --git a/content/blog/tidyverse/2018/upvoting-issues/index.html b/content/blog/ported/tidyverse/2018/upvoting-issues/index.html similarity index 100% rename from content/blog/tidyverse/2018/upvoting-issues/index.html rename to content/blog/ported/tidyverse/2018/upvoting-issues/index.html diff --git a/content/blog/tidyverse/2018/upvoting-issues/pkgdown_comment.gif b/content/blog/ported/tidyverse/2018/upvoting-issues/pkgdown_comment.gif similarity index 100% rename from content/blog/tidyverse/2018/upvoting-issues/pkgdown_comment.gif rename to content/blog/ported/tidyverse/2018/upvoting-issues/pkgdown_comment.gif diff --git a/content/blog/tidyverse/2018/upvoting-issues/pkgdown_upvoting.gif b/content/blog/ported/tidyverse/2018/upvoting-issues/pkgdown_upvoting.gif similarity index 100% rename from content/blog/tidyverse/2018/upvoting-issues/pkgdown_upvoting.gif rename to content/blog/ported/tidyverse/2018/upvoting-issues/pkgdown_upvoting.gif diff --git a/content/blog/tidyverse/2018/upvoting-issues/reaction_types.png b/content/blog/ported/tidyverse/2018/upvoting-issues/reaction_types.png similarity index 100% rename from content/blog/tidyverse/2018/upvoting-issues/reaction_types.png rename to content/blog/ported/tidyverse/2018/upvoting-issues/reaction_types.png diff --git a/content/blog/tidyverse/2018/upvoting-issues/tidyverse_issue_reactions.png b/content/blog/ported/tidyverse/2018/upvoting-issues/tidyverse_issue_reactions.png similarity index 100% rename from content/blog/tidyverse/2018/upvoting-issues/tidyverse_issue_reactions.png rename to content/blog/ported/tidyverse/2018/upvoting-issues/tidyverse_issue_reactions.png diff --git a/content/blog/tidyverse/2018/upvoting-issues/upvoting-issues-sq.jpg b/content/blog/ported/tidyverse/2018/upvoting-issues/upvoting-issues-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/upvoting-issues/upvoting-issues-sq.jpg rename to content/blog/ported/tidyverse/2018/upvoting-issues/upvoting-issues-sq.jpg diff --git a/content/blog/tidyverse/2018/upvoting-issues/upvoting-issues-wd.jpg b/content/blog/ported/tidyverse/2018/upvoting-issues/upvoting-issues-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/upvoting-issues/upvoting-issues-wd.jpg rename to content/blog/ported/tidyverse/2018/upvoting-issues/upvoting-issues-wd.jpg diff --git a/content/blog/tidyverse/2018/usethis-1-3-0/index.Rmd b/content/blog/ported/tidyverse/2018/usethis-1-3-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2018/usethis-1-3-0/index.Rmd rename to content/blog/ported/tidyverse/2018/usethis-1-3-0/index.Rmd diff --git a/content/blog/tidyverse/2018/usethis-1-3-0/index.html b/content/blog/ported/tidyverse/2018/usethis-1-3-0/index.html similarity index 100% rename from content/blog/tidyverse/2018/usethis-1-3-0/index.html rename to content/blog/ported/tidyverse/2018/usethis-1-3-0/index.html diff --git a/content/blog/tidyverse/2018/usethis-1-3-0/usethis-1-3-0-sq.jpg b/content/blog/ported/tidyverse/2018/usethis-1-3-0/usethis-1-3-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2018/usethis-1-3-0/usethis-1-3-0-sq.jpg rename to content/blog/ported/tidyverse/2018/usethis-1-3-0/usethis-1-3-0-sq.jpg diff --git a/content/blog/tidyverse/2018/usethis-1-3-0/usethis-1-3-0-wd.jpg b/content/blog/ported/tidyverse/2018/usethis-1-3-0/usethis-1-3-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2018/usethis-1-3-0/usethis-1-3-0-wd.jpg rename to content/blog/ported/tidyverse/2018/usethis-1-3-0/usethis-1-3-0-wd.jpg diff --git a/content/blog/tidyverse/2019/26-ragg-0-1-0/index.Rmarkdown b/content/blog/ported/tidyverse/2019/26-ragg-0-1-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/26-ragg-0-1-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/26-ragg-0-1-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/26-ragg-0-1-0/index.markdown b/content/blog/ported/tidyverse/2019/26-ragg-0-1-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/26-ragg-0-1-0/index.markdown rename to content/blog/ported/tidyverse/2019/26-ragg-0-1-0/index.markdown diff --git a/content/blog/tidyverse/2019/26-ragg-0-1-0/ragg-0-1-0-sq.jpg b/content/blog/ported/tidyverse/2019/26-ragg-0-1-0/ragg-0-1-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/26-ragg-0-1-0/ragg-0-1-0-sq.jpg rename to content/blog/ported/tidyverse/2019/26-ragg-0-1-0/ragg-0-1-0-sq.jpg diff --git a/content/blog/tidyverse/2019/26-ragg-0-1-0/ragg-0-1-0-wd.jpg b/content/blog/ported/tidyverse/2019/26-ragg-0-1-0/ragg-0-1-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/26-ragg-0-1-0/ragg-0-1-0-wd.jpg rename to content/blog/ported/tidyverse/2019/26-ragg-0-1-0/ragg-0-1-0-wd.jpg diff --git a/content/blog/tidyverse/2019/26-ragg-0-1-0/unnamed-chunk-1-1.png b/content/blog/ported/tidyverse/2019/26-ragg-0-1-0/unnamed-chunk-1-1.png similarity index 100% rename from content/blog/tidyverse/2019/26-ragg-0-1-0/unnamed-chunk-1-1.png rename to content/blog/ported/tidyverse/2019/26-ragg-0-1-0/unnamed-chunk-1-1.png diff --git a/content/blog/tidyverse/2019/26-ragg-0-1-0/unnamed-chunk-2-1.png b/content/blog/ported/tidyverse/2019/26-ragg-0-1-0/unnamed-chunk-2-1.png similarity index 100% rename from content/blog/tidyverse/2019/26-ragg-0-1-0/unnamed-chunk-2-1.png rename to content/blog/ported/tidyverse/2019/26-ragg-0-1-0/unnamed-chunk-2-1.png diff --git a/content/blog/tidyverse/2019/bigrquery-1-1-0/bigrquery-1-1-0-sq.jpg b/content/blog/ported/tidyverse/2019/bigrquery-1-1-0/bigrquery-1-1-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/bigrquery-1-1-0/bigrquery-1-1-0-sq.jpg rename to content/blog/ported/tidyverse/2019/bigrquery-1-1-0/bigrquery-1-1-0-sq.jpg diff --git a/content/blog/tidyverse/2019/bigrquery-1-1-0/bigrquery-1-1-0-wd.jpg b/content/blog/ported/tidyverse/2019/bigrquery-1-1-0/bigrquery-1-1-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/bigrquery-1-1-0/bigrquery-1-1-0-wd.jpg rename to content/blog/ported/tidyverse/2019/bigrquery-1-1-0/bigrquery-1-1-0-wd.jpg diff --git a/content/blog/tidyverse/2019/bigrquery-1-1-0/index.Rmarkdown b/content/blog/ported/tidyverse/2019/bigrquery-1-1-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/bigrquery-1-1-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/bigrquery-1-1-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/bigrquery-1-1-0/index.markdown b/content/blog/ported/tidyverse/2019/bigrquery-1-1-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/bigrquery-1-1-0/index.markdown rename to content/blog/ported/tidyverse/2019/bigrquery-1-1-0/index.markdown diff --git a/content/blog/tidyverse/2019/callr-3-3-0/callr-3.3.0-sq.jpg b/content/blog/ported/tidyverse/2019/callr-3-3-0/callr-3.3.0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/callr-3-3-0/callr-3.3.0-sq.jpg rename to content/blog/ported/tidyverse/2019/callr-3-3-0/callr-3.3.0-sq.jpg diff --git a/content/blog/tidyverse/2019/callr-3-3-0/callr-3.3.0-wd.jpg b/content/blog/ported/tidyverse/2019/callr-3-3-0/callr-3.3.0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/callr-3-3-0/callr-3.3.0-wd.jpg rename to content/blog/ported/tidyverse/2019/callr-3-3-0/callr-3.3.0-wd.jpg diff --git a/content/blog/tidyverse/2019/callr-3-3-0/index.Rmd b/content/blog/ported/tidyverse/2019/callr-3-3-0/index.Rmd similarity index 100% rename from content/blog/tidyverse/2019/callr-3-3-0/index.Rmd rename to content/blog/ported/tidyverse/2019/callr-3-3-0/index.Rmd diff --git a/content/blog/tidyverse/2019/callr-3-3-0/index.html b/content/blog/ported/tidyverse/2019/callr-3-3-0/index.html similarity index 100% rename from content/blog/tidyverse/2019/callr-3-3-0/index.html rename to content/blog/ported/tidyverse/2019/callr-3-3-0/index.html diff --git a/content/blog/tidyverse/2019/callr-task-q/callr-task-q-sq.jpg b/content/blog/ported/tidyverse/2019/callr-task-q/callr-task-q-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/callr-task-q/callr-task-q-sq.jpg rename to content/blog/ported/tidyverse/2019/callr-task-q/callr-task-q-sq.jpg diff --git a/content/blog/tidyverse/2019/callr-task-q/callr-task-q-wd.jpg b/content/blog/ported/tidyverse/2019/callr-task-q/callr-task-q-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/callr-task-q/callr-task-q-wd.jpg rename to content/blog/ported/tidyverse/2019/callr-task-q/callr-task-q-wd.jpg diff --git a/content/blog/tidyverse/2019/callr-task-q/index.Rmd b/content/blog/ported/tidyverse/2019/callr-task-q/index.Rmd similarity index 100% rename from content/blog/tidyverse/2019/callr-task-q/index.Rmd rename to content/blog/ported/tidyverse/2019/callr-task-q/index.Rmd diff --git a/content/blog/tidyverse/2019/callr-task-q/index.html b/content/blog/ported/tidyverse/2019/callr-task-q/index.html similarity index 100% rename from content/blog/tidyverse/2019/callr-task-q/index.html rename to content/blog/ported/tidyverse/2019/callr-task-q/index.html diff --git a/content/blog/tidyverse/2019/dbplyr-1-3-0/dbplyr-1-3-0-sq.jpg b/content/blog/ported/tidyverse/2019/dbplyr-1-3-0/dbplyr-1-3-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/dbplyr-1-3-0/dbplyr-1-3-0-sq.jpg rename to content/blog/ported/tidyverse/2019/dbplyr-1-3-0/dbplyr-1-3-0-sq.jpg diff --git a/content/blog/tidyverse/2019/dbplyr-1-3-0/dbplyr-1-3-0-wd.jpg b/content/blog/ported/tidyverse/2019/dbplyr-1-3-0/dbplyr-1-3-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/dbplyr-1-3-0/dbplyr-1-3-0-wd.jpg rename to content/blog/ported/tidyverse/2019/dbplyr-1-3-0/dbplyr-1-3-0-wd.jpg diff --git a/content/blog/tidyverse/2019/dbplyr-1-3-0/index.Rmarkdown b/content/blog/ported/tidyverse/2019/dbplyr-1-3-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/dbplyr-1-3-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/dbplyr-1-3-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/dbplyr-1-3-0/index.markdown b/content/blog/ported/tidyverse/2019/dbplyr-1-3-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/dbplyr-1-3-0/index.markdown rename to content/blog/ported/tidyverse/2019/dbplyr-1-3-0/index.markdown diff --git a/content/blog/tidyverse/2019/dbplyr-1-4-0/dbplyr-1-4-0-sq.jpg b/content/blog/ported/tidyverse/2019/dbplyr-1-4-0/dbplyr-1-4-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/dbplyr-1-4-0/dbplyr-1-4-0-sq.jpg rename to content/blog/ported/tidyverse/2019/dbplyr-1-4-0/dbplyr-1-4-0-sq.jpg diff --git a/content/blog/tidyverse/2019/dbplyr-1-4-0/dbplyr-1-4-0-wd.jpg b/content/blog/ported/tidyverse/2019/dbplyr-1-4-0/dbplyr-1-4-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/dbplyr-1-4-0/dbplyr-1-4-0-wd.jpg rename to content/blog/ported/tidyverse/2019/dbplyr-1-4-0/dbplyr-1-4-0-wd.jpg diff --git a/content/blog/tidyverse/2019/dbplyr-1-4-0/index.Rmarkdown b/content/blog/ported/tidyverse/2019/dbplyr-1-4-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/dbplyr-1-4-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/dbplyr-1-4-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/dbplyr-1-4-0/index.markdown b/content/blog/ported/tidyverse/2019/dbplyr-1-4-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/dbplyr-1-4-0/index.markdown rename to content/blog/ported/tidyverse/2019/dbplyr-1-4-0/index.markdown diff --git a/content/blog/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-sq.jpg b/content/blog/ported/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-sq.jpg rename to content/blog/ported/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-sq.jpg diff --git a/content/blog/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-wd.jpg b/content/blog/ported/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-wd.jpg rename to content/blog/ported/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-wd.jpg diff --git a/content/blog/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-wd.jpg.original b/content/blog/ported/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-wd.jpg.original similarity index 100% rename from content/blog/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-wd.jpg.original rename to content/blog/ported/tidyverse/2019/devtools-2.2.1/devtools-2-2-1-wd.jpg.original diff --git a/content/blog/tidyverse/2019/devtools-2.2.1/index.Rmarkdown b/content/blog/ported/tidyverse/2019/devtools-2.2.1/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/devtools-2.2.1/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/devtools-2.2.1/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/devtools-2.2.1/index.markdown b/content/blog/ported/tidyverse/2019/devtools-2.2.1/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/devtools-2.2.1/index.markdown rename to content/blog/ported/tidyverse/2019/devtools-2.2.1/index.markdown diff --git a/content/blog/tidyverse/2019/devtools-2.2.1/sitrep.png b/content/blog/ported/tidyverse/2019/devtools-2.2.1/sitrep.png similarity index 100% rename from content/blog/tidyverse/2019/devtools-2.2.1/sitrep.png rename to content/blog/ported/tidyverse/2019/devtools-2.2.1/sitrep.png diff --git a/content/blog/tidyverse/2019/dials-0-0-3/dials-0-0-3-sq.jpg b/content/blog/ported/tidyverse/2019/dials-0-0-3/dials-0-0-3-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/dials-0-0-3/dials-0-0-3-sq.jpg rename to content/blog/ported/tidyverse/2019/dials-0-0-3/dials-0-0-3-sq.jpg diff --git a/content/blog/tidyverse/2019/dials-0-0-3/dials-0-0-3-wd.jpg b/content/blog/ported/tidyverse/2019/dials-0-0-3/dials-0-0-3-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/dials-0-0-3/dials-0-0-3-wd.jpg rename to content/blog/ported/tidyverse/2019/dials-0-0-3/dials-0-0-3-wd.jpg diff --git a/content/blog/tidyverse/2019/dials-0-0-3/index.Rmarkdown b/content/blog/ported/tidyverse/2019/dials-0-0-3/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/dials-0-0-3/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/dials-0-0-3/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/dials-0-0-3/index.markdown b/content/blog/ported/tidyverse/2019/dials-0-0-3/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/dials-0-0-3/index.markdown rename to content/blog/ported/tidyverse/2019/dials-0-0-3/index.markdown diff --git a/content/blog/tidyverse/2019/dials-0-0-3/svm-design-1.png b/content/blog/ported/tidyverse/2019/dials-0-0-3/svm-design-1.png similarity index 100% rename from content/blog/tidyverse/2019/dials-0-0-3/svm-design-1.png rename to content/blog/ported/tidyverse/2019/dials-0-0-3/svm-design-1.png diff --git a/content/blog/tidyverse/2019/discrim-0-01/discrim-0-0-1-sq.jpg b/content/blog/ported/tidyverse/2019/discrim-0-01/discrim-0-0-1-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/discrim-0-01/discrim-0-0-1-sq.jpg rename to content/blog/ported/tidyverse/2019/discrim-0-01/discrim-0-0-1-sq.jpg diff --git a/content/blog/tidyverse/2019/discrim-0-01/discrim-0-0-1-wd.jpg b/content/blog/ported/tidyverse/2019/discrim-0-01/discrim-0-0-1-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/discrim-0-01/discrim-0-0-1-wd.jpg rename to content/blog/ported/tidyverse/2019/discrim-0-01/discrim-0-0-1-wd.jpg diff --git a/content/blog/tidyverse/2019/discrim-0-01/grid-1-1.png b/content/blog/ported/tidyverse/2019/discrim-0-01/grid-1-1.png similarity index 100% rename from content/blog/tidyverse/2019/discrim-0-01/grid-1-1.png rename to content/blog/ported/tidyverse/2019/discrim-0-01/grid-1-1.png diff --git a/content/blog/tidyverse/2019/discrim-0-01/grid-res-1.png b/content/blog/ported/tidyverse/2019/discrim-0-01/grid-res-1.png similarity index 100% rename from content/blog/tidyverse/2019/discrim-0-01/grid-res-1.png rename to content/blog/ported/tidyverse/2019/discrim-0-01/grid-res-1.png diff --git a/content/blog/tidyverse/2019/discrim-0-01/index.Rmarkdown b/content/blog/ported/tidyverse/2019/discrim-0-01/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/discrim-0-01/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/discrim-0-01/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/discrim-0-01/index.markdown b/content/blog/ported/tidyverse/2019/discrim-0-01/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/discrim-0-01/index.markdown rename to content/blog/ported/tidyverse/2019/discrim-0-01/index.markdown diff --git a/content/blog/tidyverse/2019/discrim-0-01/rda-boundary-1.png b/content/blog/ported/tidyverse/2019/discrim-0-01/rda-boundary-1.png similarity index 100% rename from content/blog/tidyverse/2019/discrim-0-01/rda-boundary-1.png rename to content/blog/ported/tidyverse/2019/discrim-0-01/rda-boundary-1.png diff --git a/content/blog/tidyverse/2019/discrim-0-01/startup-1.png b/content/blog/ported/tidyverse/2019/discrim-0-01/startup-1.png similarity index 100% rename from content/blog/tidyverse/2019/discrim-0-01/startup-1.png rename to content/blog/ported/tidyverse/2019/discrim-0-01/startup-1.png diff --git a/content/blog/tidyverse/2019/dplyr-0-8-0/dplyr-0-8-0-sq.jpg b/content/blog/ported/tidyverse/2019/dplyr-0-8-0/dplyr-0-8-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-0/dplyr-0-8-0-sq.jpg rename to content/blog/ported/tidyverse/2019/dplyr-0-8-0/dplyr-0-8-0-sq.jpg diff --git a/content/blog/tidyverse/2019/dplyr-0-8-0/dplyr-0-8-0-wd.jpg b/content/blog/ported/tidyverse/2019/dplyr-0-8-0/dplyr-0-8-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-0/dplyr-0-8-0-wd.jpg rename to content/blog/ported/tidyverse/2019/dplyr-0-8-0/dplyr-0-8-0-wd.jpg diff --git a/content/blog/tidyverse/2019/dplyr-0-8-0/index.Rmarkdown b/content/blog/ported/tidyverse/2019/dplyr-0-8-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/dplyr-0-8-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/dplyr-0-8-0/index.markdown b/content/blog/ported/tidyverse/2019/dplyr-0-8-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-0/index.markdown rename to content/blog/ported/tidyverse/2019/dplyr-0-8-0/index.markdown diff --git a/content/blog/tidyverse/2019/dplyr-0-8-1/dplyr-0-8-1-sq.jpg b/content/blog/ported/tidyverse/2019/dplyr-0-8-1/dplyr-0-8-1-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-1/dplyr-0-8-1-sq.jpg rename to content/blog/ported/tidyverse/2019/dplyr-0-8-1/dplyr-0-8-1-sq.jpg diff --git a/content/blog/tidyverse/2019/dplyr-0-8-1/dplyr-0-8-1-wd.jpg b/content/blog/ported/tidyverse/2019/dplyr-0-8-1/dplyr-0-8-1-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-1/dplyr-0-8-1-wd.jpg rename to content/blog/ported/tidyverse/2019/dplyr-0-8-1/dplyr-0-8-1-wd.jpg diff --git a/content/blog/tidyverse/2019/dplyr-0-8-1/index.Rmarkdown b/content/blog/ported/tidyverse/2019/dplyr-0-8-1/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-1/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/dplyr-0-8-1/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/dplyr-0-8-1/index.markdown b/content/blog/ported/tidyverse/2019/dplyr-0-8-1/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-1/index.markdown rename to content/blog/ported/tidyverse/2019/dplyr-0-8-1/index.markdown diff --git a/content/blog/tidyverse/2019/dplyr-0-8-2/dplyr-0-8-2-sq.jpg b/content/blog/ported/tidyverse/2019/dplyr-0-8-2/dplyr-0-8-2-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-2/dplyr-0-8-2-sq.jpg rename to content/blog/ported/tidyverse/2019/dplyr-0-8-2/dplyr-0-8-2-sq.jpg diff --git a/content/blog/tidyverse/2019/dplyr-0-8-2/dplyr-0-8-2-wd.jpg b/content/blog/ported/tidyverse/2019/dplyr-0-8-2/dplyr-0-8-2-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-2/dplyr-0-8-2-wd.jpg rename to content/blog/ported/tidyverse/2019/dplyr-0-8-2/dplyr-0-8-2-wd.jpg diff --git a/content/blog/tidyverse/2019/dplyr-0-8-2/index.Rmarkdown b/content/blog/ported/tidyverse/2019/dplyr-0-8-2/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-2/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/dplyr-0-8-2/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/dplyr-0-8-2/index.markdown b/content/blog/ported/tidyverse/2019/dplyr-0-8-2/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-2/index.markdown rename to content/blog/ported/tidyverse/2019/dplyr-0-8-2/index.markdown diff --git a/content/blog/tidyverse/2019/dplyr-0-8-3/dplyr-0-8-3-sq.jpg b/content/blog/ported/tidyverse/2019/dplyr-0-8-3/dplyr-0-8-3-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-3/dplyr-0-8-3-sq.jpg rename to content/blog/ported/tidyverse/2019/dplyr-0-8-3/dplyr-0-8-3-sq.jpg diff --git a/content/blog/tidyverse/2019/dplyr-0-8-3/dplyr-0-8-3-wd.jpg b/content/blog/ported/tidyverse/2019/dplyr-0-8-3/dplyr-0-8-3-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-3/dplyr-0-8-3-wd.jpg rename to content/blog/ported/tidyverse/2019/dplyr-0-8-3/dplyr-0-8-3-wd.jpg diff --git a/content/blog/tidyverse/2019/dplyr-0-8-3/index.Rmarkdown b/content/blog/ported/tidyverse/2019/dplyr-0-8-3/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-3/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/dplyr-0-8-3/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/dplyr-0-8-3/index.markdown b/content/blog/ported/tidyverse/2019/dplyr-0-8-3/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/dplyr-0-8-3/index.markdown rename to content/blog/ported/tidyverse/2019/dplyr-0-8-3/index.markdown diff --git a/content/blog/tidyverse/2019/dtplyr-1-0-0/index.Rmarkdown b/content/blog/ported/tidyverse/2019/dtplyr-1-0-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/dtplyr-1-0-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/dtplyr-1-0-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/dtplyr-1-0-0/index.markdown b/content/blog/ported/tidyverse/2019/dtplyr-1-0-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/dtplyr-1-0-0/index.markdown rename to content/blog/ported/tidyverse/2019/dtplyr-1-0-0/index.markdown diff --git a/content/blog/tidyverse/2019/dtplyr-1-0-0/thumb-sq.jpg b/content/blog/ported/tidyverse/2019/dtplyr-1-0-0/thumb-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/dtplyr-1-0-0/thumb-sq.jpg rename to content/blog/ported/tidyverse/2019/dtplyr-1-0-0/thumb-sq.jpg diff --git a/content/blog/tidyverse/2019/dtplyr-1-0-0/thumb-wd.jpg b/content/blog/ported/tidyverse/2019/dtplyr-1-0-0/thumb-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/dtplyr-1-0-0/thumb-wd.jpg rename to content/blog/ported/tidyverse/2019/dtplyr-1-0-0/thumb-wd.jpg diff --git a/content/blog/tidyverse/2019/forcats-0-4-0/forcats-0-4-0-sq.jpg b/content/blog/ported/tidyverse/2019/forcats-0-4-0/forcats-0-4-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/forcats-0-4-0/forcats-0-4-0-sq.jpg rename to content/blog/ported/tidyverse/2019/forcats-0-4-0/forcats-0-4-0-sq.jpg diff --git a/content/blog/tidyverse/2019/forcats-0-4-0/forcats-0-4-0-wd.jpg b/content/blog/ported/tidyverse/2019/forcats-0-4-0/forcats-0-4-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/forcats-0-4-0/forcats-0-4-0-wd.jpg rename to content/blog/ported/tidyverse/2019/forcats-0-4-0/forcats-0-4-0-wd.jpg diff --git a/content/blog/tidyverse/2019/forcats-0-4-0/index.Rmarkdown b/content/blog/ported/tidyverse/2019/forcats-0-4-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/forcats-0-4-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/forcats-0-4-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/forcats-0-4-0/index.markdown b/content/blog/ported/tidyverse/2019/forcats-0-4-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/forcats-0-4-0/index.markdown rename to content/blog/ported/tidyverse/2019/forcats-0-4-0/index.markdown diff --git a/content/blog/tidyverse/2019/gargle-hello-world/gargle-hello-world-sq.jpg b/content/blog/ported/tidyverse/2019/gargle-hello-world/gargle-hello-world-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/gargle-hello-world/gargle-hello-world-sq.jpg rename to content/blog/ported/tidyverse/2019/gargle-hello-world/gargle-hello-world-sq.jpg diff --git a/content/blog/tidyverse/2019/gargle-hello-world/gargle-hello-world-wd.jpg b/content/blog/ported/tidyverse/2019/gargle-hello-world/gargle-hello-world-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/gargle-hello-world/gargle-hello-world-wd.jpg rename to content/blog/ported/tidyverse/2019/gargle-hello-world/gargle-hello-world-wd.jpg diff --git a/content/blog/tidyverse/2019/gargle-hello-world/index.Rmarkdown b/content/blog/ported/tidyverse/2019/gargle-hello-world/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/gargle-hello-world/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/gargle-hello-world/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/gargle-hello-world/index.markdown b/content/blog/ported/tidyverse/2019/gargle-hello-world/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/gargle-hello-world/index.markdown rename to content/blog/ported/tidyverse/2019/gargle-hello-world/index.markdown diff --git a/content/blog/tidyverse/2019/ggplot2-3-2-0/ggplot2-3-2-0-sq.jpg b/content/blog/ported/tidyverse/2019/ggplot2-3-2-0/ggplot2-3-2-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/ggplot2-3-2-0/ggplot2-3-2-0-sq.jpg rename to content/blog/ported/tidyverse/2019/ggplot2-3-2-0/ggplot2-3-2-0-sq.jpg diff --git a/content/blog/tidyverse/2019/ggplot2-3-2-0/ggplot2-3-2-0-wd.jpg b/content/blog/ported/tidyverse/2019/ggplot2-3-2-0/ggplot2-3-2-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/ggplot2-3-2-0/ggplot2-3-2-0-wd.jpg rename to content/blog/ported/tidyverse/2019/ggplot2-3-2-0/ggplot2-3-2-0-wd.jpg diff --git a/content/blog/tidyverse/2019/ggplot2-3-2-0/index.Rmarkdown b/content/blog/ported/tidyverse/2019/ggplot2-3-2-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/ggplot2-3-2-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/ggplot2-3-2-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/ggplot2-3-2-0/index.markdown b/content/blog/ported/tidyverse/2019/ggplot2-3-2-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/ggplot2-3-2-0/index.markdown rename to content/blog/ported/tidyverse/2019/ggplot2-3-2-0/index.markdown diff --git a/content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-1-1.png b/content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-1-1.png similarity index 100% rename from content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-1-1.png rename to content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-1-1.png diff --git a/content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-2-1.png b/content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-2-1.png similarity index 100% rename from content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-2-1.png rename to content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-2-1.png diff --git a/content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-3-1.png b/content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-3-1.png similarity index 100% rename from content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-3-1.png rename to content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-3-1.png diff --git a/content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-4-1.png b/content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-4-1.png similarity index 100% rename from content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-4-1.png rename to content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-4-1.png diff --git a/content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-5-1.png b/content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-5-1.png similarity index 100% rename from content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-5-1.png rename to content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-5-1.png diff --git a/content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-6-1.png b/content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-6-1.png similarity index 100% rename from content/blog/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-6-1.png rename to content/blog/ported/tidyverse/2019/ggplot2-3-2-0/unnamed-chunk-6-1.png diff --git a/content/blog/tidyverse/2019/gmailr-1-0-0/gmailr-1-0-0-sq.jpg b/content/blog/ported/tidyverse/2019/gmailr-1-0-0/gmailr-1-0-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/gmailr-1-0-0/gmailr-1-0-0-sq.jpg rename to content/blog/ported/tidyverse/2019/gmailr-1-0-0/gmailr-1-0-0-sq.jpg diff --git a/content/blog/tidyverse/2019/gmailr-1-0-0/gmailr-1-0-0-wd.jpg b/content/blog/ported/tidyverse/2019/gmailr-1-0-0/gmailr-1-0-0-wd.jpg similarity index 100% rename from content/blog/tidyverse/2019/gmailr-1-0-0/gmailr-1-0-0-wd.jpg rename to content/blog/ported/tidyverse/2019/gmailr-1-0-0/gmailr-1-0-0-wd.jpg diff --git a/content/blog/tidyverse/2019/gmailr-1-0-0/index.Rmarkdown b/content/blog/ported/tidyverse/2019/gmailr-1-0-0/index.Rmarkdown similarity index 100% rename from content/blog/tidyverse/2019/gmailr-1-0-0/index.Rmarkdown rename to content/blog/ported/tidyverse/2019/gmailr-1-0-0/index.Rmarkdown diff --git a/content/blog/tidyverse/2019/gmailr-1-0-0/index.markdown b/content/blog/ported/tidyverse/2019/gmailr-1-0-0/index.markdown similarity index 100% rename from content/blog/tidyverse/2019/gmailr-1-0-0/index.markdown rename to content/blog/ported/tidyverse/2019/gmailr-1-0-0/index.markdown diff --git a/content/blog/tidyverse/2019/googledrive-1-0-0/googledrive-1-0-0-sq.jpg b/content/blog/ported/tidyverse/2019/googledrive-1-0-0/googledrive-1-0-0-sq.jpg similarity index 100% rename from content/blog/tidyverse/2019/googledrive-1-0-0/googledri{"code":"deadline_exceeded","msg":"operation timed out"}