├── .gitignore ├── .nojekyll ├── 404.qmd ├── _extensions ├── mcanouil │ └── iconify │ │ ├── LICENSE │ │ ├── _extension.yml │ │ ├── iconify-icon.min.js │ │ └── iconify.lua ├── quarto-ext │ └── fontawesome │ │ ├── _extension.yml │ │ ├── assets │ │ ├── css │ │ │ ├── all.css │ │ │ └── latex-fontsize.css │ │ └── webfonts │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-regular-400.woff2 │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-solid-900.woff2 │ │ │ ├── fa-v4compatibility.ttf │ │ │ └── fa-v4compatibility.woff2 │ │ └── fontawesome.lua └── sellorm │ └── social-embeds │ ├── _extension.yml │ ├── gists.lua │ ├── loom.lua │ ├── mastodon.lua │ ├── twitter.lua │ ├── vimeo.lua │ └── youtube.lua ├── _freeze ├── blog │ ├── 4-realizations-from-atomic-habits │ │ └── index │ │ │ ├── execute-results │ │ │ └── html.json │ │ │ └── figure-html │ │ │ └── unnamed-chunk-1-1.png │ ├── emnist-manual-loading │ │ └── index │ │ │ └── execute-results │ │ │ └── html.json │ ├── functional-programming-r-basics │ │ └── index │ │ │ └── execute-results │ │ │ └── html.json │ ├── ggsimplex-prerelease │ │ └── index │ │ │ ├── execute-results │ │ │ └── html.json │ │ │ └── figure-html │ │ │ ├── unnamed-chunk-10-1.png │ │ │ ├── unnamed-chunk-12-1.png │ │ │ ├── unnamed-chunk-3-1.png │ │ │ ├── unnamed-chunk-5-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ └── unnamed-chunk-8-1.png │ └── outlines-r │ │ └── index │ │ └── execute-results │ │ └── html.json ├── cv │ └── index │ │ └── execute-results │ │ └── html.json └── site_libs │ ├── clipboard │ └── clipboard.min.js │ ├── cookie-consent │ ├── cookie-consent.css │ └── cookie-consent.js │ └── quarto-listing │ ├── list.min.js │ └── quarto-listing.js ├── _quarto.yml ├── _redirects ├── assets ├── meta_uncertainty_poster_aistats.pdf ├── poster_bayescomp_mms.pdf ├── sc_abi_poster_ICML.pdf └── support_button.png ├── blog ├── 4-realizations-from-atomic-habits │ ├── atomic_habits_thumbnail_new.png │ ├── atomic_habits_twitter_card.png │ └── index.qmd ├── _footer.qmd ├── _metadata.yml ├── agile-methods-for-academia │ ├── agile-academia-thumbnail.png │ └── index.qmd ├── emnist-manual-loading │ ├── emnist-manual-loading-thumbnail.png │ └── index.qmd ├── functional-programming-r-basics │ ├── function_as_argument_apply.png │ ├── index.qmd │ └── thumbnail.png ├── ggsimplex-prerelease │ ├── figures │ │ ├── ggsimplex-hexsticker-thumbnail.png │ │ ├── ggsimplex-hexsticker.png │ │ └── illustration_simplices.png │ └── index.qmd ├── hello-world │ ├── hello-world-bg.jpg │ ├── hello-world-thumbnail.png │ └── index.qmd ├── index.qmd ├── laptop-mic-obs │ ├── index.qmd │ └── thumbnail.png ├── mac-email-shortcut │ ├── img │ │ ├── email_shortcut.gif │ │ ├── email_shortcut.mov │ │ ├── screenshot_1.png │ │ ├── screenshot_2.png │ │ ├── screenshot_3.png │ │ └── screenshot_4.png │ ├── index.qmd │ └── mac_email_thumbnail_new.png ├── outlines-r │ ├── index.qmd │ └── outlines-r-thumbnail.png ├── scientists-should-have-a-website │ ├── index.ipynb │ ├── index.qmd │ ├── quarto-tutorial-screenshot.png │ └── thumbnail.png ├── website-tutorial-quarto │ ├── custom_styles.css │ ├── index.qmd │ ├── opengraph_thumbnail.png │ ├── screenshots │ │ ├── screenshot_github_pages_settings.png │ │ ├── screenshot_github_repo.png │ │ ├── screenshot_rstudio_build_tab.png │ │ ├── website_template_screenshot_1.png │ │ ├── website_template_screenshot_2.png │ │ ├── website_template_screenshot_3.png │ │ ├── website_template_screenshot_4.png │ │ └── website_url_meme.jpeg │ └── website-tutorial-thumbnail.png └── youtube-channel │ ├── index.qmd │ └── youtube-channel-thumbnail.jpeg ├── cv ├── CV_Marvin_Schmitt.pdf └── index.qmd ├── docs ├── .nojekyll ├── 404.html ├── _extensions │ └── quarto-ext │ │ └── fontawesome │ │ └── assets │ │ ├── css │ │ ├── all.css │ │ └── latex-fontsize.css │ │ └── webfonts │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff2 │ │ ├── fa-v4compatibility.ttf │ │ └── fa-v4compatibility.woff2 ├── _redirects ├── assets │ ├── meta_uncertainty_poster_aistats.pdf │ ├── poster_bayescomp_mms.pdf │ ├── sc_abi_poster_ICML.pdf │ └── support_button.png ├── blog │ ├── 4-realizations-from-atomic-habits │ │ ├── atomic_habits_thumbnail_new.png │ │ ├── atomic_habits_twitter_card.png │ │ ├── index.html │ │ └── index_files │ │ │ └── figure-html │ │ │ └── unnamed-chunk-1-1.png │ ├── agile-methods-for-academia │ │ ├── agile-academia-thumbnail.png │ │ └── index.html │ ├── emnist-manual-loading │ │ ├── emnist-manual-loading-thumbnail.png │ │ └── index.html │ ├── functional-programming-r-basics │ │ ├── function_as_argument_apply.png │ │ ├── index.html │ │ └── thumbnail.png │ ├── functional-programming-r-partial │ │ ├── index.html │ │ └── index_files │ │ │ └── figure-html │ │ │ ├── unnamed-chunk-2-1.png │ │ │ └── unnamed-chunk-3-1.png │ ├── ggsimplex-prerelease │ │ ├── figures │ │ │ ├── ggsimplex-hexsticker-thumbnail.png │ │ │ └── illustration_simplices.png │ │ ├── index.html │ │ └── index_files │ │ │ └── figure-html │ │ │ ├── unnamed-chunk-10-1.png │ │ │ ├── unnamed-chunk-12-1.png │ │ │ ├── unnamed-chunk-3-1.png │ │ │ ├── unnamed-chunk-5-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ └── unnamed-chunk-8-1.png │ ├── hello-world │ │ ├── hello-world-bg.jpg │ │ ├── hello-world-thumbnail.png │ │ └── index.html │ ├── index.html │ ├── laptop-mic-obs │ │ ├── index.html │ │ └── thumbnail.png │ ├── mac-email-shortcut │ │ ├── img │ │ │ ├── email_shortcut.gif │ │ │ ├── email_shortcut.mov │ │ │ ├── screenshot_1.png │ │ │ ├── screenshot_2.png │ │ │ ├── screenshot_3.png │ │ │ └── screenshot_4.png │ │ ├── index.html │ │ └── mac_email_thumbnail_new.png │ ├── mac-setup │ │ ├── index.html │ │ └── mac_setup_thumbnail.png │ ├── outlines-r │ │ ├── index.html │ │ └── outlines-r-thumbnail.png │ ├── sbi-taxonomy │ │ ├── ddm_parameters.png │ │ ├── forward_inverse.png │ │ ├── index.html │ │ └── index_files │ │ │ └── figure-html │ │ │ ├── cell-10-output-1.png │ │ │ ├── cell-12-output-1.png │ │ │ ├── cell-15-output-1.png │ │ │ ├── cell-18-output-1.png │ │ │ ├── cell-4-output-1.png │ │ │ ├── cell-5-output-1.png │ │ │ ├── cell-7-output-1.png │ │ │ ├── cell-8-output-1.png │ │ │ └── cell-9-output-1.png │ ├── scientists-should-have-a-website │ │ ├── index.html │ │ ├── quarto-tutorial-screenshot.png │ │ └── thumbnail.png │ ├── website-tutorial-quarto │ │ ├── index.html │ │ ├── opengraph_thumbnail.png │ │ └── screenshots │ │ │ ├── screenshot_github_pages_settings.png │ │ │ ├── screenshot_github_repo.png │ │ │ ├── screenshot_rstudio_build_tab.png │ │ │ ├── website_template_screenshot_1.png │ │ │ ├── website_template_screenshot_2.png │ │ │ ├── website_template_screenshot_3.png │ │ │ ├── website_template_screenshot_4.png │ │ │ └── website_url_meme.jpeg │ └── youtube-channel │ │ ├── index.html │ │ └── youtube-channel-thumbnail.jpeg ├── cv │ ├── CV_Marvin_Schmitt.pdf │ └── index.html ├── html │ ├── TweenMax.min.js │ ├── jquery.min.js │ └── landing_page_styles.css ├── img │ ├── 404_error.png │ ├── bayesflow_overview.png │ ├── bg_trees.png │ ├── bg_trees_dark_banner.png │ ├── cmpe_banner.png │ ├── favicon.ico │ ├── favicon.png │ ├── jana_figure_1.png │ ├── marvin_foto.png │ ├── marvin_foto_hex.png │ ├── marvin_foto_round.png │ ├── marvin_headshot.png │ ├── marvins_log_logo.png │ ├── marvins_log_thumbnail.png │ ├── meta_uncertainty_banner.png │ ├── model_misspecification_amortized_sbi.png │ ├── ms_icon.png │ ├── multi_npe_banner.png │ ├── self_consistency_banner.png │ ├── shk_thumbnail.png │ └── website_thumbnail.png ├── impressum │ └── index.html ├── index.html ├── listings.json ├── projects │ └── index.html ├── robots.txt ├── search.json ├── site_libs │ ├── bootstrap │ │ ├── bootstrap-038b721a36534e6c6b149a7f47c70fb9.min.css │ │ ├── bootstrap-7a6534ec52bef88457fbedc5eca67451.min.css │ │ ├── bootstrap-icons.css │ │ ├── bootstrap-icons.woff │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.js │ ├── clipboard │ │ └── clipboard.min.js │ ├── cookie-consent │ │ ├── cookie-consent.css │ │ └── cookie-consent.js │ ├── quarto-contrib │ │ ├── fontawesome6-0.1.0 │ │ │ ├── 1e21o67 │ │ │ │ ├── fa-brands-400.ttf │ │ │ │ ├── fa-brands-400.woff2 │ │ │ │ ├── fa-regular-400.ttf │ │ │ │ ├── fa-regular-400.woff2 │ │ │ │ ├── fa-solid-900.ttf │ │ │ │ ├── fa-solid-900.woff2 │ │ │ │ ├── fa-v4compatibility.ttf │ │ │ │ └── fa-v4compatibility.woff2 │ │ │ ├── all.css │ │ │ └── latex-fontsize.css │ │ ├── iconify-2.1.0 │ │ │ └── iconify-icon.min.js │ │ └── twitter-0.0.1 │ │ │ ├── _extension.yml │ │ │ ├── gists.lua │ │ │ ├── loom.lua │ │ │ ├── mastodon.lua │ │ │ ├── twitter.lua │ │ │ ├── vimeo.lua │ │ │ └── youtube.lua │ ├── quarto-html │ │ ├── anchor.min.js │ │ ├── popper.min.js │ │ ├── quarto-syntax-highlighting-879e302ca45bb6811b6062ec9bd6e23b.css │ │ ├── quarto-syntax-highlighting.css │ │ ├── quarto.js │ │ ├── tippy.css │ │ ├── tippy.umd.min.js │ │ └── zenscroll-min.js │ ├── quarto-listing │ │ ├── list.min.js │ │ └── quarto-listing.js │ ├── quarto-nav │ │ └── quarto-nav.js │ └── quarto-search │ │ ├── autocomplete.umd.js │ │ ├── fuse.min.js │ │ └── quarto-search.js ├── sitemap.xml ├── speaking │ ├── index.html │ └── pdf │ │ ├── poster_detecting_mms.pdf │ │ ├── poster_meta_uncertainty.pdf │ │ ├── slides_detecting_mms_gcpr.pdf │ │ ├── slides_detecting_mms_lightning.pdf │ │ ├── slides_reliable_abi_botb.pdf │ │ └── slides_self_consistency_unireps.pdf └── thesis_qr │ └── index.html ├── html ├── TweenMax.min.js ├── blog │ └── listing.ejs ├── blog_footer.html ├── jquery.min.js ├── landing_page_banner.html ├── landing_page_banner_old.html ├── landing_page_style_old.css ├── landing_page_styles.css ├── landing_page_styles_midnightblue.css ├── margin_image.html ├── newpagelink.lua ├── parallax.js ├── seo.html └── styles.scss ├── img ├── 404_error.png ├── bayesflow_overview.png ├── bg_trees.png ├── bg_trees_dark_banner.png ├── cmpe_banner.png ├── favicon.ico ├── favicon.png ├── jana_figure_1.png ├── marvin_foto.png ├── marvin_foto_hex.png ├── marvin_foto_round.png ├── marvin_headshot.png ├── marvins_log_logo.png ├── marvins_log_thumbnail.png ├── meta_uncertainty_banner.png ├── model_misspecification_amortized_sbi.png ├── ms_icon.png ├── multi_npe_banner.png ├── self_consistency_banner.png ├── shk_thumbnail.png └── website_thumbnail.png ├── impressum └── index.qmd ├── index.qmd ├── marvinschmitt-dot-com.Rproj ├── projects ├── index.qmd ├── meta_uncertainty_poster_aistats.pdf └── poster_bayescomp_mms.pdf ├── sitemap.xml ├── speaking ├── index.qmd └── pdf │ ├── poster_detecting_mms.pdf │ ├── poster_meta_uncertainty.pdf │ ├── slides_detecting_mms_gcpr.pdf │ ├── slides_detecting_mms_lightning.pdf │ ├── slides_reliable_abi_botb.pdf │ └── slides_self_consistency_unireps.pdf └── thesis_qr └── index.qmd /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | 6 | 7 | .DS_Store 8 | 9 | 10 | dev/ 11 | rsonnect/ 12 | public/ 13 | 14 | README.html 15 | 16 | content/top/impressum.md 17 | 18 | 19 | /.quarto/ 20 | /_site/ 21 | blog/mac-setup/index.ipynb 22 | blog/mac-setup/index.qmd 23 | blog/mac-setup/mac_setup_thumbnail.png 24 | functional-programming-r-partial 25 | sbi-taxonomy -------------------------------------------------------------------------------- /.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/.nojekyll -------------------------------------------------------------------------------- /404.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "404" 3 | comments: false 4 | sidebar: false 5 | --- 6 | 7 | :::{.column-screen} 8 | ![](img/404_error.png){fig-align="center"} 9 | ::: -------------------------------------------------------------------------------- /_extensions/mcanouil/iconify/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Mickaël Canouil 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /_extensions/mcanouil/iconify/_extension.yml: -------------------------------------------------------------------------------- 1 | title: Iconify support 2 | author: Mickaël Canouil 3 | version: 2.1.2 4 | quarto-required: ">=1.2.280" 5 | contributes: 6 | shortcodes: 7 | - iconify.lua 8 | -------------------------------------------------------------------------------- /_extensions/mcanouil/iconify/iconify.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | # MIT License 3 | # 4 | # Copyright (c) Mickaël Canouil 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a copy 7 | # of this software and associated documentation files (the "Software"), to deal 8 | # in the Software without restriction, including without limitation the rights 9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | # copies of the Software, and to permit persons to whom the Software is 11 | # furnished to do so, subject to the following conditions: 12 | 13 | # The above copyright notice and this permission notice shall be included in all 14 | # copies or substantial portions of the Software. 15 | 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | # SOFTWARE. 23 | ]] 24 | 25 | local function ensure_html_deps() 26 | quarto.doc.add_html_dependency({ 27 | name = 'iconify', 28 | version = '2.1.0', 29 | scripts = {"iconify-icon.min.js"} 30 | }) 31 | end 32 | 33 | local function is_empty(s) 34 | return s == nil or s == '' 35 | end 36 | 37 | local function is_valid_size(size) 38 | if is_empty(size) then 39 | return '' 40 | end 41 | local size_table = { 42 | ["tiny"] = "0.5em", 43 | ["scriptsize"] = "0.7em", 44 | ["footnotesize"] = "0.8em", 45 | ["small"] = "0.9em", 46 | ["normalsize"] = "1em", 47 | ["large"] = "1.2em", 48 | ["Large"] = "1.5em", 49 | ["LARGE"] = "1.75em", 50 | ["huge"] = "2em", 51 | ["Huge"] = "2.5em", 52 | ["1x"] = "1em", 53 | ["2x"] = "2em", 54 | ["3x"] = "3em", 55 | ["4x"] = "4em", 56 | ["5x"] = "5em", 57 | ["6x"] = "6em", 58 | ["7x"] = "7em", 59 | ["8x"] = "8em", 60 | ["9x"] = "9em", 61 | ["10x"] = "10em", 62 | ["2xs"] = "0.625em", 63 | ["xs"] = "0.75em", 64 | ["sm"] = "0.875em", 65 | ["lg"] = "1.25em", 66 | ["xl"] = "1.5em", 67 | ["2xl"] = "2em" 68 | } 69 | for key, value in pairs(size_table) do 70 | if key == size then 71 | return 'font-size: ' .. value .. ';' 72 | end 73 | end 74 | return 'font-size: ' .. size .. ';' 75 | end 76 | 77 | return { 78 | ["iconify"] = function(args, kwargs) 79 | -- detect html (excluding epub which won't handle fa) 80 | if quarto.doc.is_format("html:js") then 81 | ensure_html_deps() 82 | local icon = pandoc.utils.stringify(args[1]) 83 | local set = "fluent-emoji" 84 | 85 | if #args > 1 and string.find(pandoc.utils.stringify(args[2]), ":") then 86 | quarto.log.warning( 87 | 'Use "set:icon" or "set icon" syntax, not both! ' .. 88 | 'Using "set:icon" syntax and discarding first argument!' 89 | ) 90 | icon = pandoc.utils.stringify(args[2]) 91 | end 92 | 93 | if string.find(icon, ":") then 94 | set = string.sub(icon, 1, string.find(icon, ":") - 1) 95 | icon = string.sub(icon, string.find(icon, ":") + 1) 96 | elseif #args > 1 then 97 | set = icon 98 | icon = pandoc.utils.stringify(args[2]) 99 | end 100 | 101 | local attributes = ' icon="' .. set .. ':' .. icon .. '"' 102 | local default_label = 'Icon ' .. icon .. ' from ' .. set .. ' Iconify.design set.' 103 | 104 | local size = is_valid_size(pandoc.utils.stringify(kwargs["size"])) 105 | if not is_empty(size) then 106 | attributes = attributes .. ' style="' .. size .. '"' 107 | end 108 | 109 | local aria_label = pandoc.utils.stringify(kwargs["label"]) 110 | if is_empty(aria_label) then 111 | aria_label = ' aria-label="' .. default_label .. '"' 112 | else 113 | aria_label = ' aria-label="' .. aria_label .. '"' 114 | end 115 | 116 | local title = pandoc.utils.stringify(kwargs["title"]) 117 | if is_empty(title) then 118 | title = ' title="' .. default_label .. '"' 119 | else 120 | title = ' title="' .. title .. '"' 121 | end 122 | 123 | attributes = attributes .. aria_label .. title 124 | 125 | local width = pandoc.utils.stringify(kwargs["width"]) 126 | if not is_empty(width) and is_empty(size) then 127 | attributes = attributes .. ' width="' .. width .. '"' 128 | end 129 | local height = pandoc.utils.stringify(kwargs["height"]) 130 | if not is_empty(height) and is_empty(size) then 131 | attributes = attributes .. ' height="' .. height .. '"' 132 | end 133 | local flip = pandoc.utils.stringify(kwargs["flip"]) 134 | if not is_empty(flip) then 135 | attributes = attributes .. ' flip="' .. flip.. '"' 136 | end 137 | local rotate = pandoc.utils.stringify(kwargs["rotate"]) 138 | if not is_empty(rotate) then 139 | attributes = attributes .. ' rotate="' .. rotate .. '"' 140 | end 141 | 142 | local inline = pandoc.utils.stringify(kwargs["inline"]) 143 | if is_empty(inline) or inline ~= "false" then 144 | attributes = ' inline ' .. attributes 145 | end 146 | 147 | 148 | return pandoc.RawInline( 149 | 'html', 150 | '' 151 | ) 152 | else 153 | return pandoc.Null() 154 | end 155 | end 156 | } 157 | -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/_extension.yml: -------------------------------------------------------------------------------- 1 | title: Font Awesome support 2 | author: Carlos Scheidegger 3 | version: 1.1.0 4 | quarto-required: ">=1.2.269" 5 | contributes: 6 | shortcodes: 7 | - fontawesome.lua 8 | -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/assets/css/latex-fontsize.css: -------------------------------------------------------------------------------- 1 | .fa-tiny { 2 | font-size: 0.5em; 3 | } 4 | .fa-scriptsize { 5 | font-size: 0.7em; 6 | } 7 | .fa-footnotesize { 8 | font-size: 0.8em; 9 | } 10 | .fa-small { 11 | font-size: 0.9em; 12 | } 13 | .fa-normalsize { 14 | font-size: 1em; 15 | } 16 | .fa-large { 17 | font-size: 1.2em; 18 | } 19 | .fa-Large { 20 | font-size: 1.5em; 21 | } 22 | .fa-LARGE { 23 | font-size: 1.75em; 24 | } 25 | .fa-huge { 26 | font-size: 2em; 27 | } 28 | .fa-Huge { 29 | font-size: 2.5em; 30 | } 31 | -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/assets/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/assets/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/assets/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/assets/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/assets/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/assets/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/assets/webfonts/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/assets/webfonts/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /_extensions/quarto-ext/fontawesome/fontawesome.lua: -------------------------------------------------------------------------------- 1 | local function ensureLatexDeps() 2 | quarto.doc.use_latex_package("fontawesome5") 3 | end 4 | 5 | local function ensureHtmlDeps() 6 | quarto.doc.add_html_dependency({ 7 | name = 'fontawesome6', 8 | version = '0.1.0', 9 | stylesheets = {'assets/css/all.css', 'assets/css/latex-fontsize.css'} 10 | }) 11 | end 12 | 13 | local function isEmpty(s) 14 | return s == nil or s == '' 15 | end 16 | 17 | local function isValidSize(size) 18 | local validSizes = { 19 | "tiny", 20 | "scriptsize", 21 | "footnotesize", 22 | "small", 23 | "normalsize", 24 | "large", 25 | "Large", 26 | "LARGE", 27 | "huge", 28 | "Huge" 29 | } 30 | for _, v in ipairs(validSizes) do 31 | if v == size then 32 | return size 33 | end 34 | end 35 | return "" 36 | end 37 | 38 | return { 39 | ["fa"] = function(args, kwargs) 40 | 41 | local group = "solid" 42 | local icon = pandoc.utils.stringify(args[1]) 43 | if #args > 1 then 44 | group = icon 45 | icon = pandoc.utils.stringify(args[2]) 46 | end 47 | 48 | local title = pandoc.utils.stringify(kwargs["title"]) 49 | if not isEmpty(title) then 50 | title = " title=\"" .. title .. "\"" 51 | end 52 | 53 | local label = pandoc.utils.stringify(kwargs["label"]) 54 | if isEmpty(label) then 55 | label = " aria-label=\"" .. icon .. "\"" 56 | else 57 | label = " aria-label=\"" .. label .. "\"" 58 | end 59 | 60 | local size = pandoc.utils.stringify(kwargs["size"]) 61 | 62 | -- detect html (excluding epub which won't handle fa) 63 | if quarto.doc.is_format("html:js") then 64 | ensureHtmlDeps() 65 | if not isEmpty(size) then 66 | size = " fa-" .. size 67 | end 68 | return pandoc.RawInline( 69 | 'html', 70 | "" 71 | ) 72 | -- detect pdf / beamer / latex / etc 73 | elseif quarto.doc.is_format("pdf") then 74 | ensureLatexDeps() 75 | if isEmpty(isValidSize(size)) then 76 | return pandoc.RawInline('tex', "\\faIcon{" .. icon .. "}") 77 | else 78 | return pandoc.RawInline('tex', "{\\" .. size .. "\\faIcon{" .. icon .. "}}") 79 | end 80 | else 81 | return pandoc.Null() 82 | end 83 | end 84 | } 85 | -------------------------------------------------------------------------------- /_extensions/sellorm/social-embeds/_extension.yml: -------------------------------------------------------------------------------- 1 | title: social-embeds 2 | author: Mark Sellors 3 | version: 0.0.2 4 | contributes: 5 | shortcodes: 6 | - gists.lua 7 | - loom.lua 8 | - twitter.lua 9 | - vimeo.lua 10 | - youtube.lua 11 | - mastodon.lua 12 | -------------------------------------------------------------------------------- /_extensions/sellorm/social-embeds/gists.lua: -------------------------------------------------------------------------------- 1 | function gist(args) 2 | if quarto.doc.isFormat('html') then 3 | local user = pandoc.utils.stringify(args[1]) 4 | local gist_id = pandoc.utils.stringify(args[2]) 5 | local file_fragment = '' 6 | if args[3] ~= nil then 7 | local file = pandoc.utils.stringify(args[3]) 8 | file_fragment = '?file=' .. file 9 | end 10 | 11 | -- Assemble HTML to be returned 12 | local html = '' 19 | 20 | return pandoc.RawInline('html', html) 21 | else 22 | return pandoc.Null() 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /_extensions/sellorm/social-embeds/loom.lua: -------------------------------------------------------------------------------- 1 | function loom(args) 2 | if quarto.doc.isFormat('html') then 3 | local videoid = pandoc.utils.stringify(args[1]) 4 | 5 | -- Assemble HTML to be returned 6 | local html = '
' 9 | 10 | return pandoc.RawInline('html', html) 11 | else 12 | return pandoc.Null() 13 | end 14 | end 15 | 16 | -------------------------------------------------------------------------------- /_extensions/sellorm/social-embeds/mastodon.lua: -------------------------------------------------------------------------------- 1 | function mastodon(args) 2 | if quarto.doc.isFormat('html') then 3 | local status_url = pandoc.utils.stringify(args[1]) 4 | print(status_url) 5 | -- Assemble HTML to be returned 6 | local html = '
' 7 | 8 | return pandoc.RawInline('html', html) 9 | else 10 | return pandoc.Null() 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /_extensions/sellorm/social-embeds/twitter.lua: -------------------------------------------------------------------------------- 1 | local function ensureHtmlDeps() 2 | quarto.doc.addHtmlDependency({ 3 | name = 'twitter', 4 | version = '0.0.1', 5 | scripts = { 6 | { 7 | path = "", 8 | attribs = {src="https://platform.twitter.com/widgets.js"}, 9 | afterBody = true 10 | } 11 | } 12 | }) 13 | end 14 | 15 | local function isEmpty(s) 16 | return s == nil or s == '' 17 | end 18 | 19 | function tweet(args, kwargs) 20 | if quarto.doc.isFormat('html') then 21 | ensureHtmlDeps() 22 | 23 | if isEmpty(args[1]) then 24 | user = pandoc.utils.stringify(kwargs["user"]) 25 | status_id = pandoc.utils.stringify(kwargs["id"]) 26 | else 27 | user = pandoc.utils.stringify(args[1]) 28 | status_id = pandoc.utils.stringify(args[2]) 29 | end 30 | 31 | -- Assemble the twitter oembed API URL from the user inputs 32 | local tweet_embed = 'https://publish.twitter.com/oembed?url=https://twitter.com/' 33 | .. user 34 | .. '/status/' 35 | .. status_id 36 | .. '&align=center' 37 | 38 | print(tweet_embed) 39 | 40 | local mt, api_resp = pandoc.mediabag.fetch(tweet_embed) 41 | 42 | -- generate a random number to append to the html div ID to avoid re-use 43 | local id = math.random(10000, 99999) 44 | 45 | local tweet_data = '
' 52 | 53 | return pandoc.RawInline('html', tweet_data) 54 | else 55 | return pandoc.Null() 56 | end 57 | end 58 | -------------------------------------------------------------------------------- /_extensions/sellorm/social-embeds/vimeo.lua: -------------------------------------------------------------------------------- 1 | function vimeo(args) 2 | if quarto.doc.isFormat('html') then 3 | local videoid = pandoc.utils.stringify(args[1]) 4 | 5 | -- Assemble HTML to be returned 6 | local html = '
' 9 | 10 | return pandoc.RawInline('html', html) 11 | else 12 | return pandoc.Null() 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /_extensions/sellorm/social-embeds/youtube.lua: -------------------------------------------------------------------------------- 1 | function youtube(args) 2 | if quarto.doc.isFormat('html') then 3 | local videoid = pandoc.utils.stringify(args[1]) 4 | 5 | -- Assemble HTML to be returned 6 | local html = '
' 9 | 10 | return pandoc.RawInline('html', html) 11 | else 12 | return pandoc.Null() 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /_freeze/blog/4-realizations-from-atomic-habits/index/figure-html/unnamed-chunk-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_freeze/blog/4-realizations-from-atomic-habits/index/figure-html/unnamed-chunk-1-1.png -------------------------------------------------------------------------------- /_freeze/blog/emnist-manual-loading/index/execute-results/html.json: -------------------------------------------------------------------------------- 1 | { 2 | "hash": "1837d2ea8674a7929b63eda147c5bce2", 3 | "result": { 4 | "engine": "jupyter", 5 | "markdown": "---\ntitle: \"Download EMNIST manually\"\ndescription: \"EMNIST is a classic image data set for machine learning. Sometimes the automatic PyTorch download fails, that bugs me. Here's a quick guide to download the EMNIST data set manually and make it work with PyTorch.\"\ndate: 04-15-2024\ncategories: \n - programming\n - python\n - machine learning\n - technical\ndraft: false\nnumber-sections: false\nimage: emnist-manual-loading-thumbnail.png\nformat:\n html:\n fig-cap-location: bottom\n include-before-body: ../../html/margin_image.html\n include-after-body: ../../html/blog_footer.html\n comments: false\neditor: \n markdown: \n wrap: sentence\n---\n\n:::{.callout}\nThis is a quick reference for my future self, maybe it's helpful for you as well.\n\n**TL;DR:** Manual EMNIST data download requires directory name updates to make `PyTorch` happy. Need `./EMNIST/raw/`.\n:::\n\n## Problem: Automatic EMNIST download failed\n\nEarlier today, I wanted to reproduce the results of a machine learning paper that uses the EMNIST digits data set to train a `PyTorch` model.\nNormally, PyTorch makes loading *and even downloading* data sets extremely easy for us.\nThe `torchvision.datasets` module provides a handful of commonly used data sets with a user-friendly API.\nMost importantly for us right now, the data set loaders come with the convenient `download=True` argument to download a data set automatically:\n\n::: {#1001b362 .cell execution_count=1}\n``` {.python .cell-code}\nimport torchvision\n\ntrain_data = torchvision.datasets.EMNIST(\n root=\"./\", \n split=\"digits\", \n train=True,\n download=True\n)\n```\n:::\n\n\nUnfortunately, that throws a `RuntimeError`:\n\n```\nRuntimeError: File not found or corrupted.\n```\n\nNext, I wanted to just *download* the data from a URL via `torchvision.datasets.util.download_url(...)`.\nI found a handful of EMNIST URLs on the internet, but either got the same old `File not found or corrupted` or an SSL error.\n\n## Fix: Manual download and directory adjustments\n\nHere's a brief list of steps for downloading the EMNIST data manually and then preparing the directory for `torchvision.datasets.EMNIST(..., download=False)`.\n\n### Step 1: Download the files\n\nGo to the official [EMNIST website (Link)](https://www.nist.gov/itl/products-and-services/emnist-dataset) and head to *Binary format as the original MNIST dataset*.\nAlternatively, here's the link: [EMNIST Direct Download Link](https://biometrics.nist.gov/cs_links/EMNIST/gzip.zip)\n\nThat archive with the great name `gzip.zip` has a size of approximately 500MB.\n\n\n### Step 2: Unpack the `gzip.zip` archive\n\nHead to your project's data directory (or global data directory if you have that) and unpack the previously downloaded `gzip.zip` archive there.\nYou will get a folder `gzip/` that contains a whole lot of `*.gz` files:\n\n```\n.\n└── gzip\n ├── emnist-balanced-mapping.txt\n ├── emnist-balanced-test-images-idx3-ubyte.gz\n ├── emnist-balanced-test-labels-idx1-ubyte.gz\n ├── emnist-balanced-train-images-idx3-ubyte.gz\n ├── emnist-balanced-train-labels-idx1-ubyte.gz\n ├── ...\n ├── emnist-digits-mapping.txt\n ├── emnist-digits-test-images-idx3-ubyte.gz\n ├── emnist-digits-test-labels-idx1-ubyte.gz\n ├── emnist-digits-train-images-idx3-ubyte.gz\n ├── emnist-digits-train-labels-idx1-ubyte.gz\n ├── ...\n ├── emnist-mnist-mapping.txt\n ├── emnist-mnist-test-images-idx3-ubyte.gz\n ├── emnist-mnist-test-labels-idx1-ubyte.gz\n ├── emnist-mnist-train-images-idx3-ubyte.gz\n └── emnist-mnist-train-labels-idx1-ubyte.gz\n```\n\n:::{.callout-note}\n## EMNIST splits\n\nYou'll notice a structure: There are different splits, encoded in the filenames as `emnist--...`. \nThis `` corresponds to the `split=...` argument in `torchvision.datasets.EMNIST`.\nFor this project, I only needed the `digits` split, so I deleted the files of all the other splits.\n:::\n\n### Step 3: Unpack the individual `.gz` files\n\nUnpack all the `*.gz` files that you need.\nOn MacOS, the built-in archive tools can handle `.gz` files, YMMV.\nDelete the `*.gz` files after you're done unpacking.\nYou should have the following structure now:\n\n```\n.\n└── gzip\n ├── emnist-balanced-mapping.txt\n ├── emnist-balanced-test-images-idx3-ubyte\n ├── emnist-balanced-test-labels-idx1-ubyte\n ├── emnist-balanced-train-images-idx3-ubyte\n ├── emnist-balanced-train-labels-idx1-ubyte\n ├── ...\n ├── emnist-digits-mapping.txt\n ├── emnist-digits-test-images-idx3-ubyte\n ├── emnist-digits-test-labels-idx1-ubyte\n ├── emnist-digits-train-images-idx3-ubyte\n ├── emnist-digits-train-labels-idx1-ubyte\n ├── ...\n ├── emnist-mnist-mapping.txt\n ├── emnist-mnist-test-images-idx3-ubyte\n ├── emnist-mnist-test-labels-idx1-ubyte\n ├── emnist-mnist-train-images-idx3-ubyte\n └── emnist-mnist-train-labels-idx1-ubyte\n```\n\n### Step 4: Adjust the directory structure for PyTorch\n\nIf we try to load the data set into PyTorch with the `download=False` argument now,\n\n::: {#fd77ec16 .cell execution_count=2}\n``` {.python .cell-code}\ntrain_data = torchvision.datasets.EMNIST(\n root=\"./\", \n split=\"digits\", \n train=True,\n download=False\n)\n```\n:::\n\n\nwe get the following error:\n\n```\nRuntimeError: Dataset not found. You can use download=True to download it\n```\n\nWell, we kind of did all the downloading so that we *circumvent* the problematic `download=True` call.\n\nAs you might expect, we have to make `PyTorch` find our downloaded EMNIST data. That's a two-step process: (1) We will make the EMNIST data fit the format that `PyTorch` expects; and (2) we will point `PyTorch` to where our EMNIST data lives.\n\n#### (1) Required directory tree\n\n`PyTorch` wants the following structure:\n\n```\nDATASET_NAME\n└── raw\n ├── ...-mapping.txt\n ├── ...-ubyte\n```\n\nTo achieve this, we simply rename `gzip` to `raw` and wrap the entire `raw` folder into a parent folder called `EMNIST`.\nNow your file tree should look like this:\n\n```\nEMNIST\n└── raw\n ├── emnist-balanced-mapping.txt\n ├── emnist-balanced-test-images-idx3-ubyte\n ├── emnist-balanced-test-labels-idx1-ubyte\n ├── emnist-balanced-train-images-idx3-ubyte\n ├── emnist-balanced-train-labels-idx1-ubyte\n ├── ...\n ├── emnist-digits-mapping.txt\n ├── emnist-digits-test-images-idx3-ubyte\n ├── emnist-digits-test-labels-idx1-ubyte\n ├── emnist-digits-train-images-idx3-ubyte\n ├── emnist-digits-train-labels-idx1-ubyte\n ├── ...\n ├── emnist-mnist-mapping.txt\n ├── emnist-mnist-test-images-idx3-ubyte\n ├── emnist-mnist-test-labels-idx1-ubyte\n ├── emnist-mnist-train-images-idx3-ubyte\n └── emnist-mnist-train-labels-idx1-ubyte\n```\n\n#### (2) Point `PyTorch` to the correct path.\n\nFinally, the call to the `PyTorch` data loader will work as intended because the `EMNIST` folder is directly below my current working directory `./`:\n\n::: {#859ec235 .cell execution_count=3}\n``` {.python .cell-code}\ndata_root = \"./\"\n\ntrain_data = torchvision.datasets.EMNIST(\n root=data_root, \n split=\"digits\", \n train=True,\n download=False\n)\n```\n:::\n\n\nIf your `EMNIST/` folder lives somewhere else (e.g., in a dedicated `data/` folder), simply adjust `data_root`.\n\n### Step 5: Profit!\n\nNow off you go and make some fancy machine learning stuff with EMNIST! ✨\n\n\n--Marvin\n\n", 6 | "supporting": [ 7 | "index_files" 8 | ], 9 | "filters": [], 10 | "includes": {} 11 | } 12 | } -------------------------------------------------------------------------------- /_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-10-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-10-1.png -------------------------------------------------------------------------------- /_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-12-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-12-1.png -------------------------------------------------------------------------------- /_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-8-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/_freeze/blog/ggsimplex-prerelease/index/figure-html/unnamed-chunk-8-1.png -------------------------------------------------------------------------------- /_freeze/blog/outlines-r/index/execute-results/html.json: -------------------------------------------------------------------------------- 1 | { 2 | "hash": "5d514f5d911a01e4fb5bfa30fb5b1d0a", 3 | "result": { 4 | "engine": "knitr", 5 | "markdown": "---\ntitle: \"Structured Language Generation with Outlines in R\"\ndescription: \"Calling the Outlines Python package in R with the reticulate package, with OpenAI's GPT-4o as a language model.\"\ndate: 10-15-2024\ncategories: \n - tech\n - programming\ndraft: false\nnumber-sections: false\nimage: outlines-r-thumbnail.png\nformat:\n html:\n fig-cap-location: bottom\n include-before-body: ../../html/margin_image.html\n include-after-body: ../../html/blog_footer.html\n comments: false\neditor: \n markdown: \n wrap: sentence\n---\n\n\nPython is a great Swiss army knife for many tasks, especially when it comes to deep learning these days.\nHowever, many statisticians and data scientists prefer working in R. \nIn this short blog post, we'll use the `reticulate` package to work with Python code inside R.\nThis lets us use the great `outlines` package by dottxt, and OpenAI's GPT-4o as a language model backend.\n\n## Load Reticulate and Set Up the Environment\n\nLoad the `reticulate` library to interface between R and Python, and specify the conda environment that contains the necessary Python packages (`outlines`, `openai` and `tiktoken` in my case).\n\n\n::: {.cell}\n\n```{.r .cell-code}\nlibrary(reticulate)\n```\n\n::: {.cell-output .cell-output-stderr}\n\n```\nWarning: package 'reticulate' was built under R version 4.4.1\n```\n\n\n:::\n\n```{.r .cell-code}\nuse_condaenv(\"/Users/marvin/miniforge3/envs/outlines_py310\", required = TRUE)\nos <- import(\"os\")\noutlines <- import(\"outlines\")\n```\n:::\n\n\n## Set Up the OpenAI Model\n\nSet up the OpenAI model using the `outlines` package. \nYou should not write your API key directly in the code.\nInstead, we use an environment variable which we set in the terminal before running the R script.\nThis ensures that you don't accidentally leak your secret API key.\n\n\n::: {.cell}\n\n```{.r .cell-code}\napi_key <- Sys.getenv(\"OPENAI_API_KEY\")\nmodel <- outlines$models$openai(\"gpt-4o\", api_key = api_key)\n```\n:::\n\n\n## Generate a Response\n\nNow we'll use the language model to answer a question, and restrict the answer to a choice from multiple options.\nFor demonstration purposes, let's see whether GPT-4 can answer a basic question about Bayesian statistics.\n\n\n::: {.cell}\n\n```{.r .cell-code}\nchoices = c(\"Prior\", \"Likelihood\", \"Marginal Likelihood\", \"Evidence\", \"Posterior\")\ngenerator <- outlines$generate$choice(model, choices)\n\nresult <- generator(\"In a Bayesian model, what do we call the probability distribution of parameters given the data?\")\nprint(result)\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n[1] \"Posterior\"\n```\n\n\n:::\n:::\n\n\nLet's try another more technical question, this time about the choice of a suitable distibution family to model count data.\n\n\n::: {.cell}\n\n```{.r .cell-code}\nchoices = c(\"Gaussian\", \"Poisson\", \"Negative-Binomial\", \"Gamma\")\ngenerator <- outlines$generate$choice(model, choices)\n\nresult <- generator(\"We have a Bayesian model for count data $y$. The data $y$ is lower-bounded at zero, can take on integer values, and is probably overdispersed. The most suitable distribution family for the data model is \")\nprint(result)\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n[1] \"Negative-Binomial\"\n```\n\n\n:::\n:::\n\n\n\n## Next Steps\n\nIn this demonstrator, we used `reticulate` as a simple bridge to call Python packages from within R.\nAs a next steps, you can try other generation schemes (not just multiple choice) or build more complex pipelines.\nAlso, Outlines really shines if you use it with a local open source LLM, so you should try that as well.\n", 6 | "supporting": [], 7 | "filters": [ 8 | "rmarkdown/pagebreak.lua" 9 | ], 10 | "includes": {}, 11 | "engineDependencies": {}, 12 | "preserve": {}, 13 | "postProcess": true 14 | } 15 | } -------------------------------------------------------------------------------- /_freeze/cv/index/execute-results/html.json: -------------------------------------------------------------------------------- 1 | { 2 | "hash": "a573b322cd95a33000626724042de288", 3 | "result": { 4 | "engine": "knitr", 5 | "markdown": "---\nlayout: page\ntitle: Curriculum vitae\nexcerpt: My current CV\ncomments: false\nexecute:\n freeze: true # never re-render during project render\nengine: knitr \ncv:\n pdf: \"CV_Marvin_Schmitt.pdf\"\n---\n\n::: {.cell}\n\n:::\n\n```{=html}\n

\n \n  Download current CV\n \n

\n
\n \n
\n```", 6 | "supporting": [], 7 | "filters": [ 8 | "rmarkdown/pagebreak.lua" 9 | ], 10 | "includes": {}, 11 | "engineDependencies": {}, 12 | "preserve": {}, 13 | "postProcess": true 14 | } 15 | } -------------------------------------------------------------------------------- /_freeze/site_libs/cookie-consent/cookie-consent.css: -------------------------------------------------------------------------------- 1 | div.cookie-consent-footer { 2 | font-size: 0.8em; 3 | text-decoration: none; 4 | } 5 | -------------------------------------------------------------------------------- /_freeze/site_libs/quarto-listing/quarto-listing.js: -------------------------------------------------------------------------------- 1 | const kProgressiveAttr = "data-src"; 2 | let categoriesLoaded = false; 3 | 4 | window.quartoListingCategory = (category) => { 5 | category = atob(category); 6 | if (categoriesLoaded) { 7 | activateCategory(category); 8 | setCategoryHash(category); 9 | } 10 | }; 11 | 12 | window["quarto-listing-loaded"] = () => { 13 | // Process any existing hash 14 | const hash = getHash(); 15 | 16 | if (hash) { 17 | // If there is a category, switch to that 18 | if (hash.category) { 19 | activateCategory(hash.category); 20 | } 21 | // Paginate a specific listing 22 | const listingIds = Object.keys(window["quarto-listings"]); 23 | for (const listingId of listingIds) { 24 | const page = hash[getListingPageKey(listingId)]; 25 | if (page) { 26 | showPage(listingId, page); 27 | } 28 | } 29 | } 30 | 31 | const listingIds = Object.keys(window["quarto-listings"]); 32 | for (const listingId of listingIds) { 33 | // The actual list 34 | const list = window["quarto-listings"][listingId]; 35 | 36 | // Update the handlers for pagination events 37 | refreshPaginationHandlers(listingId); 38 | 39 | // Render any visible items that need it 40 | renderVisibleProgressiveImages(list); 41 | 42 | // Whenever the list is updated, we also need to 43 | // attach handlers to the new pagination elements 44 | // and refresh any newly visible items. 45 | list.on("updated", function () { 46 | renderVisibleProgressiveImages(list); 47 | setTimeout(() => refreshPaginationHandlers(listingId)); 48 | 49 | // Show or hide the no matching message 50 | toggleNoMatchingMessage(list); 51 | }); 52 | } 53 | }; 54 | 55 | window.document.addEventListener("DOMContentLoaded", function (_event) { 56 | // Attach click handlers to categories 57 | const categoryEls = window.document.querySelectorAll( 58 | ".quarto-listing-category .category" 59 | ); 60 | 61 | for (const categoryEl of categoryEls) { 62 | const category = atob(categoryEl.getAttribute("data-category")); 63 | categoryEl.onclick = () => { 64 | activateCategory(category); 65 | setCategoryHash(category); 66 | }; 67 | } 68 | 69 | // Attach a click handler to the category title 70 | // (there should be only one, but since it is a class name, handle N) 71 | const categoryTitleEls = window.document.querySelectorAll( 72 | ".quarto-listing-category-title" 73 | ); 74 | for (const categoryTitleEl of categoryTitleEls) { 75 | categoryTitleEl.onclick = () => { 76 | activateCategory(""); 77 | setCategoryHash(""); 78 | }; 79 | } 80 | 81 | categoriesLoaded = true; 82 | }); 83 | 84 | function toggleNoMatchingMessage(list) { 85 | const selector = `#${list.listContainer.id} .listing-no-matching`; 86 | const noMatchingEl = window.document.querySelector(selector); 87 | if (noMatchingEl) { 88 | if (list.visibleItems.length === 0) { 89 | noMatchingEl.classList.remove("d-none"); 90 | } else { 91 | if (!noMatchingEl.classList.contains("d-none")) { 92 | noMatchingEl.classList.add("d-none"); 93 | } 94 | } 95 | } 96 | } 97 | 98 | function setCategoryHash(category) { 99 | setHash({ category }); 100 | } 101 | 102 | function setPageHash(listingId, page) { 103 | const currentHash = getHash() || {}; 104 | currentHash[getListingPageKey(listingId)] = page; 105 | setHash(currentHash); 106 | } 107 | 108 | function getListingPageKey(listingId) { 109 | return `${listingId}-page`; 110 | } 111 | 112 | function refreshPaginationHandlers(listingId) { 113 | const listingEl = window.document.getElementById(listingId); 114 | const paginationEls = listingEl.querySelectorAll( 115 | ".pagination li.page-item:not(.disabled) .page.page-link" 116 | ); 117 | for (const paginationEl of paginationEls) { 118 | paginationEl.onclick = (sender) => { 119 | setPageHash(listingId, sender.target.getAttribute("data-i")); 120 | showPage(listingId, sender.target.getAttribute("data-i")); 121 | return false; 122 | }; 123 | } 124 | } 125 | 126 | function renderVisibleProgressiveImages(list) { 127 | // Run through the visible items and render any progressive images 128 | for (const item of list.visibleItems) { 129 | const itemEl = item.elm; 130 | if (itemEl) { 131 | const progressiveImgs = itemEl.querySelectorAll( 132 | `img[${kProgressiveAttr}]` 133 | ); 134 | for (const progressiveImg of progressiveImgs) { 135 | const srcValue = progressiveImg.getAttribute(kProgressiveAttr); 136 | if (srcValue) { 137 | progressiveImg.setAttribute("src", srcValue); 138 | } 139 | progressiveImg.removeAttribute(kProgressiveAttr); 140 | } 141 | } 142 | } 143 | } 144 | 145 | function getHash() { 146 | // Hashes are of the form 147 | // #name:value|name1:value1|name2:value2 148 | const currentUrl = new URL(window.location); 149 | const hashRaw = currentUrl.hash ? currentUrl.hash.slice(1) : undefined; 150 | return parseHash(hashRaw); 151 | } 152 | 153 | const kAnd = "&"; 154 | const kEquals = "="; 155 | 156 | function parseHash(hash) { 157 | if (!hash) { 158 | return undefined; 159 | } 160 | const hasValuesStrs = hash.split(kAnd); 161 | const hashValues = hasValuesStrs 162 | .map((hashValueStr) => { 163 | const vals = hashValueStr.split(kEquals); 164 | if (vals.length === 2) { 165 | return { name: vals[0], value: vals[1] }; 166 | } else { 167 | return undefined; 168 | } 169 | }) 170 | .filter((value) => { 171 | return value !== undefined; 172 | }); 173 | 174 | const hashObj = {}; 175 | hashValues.forEach((hashValue) => { 176 | hashObj[hashValue.name] = decodeURIComponent(hashValue.value); 177 | }); 178 | return hashObj; 179 | } 180 | 181 | function makeHash(obj) { 182 | return Object.keys(obj) 183 | .map((key) => { 184 | return `${key}${kEquals}${obj[key]}`; 185 | }) 186 | .join(kAnd); 187 | } 188 | 189 | function setHash(obj) { 190 | const hash = makeHash(obj); 191 | window.history.pushState(null, null, `#${hash}`); 192 | } 193 | 194 | function showPage(listingId, page) { 195 | const list = window["quarto-listings"][listingId]; 196 | if (list) { 197 | list.show((page - 1) * list.page + 1, list.page); 198 | } 199 | } 200 | 201 | function activateCategory(category) { 202 | // Deactivate existing categories 203 | const activeEls = window.document.querySelectorAll( 204 | ".quarto-listing-category .category.active" 205 | ); 206 | for (const activeEl of activeEls) { 207 | activeEl.classList.remove("active"); 208 | } 209 | 210 | // Activate this category 211 | const categoryEl = window.document.querySelector( 212 | `.quarto-listing-category .category[data-category='${btoa(category)}']` 213 | ); 214 | if (categoryEl) { 215 | categoryEl.classList.add("active"); 216 | } 217 | 218 | // Filter the listings to this category 219 | filterListingCategory(category); 220 | } 221 | 222 | function filterListingCategory(category) { 223 | const listingIds = Object.keys(window["quarto-listings"]); 224 | for (const listingId of listingIds) { 225 | const list = window["quarto-listings"][listingId]; 226 | if (list) { 227 | if (category === "") { 228 | // resets the filter 229 | list.filter(); 230 | } else { 231 | // filter to this category 232 | list.filter(function (item) { 233 | const itemValues = item.values(); 234 | if (itemValues.categories !== null) { 235 | const categories = atob(itemValues.categories).split(","); 236 | return categories.includes(category); 237 | } else { 238 | return false; 239 | } 240 | }); 241 | } 242 | } 243 | } 244 | } 245 | -------------------------------------------------------------------------------- /_quarto.yml: -------------------------------------------------------------------------------- 1 | authorname: "Marvin Schmitt" 2 | draft: false 3 | 4 | project: 5 | type: website 6 | output-dir: docs 7 | 8 | resources: 9 | - "img/**" 10 | - "assets/**" 11 | - "sitemap.xml" 12 | - "_redirects" 13 | - "speaking/pdf/**" 14 | 15 | preview: 16 | port: 22222 17 | browser: true 18 | watch-inputs: true 19 | navigate: true 20 | 21 | title-meta: "Marvin Schmitt" 22 | description-meta: "Computer Scientist & Psychologist | PhD researcher | Deep Learning, Data Science, Research" 23 | 24 | website: 25 | title: "Marvin Schmitt" 26 | description: "Computer Scientist & Psychologist | PhD researcher | Deep Learning, Data Science, Research" 27 | site-url: https://marvinschmitt.github.io 28 | image: img/website_thumbnail.png 29 | 30 | 31 | search: 32 | location: navbar 33 | type: textbox 34 | 35 | navbar: 36 | pinned: true 37 | logo: /img/ms_icon.png 38 | left: 39 | - text: Projects 40 | href: projects/index.qmd 41 | - text: Speaking 42 | href: speaking/index.qmd 43 | - text: CV 44 | href: cv/index.qmd 45 | - text: Blog 46 | href: blog/index.qmd 47 | right: 48 | - text: "{{< iconify simple-icons bluesky >}}" 49 | href: https://bsky.app/profile/marvinschmitt.bsky.social 50 | - icon: twitter 51 | href: https://twitter.com/MarvinSchmittML 52 | - icon: youtube 53 | href: https://www.youtube.com/@marvin-schmitt 54 | - icon: github 55 | href: https://github.com/marvinschmitt 56 | - icon: linkedin 57 | href: https://www.linkedin.com/in/marvin-schmitt/ 58 | - icon: envelope 59 | aria-label: email 60 | href: "mailto:mail.marvinschmitt@gmail.com" 61 | 62 | favicon: img/favicon.ico 63 | 64 | twitter-card: 65 | creator: "@MarvinSchmittML" 66 | image: "/img/website_thumbnail.png" 67 | 68 | open-graph: 69 | image: "/img/website_thumbnail.png" 70 | locale: en_US 71 | 72 | google-analytics: 73 | tracking-id: G-N36VLTEM79 74 | storage: none 75 | 76 | page-footer: 77 | left: | 78 | {{< fa brands creative-commons >}} 2023 Marvin Schmitt 79 | center: | 80 | Impressum 81 | right: | 82 | Built with Quarto 83 | 84 | execute: 85 | freeze: true 86 | 87 | filters: 88 | - html/newpagelink.lua 89 | 90 | format: 91 | html: 92 | include-in-header: html/seo.html 93 | fontsize: 1.1em 94 | theme: 95 | - flatly 96 | - html/styles.scss 97 | toc: false 98 | anchor-sections: true 99 | fig-cap-location: margin 100 | reference-location: margin 101 | footnotes-hover: true 102 | highlight-style: monokai -------------------------------------------------------------------------------- /_redirects: -------------------------------------------------------------------------------- 1 | /blog/website-template-quarto/index.html /blog/website-tutorial-quarto/index.html 2 | /blog/website-template-quarto/ /blog/website-tutorial-quarto/ -------------------------------------------------------------------------------- /assets/meta_uncertainty_poster_aistats.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/assets/meta_uncertainty_poster_aistats.pdf -------------------------------------------------------------------------------- /assets/poster_bayescomp_mms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/assets/poster_bayescomp_mms.pdf -------------------------------------------------------------------------------- /assets/sc_abi_poster_ICML.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/assets/sc_abi_poster_ICML.pdf -------------------------------------------------------------------------------- /assets/support_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/assets/support_button.png -------------------------------------------------------------------------------- /blog/4-realizations-from-atomic-habits/atomic_habits_thumbnail_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/4-realizations-from-atomic-habits/atomic_habits_thumbnail_new.png -------------------------------------------------------------------------------- /blog/4-realizations-from-atomic-habits/atomic_habits_twitter_card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/4-realizations-from-atomic-habits/atomic_habits_twitter_card.png -------------------------------------------------------------------------------- /blog/_footer.qmd: -------------------------------------------------------------------------------- 1 |
2 | 3 |
Session Info 4 | 5 |
6 | 7 | ```{r, echo=FALSE} 8 | library(sessioninfo) 9 | # save the session info as an object 10 | pkg_sesh <- session_info(pkgs = "attached") 11 | # get the quarto version 12 | quarto_version <- quarto::quarto_version() 13 | # inject the quarto info 14 | pkg_sesh$platform$quarto <- paste( 15 | quarto::quarto_version(), 16 | "@", 17 | quarto::quarto_path() 18 | ) 19 | # print it out 20 | pkg_sesh 21 | ``` 22 | 23 |
24 | 25 |
-------------------------------------------------------------------------------- /blog/_metadata.yml: -------------------------------------------------------------------------------- 1 | # options specified here will apply to all posts in this folder 2 | 3 | # freeze computational output 4 | # (see https://quarto.org/docs/projects/code-execution.html#freeze) 5 | freeze: true 6 | description-meta: "{{< meta description >}}" 7 | 8 | # Enable banner style title blocks 9 | title-block-banner: "../img/bg_trees_dark_banner.png" 10 | 11 | # Default for table of contents 12 | toc: true 13 | toc-title: Contents 14 | toc-location: left 15 | 16 | # Default knitr options 17 | execute: 18 | echo: true 19 | message: true 20 | warning: true 21 | 22 | format: 23 | html: 24 | code-tools: true 25 | comments: 26 | giscus: 27 | repo: marvinschmitt/marvinschmitt-dot-com 28 | category: Announcements 29 | loading: lazy 30 | input-position: bottom 31 | language: en 32 | quarto-template-params: 33 | banner-header-class: "blog-post" 34 | include-after-body: ../html/blog_footer.html 35 | 36 | # Default author 37 | author: 38 | - name: Marvin Schmitt 39 | url: https://www.marvinschmitt.com/ 40 | orcid: 0000-0002-7967-4723 -------------------------------------------------------------------------------- /blog/agile-methods-for-academia/agile-academia-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/agile-methods-for-academia/agile-academia-thumbnail.png -------------------------------------------------------------------------------- /blog/agile-methods-for-academia/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Agile methods in academia" 3 | description: "Boost your productivity and feel less overwhelmed with these six agile methods." 4 | date: 03-07-2023 5 | categories: 6 | - psychology 7 | - academia 8 | image: agile-academia-thumbnail.png 9 | draft: false 10 | number-sections: true 11 | 12 | format: 13 | html: 14 | include-before-body: ../../html/margin_image.html 15 | include-after-body: ../../html/blog_footer.html 16 | --- 17 | 18 | # Introduction 19 | 20 | As the academic world becomes increasingly competitive, researchers often find it challenging to keep up with the rigorous research demands while maintaining a balanced work-life schedule. Fortunately, there are project management tools that can help streamline workflows, increase productivity, and help achieve research goals with greater ease. 21 | 22 | In this blog post, we will discuss agile methods, which are practical and straightforward and can be applied to all academic disciplines. These methods can be applied in virtually any field where there is an abundance of work, and managing the work is a task by itself. 23 | 24 | # What are agile methods? 25 | 26 | Agile methods are a set of project management practices that prioritize flexibility, collaboration, and continuous improvement. The core idea of agile methods is to break down a project into smaller, more manageable tasks, and then to work on those tasks iteratively, with frequent feedback and adjustments. This allows for greater adaptability and responsiveness to changing circumstances, and helps to avoid the pitfalls of a rigid, top-down approach to project management. 27 | 28 | Agile methods emphasize the importance of communication, teamwork, and transparency, and encourage a culture of experimentation and learning. By incorporating feedback from stakeholders, and constantly re-evaluating and adjusting the project plan as necessary, agile methods help to ensure that the project stays on track and meets its goals. Overall, the goal of agile methods is to empower teams to work more efficiently and effectively, and to deliver high-quality results that meet the needs of all stakeholders. 29 | 30 | # How can I use agile methods? 31 | 32 | So, how can project management tools help you streamline your workflow and increase your productivity? Let's dive into some agile methods and explore how they can help you manage your research projects more efficiently. 33 | 34 | ## Method 1: Breaking down a project into smaller tasks 35 | 36 | Breaking down a large project into smaller, more manageable tasks is a common agile method that can help you focus on what needs to be done. This method is especially helpful if you tend to feel overwhelmed by the sheer scope of a project. 37 | 38 | For instance, if you're working on a research paper, you can break it down into smaller tasks such as conducting a literature review, drafting an outline, writing the introduction, collecting data, analyzing data, and writing the conclusion. This approach helps you manage your time more effectively and makes it easier to track your progress. 39 | 40 | ## Method 2: Specifying the "definition of done" 41 | 42 | Each task should have a clear "definition of done", which means identifying what needs to be done to complete that task. For example, if I am working on a plot for a research paper, my definition of done includes: 43 | 44 | - ✅ a colorblind-friendly palette, 45 | - ✅ a clear legend, proper labels, 46 | - ✅ a descriptive caption, 47 | - ✅ subfigures that match with alignment and font size. 48 | 49 | Specifying the "definition of done" helps you set clear expectations and ensures that you're meeting the requirements for each task. It also helps you avoid the feeling of being stuck in a never-ending cycle of revisions. If you're done (according to your definition of done) with all tasks, you can still re-iterate and polish the entire project. 50 | 51 | ## Method 3: Conducting retrospectives 52 | 53 | Retrospectives are crucial for reflecting on your workflow, identifying areas for improvement, and making changes for future projects. By reflecting on your successes and failures, you can work more efficiently and improve your research processes. 54 | 55 | To perform a retrospective, the team should set aside a specific time to reflect on the completed project or a particular phase of the project. Each team member should be encouraged to share their thoughts, feelings, and feedback openly and honestly. The team should discuss what worked well, what didn't work, and what could be improved. Retrospectives should be conducted regularly, preferably after each iteration, to continuously improve the workflow and achieve better results. 56 | 57 | As a junior researcher, you may not have the opportunity to issue a retrospective with all members of a project. However, you can still have a solo retrospective on your tasks. You can ask yourself questions like "What worked well and should be repeated next time?" or "What didn't work out well and should be changed right away?" or "What are the next steps, and when are they due?" 58 | 59 | ## Method 4: Setting work-in-progress limits 60 | 61 | Setting a limit on the number of tasks you're working on can help you avoid feeling overwhelmed and stay focused on the task at hand. For instance, you can limit yourself to two to three tasks for maximum efficiency. 62 | 63 | By setting work-in-progress limits, you can avoid overcommitting and ensure that you're making progress on the right tasks. 64 | 65 | also helps you prioritize your work and avoid the tendency to multitask, which can be counterproductive. 66 | 67 | ## Method 5: Estimating the required amount of work for each task 68 | 69 | Estimating the required amount of work for each task helps you plan your time more effectively and avoid over-committing. It also facilitates communication with collaborators by setting realistic expectations for when they can expect results. 70 | 71 | Estimating the required amount of work for each task also helps you avoid underestimating the amount of work required for a task, which can lead to delays and missed deadlines. 72 | 73 | ## Method 6: Prioritizing tasks 74 | 75 | Prioritizing tasks based on their importance and urgency is an essential skill for managing research projects. The Eisenhower Matrix is a useful tool for prioritizing tasks based on four categories: urgent and important, important but not urgent, urgent but not important, and neither urgent nor important. 76 | 77 | | | urgent | not urgent | 78 | |------------------:|:------------:|:----------------:| 79 | | **important** | Do it now. | Schedule a time. | 80 | | **not important** | Delegate it. | Delete it. | 81 | 82 | : Illustration of the Eisenhower matrix for prioritizing tasks. 83 | 84 | By using the Eisenhower Matrix, you can prioritize your tasks and make progress toward your goals without feeling overwhelmed. Learning to say no is also an essential skill in prioritizing tasks. 85 | 86 | # Conclusion 87 | 88 | In conclusion, implementing agile methods in academia can help you work more efficiently and achieve your research goals with greater ease. By breaking down a project into smaller tasks, defining the "definition of done", conducting retrospectives, setting work-in-progress limits, estimating the required amount of work for each task, and prioritizing tasks, you can manage your research projects more effectively and stay on track. Don't be afraid to give it a try! 89 | 90 | # TL;DR 91 | 92 | Agile methods are great, try those: 93 | 94 | 1. Break a project into manageable tasks 🧩 95 | 2. Definition of done ✅ 96 | 3. Retrospectives 👀 97 | 4. Limit work in progress 🛑 98 | 5. Estimate the amount of work ⏳ 99 | 6. Prioritize tasks ⚠️ 100 | -------------------------------------------------------------------------------- /blog/emnist-manual-loading/emnist-manual-loading-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/emnist-manual-loading/emnist-manual-loading-thumbnail.png -------------------------------------------------------------------------------- /blog/functional-programming-r-basics/function_as_argument_apply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/functional-programming-r-basics/function_as_argument_apply.png -------------------------------------------------------------------------------- /blog/functional-programming-r-basics/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/functional-programming-r-basics/thumbnail.png -------------------------------------------------------------------------------- /blog/ggsimplex-prerelease/figures/ggsimplex-hexsticker-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/ggsimplex-prerelease/figures/ggsimplex-hexsticker-thumbnail.png -------------------------------------------------------------------------------- /blog/ggsimplex-prerelease/figures/ggsimplex-hexsticker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/ggsimplex-prerelease/figures/ggsimplex-hexsticker.png -------------------------------------------------------------------------------- /blog/ggsimplex-prerelease/figures/illustration_simplices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/ggsimplex-prerelease/figures/illustration_simplices.png -------------------------------------------------------------------------------- /blog/hello-world/hello-world-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/hello-world/hello-world-bg.jpg -------------------------------------------------------------------------------- /blog/hello-world/hello-world-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/hello-world/hello-world-thumbnail.png -------------------------------------------------------------------------------- /blog/hello-world/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Hello World!" 3 | description: "For the past years, my homepage has just been a placeholder. It served a single purpose: People who enter the domain of my email address in their browser should not look at some weird empty page. So here we go!" 4 | date: 05-20-2022 5 | categories: 6 | - news 7 | image: hello-world-thumbnail.png 8 | reference-location: margin 9 | draft: false 10 | title-block-banner: hello-world-bg.jpg 11 | 12 | format: 13 | html: 14 | include-before-body: ../../html/margin_image.html 15 | include-after-body: ../../html/blog_footer.html 16 | --- 17 | 18 | (Photo by [Markus Spiske](https://www.pexels.com/photo/display-coding-programming-development-1921326/)) 19 | 20 | For the past years, my homepage was just a placeholder. It served a single purpose: People who enter the domain of my email address in their browser should not look at some weird empty page. So here we go! 21 | 22 | Thanks to the incredible Quarto project it was really a matter of a few hours to set everything up. Thank you! 23 | 24 | BTW: The top banner is a stock photo. If I ever produce code that looks anything like this dense mess, please remind me to quit programming forever. 25 | 26 | As pretty much every aspiring early career researcher, I am obviously planning to publish valuable, insightful, and thought-provoking blog posts regularly. See you ~~tomorrow~~ ~~next week~~ ~~in a month~~ at some time for the first actual post. Cheers! -------------------------------------------------------------------------------- /blog/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "`Marvin.log()`" 3 | author: "" 4 | title-block-banner: false 5 | page-layout: full 6 | description-meta: "Welcome to my blog, I’m thrilled to welcome you! Here, you will find a collection of articles on a wide variety of topics. Take a look around and let me know what you think!" 7 | 8 | listing: 9 | - id: posts_2024 10 | contents: 11 | - "outlines-r/index.qmd" 12 | - "laptop-mic-obs/index.qmd" 13 | - "youtube-channel/index.qmd" 14 | - "emnist-manual-loading/index.qmd" 15 | sort: "date desc" 16 | template: ../html/blog/listing.ejs 17 | categories: true 18 | - id: posts_2023 19 | contents: 20 | - "functional-programming-r-basics/index.qmd" 21 | - "scientists-should-have-a-website/index.qmd" 22 | - "website-tutorial-quarto/index.qmd" 23 | - "agile-methods-for-academia/index.qmd" 24 | - "ggsimplex-prerelease/index.qmd" 25 | - "4-realizations-from-atomic-habits/index.qmd" 26 | - "mac-email-shortcut/index.qmd" 27 | sort: "date desc" 28 | template: ../html/blog/listing.ejs 29 | categories: true 30 | - id: posts_2022 31 | contents: 32 | - "hello-world/index.qmd" 33 | sort: "date desc" 34 | template: ../html/blog/listing.ejs 35 | 36 | toc-title: Year 37 | toc-location: right 38 | date-format: "MMMM D, YYYY" 39 | image: "" 40 | code-tools: false 41 | comments: false 42 | --- 43 | 44 | Welcome to my blog, which I called `Marvin.log()`. Here's a loose collection of articles. Currently, there is no real ordering or coherent theme, but that might change in the future. I'm not very consistent with writing regular blog posts either -- I'm proud that I made it past the lonely "Hello World!" post though. If you want to get a notification when I add a new blog post, you can enter your email address at the bottom of the page. It's free and I won't send spam. I appreciate any kind of feedback and I'm genuinely thankful for your interest and time. 45 | 46 | ## 2024 47 | 48 | :::{#posts_2024} 49 | ::: 50 | 51 | ## 2023 52 | 53 | :::{#posts_2023} 54 | ::: 55 | 56 | ## 2022 57 | 58 | :::{#posts_2022} 59 | ::: 60 | 61 | --- 62 | 63 | The blog post listing is based on the website source of [Andrew Heiss](https://www.andrewheiss.com/), who has put together an incredible listing template under CC-BY-SA 4.0 license. Thank you! -------------------------------------------------------------------------------- /blog/laptop-mic-obs/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Make your built-in laptop mic sound good in OBS" 3 | description: "Some quick tips to improve the audio quality of your recordings and screen captures." 4 | date: 08-10-2024 5 | categories: 6 | - technology 7 | image: thumbnail.png 8 | draft: false 9 | format: 10 | html: 11 | fig-cap-location: bottom 12 | include-before-body: ../../html/margin_image.html 13 | include-after-body: ../../html/blog_footer.html 14 | editor: 15 | markdown: 16 | wrap: sentence 17 | resources: 18 | - "thumbnail.png" 19 | --- 20 | 21 | I recorded a short tutorial video, where I walk you through the steps to improve the audio quality of your built-in laptop microphone in OBS. Here's the video: 22 | 23 | {{< video https://www.youtube.com/watch?v=r2vSvVaIWNc 24 | title="Make your built-in laptop microphone sound good in OBS" 25 | aspect-ratio="16x9" >}} 26 | 27 | 28 | The video is unlisted because it doesn't fit in the usual content of my channel. If you're interested in a polished version of the video for the main channel, let me know and I'll add it to my content list. If you have any questions or suggestions, feel free to reach out -- always happy to help. -------------------------------------------------------------------------------- /blog/laptop-mic-obs/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/laptop-mic-obs/thumbnail.png -------------------------------------------------------------------------------- /blog/mac-email-shortcut/img/email_shortcut.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/mac-email-shortcut/img/email_shortcut.gif -------------------------------------------------------------------------------- /blog/mac-email-shortcut/img/email_shortcut.mov: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/mac-email-shortcut/img/email_shortcut.mov -------------------------------------------------------------------------------- /blog/mac-email-shortcut/img/screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/mac-email-shortcut/img/screenshot_1.png -------------------------------------------------------------------------------- /blog/mac-email-shortcut/img/screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/mac-email-shortcut/img/screenshot_2.png -------------------------------------------------------------------------------- /blog/mac-email-shortcut/img/screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/mac-email-shortcut/img/screenshot_3.png -------------------------------------------------------------------------------- /blog/mac-email-shortcut/img/screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/mac-email-shortcut/img/screenshot_4.png -------------------------------------------------------------------------------- /blog/mac-email-shortcut/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Quick hack: Mac email shortcut " 3 | description: "Create a custom keyboard shortcut for your email addresses on Mac." 4 | date: 01-24-2023 5 | categories: 6 | - tech 7 | image: mac_email_thumbnail_new.png 8 | reference-location: margin 9 | draft: false 10 | 11 | format: 12 | html: 13 | include-before-body: ../../html/margin_image.html 14 | include-after-body: ../../html/blog_footer.html 15 | --- 16 | 17 | 18 | 19 | 👆 That shortcut has saved me a bunch of time, and many many typos in email addresses. Whenever I type `@@g`, my computer automatically changes that to `mail.marvinschmitt@gmail.com`. 20 | 21 | I have a `@@_` shortcut for every email address I use. In this short blog post, I'll give you a quick tutorial on how to set up these custom shortcuts on a Mac. It's probably gonna take you less than five minutes, and save you way more than that in return. 22 | 23 | ⭐ Sounds like a plan? Let's go! ⭐ 24 | 25 | 1. Go to `System Preferences` and select the `Keyboard` submenu.\ 26 | ![](img/screenshot_1.png) 27 | 28 | 2. Navigate to the `Text` tab and hit the `+` button to add a new shortcut.\ 29 | ![](img/screenshot_2.png) 30 | 31 | 3. Add the *Shortcut* to the "Replace" column, and the full email address to the "With" column. I recommend to prefix the shortcut with `@@` because it makes it practically impossible to trigger the shortcut accidentally. Yet, it's reminiscent of an email address.\ 32 | ![](img/screenshot_3.png) 33 | 34 | 4. Repeat, profit.\ 35 | ![](img/screenshot_4.png) 36 | 37 | 🏁 That's it! 🥳 38 | 39 | You can use this method to create many more custom shortcuts, but my primary use case are all my email addresses. What are your ideas for custom shortcuts? I'd love to hear about them in the comment section below 👇 40 | 41 | PS: This method has one crucial caveat. When I'm typing on someone else's computer, I regularly type `@@g` on laser speed, followed by a brief moment of confusion, and a brief moment of disappointment when the shortcut doesn't fire. But well, *He giveth and he taketh away* 🤷 42 | 43 | \-\-- 44 | 45 | Thumbnail photo by Maksim Goncharenok: https://www.pexels.com/photo/gold-letter-y-on-black-background-5605061/ 46 | -------------------------------------------------------------------------------- /blog/mac-email-shortcut/mac_email_thumbnail_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/mac-email-shortcut/mac_email_thumbnail_new.png -------------------------------------------------------------------------------- /blog/outlines-r/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Structured Language Generation with Outlines in R" 3 | description: "Calling the Outlines Python package in R with the reticulate package, with OpenAI's GPT-4o as a language model." 4 | date: 10-15-2024 5 | categories: 6 | - tech 7 | - programming 8 | draft: false 9 | number-sections: false 10 | image: outlines-r-thumbnail.png 11 | format: 12 | html: 13 | fig-cap-location: bottom 14 | include-before-body: ../../html/margin_image.html 15 | include-after-body: ../../html/blog_footer.html 16 | comments: false 17 | editor: 18 | markdown: 19 | wrap: sentence 20 | --- 21 | 22 | Python is a great Swiss army knife for many tasks, especially when it comes to deep learning these days. 23 | However, many statisticians and data scientists prefer working in R. 24 | In this short blog post, we'll use the `reticulate` package to work with Python code inside R. 25 | This lets us use the great `outlines` package by dottxt, and OpenAI's GPT-4o as a language model backend. 26 | 27 | ## Load Reticulate and Set Up the Environment 28 | 29 | Load the `reticulate` library to interface between R and Python, and specify the conda environment that contains the necessary Python packages (`outlines`, `openai` and `tiktoken` in my case). 30 | 31 | ```{r} 32 | library(reticulate) 33 | use_condaenv("/Users/marvin/miniforge3/envs/outlines_py310", required = TRUE) 34 | os <- import("os") 35 | outlines <- import("outlines") 36 | ``` 37 | 38 | ## Set Up the OpenAI Model 39 | 40 | Set up the OpenAI model using the `outlines` package. 41 | You should not write your API key directly in the code. 42 | Instead, we use an environment variable which we set in the terminal before running the R script. 43 | This ensures that you don't accidentally leak your secret API key. 44 | 45 | ```{r} 46 | api_key <- Sys.getenv("OPENAI_API_KEY") 47 | model <- outlines$models$openai("gpt-4o", api_key = api_key) 48 | ``` 49 | 50 | ## Generate a Response 51 | 52 | Now we'll use the language model to answer a question, and restrict the answer to a choice from multiple options. 53 | For demonstration purposes, let's see whether GPT-4 can answer a basic question about Bayesian statistics. 54 | 55 | ```{r} 56 | choices = c("Prior", "Likelihood", "Marginal Likelihood", "Evidence", "Posterior") 57 | generator <- outlines$generate$choice(model, choices) 58 | 59 | result <- generator("In a Bayesian model, what do we call the probability distribution of parameters given the data?") 60 | print(result) 61 | ``` 62 | 63 | Let's try another more technical question, this time about the choice of a suitable distribution family to model count data. 64 | 65 | ```{r} 66 | choices = c("Gaussian", "Poisson", "Negative-Binomial", "Gamma") 67 | generator <- outlines$generate$choice(model, choices) 68 | 69 | result <- generator("We have a Bayesian model for count data $y$. The data $y$ is lower-bounded at zero, can take on integer values, and is probably overdispersed. The most suitable distribution family for the data model is ") 70 | print(result) 71 | ``` 72 | 73 | 74 | ## Next Steps 75 | 76 | In this demonstrator, we used `reticulate` as a simple bridge to call Python packages from within R. 77 | As a next steps, you can try other generation schemes (not just multiple choice) or build more complex pipelines. 78 | Also, Outlines really shines if you use it with a local open source LLM, so you should try that as well. 79 | -------------------------------------------------------------------------------- /blog/outlines-r/outlines-r-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/outlines-r/outlines-r-thumbnail.png -------------------------------------------------------------------------------- /blog/scientists-should-have-a-website/index.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "raw", 5 | "metadata": {}, 6 | "source": [ 7 | "---\n", 8 | "title: \"Every Scientist Should Have a Website\"\n", 9 | "description: \"How putting yourself out there helps you show your research, expand your network, control your own content, reach an audience, and enhance your opportunities.\"\n", 10 | "date: 06-21-2023\n", 11 | "categories: \n", 12 | " - website\n", 13 | " - academia\n", 14 | "image: thumbnail.png\n", 15 | "draft: false\n", 16 | "format:\n", 17 | " html:\n", 18 | " fig-cap-location: bottom\n", 19 | " include-before-body: ../../html/margin_image.html\n", 20 | " include-after-body: ../../html/blog_footer.html\n", 21 | "editor: \n", 22 | " markdown: \n", 23 | " wrap: sentence\n", 24 | "resources: \n", 25 | " - \"thumbnail.png\"\n", 26 | " - \"quarto-tutorial-screenshot.png\"\n", 27 | "---" 28 | ], 29 | "id": "9f26fa6a" 30 | }, 31 | { 32 | "cell_type": "markdown", 33 | "metadata": {}, 34 | "source": [ 35 | "In today's fast-paced and competitive academic landscape, establishing a strong online presence is crucial for scientists to showcase their research, connect with peers, and enhance their professional brand. While a digital publication list is undoubtedly valuable, having a personal website offers much more than a mere collection of papers. It serves as a powerful tool that allows scientists to highlight their achievements, foster collaborations, and inspire others on a global scale. In this blog post, we will explore compelling reasons why every scientist should have a personal website and discover how it can significantly benefit their scientific career.\n", 36 | "\n", 37 | "# Reason 1: Showcasing Your Research Journey\n", 38 | "\n", 39 | "Imagine having a central hub where you can effectively present your research achievements, publications, and expertise to the scientific community and beyond. A personal website provides precisely that. By curating your work in one place, you can stand out in the competitive scientific landscape and make it easier for others to discover and appreciate your valuable contributions. This platform offers a holistic view of your research journey, establishing you as a credible authority in your field.\n", 40 | "\n", 41 | "# Reason 2: Expanding Your Professional Network\n", 42 | "\n", 43 | "Collaboration is key to scientific progress. Your personal website acts as a gateway, connecting you with fellow scientists, potential collaborators, and industry professionals. It opens doors to new opportunities and facilitates the expansion of your professional network. By providing contact information and showcasing your research interests, you can attract like-minded individuals who share your passion and expertise. Through your website, you can foster collaborations, exchange ideas, and forge valuable connections that propel your research endeavors to new heights.\n", 44 | "\n", 45 | "# Reason 3: Exerting Control Over Your Online Presence\n", 46 | "\n", 47 | "In today's digital age, maintaining control over your online presence is essential. While social media platforms and other online channels offer great reach, they often come with limitations and constraints. A personal website grants you the freedom to share your research findings, insights, and perspectives on your own terms. You are not bound by character counts or algorithmic filters. This level of control allows you to maintain a professional online persona while freely expressing your thoughts and ideas.\n", 48 | "\n", 49 | "# Reason 4: Reaching a Global Audience\n", 50 | "\n", 51 | "While traditional scientific publications hold immense value, their reach can be limited. A personal website breaks down these barriers, enabling you to reach a global audience. By sharing your research with the world, you can engage with science enthusiasts, inspire others, and make a lasting impact beyond the confines of academia. Whether your goal is to communicate complex scientific concepts to a broader audience or connect with fellow researchers on a global scale, a personal website provides an ideal platform to achieve these goals effectively.\n", 52 | "\n", 53 | "# Reason 5: Enhancing Career Opportunities\n", 54 | "\n", 55 | "A personal website serves as a powerful tool for potential employers and academic institutions to explore your work, achievements, and contributions. It offers them a comprehensive understanding of your expertise, research interests, and the impact of your work. By showcasing your accomplishments and highlighting your unique perspectives, you significantly enhance your chances of securing exciting career opportunities. Whether it's a prestigious position in academia, industry collaborations, or speaking engagements, a well-crafted personal website leaves a lasting impression on those seeking to work with you.\n", 56 | "\n", 57 | "# How to Start Today\n", 58 | "\n", 59 | "So why wait? Take the leap and create your personal website today! To assist you, I have prepared a free tutorial and template to get you started on the right foot:\n", 60 | "\n", 61 | "\n", 62 | "\n", 63 | "```{html}\n", 64 | "\n", 65 | "```\n", 66 | "\n", 67 | "\n", 68 | "\n", 69 | "# Conclusion\n", 70 | "\n", 71 | "In summary, having a personal website is no longer a luxury but a necessity for scientists. It empowers you to showcase your work, expand your professional network, maintain control over your content, reach a global audience, and enhance your career opportunities. So, seize the opportunity and create your personal website today! By harnessing the power of this platform, you can amplify your research impact, connect with peers worldwide, and inspire others to join you on the path of scientific exploration and discovery." 72 | ], 73 | "id": "d07d974e" 74 | } 75 | ], 76 | "metadata": { 77 | "kernelspec": { 78 | "display_name": "Python 3", 79 | "language": "python", 80 | "name": "python3" 81 | } 82 | }, 83 | "nbformat": 4, 84 | "nbformat_minor": 5 85 | } -------------------------------------------------------------------------------- /blog/scientists-should-have-a-website/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Every Scientist Should Have a Website" 3 | description: "How putting yourself out there helps you show your research, expand your network, control your own content, reach an audience, and enhance your opportunities." 4 | date: 06-21-2023 5 | categories: 6 | - website 7 | - academia 8 | image: thumbnail.png 9 | draft: false 10 | format: 11 | html: 12 | fig-cap-location: bottom 13 | include-before-body: ../../html/margin_image.html 14 | include-after-body: ../../html/blog_footer.html 15 | editor: 16 | markdown: 17 | wrap: sentence 18 | resources: 19 | - "thumbnail.png" 20 | - "quarto-tutorial-screenshot.png" 21 | --- 22 | 23 | # Introduction 24 | 25 | In today's fast-paced academic landscape, establishing a strong online presence is crucial for scientists to showcase their research, connect with peers, and build their professional brand. Don't get me wrong, a digital publication list is nice and cool; but having a personal website means much more than a mere collection of papers. It is a great tool to highlight our achievements, foster collaborations, and inspire others on a global scale. Let's take a look at five compelling reasons why you should consider creating your own website as well. 26 | 27 | # Reason 1: Showcase Your Work 28 | 29 | Imagine having a central hub where you can effectively present your research achievements, publications, and expertise to the scientific community and beyond. A personal website provides precisely that. By curating your work in one place, you can stand out in the competitive scientific landscape and make it easier for others to discover and appreciate your valuable contributions. This platform offers a great view of your research journey. 30 | 31 | # Reason 2: Expand Your Network 32 | 33 | Collaboration is key to scientific progress. Your personal website acts as a gateway, connecting you with fellow scientists, potential collaborators, and industry professionals. It opens doors to new opportunities and facilitates the expansion of your professional network. By providing contact information and writing about your research interests, you can attract like-minded individuals who share your passion and expertise. Through your website, you can foster collaborations, exchange ideas, and forge valuable connections. 34 | 35 | # Reason 3: Have Control Over Your Content 36 | 37 | In today's digital age, maintaining control over your online presence is essential. While social media platforms and other online channels offer great reach, they often come with limitations and constraints. A personal website grants you the freedom to share your research findings, insights, and perspectives on your own terms. You are not bound by character counts or algorithmic filters. This level of control allows you to maintain a professional online persona while freely expressing your thoughts and ideas. 38 | 39 | # Reason 4: Reach an Audience 40 | 41 | While traditional scientific publications are the currency of academia, their reach can be limited. A personal website breaks down these barriers and makes you reach a global audience. By sharing your research with the world, you can engage with science enthusiasts, inspire others, and make a lasting impact beyond academic papers. Whether your goal is to communicate complex scientific concepts to a broader audience or connect with fellow researchers on a global scale, a personal website will bring you one step closer to your goal. 42 | 43 | # Reason 5: Enhance Opportunities 44 | 45 | A personal website is a way for potential employers and academic institutions to find out about your work, achievements, and contributions. It offers them a comprehensive understanding of your expertise, research interests, and the impact of your work. By showcasing your accomplishments and highlighting your unique perspectives, you can enhance your chances of exciting career opportunities. 46 | 47 | # How to Start Today 48 | 49 | So why wait? Take the leap and create your personal website today! To assist you, I have prepared a free tutorial and template to get you started on the right foot: 50 | 51 | 52 | ```{=html} 53 | 54 | ``` 55 | 56 | 57 | # Conclusion 58 | 59 | Having a personal website empowers you to showcase your work, expand your professional network, maintain control over your content, reach a global audience, and enhance your career opportunities. 60 | Remember: Your research is valuable, and you can create a personal website to put yourself out there and share your knowledge with others in no time. -------------------------------------------------------------------------------- /blog/scientists-should-have-a-website/quarto-tutorial-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/scientists-should-have-a-website/quarto-tutorial-screenshot.png -------------------------------------------------------------------------------- /blog/scientists-should-have-a-website/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/scientists-should-have-a-website/thumbnail.png -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/custom_styles.css: -------------------------------------------------------------------------------- 1 | .tip-thanks p{ 2 | font-size: 8pt; 3 | color: gray; 4 | } -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/opengraph_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/website-tutorial-quarto/opengraph_thumbnail.png -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/screenshots/screenshot_github_pages_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/website-tutorial-quarto/screenshots/screenshot_github_pages_settings.png -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/screenshots/screenshot_github_repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/website-tutorial-quarto/screenshots/screenshot_github_repo.png -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/screenshots/screenshot_rstudio_build_tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/website-tutorial-quarto/screenshots/screenshot_rstudio_build_tab.png -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/screenshots/website_template_screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/website-tutorial-quarto/screenshots/website_template_screenshot_1.png -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/screenshots/website_template_screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/website-tutorial-quarto/screenshots/website_template_screenshot_2.png -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/screenshots/website_template_screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/website-tutorial-quarto/screenshots/website_template_screenshot_3.png -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/screenshots/website_template_screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/website-tutorial-quarto/screenshots/website_template_screenshot_4.png -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/screenshots/website_url_meme.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/website-tutorial-quarto/screenshots/website_url_meme.jpeg -------------------------------------------------------------------------------- /blog/website-tutorial-quarto/website-tutorial-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/website-tutorial-quarto/website-tutorial-thumbnail.png -------------------------------------------------------------------------------- /blog/youtube-channel/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "I started a YouTube channel!" 3 | description: "The videos will be about early career research, technical ML/DL topics, and applied programming in R and Python. Check out my first video!" 4 | date: 07-12-2024 5 | categories: 6 | - announcement 7 | draft: false 8 | number-sections: false 9 | image: youtube-channel-thumbnail.jpeg 10 | format: 11 | html: 12 | fig-cap-location: bottom 13 | include-before-body: ../../html/margin_image.html 14 | include-after-body: ../../html/blog_footer.html 15 | comments: false 16 | editor: 17 | markdown: 18 | wrap: sentence 19 | --- 20 | 21 | This is a short blog post to share an exciting announcement with you. 22 | This thought has been on my mind for a while, and I finally decided to take the plunge. 23 | 24 | ## ✨ I’m starting a YouTube channel ✨ 25 | 26 | The videos on the YouTube channel will fall into three categories: 27 | 28 | - Early career research: tips and advice based on my own experience 29 | 30 | - Technical topics: Data science, machine learning, and deep learning 31 | 32 | - Applied programming: Visualization, reports, websites, and software design in R and Python 33 | 34 | {{< tweet user=MarvinSchmittML id=1809903233751503253 >}} 35 | 36 | ## About the channel 🧭 37 | 38 | The direction of the channel is not set in stone, and I’ll try to figure things out along the way. 39 | For now, my main goal is to get better at talking to the camera and practice video editing. 40 | If that piques your interest, I would be thrilled if you checked out my channel. 41 | In my first video, I talk about my background and my plans for the channel (i.e., I have none lol) 42 | 43 | {{< youtube 5Z9yNEgbbfU >}} 44 | 45 | ## Restructuring my website and newsletter 🏗 46 | 47 | The launch of the YouTube channel will lead to some restructuring work on my website overall. 48 | Setting up the channel made me think about what my vision is for future content. 49 | The blog will follow the same structure as the channel, with posts on early career research, technical ML/DL topics, and applied programming. 50 | I plan to use the `tag` system to make it easier for you to find the content you are interested in. 51 | This whole process may take a while and I appreciate your patience. 52 | For now, the **newsletter** (see bottom of the page) will mainly be used to send notifications about new content. 53 | I would like to focus on a consistent content schedule before I start sending out newsletters with additional content. 54 | So if you want to stay up to date and get occasional updates directly into your inbox, feel free to subscribe below (it's free!). 55 | 56 | ## What are your thoughts? 🧠 57 | 58 | You would make my day if you took a minute to engage with my content. 59 | I truly appreciate any kind of feedback (e.g., my voice is too bass-heavy in the video) or comments. 60 | For example, you might want to let me know: 61 | 62 | - What topics should I cover? 63 | - Do you have positive examples of similar content that you enjoy? 64 | - What mistakes should I avoid? What annoys you about other creators? 65 | - What makes a video worth watching for you? 66 | - How can I add to the existing conversation on early career research and machine learning? 67 | 68 | ## Get in touch 📬 69 | 70 | Feel free to drop me a message via email ([mail.marvinschmitt@gmail.com](mailto:mail.marvinschmitt@gmail.com)), or reach out on any social media platform. 71 | 72 | Thanks for reading, see you! 73 | 74 | --Marvin 75 | -------------------------------------------------------------------------------- /blog/youtube-channel/youtube-channel-thumbnail.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/blog/youtube-channel/youtube-channel-thumbnail.jpeg -------------------------------------------------------------------------------- /cv/CV_Marvin_Schmitt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/cv/CV_Marvin_Schmitt.pdf -------------------------------------------------------------------------------- /cv/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Curriculum vitae 4 | excerpt: My current CV 5 | comments: false 6 | execute: 7 | freeze: true # never re-render during project render 8 | engine: knitr 9 | cv: 10 | pdf: "CV_Marvin_Schmitt.pdf" 11 | --- 12 | 13 | ```{css echo=FALSE} 14 | .embed-container { 15 | position: relative; 16 | padding-bottom: 129%; 17 | height: 0; 18 | overflow: hidden; 19 | max-width: 100%; 20 | } 21 | .embed-container iframe, 22 | .embed-container object, 23 | .embed-container embed { 24 | position: absolute; 25 | top: 0; 26 | left: 0; 27 | width: 100%; 28 | height: 100%; 29 | } 30 | ``` 31 | 32 | ```{=html} 33 |

34 | 35 |  Download current CV 36 | 37 |

38 |
39 | 40 |
41 | ``` -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/.nojekyll -------------------------------------------------------------------------------- /docs/_extensions/quarto-ext/fontawesome/assets/css/latex-fontsize.css: -------------------------------------------------------------------------------- 1 | .fa-tiny { 2 | font-size: 0.5em; 3 | } 4 | .fa-scriptsize { 5 | font-size: 0.7em; 6 | } 7 | .fa-footnotesize { 8 | font-size: 0.8em; 9 | } 10 | .fa-small { 11 | font-size: 0.9em; 12 | } 13 | .fa-normalsize { 14 | font-size: 1em; 15 | } 16 | .fa-large { 17 | font-size: 1.2em; 18 | } 19 | .fa-Large { 20 | font-size: 1.5em; 21 | } 22 | .fa-LARGE { 23 | font-size: 1.75em; 24 | } 25 | .fa-huge { 26 | font-size: 2em; 27 | } 28 | .fa-Huge { 29 | font-size: 2.5em; 30 | } 31 | -------------------------------------------------------------------------------- /docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/_extensions/quarto-ext/fontawesome/assets/webfonts/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /docs/_redirects: -------------------------------------------------------------------------------- 1 | /blog/website-template-quarto/index.html /blog/website-tutorial-quarto/index.html 2 | /blog/website-template-quarto/ /blog/website-tutorial-quarto/ -------------------------------------------------------------------------------- /docs/assets/meta_uncertainty_poster_aistats.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/assets/meta_uncertainty_poster_aistats.pdf -------------------------------------------------------------------------------- /docs/assets/poster_bayescomp_mms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/assets/poster_bayescomp_mms.pdf -------------------------------------------------------------------------------- /docs/assets/sc_abi_poster_ICML.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/assets/sc_abi_poster_ICML.pdf -------------------------------------------------------------------------------- /docs/assets/support_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/assets/support_button.png -------------------------------------------------------------------------------- /docs/blog/4-realizations-from-atomic-habits/atomic_habits_thumbnail_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/4-realizations-from-atomic-habits/atomic_habits_thumbnail_new.png -------------------------------------------------------------------------------- /docs/blog/4-realizations-from-atomic-habits/atomic_habits_twitter_card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/4-realizations-from-atomic-habits/atomic_habits_twitter_card.png -------------------------------------------------------------------------------- /docs/blog/4-realizations-from-atomic-habits/index_files/figure-html/unnamed-chunk-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/4-realizations-from-atomic-habits/index_files/figure-html/unnamed-chunk-1-1.png -------------------------------------------------------------------------------- /docs/blog/agile-methods-for-academia/agile-academia-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/agile-methods-for-academia/agile-academia-thumbnail.png -------------------------------------------------------------------------------- /docs/blog/emnist-manual-loading/emnist-manual-loading-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/emnist-manual-loading/emnist-manual-loading-thumbnail.png -------------------------------------------------------------------------------- /docs/blog/functional-programming-r-basics/function_as_argument_apply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/functional-programming-r-basics/function_as_argument_apply.png -------------------------------------------------------------------------------- /docs/blog/functional-programming-r-basics/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/functional-programming-r-basics/thumbnail.png -------------------------------------------------------------------------------- /docs/blog/functional-programming-r-partial/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/blog/functional-programming-r-partial/index_files/figure-html/unnamed-chunk-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/functional-programming-r-partial/index_files/figure-html/unnamed-chunk-2-1.png -------------------------------------------------------------------------------- /docs/blog/functional-programming-r-partial/index_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/functional-programming-r-partial/index_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/blog/ggsimplex-prerelease/figures/ggsimplex-hexsticker-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/ggsimplex-prerelease/figures/ggsimplex-hexsticker-thumbnail.png -------------------------------------------------------------------------------- /docs/blog/ggsimplex-prerelease/figures/illustration_simplices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/ggsimplex-prerelease/figures/illustration_simplices.png -------------------------------------------------------------------------------- /docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-10-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-10-1.png -------------------------------------------------------------------------------- /docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-12-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-12-1.png -------------------------------------------------------------------------------- /docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-8-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/ggsimplex-prerelease/index_files/figure-html/unnamed-chunk-8-1.png -------------------------------------------------------------------------------- /docs/blog/hello-world/hello-world-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/hello-world/hello-world-bg.jpg -------------------------------------------------------------------------------- /docs/blog/hello-world/hello-world-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/hello-world/hello-world-thumbnail.png -------------------------------------------------------------------------------- /docs/blog/laptop-mic-obs/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/laptop-mic-obs/thumbnail.png -------------------------------------------------------------------------------- /docs/blog/mac-email-shortcut/img/email_shortcut.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/mac-email-shortcut/img/email_shortcut.gif -------------------------------------------------------------------------------- /docs/blog/mac-email-shortcut/img/email_shortcut.mov: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/mac-email-shortcut/img/email_shortcut.mov -------------------------------------------------------------------------------- /docs/blog/mac-email-shortcut/img/screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/mac-email-shortcut/img/screenshot_1.png -------------------------------------------------------------------------------- /docs/blog/mac-email-shortcut/img/screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/mac-email-shortcut/img/screenshot_2.png -------------------------------------------------------------------------------- /docs/blog/mac-email-shortcut/img/screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/mac-email-shortcut/img/screenshot_3.png -------------------------------------------------------------------------------- /docs/blog/mac-email-shortcut/img/screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/mac-email-shortcut/img/screenshot_4.png -------------------------------------------------------------------------------- /docs/blog/mac-email-shortcut/mac_email_thumbnail_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/mac-email-shortcut/mac_email_thumbnail_new.png -------------------------------------------------------------------------------- /docs/blog/mac-setup/mac_setup_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/mac-setup/mac_setup_thumbnail.png -------------------------------------------------------------------------------- /docs/blog/outlines-r/outlines-r-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/outlines-r/outlines-r-thumbnail.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/ddm_parameters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/ddm_parameters.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/forward_inverse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/forward_inverse.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/index_files/figure-html/cell-10-output-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/index_files/figure-html/cell-10-output-1.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/index_files/figure-html/cell-12-output-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/index_files/figure-html/cell-12-output-1.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/index_files/figure-html/cell-15-output-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/index_files/figure-html/cell-15-output-1.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/index_files/figure-html/cell-18-output-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/index_files/figure-html/cell-18-output-1.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/index_files/figure-html/cell-4-output-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/index_files/figure-html/cell-4-output-1.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/index_files/figure-html/cell-5-output-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/index_files/figure-html/cell-5-output-1.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/index_files/figure-html/cell-7-output-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/index_files/figure-html/cell-7-output-1.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/index_files/figure-html/cell-8-output-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/index_files/figure-html/cell-8-output-1.png -------------------------------------------------------------------------------- /docs/blog/sbi-taxonomy/index_files/figure-html/cell-9-output-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/sbi-taxonomy/index_files/figure-html/cell-9-output-1.png -------------------------------------------------------------------------------- /docs/blog/scientists-should-have-a-website/quarto-tutorial-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/scientists-should-have-a-website/quarto-tutorial-screenshot.png -------------------------------------------------------------------------------- /docs/blog/scientists-should-have-a-website/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/scientists-should-have-a-website/thumbnail.png -------------------------------------------------------------------------------- /docs/blog/website-tutorial-quarto/opengraph_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/website-tutorial-quarto/opengraph_thumbnail.png -------------------------------------------------------------------------------- /docs/blog/website-tutorial-quarto/screenshots/screenshot_github_pages_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/website-tutorial-quarto/screenshots/screenshot_github_pages_settings.png -------------------------------------------------------------------------------- /docs/blog/website-tutorial-quarto/screenshots/screenshot_github_repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/website-tutorial-quarto/screenshots/screenshot_github_repo.png -------------------------------------------------------------------------------- /docs/blog/website-tutorial-quarto/screenshots/screenshot_rstudio_build_tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/website-tutorial-quarto/screenshots/screenshot_rstudio_build_tab.png -------------------------------------------------------------------------------- /docs/blog/website-tutorial-quarto/screenshots/website_template_screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/website-tutorial-quarto/screenshots/website_template_screenshot_1.png -------------------------------------------------------------------------------- /docs/blog/website-tutorial-quarto/screenshots/website_template_screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/website-tutorial-quarto/screenshots/website_template_screenshot_2.png -------------------------------------------------------------------------------- /docs/blog/website-tutorial-quarto/screenshots/website_template_screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/website-tutorial-quarto/screenshots/website_template_screenshot_3.png -------------------------------------------------------------------------------- /docs/blog/website-tutorial-quarto/screenshots/website_template_screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/website-tutorial-quarto/screenshots/website_template_screenshot_4.png -------------------------------------------------------------------------------- /docs/blog/website-tutorial-quarto/screenshots/website_url_meme.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/website-tutorial-quarto/screenshots/website_url_meme.jpeg -------------------------------------------------------------------------------- /docs/blog/youtube-channel/youtube-channel-thumbnail.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/blog/youtube-channel/youtube-channel-thumbnail.jpeg -------------------------------------------------------------------------------- /docs/cv/CV_Marvin_Schmitt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/cv/CV_Marvin_Schmitt.pdf -------------------------------------------------------------------------------- /docs/html/landing_page_styles.css: -------------------------------------------------------------------------------- 1 | :root { 2 | 3 | --gradient-text: var(--color-primary); 4 | --gradient-bar: linear-gradient(103.22deg, #c7c7c7 -13.86%, #ff7a48 99.55%); 5 | 6 | --color-primary: #E6AA04; 7 | --color-bg: #fff; 8 | --color-bg-1: #b3a69f; 9 | --color-bg-2: #d8f2ea; 10 | --color-text: #000; 11 | --color-subtext: #E6AA04; 12 | } 13 | 14 | * { 15 | box-sizing: border-box; 16 | padding: 0; 17 | margin: 0; 18 | scroll-behavior: smooth; 19 | } 20 | 21 | body{ 22 | overscroll-behavior: none; 23 | } 24 | 25 | .gradient_bg { 26 | overflow: visible; 27 | width: 100%; 28 | margin-top: 0; 29 | background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255, 255, 255, 1) 100%); 30 | /*background: linear-gradient(90deg, rgba(0, 97, 242, 1) 0%, rgba(105, 0, 199, 1) 100%);*/ 31 | } 32 | 33 | h1 { 34 | color: black; 35 | } 36 | 37 | a { 38 | color: unset; 39 | text-decoration: none; 40 | } 41 | 42 | /*.gradient_bg {*/ 43 | /* background:-moz-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 44 | 45 | /* !* safari 5.1+,chrome 10+ *!*/ 46 | /* background:-webkit-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 47 | 48 | /* !* opera 11.10+ *!*/ 49 | /* background:-o-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 50 | 51 | /* !* ie 10+ *!*/ 52 | /* background:-ms-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 53 | 54 | /* !* global 92%+ browsers support *!*/ 55 | /* background:radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 56 | /*}*/ 57 | 58 | .gradient_text { 59 | background: var(--gradient-text); 60 | background-clip: text; 61 | -webkit-background-clip: text; 62 | -webkit-text-fill-color: transparent; 63 | } 64 | 65 | .section_padding { 66 | padding: 2rem 6rem 4rem 6rem; 67 | } 68 | 69 | .section_margin { 70 | margin: 4rem 6rem; 71 | } 72 | 73 | .scale-up-center { 74 | -webkit-animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both; 75 | animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both; 76 | } 77 | 78 | @-webkit-keyframes scale-up-center { 79 | 0% { 80 | -webkit-transform: scale(0.5); 81 | transform: scale(0.5); 82 | } 83 | 100% { 84 | -webkit-transform: scale(1); 85 | transform: scale(1); 86 | } 87 | } 88 | 89 | @keyframes scale-up-center { 90 | 0% { 91 | -webkit-transform: scale(0.5); 92 | transform: scale(0.5); 93 | } 94 | 100% { 95 | -webkit-transform: scale(1); 96 | transform: scale(1); 97 | } 98 | } 99 | 100 | @media screen and (max-width: 700px) { 101 | .section_padding { 102 | padding: 1rem 2rem 0rem 2rem; 103 | } 104 | 105 | .hero { 106 | padding-top: 2rem; 107 | } 108 | 109 | .section_margin { 110 | margin: 4rem; 111 | } 112 | } 113 | 114 | @media screen and (max-width: 550px) { 115 | .section_padding { 116 | padding: 1rem 2rem 0rem 2rem; 117 | } 118 | 119 | .hero { 120 | padding-top: 2rem; 121 | } 122 | 123 | .section_margin { 124 | margin: 4rem 2rem; 125 | } 126 | 127 | } 128 | 129 | .hero { 130 | display: flex; 131 | flex-direction: row; 132 | z-index: 1; 133 | max-width: 2000px; 134 | margin: auto; 135 | padding-top: 6rem; 136 | } 137 | 138 | .hero_content { 139 | flex: 1; 140 | display: flex; 141 | justify-content: center; 142 | align-items: flex-start; 143 | flex-direction: column; 144 | z-index: 7; 145 | margin-right: 5rem; 146 | margin: auto; 147 | max-width: 700px; 148 | } 149 | 150 | .hero_content h1 { 151 | font-weight: 800; 152 | font-size: 62px; 153 | line-height: 75px; 154 | letter-spacing: -0.04em; 155 | } 156 | 157 | .hero_content p { 158 | font-weight: 400; 159 | font-size: 20px; 160 | line-height: 28px; 161 | color: var(--color-text); 162 | 163 | margin-top: 1.5rem; 164 | } 165 | 166 | .hero_content_input { 167 | z-index: 7; 168 | width: 100%; 169 | margin: 2rem 0 0rem; 170 | display: flex; 171 | flex-direction: row; 172 | } 173 | 174 | .hero_content_input iframe { 175 | flex: 2; 176 | min-height: 53px; 177 | max-height: 53px; 178 | padding: 0 0rem; 179 | margin: 0 !important; 180 | padding:0 !important; 181 | border-radius: 0px !important; 182 | background-color: transparent; 183 | width: 100%; 184 | } 185 | 186 | .hero_content_below_button span { 187 | margin: 0px; 188 | padding: 0px; 189 | position: relative; 190 | top: 0px; 191 | color: white; 192 | font-size: 12pt; 193 | font-style: italic; 194 | } 195 | 196 | 197 | .hero_image { 198 | z-index: 7; 199 | flex: 1; 200 | display: flex; 201 | justify-content: center; 202 | align-items: center; 203 | } 204 | 205 | .hero_image img { 206 | z-index: 7; 207 | width: 70%; 208 | aspect-ratio: 1/1; 209 | margin: auto; 210 | max-width: 350px; 211 | min-width: 250px; 212 | border-radius: 50%; 213 | box-shadow: 214 | rgba(0, 0, 0, 0.25) 0px 54px 55px, 215 | rgba(0, 0, 0, 0.12) 0px -12px 30px, 216 | rgba(0, 0, 0, 0.12) 0px 4px 6px, 217 | rgba(0, 0, 0, 0.17) 0px 12px 13px, 218 | rgba(0, 0, 0, 0.09) 0px -3px 5px 219 | ; 220 | border: 0px solid black; 221 | } 222 | 223 | 224 | @media screen and (max-width: 1050px) { 225 | .hero { 226 | flex-direction: column; 227 | } 228 | 229 | .hero_content { 230 | margin: 0 0 3rem; 231 | } 232 | } 233 | 234 | @media screen and (max-width: 650px) { 235 | .hero_content h1 { 236 | font-size: 48px; 237 | line-height: 60px; 238 | } 239 | 240 | .hero_content p{ 241 | font-size: 16px; 242 | line-height: 24px; 243 | } 244 | 245 | .hero_content_below_button span{ 246 | font-size: 11px; 247 | } 248 | 249 | .hero_content_input input, 250 | .hero_content_input button, 251 | .hero_content_input iframe{ 252 | font-size: 16px; 253 | line-height: 24px; 254 | } 255 | } 256 | 257 | @media screen and (max-width: 490px) { 258 | .hero_content h1 { 259 | font-size: 36px; 260 | line-height: 48px; 261 | } 262 | 263 | .hero_content p{ 264 | font-size: 14px; 265 | line-height: 24px; 266 | } 267 | 268 | .hero_content_input input, 269 | .hero_content_input button, 270 | .hero_content_input iframe{ 271 | font-size: 12px; 272 | line-height: 16px; 273 | } 274 | 275 | .hero_content_below_button span{ 276 | font-size: 10px; 277 | } 278 | } 279 | 280 | #bottom_wave{ 281 | z-index: 7; 282 | position:relative; 283 | } 284 | 285 | .parallax{ 286 | 287 | } 288 | 289 | #dot_container{ 290 | height: 60%; 291 | width: 100%; 292 | z-index: 5; 293 | position: absolute; 294 | top: 0%; 295 | left: 0%; 296 | } 297 | 298 | .dot{ 299 | border-radius: 50%; 300 | opacity: 50%; 301 | } -------------------------------------------------------------------------------- /docs/img/404_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/404_error.png -------------------------------------------------------------------------------- /docs/img/bayesflow_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/bayesflow_overview.png -------------------------------------------------------------------------------- /docs/img/bg_trees.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/bg_trees.png -------------------------------------------------------------------------------- /docs/img/bg_trees_dark_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/bg_trees_dark_banner.png -------------------------------------------------------------------------------- /docs/img/cmpe_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/cmpe_banner.png -------------------------------------------------------------------------------- /docs/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/favicon.ico -------------------------------------------------------------------------------- /docs/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/favicon.png -------------------------------------------------------------------------------- /docs/img/jana_figure_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/jana_figure_1.png -------------------------------------------------------------------------------- /docs/img/marvin_foto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/marvin_foto.png -------------------------------------------------------------------------------- /docs/img/marvin_foto_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/marvin_foto_hex.png -------------------------------------------------------------------------------- /docs/img/marvin_foto_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/marvin_foto_round.png -------------------------------------------------------------------------------- /docs/img/marvin_headshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/marvin_headshot.png -------------------------------------------------------------------------------- /docs/img/marvins_log_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/marvins_log_logo.png -------------------------------------------------------------------------------- /docs/img/marvins_log_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/marvins_log_thumbnail.png -------------------------------------------------------------------------------- /docs/img/meta_uncertainty_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/meta_uncertainty_banner.png -------------------------------------------------------------------------------- /docs/img/model_misspecification_amortized_sbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/model_misspecification_amortized_sbi.png -------------------------------------------------------------------------------- /docs/img/ms_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/ms_icon.png -------------------------------------------------------------------------------- /docs/img/multi_npe_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/multi_npe_banner.png -------------------------------------------------------------------------------- /docs/img/self_consistency_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/self_consistency_banner.png -------------------------------------------------------------------------------- /docs/img/shk_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/shk_thumbnail.png -------------------------------------------------------------------------------- /docs/img/website_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/img/website_thumbnail.png -------------------------------------------------------------------------------- /docs/listings.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "listing": "/blog/index.html", 4 | "items": [ 5 | "/blog/outlines-r/index.html", 6 | "/blog/laptop-mic-obs/index.html", 7 | "/blog/youtube-channel/index.html", 8 | "/blog/emnist-manual-loading/index.html", 9 | "/blog/functional-programming-r-basics/index.html", 10 | "/blog/scientists-should-have-a-website/index.html", 11 | "/blog/website-tutorial-quarto/index.html", 12 | "/blog/agile-methods-for-academia/index.html", 13 | "/blog/ggsimplex-prerelease/index.html", 14 | "/blog/mac-email-shortcut/index.html", 15 | "/blog/4-realizations-from-atomic-habits/index.html", 16 | "/blog/hello-world/index.html" 17 | ] 18 | }, 19 | { 20 | "listing": "/index.html", 21 | "items": [ 22 | "/blog/outlines-r/index.html", 23 | "/blog/youtube-channel/index.html", 24 | "/blog/website-tutorial-quarto/index.html" 25 | ] 26 | } 27 | ] -------------------------------------------------------------------------------- /docs/robots.txt: -------------------------------------------------------------------------------- 1 | Sitemap: https://marvinschmitt.github.io/sitemap.xml 2 | -------------------------------------------------------------------------------- /docs/site_libs/bootstrap/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/site_libs/bootstrap/bootstrap-icons.woff -------------------------------------------------------------------------------- /docs/site_libs/cookie-consent/cookie-consent.css: -------------------------------------------------------------------------------- 1 | div.cookie-consent-footer { 2 | font-size: 0.8em; 3 | text-decoration: none; 4 | } 5 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-brands-400.ttf -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-brands-400.woff2 -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-regular-400.ttf -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-regular-400.woff2 -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-solid-900.ttf -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-solid-900.woff2 -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/site_libs/quarto-contrib/fontawesome6-0.1.0/1e21o67/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/fontawesome6-0.1.0/latex-fontsize.css: -------------------------------------------------------------------------------- 1 | .fa-tiny { 2 | font-size: 0.5em; 3 | } 4 | .fa-scriptsize { 5 | font-size: 0.7em; 6 | } 7 | .fa-footnotesize { 8 | font-size: 0.8em; 9 | } 10 | .fa-small { 11 | font-size: 0.9em; 12 | } 13 | .fa-normalsize { 14 | font-size: 1em; 15 | } 16 | .fa-large { 17 | font-size: 1.2em; 18 | } 19 | .fa-Large { 20 | font-size: 1.5em; 21 | } 22 | .fa-LARGE { 23 | font-size: 1.75em; 24 | } 25 | .fa-huge { 26 | font-size: 2em; 27 | } 28 | .fa-Huge { 29 | font-size: 2.5em; 30 | } 31 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/twitter-0.0.1/_extension.yml: -------------------------------------------------------------------------------- 1 | title: social-embeds 2 | author: Mark Sellors 3 | version: 0.0.2 4 | contributes: 5 | shortcodes: 6 | - gists.lua 7 | - loom.lua 8 | - twitter.lua 9 | - vimeo.lua 10 | - youtube.lua 11 | - mastodon.lua 12 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/twitter-0.0.1/gists.lua: -------------------------------------------------------------------------------- 1 | function gist(args) 2 | if quarto.doc.isFormat('html') then 3 | local user = pandoc.utils.stringify(args[1]) 4 | local gist_id = pandoc.utils.stringify(args[2]) 5 | local file_fragment = '' 6 | if args[3] ~= nil then 7 | local file = pandoc.utils.stringify(args[3]) 8 | file_fragment = '?file=' .. file 9 | end 10 | 11 | -- Assemble HTML to be returned 12 | local html = '' 19 | 20 | return pandoc.RawInline('html', html) 21 | else 22 | return pandoc.Null() 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/twitter-0.0.1/loom.lua: -------------------------------------------------------------------------------- 1 | function loom(args) 2 | if quarto.doc.isFormat('html') then 3 | local videoid = pandoc.utils.stringify(args[1]) 4 | 5 | -- Assemble HTML to be returned 6 | local html = '
' 9 | 10 | return pandoc.RawInline('html', html) 11 | else 12 | return pandoc.Null() 13 | end 14 | end 15 | 16 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/twitter-0.0.1/mastodon.lua: -------------------------------------------------------------------------------- 1 | function mastodon(args) 2 | if quarto.doc.isFormat('html') then 3 | local status_url = pandoc.utils.stringify(args[1]) 4 | print(status_url) 5 | -- Assemble HTML to be returned 6 | local html = '
' 7 | 8 | return pandoc.RawInline('html', html) 9 | else 10 | return pandoc.Null() 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/twitter-0.0.1/twitter.lua: -------------------------------------------------------------------------------- 1 | local function ensureHtmlDeps() 2 | quarto.doc.addHtmlDependency({ 3 | name = 'twitter', 4 | version = '0.0.1', 5 | scripts = { 6 | { 7 | path = "", 8 | attribs = {src="https://platform.twitter.com/widgets.js"}, 9 | afterBody = true 10 | } 11 | } 12 | }) 13 | end 14 | 15 | local function isEmpty(s) 16 | return s == nil or s == '' 17 | end 18 | 19 | function tweet(args, kwargs) 20 | if quarto.doc.isFormat('html') then 21 | ensureHtmlDeps() 22 | 23 | if isEmpty(args[1]) then 24 | user = pandoc.utils.stringify(kwargs["user"]) 25 | status_id = pandoc.utils.stringify(kwargs["id"]) 26 | else 27 | user = pandoc.utils.stringify(args[1]) 28 | status_id = pandoc.utils.stringify(args[2]) 29 | end 30 | 31 | -- Assemble the twitter oembed API URL from the user inputs 32 | local tweet_embed = 'https://publish.twitter.com/oembed?url=https://twitter.com/' 33 | .. user 34 | .. '/status/' 35 | .. status_id 36 | .. '&align=center' 37 | 38 | print(tweet_embed) 39 | 40 | local mt, api_resp = pandoc.mediabag.fetch(tweet_embed) 41 | 42 | -- generate a random number to append to the html div ID to avoid re-use 43 | local id = math.random(10000, 99999) 44 | 45 | local tweet_data = '
' 52 | 53 | return pandoc.RawInline('html', tweet_data) 54 | else 55 | return pandoc.Null() 56 | end 57 | end 58 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/twitter-0.0.1/vimeo.lua: -------------------------------------------------------------------------------- 1 | function vimeo(args) 2 | if quarto.doc.isFormat('html') then 3 | local videoid = pandoc.utils.stringify(args[1]) 4 | 5 | -- Assemble HTML to be returned 6 | local html = '
' 9 | 10 | return pandoc.RawInline('html', html) 11 | else 12 | return pandoc.Null() 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-contrib/twitter-0.0.1/youtube.lua: -------------------------------------------------------------------------------- 1 | function youtube(args) 2 | if quarto.doc.isFormat('html') then 3 | local videoid = pandoc.utils.stringify(args[1]) 4 | 5 | -- Assemble HTML to be returned 6 | local html = '
' 9 | 10 | return pandoc.RawInline('html', html) 11 | else 12 | return pandoc.Null() 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-html/anchor.min.js: -------------------------------------------------------------------------------- 1 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat 2 | // 3 | // AnchorJS - v5.0.0 - 2023-01-18 4 | // https://www.bryanbraun.com/anchorjs/ 5 | // Copyright (c) 2023 Bryan Braun; Licensed MIT 6 | // 7 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat 8 | !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(globalThis,function(){"use strict";return function(A){function u(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function d(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],u(this.options),this.add=function(A){var e,t,o,i,n,s,a,r,l,c,h,p=[];if(u(this.options),0!==(e=d(A=A||"h2, h3, h4, h5, h6")).length){for(null===document.head.querySelector("style.anchorjs")&&((A=document.createElement("style")).className="anchorjs",A.appendChild(document.createTextNode("")),void 0===(h=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(A):document.head.insertBefore(A,h),A.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",A.sheet.cssRules.length),A.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); 9 | // @license-end -------------------------------------------------------------------------------- /docs/site_libs/quarto-html/quarto-syntax-highlighting-879e302ca45bb6811b6062ec9bd6e23b.css: -------------------------------------------------------------------------------- 1 | /* quarto syntax highlight colors */ 2 | :root { 3 | --quarto-hl-al-color: #ff5555; 4 | --quarto-hl-an-color: #75715e; 5 | --quarto-hl-at-color: #f92672; 6 | --quarto-hl-bn-color: #ae81ff; 7 | --quarto-hl-bu-color: #66D9EF; 8 | --quarto-hl-ch-color: #e6db74; 9 | --quarto-hl-co-color: #75715e; 10 | --quarto-hl-cv-color: #75715e; 11 | --quarto-hl-cn-color: #ae81ff; 12 | --quarto-hl-cf-color: #f92672; 13 | --quarto-hl-dt-color: #66d9ef; 14 | --quarto-hl-dv-color: #ae81ff; 15 | --quarto-hl-do-color: #75715e; 16 | --quarto-hl-er-color: #ff5555; 17 | --quarto-hl-ex-color: #a6e22e; 18 | --quarto-hl-fl-color: #ae81ff; 19 | --quarto-hl-fu-color: #a6e22e; 20 | --quarto-hl-im-color: #f92672; 21 | --quarto-hl-in-color: #f1fa8c; 22 | --quarto-hl-kw-color: #f92672; 23 | --quarto-hl-op-color: #f8f8f2; 24 | --quarto-hl-pp-color: #f92672; 25 | --quarto-hl-re-color: #75715e; 26 | --quarto-hl-sc-color: #ae81ff; 27 | --quarto-hl-ss-color: #e6db74; 28 | --quarto-hl-st-color: #e6db74; 29 | --quarto-hl-va-color: #f8f8f2; 30 | --quarto-hl-vs-color: #e6db74; 31 | --quarto-hl-wa-color: #ff5555; 32 | } 33 | 34 | /* other quarto variables */ 35 | :root { 36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 37 | } 38 | 39 | code span.al { 40 | font-weight: bold; 41 | color: #ff5555; 42 | } 43 | 44 | code span.an { 45 | color: #75715e; 46 | } 47 | 48 | code span.at { 49 | color: #f92672; 50 | } 51 | 52 | code span.bn { 53 | color: #ae81ff; 54 | } 55 | 56 | code span.bu { 57 | color: #66D9EF; 58 | } 59 | 60 | code span.ch { 61 | color: #e6db74; 62 | } 63 | 64 | code span.co { 65 | color: #75715e; 66 | } 67 | 68 | code span.cv { 69 | color: #75715e; 70 | } 71 | 72 | code span.cn { 73 | color: #ae81ff; 74 | } 75 | 76 | code span.cf { 77 | color: #f92672; 78 | } 79 | 80 | code span.dt { 81 | font-style: italic; 82 | color: #66d9ef; 83 | } 84 | 85 | code span.dv { 86 | color: #ae81ff; 87 | } 88 | 89 | code span.do { 90 | color: #75715e; 91 | } 92 | 93 | code span.er { 94 | color: #ff5555; 95 | text-decoration: underline; 96 | } 97 | 98 | code span.ex { 99 | font-weight: bold; 100 | color: #a6e22e; 101 | } 102 | 103 | code span.fl { 104 | color: #ae81ff; 105 | } 106 | 107 | code span.fu { 108 | color: #a6e22e; 109 | } 110 | 111 | code span.im { 112 | color: #f92672; 113 | } 114 | 115 | code span.in { 116 | color: #f1fa8c; 117 | } 118 | 119 | code span.kw { 120 | color: #f92672; 121 | } 122 | 123 | pre > code.sourceCode > span { 124 | color: #f8f8f2; 125 | } 126 | 127 | code span { 128 | color: #f8f8f2; 129 | } 130 | 131 | code.sourceCode > span { 132 | color: #f8f8f2; 133 | } 134 | 135 | div.sourceCode, 136 | div.sourceCode pre.sourceCode { 137 | color: #f8f8f2; 138 | } 139 | 140 | code span.op { 141 | color: #f8f8f2; 142 | } 143 | 144 | code span.pp { 145 | color: #f92672; 146 | } 147 | 148 | code span.re { 149 | color: #75715e; 150 | } 151 | 152 | code span.sc { 153 | color: #ae81ff; 154 | } 155 | 156 | code span.ss { 157 | color: #e6db74; 158 | } 159 | 160 | code span.st { 161 | color: #e6db74; 162 | } 163 | 164 | code span.va { 165 | color: #f8f8f2; 166 | } 167 | 168 | code span.vs { 169 | color: #e6db74; 170 | } 171 | 172 | code span.wa { 173 | color: #ff5555; 174 | } 175 | 176 | .prevent-inlining { 177 | content: " code.sourceCode > span { 124 | color: #f8f8f2; 125 | } 126 | 127 | code span { 128 | color: #f8f8f2; 129 | } 130 | 131 | code.sourceCode > span { 132 | color: #f8f8f2; 133 | } 134 | 135 | div.sourceCode, 136 | div.sourceCode pre.sourceCode { 137 | color: #f8f8f2; 138 | } 139 | 140 | code span.op { 141 | color: #f8f8f2; 142 | } 143 | 144 | code span.pp { 145 | color: #f92672; 146 | } 147 | 148 | code span.re { 149 | color: #75715e; 150 | } 151 | 152 | code span.sc { 153 | color: #ae81ff; 154 | } 155 | 156 | code span.ss { 157 | color: #e6db74; 158 | } 159 | 160 | code span.st { 161 | color: #e6db74; 162 | } 163 | 164 | code span.va { 165 | color: #f8f8f2; 166 | } 167 | 168 | code span.vs { 169 | color: #e6db74; 170 | } 171 | 172 | code span.wa { 173 | color: #ff5555; 174 | } 175 | 176 | .prevent-inlining { 177 | content: ".tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} -------------------------------------------------------------------------------- /docs/site_libs/quarto-html/zenscroll-min.js: -------------------------------------------------------------------------------- 1 | !function(t,e){"function"==typeof define&&define.amd?define([],e()):"object"==typeof module&&module.exports?module.exports=e():function n(){document&&document.body?t.zenscroll=e():setTimeout(n,9)}()}(this,function(){"use strict";var t=function(t){return t&&"getComputedStyle"in window&&"smooth"===window.getComputedStyle(t)["scroll-behavior"]};if("undefined"==typeof window||!("document"in window))return{};var e=function(e,n,o){n=n||999,o||0===o||(o=9);var i,r=function(t){i=t},u=function(){clearTimeout(i),r(0)},c=function(t){return Math.max(0,e.getTopOf(t)-o)},a=function(o,i,c){if(u(),0===i||i&&i<0||t(e.body))e.toY(o),c&&c();else{var a=e.getY(),f=Math.max(0,o)-a,s=(new Date).getTime();i=i||Math.min(Math.abs(f),n),function t(){r(setTimeout(function(){var n=Math.min(1,((new Date).getTime()-s)/i),o=Math.max(0,Math.floor(a+f*(n<.5?2*n*n:n*(4-2*n)-1)));e.toY(o),n<1&&e.getHeight()+os?f(t,n,i):u+o>d?a(u-s+o,n,i):i&&i()},l=function(t,n,o,i){a(Math.max(0,e.getTopOf(t)-e.getHeight()/2+(o||t.getBoundingClientRect().height/2)),n,i)};return{setup:function(t,e){return(0===t||t)&&(n=t),(0===e||e)&&(o=e),{defaultDuration:n,edgeOffset:o}},to:f,toY:a,intoView:s,center:l,stop:u,moving:function(){return!!i},getY:e.getY,getTopOf:e.getTopOf}},n=document.documentElement,o=function(){return window.scrollY||n.scrollTop},i=e({body:document.scrollingElement||document.body,toY:function(t){window.scrollTo(0,t)},getY:o,getHeight:function(){return window.innerHeight||n.clientHeight},getTopOf:function(t){return t.getBoundingClientRect().top+o()-n.offsetTop}});if(i.createScroller=function(t,o,i){return e({body:t,toY:function(e){t.scrollTop=e},getY:function(){return t.scrollTop},getHeight:function(){return Math.min(t.clientHeight,window.innerHeight||n.clientHeight)},getTopOf:function(t){return t.offsetTop}},o,i)},"addEventListener"in window&&!window.noZensmooth&&!t(document.body)){var r="history"in window&&"pushState"in history,u=r&&"scrollRestoration"in history;u&&(history.scrollRestoration="auto"),window.addEventListener("load",function(){u&&(setTimeout(function(){history.scrollRestoration="manual"},9),window.addEventListener("popstate",function(t){t.state&&"zenscrollY"in t.state&&i.toY(t.state.zenscrollY)},!1)),window.location.hash&&setTimeout(function(){var t=i.setup().edgeOffset;if(t){var e=document.getElementById(window.location.href.split("#")[1]);if(e){var n=Math.max(0,i.getTopOf(e)-t),o=i.getY()-n;0<=o&&o<9&&window.scrollTo(0,n)}}},9)},!1);var c=new RegExp("(^|\\s)noZensmooth(\\s|$)");window.addEventListener("click",function(t){for(var e=t.target;e&&"A"!==e.tagName;)e=e.parentNode;if(!(!e||1!==t.which||t.shiftKey||t.metaKey||t.ctrlKey||t.altKey)){if(u){var n=history.state&&"object"==typeof history.state?history.state:{};n.zenscrollY=i.getY();try{history.replaceState(n,"")}catch(t){}}var o=e.getAttribute("href")||"";if(0===o.indexOf("#")&&!c.test(e.className)){var a=0,f=document.getElementById(o.substring(1));if("#"!==o){if(!f)return;a=i.getTopOf(f)}t.preventDefault();var s=function(){window.location=o},l=i.setup().edgeOffset;l&&(a=Math.max(0,a-l),r&&(s=function(){history.pushState({},"",o)})),i.toY(a,null,s)}}},!1)}return i}); -------------------------------------------------------------------------------- /docs/site_libs/quarto-listing/quarto-listing.js: -------------------------------------------------------------------------------- 1 | const kProgressiveAttr = "data-src"; 2 | let categoriesLoaded = false; 3 | 4 | window.quartoListingCategory = (category) => { 5 | category = atob(category); 6 | if (categoriesLoaded) { 7 | activateCategory(category); 8 | setCategoryHash(category); 9 | } 10 | }; 11 | 12 | window["quarto-listing-loaded"] = () => { 13 | // Process any existing hash 14 | const hash = getHash(); 15 | 16 | if (hash) { 17 | // If there is a category, switch to that 18 | if (hash.category) { 19 | activateCategory(hash.category); 20 | } 21 | // Paginate a specific listing 22 | const listingIds = Object.keys(window["quarto-listings"]); 23 | for (const listingId of listingIds) { 24 | const page = hash[getListingPageKey(listingId)]; 25 | if (page) { 26 | showPage(listingId, page); 27 | } 28 | } 29 | } 30 | 31 | const listingIds = Object.keys(window["quarto-listings"]); 32 | for (const listingId of listingIds) { 33 | // The actual list 34 | const list = window["quarto-listings"][listingId]; 35 | 36 | // Update the handlers for pagination events 37 | refreshPaginationHandlers(listingId); 38 | 39 | // Render any visible items that need it 40 | renderVisibleProgressiveImages(list); 41 | 42 | // Whenever the list is updated, we also need to 43 | // attach handlers to the new pagination elements 44 | // and refresh any newly visible items. 45 | list.on("updated", function () { 46 | renderVisibleProgressiveImages(list); 47 | setTimeout(() => refreshPaginationHandlers(listingId)); 48 | 49 | // Show or hide the no matching message 50 | toggleNoMatchingMessage(list); 51 | }); 52 | } 53 | }; 54 | 55 | window.document.addEventListener("DOMContentLoaded", function (_event) { 56 | // Attach click handlers to categories 57 | const categoryEls = window.document.querySelectorAll( 58 | ".quarto-listing-category .category" 59 | ); 60 | 61 | for (const categoryEl of categoryEls) { 62 | const category = atob(categoryEl.getAttribute("data-category")); 63 | categoryEl.onclick = () => { 64 | activateCategory(category); 65 | setCategoryHash(category); 66 | }; 67 | } 68 | 69 | // Attach a click handler to the category title 70 | // (there should be only one, but since it is a class name, handle N) 71 | const categoryTitleEls = window.document.querySelectorAll( 72 | ".quarto-listing-category-title" 73 | ); 74 | for (const categoryTitleEl of categoryTitleEls) { 75 | categoryTitleEl.onclick = () => { 76 | activateCategory(""); 77 | setCategoryHash(""); 78 | }; 79 | } 80 | 81 | categoriesLoaded = true; 82 | }); 83 | 84 | function toggleNoMatchingMessage(list) { 85 | const selector = `#${list.listContainer.id} .listing-no-matching`; 86 | const noMatchingEl = window.document.querySelector(selector); 87 | if (noMatchingEl) { 88 | if (list.visibleItems.length === 0) { 89 | noMatchingEl.classList.remove("d-none"); 90 | } else { 91 | if (!noMatchingEl.classList.contains("d-none")) { 92 | noMatchingEl.classList.add("d-none"); 93 | } 94 | } 95 | } 96 | } 97 | 98 | function setCategoryHash(category) { 99 | setHash({ category }); 100 | } 101 | 102 | function setPageHash(listingId, page) { 103 | const currentHash = getHash() || {}; 104 | currentHash[getListingPageKey(listingId)] = page; 105 | setHash(currentHash); 106 | } 107 | 108 | function getListingPageKey(listingId) { 109 | return `${listingId}-page`; 110 | } 111 | 112 | function refreshPaginationHandlers(listingId) { 113 | const listingEl = window.document.getElementById(listingId); 114 | const paginationEls = listingEl.querySelectorAll( 115 | ".pagination li.page-item:not(.disabled) .page.page-link" 116 | ); 117 | for (const paginationEl of paginationEls) { 118 | paginationEl.onclick = (sender) => { 119 | setPageHash(listingId, sender.target.getAttribute("data-i")); 120 | showPage(listingId, sender.target.getAttribute("data-i")); 121 | return false; 122 | }; 123 | } 124 | } 125 | 126 | function renderVisibleProgressiveImages(list) { 127 | // Run through the visible items and render any progressive images 128 | for (const item of list.visibleItems) { 129 | const itemEl = item.elm; 130 | if (itemEl) { 131 | const progressiveImgs = itemEl.querySelectorAll( 132 | `img[${kProgressiveAttr}]` 133 | ); 134 | for (const progressiveImg of progressiveImgs) { 135 | const srcValue = progressiveImg.getAttribute(kProgressiveAttr); 136 | if (srcValue) { 137 | progressiveImg.setAttribute("src", srcValue); 138 | } 139 | progressiveImg.removeAttribute(kProgressiveAttr); 140 | } 141 | } 142 | } 143 | } 144 | 145 | function getHash() { 146 | // Hashes are of the form 147 | // #name:value|name1:value1|name2:value2 148 | const currentUrl = new URL(window.location); 149 | const hashRaw = currentUrl.hash ? currentUrl.hash.slice(1) : undefined; 150 | return parseHash(hashRaw); 151 | } 152 | 153 | const kAnd = "&"; 154 | const kEquals = "="; 155 | 156 | function parseHash(hash) { 157 | if (!hash) { 158 | return undefined; 159 | } 160 | const hasValuesStrs = hash.split(kAnd); 161 | const hashValues = hasValuesStrs 162 | .map((hashValueStr) => { 163 | const vals = hashValueStr.split(kEquals); 164 | if (vals.length === 2) { 165 | return { name: vals[0], value: vals[1] }; 166 | } else { 167 | return undefined; 168 | } 169 | }) 170 | .filter((value) => { 171 | return value !== undefined; 172 | }); 173 | 174 | const hashObj = {}; 175 | hashValues.forEach((hashValue) => { 176 | hashObj[hashValue.name] = decodeURIComponent(hashValue.value); 177 | }); 178 | return hashObj; 179 | } 180 | 181 | function makeHash(obj) { 182 | return Object.keys(obj) 183 | .map((key) => { 184 | return `${key}${kEquals}${obj[key]}`; 185 | }) 186 | .join(kAnd); 187 | } 188 | 189 | function setHash(obj) { 190 | const hash = makeHash(obj); 191 | window.history.pushState(null, null, `#${hash}`); 192 | } 193 | 194 | function showPage(listingId, page) { 195 | const list = window["quarto-listings"][listingId]; 196 | if (list) { 197 | list.show((page - 1) * list.page + 1, list.page); 198 | } 199 | } 200 | 201 | function activateCategory(category) { 202 | // Deactivate existing categories 203 | const activeEls = window.document.querySelectorAll( 204 | ".quarto-listing-category .category.active" 205 | ); 206 | for (const activeEl of activeEls) { 207 | activeEl.classList.remove("active"); 208 | } 209 | 210 | // Activate this category 211 | const categoryEl = window.document.querySelector( 212 | `.quarto-listing-category .category[data-category='${btoa(category)}']` 213 | ); 214 | if (categoryEl) { 215 | categoryEl.classList.add("active"); 216 | } 217 | 218 | // Filter the listings to this category 219 | filterListingCategory(category); 220 | } 221 | 222 | function filterListingCategory(category) { 223 | const listingIds = Object.keys(window["quarto-listings"]); 224 | for (const listingId of listingIds) { 225 | const list = window["quarto-listings"][listingId]; 226 | if (list) { 227 | if (category === "") { 228 | // resets the filter 229 | list.filter(); 230 | } else { 231 | // filter to this category 232 | list.filter(function (item) { 233 | const itemValues = item.values(); 234 | if (itemValues.categories !== null) { 235 | const categories = atob(itemValues.categories).split(","); 236 | return categories.includes(category); 237 | } else { 238 | return false; 239 | } 240 | }); 241 | } 242 | } 243 | } 244 | } 245 | -------------------------------------------------------------------------------- /docs/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | https://www.marvinschmitt.com/ 5 | 2023-03-29T11:19:26+00:00 6 | 7 | 8 | https://www.marvinschmitt.com/index.html 9 | 2025-04-17T21:55:43.450Z 10 | 11 | 12 | https://www.marvinschmitt.com/blog/index.html 13 | 2025-04-17T21:44:02.448Z 14 | 15 | 16 | https://www.marvinschmitt.com/projects/index.html 17 | 2025-04-17T21:44:02.631Z 18 | 19 | 20 | https://www.marvinschmitt.com/cv/index.html 21 | 2025-04-17T21:44:02.471Z 22 | 23 | 24 | https://www.marvinschmitt.com/student_assistant_software_engineering_ml/index.html 25 | 2023-03-29T11:19:26+00:00 26 | 27 | 28 | https://www.marvinschmitt.com/projects/poster_bayescomp_mms.pdf 29 | 2023-03-29T11:19:26+00:00 30 | 31 | 32 | https://www.marvinschmitt.com/blog/agile-methods-for-academia/index.html 33 | 2023-03-29T11:19:26+00:00 34 | 35 | 36 | https://www.marvinschmitt.com/blog/ggsimplex-prerelease/index.html 37 | 2023-03-29T11:19:26+00:00 38 | 39 | 40 | https://www.marvinschmitt.com/blog/4-realizations-from-atomic-habits/index.html 41 | 2023-03-29T11:19:26+00:00 42 | 43 | 44 | https://www.marvinschmitt.com/impressum/index.html 45 | 2025-04-17T21:44:02.631Z 46 | 47 | 48 | https://www.marvinschmitt.com/blog/mac-email-shortcut/index.html 49 | 2023-03-29T11:19:26+00:00 50 | 51 | 52 | https://www.marvinschmitt.com/blog/hello-world/index.html 53 | 2023-03-29T11:19:26+00:00 54 | 55 | 56 | https://www.marvinschmitt.com/cv/CV_Marvin_Schmitt.pdf 57 | 2023-03-29T11:19:26+00:00 58 | 59 | 60 | https://www.marvinschmitt.com/assets/student_assistant_software_engineering_ml.pdf 61 | 2023-03-29T11:19:26+00:00 62 | 63 | 64 | https://www.marvinschmitt.com/speaking/index.html 65 | 2025-04-17T21:55:54.775Z 66 | 67 | 68 | https://www.marvinschmitt.com/thesis_qr/index.html 69 | 2025-04-17T21:44:02.667Z 70 | 71 | 72 | https://marvinschmitt.github.io/index.html 73 | 2025-04-17T22:00:19.057Z 74 | 75 | 76 | https://marvinschmitt.github.io/cv/index.html 77 | 2025-04-17T21:44:02.471Z 78 | 79 | 80 | -------------------------------------------------------------------------------- /docs/speaking/pdf/poster_detecting_mms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/speaking/pdf/poster_detecting_mms.pdf -------------------------------------------------------------------------------- /docs/speaking/pdf/poster_meta_uncertainty.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/speaking/pdf/poster_meta_uncertainty.pdf -------------------------------------------------------------------------------- /docs/speaking/pdf/slides_detecting_mms_gcpr.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/speaking/pdf/slides_detecting_mms_gcpr.pdf -------------------------------------------------------------------------------- /docs/speaking/pdf/slides_detecting_mms_lightning.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/speaking/pdf/slides_detecting_mms_lightning.pdf -------------------------------------------------------------------------------- /docs/speaking/pdf/slides_reliable_abi_botb.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/speaking/pdf/slides_reliable_abi_botb.pdf -------------------------------------------------------------------------------- /docs/speaking/pdf/slides_self_consistency_unireps.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/docs/speaking/pdf/slides_self_consistency_unireps.pdf -------------------------------------------------------------------------------- /html/blog/listing.ejs: -------------------------------------------------------------------------------- 1 | ```{=html} 2 |
3 | <% for (const post of items) { %> 4 |
> 5 | 8 |
9 |

<%= post.title %>

10 | <% if (post.categories) { %> 11 |
12 | <% for (const category of post.categories) { %> 13 | 16 | <% } %> 17 |
18 | <% } %> 19 |

<%= post.description %>

20 |
21 | <% if (post.image) { %> 22 |
23 | <%= post.title %> 24 |
25 | <% } %> 26 |
27 | <% } %> 28 |
29 | ``` -------------------------------------------------------------------------------- /html/blog_footer.html: -------------------------------------------------------------------------------- 1 |
2 | 12 | 13 | 14 | 15 | 16 | 17 |

Do you enjoy my blog? Subscribe here to get notifications and updates (it's free!):

18 | 19 |
20 |
21 |
22 | 23 |
24 |
25 |
-------------------------------------------------------------------------------- /html/landing_page_banner.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |

Hi, I'm Marvin.

6 |

I am a Data and Computer Scientist and a Psychologist. 7 | Explore my blog and newsletter to learn more about deep learning, Bayesian statistics, psychology, software engineering, and a bit of everything in between.

8 | 9 |
10 | 11 | 12 |
13 | 16 |
17 |
18 | 19 |
20 |
21 | 22 | 27 | 28 |
29 | -------------------------------------------------------------------------------- /html/landing_page_banner_old.html: -------------------------------------------------------------------------------- 1 | 44 |
45 | 49 |
-------------------------------------------------------------------------------- /html/landing_page_style_old.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /html/landing_page_styles.css: -------------------------------------------------------------------------------- 1 | :root { 2 | 3 | --gradient-text: var(--color-primary); 4 | --gradient-bar: linear-gradient(103.22deg, #c7c7c7 -13.86%, #ff7a48 99.55%); 5 | 6 | --color-primary: #E6AA04; 7 | --color-bg: #fff; 8 | --color-bg-1: #b3a69f; 9 | --color-bg-2: #d8f2ea; 10 | --color-text: #000; 11 | --color-subtext: #E6AA04; 12 | } 13 | 14 | * { 15 | box-sizing: border-box; 16 | padding: 0; 17 | margin: 0; 18 | scroll-behavior: smooth; 19 | } 20 | 21 | body{ 22 | overscroll-behavior: none; 23 | } 24 | 25 | .gradient_bg { 26 | overflow: visible; 27 | width: 100%; 28 | margin-top: 0; 29 | background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255, 255, 255, 1) 100%); 30 | /*background: linear-gradient(90deg, rgba(0, 97, 242, 1) 0%, rgba(105, 0, 199, 1) 100%);*/ 31 | } 32 | 33 | h1 { 34 | color: black; 35 | } 36 | 37 | a { 38 | color: unset; 39 | text-decoration: none; 40 | } 41 | 42 | /*.gradient_bg {*/ 43 | /* background:-moz-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 44 | 45 | /* !* safari 5.1+,chrome 10+ *!*/ 46 | /* background:-webkit-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 47 | 48 | /* !* opera 11.10+ *!*/ 49 | /* background:-o-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 50 | 51 | /* !* ie 10+ *!*/ 52 | /* background:-ms-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 53 | 54 | /* !* global 92%+ browsers support *!*/ 55 | /* background:radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 56 | /*}*/ 57 | 58 | .gradient_text { 59 | background: var(--gradient-text); 60 | background-clip: text; 61 | -webkit-background-clip: text; 62 | -webkit-text-fill-color: transparent; 63 | } 64 | 65 | .section_padding { 66 | padding: 2rem 6rem 4rem 6rem; 67 | } 68 | 69 | .section_margin { 70 | margin: 4rem 6rem; 71 | } 72 | 73 | .scale-up-center { 74 | -webkit-animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both; 75 | animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both; 76 | } 77 | 78 | @-webkit-keyframes scale-up-center { 79 | 0% { 80 | -webkit-transform: scale(0.5); 81 | transform: scale(0.5); 82 | } 83 | 100% { 84 | -webkit-transform: scale(1); 85 | transform: scale(1); 86 | } 87 | } 88 | 89 | @keyframes scale-up-center { 90 | 0% { 91 | -webkit-transform: scale(0.5); 92 | transform: scale(0.5); 93 | } 94 | 100% { 95 | -webkit-transform: scale(1); 96 | transform: scale(1); 97 | } 98 | } 99 | 100 | @media screen and (max-width: 700px) { 101 | .section_padding { 102 | padding: 1rem 2rem 0rem 2rem; 103 | } 104 | 105 | .hero { 106 | padding-top: 2rem; 107 | } 108 | 109 | .section_margin { 110 | margin: 4rem; 111 | } 112 | } 113 | 114 | @media screen and (max-width: 550px) { 115 | .section_padding { 116 | padding: 1rem 2rem 0rem 2rem; 117 | } 118 | 119 | .hero { 120 | padding-top: 2rem; 121 | } 122 | 123 | .section_margin { 124 | margin: 4rem 2rem; 125 | } 126 | 127 | } 128 | 129 | .hero { 130 | display: flex; 131 | flex-direction: row; 132 | z-index: 1; 133 | max-width: 2000px; 134 | margin: auto; 135 | padding-top: 6rem; 136 | } 137 | 138 | .hero_content { 139 | flex: 1; 140 | display: flex; 141 | justify-content: center; 142 | align-items: flex-start; 143 | flex-direction: column; 144 | z-index: 7; 145 | margin-right: 5rem; 146 | margin: auto; 147 | max-width: 700px; 148 | } 149 | 150 | .hero_content h1 { 151 | font-weight: 800; 152 | font-size: 62px; 153 | line-height: 75px; 154 | letter-spacing: -0.04em; 155 | } 156 | 157 | .hero_content p { 158 | font-weight: 400; 159 | font-size: 20px; 160 | line-height: 28px; 161 | color: var(--color-text); 162 | 163 | margin-top: 1.5rem; 164 | } 165 | 166 | .hero_content_input { 167 | z-index: 7; 168 | width: 100%; 169 | margin: 2rem 0 0rem; 170 | display: flex; 171 | flex-direction: row; 172 | } 173 | 174 | .hero_content_input iframe { 175 | flex: 2; 176 | min-height: 53px; 177 | max-height: 53px; 178 | padding: 0 0rem; 179 | margin: 0 !important; 180 | padding:0 !important; 181 | border-radius: 0px !important; 182 | background-color: transparent; 183 | width: 100%; 184 | } 185 | 186 | .hero_content_below_button span { 187 | margin: 0px; 188 | padding: 0px; 189 | position: relative; 190 | top: 0px; 191 | color: white; 192 | font-size: 12pt; 193 | font-style: italic; 194 | } 195 | 196 | 197 | .hero_image { 198 | z-index: 7; 199 | flex: 1; 200 | display: flex; 201 | justify-content: center; 202 | align-items: center; 203 | } 204 | 205 | .hero_image img { 206 | z-index: 7; 207 | width: 70%; 208 | aspect-ratio: 1/1; 209 | margin: auto; 210 | max-width: 350px; 211 | min-width: 250px; 212 | border-radius: 50%; 213 | box-shadow: 214 | rgba(0, 0, 0, 0.25) 0px 54px 55px, 215 | rgba(0, 0, 0, 0.12) 0px -12px 30px, 216 | rgba(0, 0, 0, 0.12) 0px 4px 6px, 217 | rgba(0, 0, 0, 0.17) 0px 12px 13px, 218 | rgba(0, 0, 0, 0.09) 0px -3px 5px 219 | ; 220 | border: 0px solid black; 221 | } 222 | 223 | 224 | @media screen and (max-width: 1050px) { 225 | .hero { 226 | flex-direction: column; 227 | } 228 | 229 | .hero_content { 230 | margin: 0 0 3rem; 231 | } 232 | } 233 | 234 | @media screen and (max-width: 650px) { 235 | .hero_content h1 { 236 | font-size: 48px; 237 | line-height: 60px; 238 | } 239 | 240 | .hero_content p{ 241 | font-size: 16px; 242 | line-height: 24px; 243 | } 244 | 245 | .hero_content_below_button span{ 246 | font-size: 11px; 247 | } 248 | 249 | .hero_content_input input, 250 | .hero_content_input button, 251 | .hero_content_input iframe{ 252 | font-size: 16px; 253 | line-height: 24px; 254 | } 255 | } 256 | 257 | @media screen and (max-width: 490px) { 258 | .hero_content h1 { 259 | font-size: 36px; 260 | line-height: 48px; 261 | } 262 | 263 | .hero_content p{ 264 | font-size: 14px; 265 | line-height: 24px; 266 | } 267 | 268 | .hero_content_input input, 269 | .hero_content_input button, 270 | .hero_content_input iframe{ 271 | font-size: 12px; 272 | line-height: 16px; 273 | } 274 | 275 | .hero_content_below_button span{ 276 | font-size: 10px; 277 | } 278 | } 279 | 280 | #bottom_wave{ 281 | z-index: 7; 282 | position:relative; 283 | } 284 | 285 | .parallax{ 286 | 287 | } 288 | 289 | #dot_container{ 290 | height: 60%; 291 | width: 100%; 292 | z-index: 5; 293 | position: absolute; 294 | top: 0%; 295 | left: 0%; 296 | } 297 | 298 | .dot{ 299 | border-radius: 50%; 300 | opacity: 50%; 301 | } -------------------------------------------------------------------------------- /html/landing_page_styles_midnightblue.css: -------------------------------------------------------------------------------- 1 | :root { 2 | 3 | --gradient-text: var(--color-primary); 4 | --gradient-bar: linear-gradient(103.22deg, #c7c7c7 -13.86%, #ff7a48 99.55%); 5 | 6 | --color-primary: #E6AA04; 7 | --color-bg: #fff; 8 | --color-bg-1: #b3a69f; 9 | --color-bg-2: #d8f2ea; 10 | --color-text: #fff; 11 | --color-subtext: #FF8A71; 12 | } 13 | 14 | * { 15 | box-sizing: border-box; 16 | padding: 0; 17 | margin: 0; 18 | scroll-behavior: smooth; 19 | } 20 | 21 | body{ 22 | overscroll-behavior: none; 23 | } 24 | 25 | .gradient_bg { 26 | overflow: visible; 27 | width: 100%; 28 | margin-top: 0; 29 | background: linear-gradient(180deg, rgba(0,0,0,1) 0%, rgba(0, 57, 138, 1) 100%); 30 | /*background: linear-gradient(90deg, rgba(0, 97, 242, 1) 0%, rgba(105, 0, 199, 1) 100%);*/ 31 | } 32 | 33 | h1 { 34 | color: white; 35 | } 36 | 37 | a { 38 | color: unset; 39 | text-decoration: none; 40 | } 41 | 42 | /*.gradient_bg {*/ 43 | /* background:-moz-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 44 | 45 | /* !* safari 5.1+,chrome 10+ *!*/ 46 | /* background:-webkit-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 47 | 48 | /* !* opera 11.10+ *!*/ 49 | /* background:-o-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 50 | 51 | /* !* ie 10+ *!*/ 52 | /* background:-ms-radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 53 | 54 | /* !* global 92%+ browsers support *!*/ 55 | /* background:radial-gradient(circle at 3% 25%, var(--color-bg-1) 0%, var(--color-bg-2) 25%);*/ 56 | /*}*/ 57 | 58 | .gradient_text { 59 | background: var(--gradient-text); 60 | background-clip: text; 61 | -webkit-background-clip: text; 62 | -webkit-text-fill-color: transparent; 63 | } 64 | 65 | .section_padding { 66 | padding: 2rem 6rem 4rem 6rem; 67 | } 68 | 69 | .section_margin { 70 | margin: 4rem 6rem; 71 | } 72 | 73 | .scale-up-center { 74 | -webkit-animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both; 75 | animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both; 76 | } 77 | 78 | @-webkit-keyframes scale-up-center { 79 | 0% { 80 | -webkit-transform: scale(0.5); 81 | transform: scale(0.5); 82 | } 83 | 100% { 84 | -webkit-transform: scale(1); 85 | transform: scale(1); 86 | } 87 | } 88 | 89 | @keyframes scale-up-center { 90 | 0% { 91 | -webkit-transform: scale(0.5); 92 | transform: scale(0.5); 93 | } 94 | 100% { 95 | -webkit-transform: scale(1); 96 | transform: scale(1); 97 | } 98 | } 99 | 100 | @media screen and (max-width: 700px) { 101 | .section_padding { 102 | padding: 1rem 2rem 0rem 2rem; 103 | } 104 | 105 | .hero { 106 | padding-top: 2rem; 107 | } 108 | 109 | .section_margin { 110 | margin: 4rem; 111 | } 112 | } 113 | 114 | @media screen and (max-width: 550px) { 115 | .section_padding { 116 | padding: 1rem 2rem 0rem 2rem; 117 | } 118 | 119 | .hero { 120 | padding-top: 2rem; 121 | } 122 | 123 | .section_margin { 124 | margin: 4rem 2rem; 125 | } 126 | } 127 | 128 | .hero { 129 | display: flex; 130 | flex-direction: row; 131 | z-index: 1; 132 | max-width: 2000px; 133 | margin: auto; 134 | padding-top: 6rem; 135 | } 136 | 137 | .hero_content { 138 | flex: 1; 139 | display: flex; 140 | justify-content: center; 141 | align-items: flex-start; 142 | flex-direction: column; 143 | z-index: 7; 144 | margin-right: 5rem; 145 | margin: auto; 146 | max-width: 700px; 147 | } 148 | 149 | .hero_content h1 { 150 | font-weight: 800; 151 | font-size: 62px; 152 | line-height: 75px; 153 | letter-spacing: -0.04em; 154 | } 155 | 156 | .hero_content p { 157 | font-weight: 400; 158 | font-size: 20px; 159 | line-height: 28px; 160 | color: var(--color-text); 161 | 162 | margin-top: 1.5rem; 163 | } 164 | 165 | .hero_content_input { 166 | z-index: 7; 167 | width: 100%; 168 | margin: 2rem 0 0rem; 169 | display: flex; 170 | flex-direction: row; 171 | } 172 | 173 | .hero_content_input iframe { 174 | flex: 2; 175 | min-height: 53px; 176 | max-height: 53px; 177 | padding: 0 0rem; 178 | margin: 0 !important; 179 | padding:0 !important; 180 | border-radius: 0px !important; 181 | background-color: transparent; 182 | width: 100%; 183 | } 184 | 185 | .hero_content_below_button span { 186 | margin: 0px; 187 | padding: 0px; 188 | position: relative; 189 | top: 0px; 190 | color: white; 191 | font-size: 12pt; 192 | font-style: italic; 193 | } 194 | 195 | 196 | .hero_image { 197 | z-index: 7; 198 | flex: 1; 199 | display: flex; 200 | justify-content: center; 201 | align-items: center; 202 | } 203 | 204 | .hero_image img { 205 | z-index: 7; 206 | width: 70%; 207 | aspect-ratio: 1/1; 208 | margin: auto; 209 | max-width: 350px; 210 | min-width: 250px; 211 | border-radius: 50%; 212 | box-shadow: 213 | rgba(0, 0, 0, 0.25) 0px 54px 55px, 214 | rgba(0, 0, 0, 0.12) 0px -12px 30px, 215 | rgba(0, 0, 0, 0.12) 0px 4px 6px, 216 | rgba(0, 0, 0, 0.17) 0px 12px 13px, 217 | rgba(0, 0, 0, 0.09) 0px -3px 5px; 218 | border: 3px solid white; 219 | } 220 | 221 | 222 | @media screen and (max-width: 1050px) { 223 | .hero { 224 | flex-direction: column; 225 | } 226 | 227 | .hero_content { 228 | margin: 0 0 3rem; 229 | } 230 | } 231 | 232 | @media screen and (max-width: 650px) { 233 | .hero_content h1 { 234 | font-size: 48px; 235 | line-height: 60px; 236 | } 237 | 238 | .hero_content p{ 239 | font-size: 16px; 240 | line-height: 24px; 241 | } 242 | 243 | .hero_content_below_button span{ 244 | font-size: 11px; 245 | } 246 | 247 | .hero_content_input input, 248 | .hero_content_input button, 249 | .hero_content_input iframe{ 250 | font-size: 16px; 251 | line-height: 24px; 252 | } 253 | } 254 | 255 | @media screen and (max-width: 490px) { 256 | .hero_content h1 { 257 | font-size: 36px; 258 | line-height: 48px; 259 | } 260 | 261 | .hero_content p{ 262 | font-size: 14px; 263 | line-height: 24px; 264 | } 265 | 266 | .hero_content_input input, 267 | .hero_content_input button, 268 | .hero_content_input iframe{ 269 | font-size: 12px; 270 | line-height: 16px; 271 | } 272 | 273 | .hero_content_below_button span{ 274 | font-size: 10px; 275 | } 276 | } 277 | 278 | #bottom_wave{ 279 | z-index: 7; 280 | position:relative; 281 | } 282 | 283 | .parallax{ 284 | 285 | } 286 | 287 | #dot_container{ 288 | height: 60%; 289 | width: 100%; 290 | z-index: 5; 291 | position: absolute; 292 | top: 0%; 293 | left: 0%; 294 | } 295 | 296 | .dot{ 297 | border-radius: 50%; 298 | opacity: 50%; 299 | } -------------------------------------------------------------------------------- /html/margin_image.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
-------------------------------------------------------------------------------- /html/newpagelink.lua: -------------------------------------------------------------------------------- 1 | function Link(link) 2 | link.attributes["target"] = "_blank" 3 | return link 4 | end -------------------------------------------------------------------------------- /html/parallax.js: -------------------------------------------------------------------------------- 1 | 2 | for (i = 0; i < 101; i++){ 3 | const dot = document.createElement("div"); 4 | dot.className = 'parallax dot'; 5 | const x_location = Math.random() * 100 + '%'; 6 | const y_location = Math.random() * 130 + '%'; 7 | const distance = Math.random(); 8 | const speed = 0.085 * distance; 9 | const size = 1.5 * distance + 3 + 'px'; 10 | const opacity = distance * 40 + 20 + '%'; 11 | $(dot).css({ 12 | 'bottom': y_location, 13 | 'left': x_location, 14 | 'position': 'absolute', 15 | 'background-color': '#fff2b5', 16 | 'height': size, 17 | 'width': size, 18 | 'opacity' : opacity 19 | }); 20 | $(dot).attr('data-speed', speed); 21 | $('#dot_container').append(dot); 22 | } 23 | 24 | 25 | $('html').mousemove(function(e){ 26 | 27 | var wx = $(window).width(); 28 | var wy = $(window).height(); 29 | 30 | var x = e.pageX - this.offsetLeft; 31 | 32 | var newx = x - wx/2; 33 | var newy = y - wy/2; 34 | 35 | 36 | $('.parallax').each(function(){ 37 | var speed = $(this).attr('data-speed'); 38 | if($(this).attr('data-revert')) speed *= -1; 39 | TweenMax.to($(this), 1, {x: (1 - newx*speed), y: (1 - newy*speed)}); 40 | //TweenMax.to($(this), 1, {x: (0.5), y: (0.5)}); 41 | }); 42 | 43 | }); -------------------------------------------------------------------------------- /html/seo.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /img/404_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/404_error.png -------------------------------------------------------------------------------- /img/bayesflow_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/bayesflow_overview.png -------------------------------------------------------------------------------- /img/bg_trees.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/bg_trees.png -------------------------------------------------------------------------------- /img/bg_trees_dark_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/bg_trees_dark_banner.png -------------------------------------------------------------------------------- /img/cmpe_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/cmpe_banner.png -------------------------------------------------------------------------------- /img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/favicon.ico -------------------------------------------------------------------------------- /img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/favicon.png -------------------------------------------------------------------------------- /img/jana_figure_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/jana_figure_1.png -------------------------------------------------------------------------------- /img/marvin_foto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/marvin_foto.png -------------------------------------------------------------------------------- /img/marvin_foto_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/marvin_foto_hex.png -------------------------------------------------------------------------------- /img/marvin_foto_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/marvin_foto_round.png -------------------------------------------------------------------------------- /img/marvin_headshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/marvin_headshot.png -------------------------------------------------------------------------------- /img/marvins_log_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/marvins_log_logo.png -------------------------------------------------------------------------------- /img/marvins_log_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/marvins_log_thumbnail.png -------------------------------------------------------------------------------- /img/meta_uncertainty_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/meta_uncertainty_banner.png -------------------------------------------------------------------------------- /img/model_misspecification_amortized_sbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/model_misspecification_amortized_sbi.png -------------------------------------------------------------------------------- /img/ms_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/ms_icon.png -------------------------------------------------------------------------------- /img/multi_npe_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/multi_npe_banner.png -------------------------------------------------------------------------------- /img/self_consistency_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/self_consistency_banner.png -------------------------------------------------------------------------------- /img/shk_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/shk_thumbnail.png -------------------------------------------------------------------------------- /img/website_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/img/website_thumbnail.png -------------------------------------------------------------------------------- /marvinschmitt-dot-com.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | ProjectId: 43df2800-1493-45d4-9e54-7791ff389b79 3 | 4 | RestoreWorkspace: Default 5 | SaveWorkspace: Default 6 | AlwaysSaveHistory: Default 7 | 8 | EnableCodeIndexing: Yes 9 | UseSpacesForTab: Yes 10 | NumSpacesForTab: 2 11 | Encoding: UTF-8 12 | 13 | RnwWeave: Sweave 14 | LaTeX: pdfLaTeX 15 | -------------------------------------------------------------------------------- /projects/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: Projects 3 | comments: false 4 | toc: false 5 | --- 6 | 7 | This page contains a brief overview of projects that I significantly shaped throughout the entire project life cycle. 8 | In academic terms, this mostly corresponds to first-author publications (single and shared). 9 | If you're interested in a full list of projects I have been involved in, please check out my [CV](../cv). 10 | 11 | ---- 12 | 13 | ## Consistency Model Posterior Estimation {#cmpe} 14 | 15 | 16 | 17 | Paper (NeurIPS 2024) 18 | 19 | Consistency models for neural posterior estimation (CMPE) is a new conditional sampler for scalable, fast, and amortized simulation-based inference with generative neural networks. CMPE combines the advantages of normalizing flows and flow matching methods into a single generative architecture: It essentially distills a continuous probability flow and enables rapid few-shot inference with an unconstrained architecture that can be tailored to the structure of the estimation problem. 20 | 21 | ---- 22 | 23 | ## Deep Fusion for Multimodal Simulation-Based Inference {#multinpe} 24 | 25 | 26 | 27 | Preprint (arXiv) 28 | 29 | We present multimodal neural posterior estimation (MultiNPE), a method to integrate heterogeneous data from different sources in simulation-based inference with neural networks. Inspired by advances in attention-based deep fusion learning, it empowers researchers to analyze data from different domains and infer the parameters of complex mathematical models with increased accuracy and better performance under partially missing data. 30 | 31 | ---- 32 | 33 | ## Data-Efficient Amortized Bayesian Inference via Self-Consistency Losses 34 | 35 | 36 | 37 | 38 | Full Paper (ICML 2024) 39 | | 40 | Short Paper (NeurIPS UniReps 2023) 41 | | 42 | Poster (ICML 2024) 43 | 44 | We propose a method to improve the efficiency and accuracy of amortized Bayesian inference by leveraging universal symmetries in the probabilistic joint model $p(\theta,y)$. In a nutshell, we invert Bayes' theorem and estimate the marginal likelihood based on approximate representations of the joint model. Upon perfect approximation, the marginal likelihood is constant across all parameter values by definition. However, approximation error leads to undesirable variance in the marginal likelihood estimates across different parameter values. We formulate violations of this symmetry as a loss function to accelerate the learning dynamics of conditional neural density estimators. 45 | 46 | ## Meta-Uncertainty in Bayesian Model Comparison{#meta-uncertainty-BMC} 47 | 48 | 49 | 50 | Paper (AISTATS 2023) | Code | Project website | Poster | Presentation (15min)
51 | 52 | Meta-Uncertainty represents a fully probabilistic framework for quantifying the uncertainty over Bayesian posterior model probabilities (PMPs) using meta-models. Meta-models integrate simulated and observed data into a predictive distribution for new PMPs and help reduce overconfidence and estimate the PMPs in future replication studies. 53 | 54 | ---- 55 | 56 | ## BayesFlow: Amortized Bayesian Workflows With Neural Networks 57 | 58 | 59 | 60 | Software Paper | Documentation | BayesFlow Forums (new!) 61 | 62 | BayesFlow is a Python library for simulation-based training of established neural network architectures for amortized data compression and inference. Amortized Bayesian inference, as implemented in BayesFlow, enables users to train custom neural networks on model simulations and re-use these networks for any subsequent application of the models. Since the trained networks can perform inference almost instantaneously, the upfront neural network training is quickly amortized. 63 | 64 | 65 | ---- 66 | 67 | ## JANA: Jointly Amortized Neural Approximation of Complex Bayesian Models 68 | 69 | 70 | 71 | Paper (UAI 2023) | Python library
72 | 73 | JANA is a new amortized solution for intractable likelihood functions and posterior densities in Bayesian modeling. It trains three networks to learn both an approximate posterior and a surrogate model for the likelihood, enabling amortized marginal likelihood and posterior predictive estimation. 74 | 75 | ---- 76 | 77 | ## Detecting Model Misspecification in Amortized Bayesian Inference with Neural Networks{#sbi-model-misspecification} 78 | 79 | 80 | 81 | Paper (GCPR 2023, Best Paper Honorable Mention) | Code | Poster
82 | Novel neural network based architectures enable amortized Bayesian inference in settings where the likelihood function is only implicitly defined by a simulation program. But how faithful is such inference when simulations represent reality somewhat inaccurately? This paper illustrates how imposing a probabilistic structure on the latent data summary space can help to detect potentially catastrophic domain shifts during inference. 83 | -------------------------------------------------------------------------------- /projects/meta_uncertainty_poster_aistats.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/projects/meta_uncertainty_poster_aistats.pdf -------------------------------------------------------------------------------- /projects/poster_bayescomp_mms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/projects/poster_bayescomp_mms.pdf -------------------------------------------------------------------------------- /sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | https://www.marvinschmitt.com/ 12 | 2023-03-29T11:19:26+00:00 13 | 1.00 14 | 15 | 16 | https://www.marvinschmitt.com/index.html 17 | 2023-03-29T11:19:26+00:00 18 | 0.80 19 | 20 | 21 | https://www.marvinschmitt.com/blog/index.html 22 | 2023-03-29T11:19:26+00:00 23 | 0.80 24 | 25 | 26 | https://www.marvinschmitt.com/projects/index.html 27 | 2023-03-29T11:19:26+00:00 28 | 0.80 29 | 30 | 31 | https://www.marvinschmitt.com/cv/index.html 32 | 2023-03-29T11:19:26+00:00 33 | 0.80 34 | 35 | 36 | https://www.marvinschmitt.com/student_assistant_software_engineering_ml/index.html 37 | 2023-03-29T11:19:26+00:00 38 | 0.80 39 | 40 | 41 | https://www.marvinschmitt.com/projects/poster_bayescomp_mms.pdf 42 | 2023-03-29T11:19:26+00:00 43 | 0.80 44 | 45 | 46 | https://www.marvinschmitt.com/blog/agile-methods-for-academia/index.html 47 | 2023-03-29T11:19:26+00:00 48 | 0.80 49 | 50 | 51 | https://www.marvinschmitt.com/blog/ggsimplex-prerelease/index.html 52 | 2023-03-29T11:19:26+00:00 53 | 0.80 54 | 55 | 56 | https://www.marvinschmitt.com/blog/4-realizations-from-atomic-habits/index.html 57 | 2023-03-29T11:19:26+00:00 58 | 0.80 59 | 60 | 61 | https://www.marvinschmitt.com/impressum/index.html 62 | 2023-03-29T11:19:26+00:00 63 | 0.80 64 | 65 | 66 | https://www.marvinschmitt.com/blog/mac-email-shortcut/index.html 67 | 2023-03-29T11:19:26+00:00 68 | 0.64 69 | 70 | 71 | https://www.marvinschmitt.com/blog/hello-world/index.html 72 | 2023-03-29T11:19:26+00:00 73 | 0.64 74 | 75 | 76 | https://www.marvinschmitt.com/cv/CV_Marvin_Schmitt.pdf 77 | 2023-03-29T11:19:26+00:00 78 | 0.64 79 | 80 | 81 | https://www.marvinschmitt.com/assets/student_assistant_software_engineering_ml.pdf 82 | 2023-03-29T11:19:26+00:00 83 | 0.64 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /speaking/index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: Public Speaking, Talks, and Presentations 3 | excerpt: "A list of my selected public speaking activities." 4 | toc-location: right 5 | --- 6 | 7 | Here's a list of my selected public speaking occasions, talks, and presentations where I was involved. 8 | If available, you'll also find slides, related papers, and recordings. 9 | **Bold** font indicates presenter. 10 | 11 | - **Schmitt, M.** (2024). Talk: [Towards Reliable Amortized Bayesian Inference](pdf/slides_reliable_abi_botb.pdf). First presented at the [Bayes on the Beach 2024](https://research.qut.edu.au/qutcds/bayes-onthe-beach/) conference. 12 | 13 | - Schmitt, M., **Bürkner, P.-C.** (2024). Workshop: [Amortized Bayesian Inference with BayesFlow](https://colab.research.google.com/drive/1ub9SivzBI5fMbSTwVM1pABsMlRupgqRb?usp=sharing). First presented at the [Bayes on the Beach 2024](https://research.qut.edu.au/qutcds/bayes-onthe-beach/) conference. 14 | 15 | - **Schmitt, M.**, Habermann, D., Bürkner, P. C., & Radev, S. T. (2023). 16 | Talk: [Leveraging Self-Consistency for Data-Efficient Amortized Bayesian Inference](pdf/slides_self_consistency_unireps.pdf). 17 | First presented at the [NeurIPS Workshop for Unifying Representations in Neural Models](https://neurips.cc/virtual/2023/workshop/66494). 18 | Preprint available on [ArXiv](https://arxiv.org/abs/2310.04395). 19 | 20 | - **Schmitt, M.** (2023). Research talk (invited): Jointly Amortized Bayesian Inference, Machine and Human Intelligence group, University of 21 | Helsinki & Finnish Center for Artificial Intelligence (FCAI), Finland 22 | 23 | - **Schmitt, M.**, Bürkner, P. C., Köthe, U., & Radev, S. T. (2023). 24 | Talk (oral): [Detecting Model Misspecification in Amortized Bayesian Inference with Neural Networks](pdf/slides_detecting_mms_gcpr.pdf). 25 | First presented at the [German Conference on Pattern Recognition](https://www.dagm-gcpr.de/year/2023). 26 | Paper published in [GCPR Conference Proceedings](https://arxiv.org/abs/2112.08866) (best paper honorable mention). 27 | Previously featured also as a [poster](pdf/poster_detecting_mms.pdf) and [short talk](pdf/slides_detecting_mms_lightning). 28 | 29 | - **Schmitt, M.** (2023). Talk (contributed): Amortized Simulation‑Based Inference, Tooling Session, ELLIS Doctoral Symposium, Helsinki, 30 | Finland 31 | 32 | - **Schmitt, M.**, Radev, S. T., & Bürkner, P. C. (2023). 33 | Poster: [Meta-Uncertainty in Bayesian Model Comparison](pdf/poster_meta_uncertainty.pdf). 34 | First presented at [AISTATS 2023](http://aistats.org/aistats2023/). 35 | Paper published in [AISSTATS Conference Proceedings](https://proceedings.mlr.press/v206/schmitt23a.html). 36 | 37 | {{< video https://www.youtube.com/embed/WIigoUaqy9c 38 | title="Meta-Uncertainty in Bayesian Model Comparison (AISTATS 2023)" 39 | aspect-ratio="16x9" >}} 40 | 41 | - **Schmitt, M.** (2023). Talk (invited): What is AI?, Writing workshop for AI short stories, Cyber Valley, Tübingen, Germany 42 | 43 | - **Schmitt, M.** (2023). Talk (invited): Where Does AI begin?, Cyber Valley Office hours (general public audience), Tübingen, Germany 44 | 45 | - **Schmitt, M.** (2023). Talk (invited): Validating synthetic training data in probabilistic machine learning, Blue Yonder Group Inc., Karlsruhe, Germany 46 | -------------------------------------------------------------------------------- /speaking/pdf/poster_detecting_mms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/speaking/pdf/poster_detecting_mms.pdf -------------------------------------------------------------------------------- /speaking/pdf/poster_meta_uncertainty.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/speaking/pdf/poster_meta_uncertainty.pdf -------------------------------------------------------------------------------- /speaking/pdf/slides_detecting_mms_gcpr.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/speaking/pdf/slides_detecting_mms_gcpr.pdf -------------------------------------------------------------------------------- /speaking/pdf/slides_detecting_mms_lightning.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/speaking/pdf/slides_detecting_mms_lightning.pdf -------------------------------------------------------------------------------- /speaking/pdf/slides_reliable_abi_botb.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/speaking/pdf/slides_reliable_abi_botb.pdf -------------------------------------------------------------------------------- /speaking/pdf/slides_self_consistency_unireps.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marvinschmitt/marvinschmitt.github.io/de17fb2893d209c86b6cb19dad328addc13cda11/speaking/pdf/slides_self_consistency_unireps.pdf -------------------------------------------------------------------------------- /thesis_qr/index.qmd: -------------------------------------------------------------------------------- 1 | 2 | {{< video https://www.youtube.com/watch?v=xvFZjo5PgG0?autoplay=1 3 | title="" 4 | aspect-ratio="16x9" >}} 5 | 6 | --------------------------------------------------------------------------------