From 4f6e6e1111e4dfda600fcac6a33537570d1e7cce Mon Sep 17 00:00:00 2001 From: John Simon Date: Sat, 8 Feb 2025 23:22:33 -0800 Subject: [PATCH 01/14] blah blah okay --- Gemfile | 11 ++++- Gemfile.lock | 86 +++++++++++++++++++++++------------ _posts/2025-2-2-blah.markdown | 2 +- 3 files changed, 68 insertions(+), 31 deletions(-) diff --git a/Gemfile b/Gemfile index 2bf1ac7..172eee9 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ source "https://rubygems.org" gem "jekyll", "~> 3.8.5" # This is the default theme for new Jekyll sites. You may change this to anything you like. -gem "minima", "~> 2.0" +gem "minima", "~> 2.5.2" # If you want to use GitHub Pages, remove the "gem "jekyll"" above and # uncomment the line below. To upgrade, run `bundle update github-pages`. @@ -28,3 +28,12 @@ gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] # Performance-booster for watching directories on Windows gem "wdm", "~> 0.1.0" if Gem.win_platform? +gem "csv" + +gem "base64" + +gem "bigdecimal" + +gem "rexml" + +gem "webrick" \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index a643e9f..3f0dfa1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,20 +1,33 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.5.2) - public_suffix (>= 2.0.2, < 4.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + base64 (0.2.0) + bigdecimal (3.1.9) colorator (1.1.0) - concurrent-ruby (1.1.4) - em-websocket (0.5.1) + concurrent-ruby (1.3.5) + csv (3.3.2) + em-websocket (0.5.3) eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) + http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.9.25) + ffi (1.17.1) + ffi (1.17.1-aarch64-linux-gnu) + ffi (1.17.1-aarch64-linux-musl) + ffi (1.17.1-arm-linux-gnu) + ffi (1.17.1-arm-linux-musl) + ffi (1.17.1-arm64-darwin) + ffi (1.17.1-x86-linux-gnu) + ffi (1.17.1-x86-linux-musl) + ffi (1.17.1-x86_64-darwin) + ffi (1.17.1-x86_64-linux-gnu) + ffi (1.17.1-x86_64-linux-musl) forwardable-extended (2.6.0) - http_parser.rb (0.6.0) + http_parser.rb (0.8.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.8.5) + jekyll (3.8.7) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -27,48 +40,63 @@ GEM pathutil (~> 0.9) rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-feed (0.11.0) - jekyll (~> 3.3) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.5.0) - jekyll (~> 3.3) - jekyll-watch (2.1.2) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-watch (2.2.1) listen (~> 3.0) kramdown (1.17.0) - liquid (4.0.1) - listen (3.1.5) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - ruby_dep (~> 1.2) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) - minima (2.5.0) - jekyll (~> 3.5) + minima (2.5.2) + jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (3.0.3) - rb-fsevent (0.10.3) - rb-inotify (0.10.0) + public_suffix (6.0.1) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) ffi (~> 1.0) - rouge (3.3.0) - ruby_dep (1.5.0) - safe_yaml (1.0.4) - sass (3.7.2) + rexml (3.4.0) + rouge (3.30.0) + safe_yaml (1.0.5) + sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) + webrick (1.9.1) PLATFORMS + aarch64-linux-gnu + aarch64-linux-musl + arm-linux-gnu + arm-linux-musl + arm64-darwin ruby + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux-gnu + x86_64-linux-musl DEPENDENCIES + base64 + bigdecimal + csv jekyll (~> 3.8.5) jekyll-feed (~> 0.6) - minima (~> 2.0) + minima (~> 2.5.2) + rexml tzinfo-data + webrick BUNDLED WITH - 1.17.2 + 2.6.3 diff --git a/_posts/2025-2-2-blah.markdown b/_posts/2025-2-2-blah.markdown index fc5909f..e09865a 100644 --- a/_posts/2025-2-2-blah.markdown +++ b/_posts/2025-2-2-blah.markdown @@ -5,4 +5,4 @@ date: 2025-02-08T18:04:18.692Z categories: utilities --- -Blah blah blah blah +Blah blah blah blah okay From 49551304114ad026c1cdc6a713c094cef3be50c8 Mon Sep 17 00:00:00 2001 From: John Simon Date: Sat, 8 Feb 2025 23:27:22 -0800 Subject: [PATCH 02/14] blah blah okay --- _posts/2025-2-2-blah.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-2-2-blah.markdown b/_posts/2025-2-2-blah.markdown index e09865a..d15532f 100644 --- a/_posts/2025-2-2-blah.markdown +++ b/_posts/2025-2-2-blah.markdown @@ -5,4 +5,4 @@ date: 2025-02-08T18:04:18.692Z categories: utilities --- -Blah blah blah blah okay +Blah blah blah blah okay okay From b31a84371529c609caccc05fdbb5f06ff4eea079 Mon Sep 17 00:00:00 2001 From: John Simon Date: Sat, 8 Feb 2025 23:37:56 -0800 Subject: [PATCH 03/14] skin:dark --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index 86d448b..f668766 100644 --- a/_config.yml +++ b/_config.yml @@ -24,6 +24,7 @@ github_username: johncsimon # Build settings markdown: kramdown theme: minima + skin: dark plugins: - jekyll-feed From 181c89f5634806fe6e4778d52094f565487e7d86 Mon Sep 17 00:00:00 2001 From: John Simon Date: Sat, 8 Feb 2025 23:52:03 -0800 Subject: [PATCH 04/14] try again --- Gemfile | 18 ++++++++-------- Gemfile.lock | 58 +++++++++++++++++++++++++++++----------------------- _config.yml | 7 +++++-- 3 files changed, 46 insertions(+), 37 deletions(-) diff --git a/Gemfile b/Gemfile index 172eee9..4f30904 100644 --- a/Gemfile +++ b/Gemfile @@ -8,10 +8,11 @@ source "https://rubygems.org" # # This will help ensure the proper Jekyll version is running. # Happy Jekylling! -gem "jekyll", "~> 3.8.5" +gem "jekyll" # This is the default theme for new Jekyll sites. You may change this to anything you like. -gem "minima", "~> 2.5.2" +# gem "minima" +gem 'moonwalk' # If you want to use GitHub Pages, remove the "gem "jekyll"" above and # uncomment the line below. To upgrade, run `bundle update github-pages`. @@ -28,12 +29,11 @@ gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] # Performance-booster for watching directories on Windows gem "wdm", "~> 0.1.0" if Gem.win_platform? -gem "csv" +# gem "csv", "~> 3.3.2" -gem "base64" -gem "bigdecimal" - -gem "rexml" - -gem "webrick" \ No newline at end of file +gem 'webrick' +gem 'base64' +gem 'csv' +gem 'logger' +gem 'bigdecimal' \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 3f0dfa1..073365a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -25,53 +25,59 @@ GEM ffi (1.17.1-x86_64-linux-musl) forwardable-extended (2.6.0) http_parser.rb (0.8.0) - i18n (0.9.5) + i18n (1.14.7) concurrent-ruby (~> 1.0) - jekyll (3.8.7) + jekyll (4.1.1) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) - i18n (~> 0.7) - jekyll-sass-converter (~> 1.0) + i18n (~> 1.0) + jekyll-sass-converter (~> 2.0) jekyll-watch (~> 2.0) - kramdown (~> 1.14) + kramdown (~> 2.1) + kramdown-parser-gfm (~> 1.0) liquid (~> 4.0) - mercenary (~> 0.3.3) + mercenary (~> 0.4.0) pathutil (~> 0.9) - rouge (>= 1.7, < 4) + rouge (~> 3.0) safe_yaml (~> 1.0) - jekyll-feed (0.17.0) + terminal-table (~> 1.8) + jekyll-feed (0.15.1) jekyll (>= 3.7, < 5.0) - jekyll-sass-converter (1.5.2) - sass (~> 3.4) - jekyll-seo-tag (2.8.0) + jekyll-sass-converter (2.2.0) + sassc (> 2.0.1, < 3.0) + jekyll-seo-tag (2.7.1) jekyll (>= 3.8, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - kramdown (1.17.0) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) liquid (4.0.4) listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - mercenary (0.3.6) - minima (2.5.2) - jekyll (>= 3.5, < 5.0) - jekyll-feed (~> 0.9) - jekyll-seo-tag (~> 2.1) + logger (1.6.5) + mercenary (0.4.0) + moonwalk (0.0.2) + jekyll (~> 4.1.1) + jekyll-feed (~> 0.15.0) + jekyll-seo-tag (~> 2.7.1) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (6.0.1) + public_suffix (5.1.1) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) rexml (3.4.0) rouge (3.30.0) safe_yaml (1.0.5) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) + sassc (2.4.0) + ffi (~> 1.9) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + unicode-display_width (1.8.0) webrick (1.9.1) PLATFORMS @@ -91,10 +97,10 @@ DEPENDENCIES base64 bigdecimal csv - jekyll (~> 3.8.5) + jekyll jekyll-feed (~> 0.6) - minima (~> 2.5.2) - rexml + logger + moonwalk tzinfo-data webrick diff --git a/_config.yml b/_config.yml index f668766..f61c789 100644 --- a/_config.yml +++ b/_config.yml @@ -23,8 +23,11 @@ github_username: johncsimon # Build settings markdown: kramdown -theme: minima - skin: dark +# remote_theme: pages-themes/hacker@v0.2.0 +theme: moonwalk + +# plugins: +# - jekyll-remote-theme # add this line to the plugins list if you already have one plugins: - jekyll-feed From a98effc5ed6099a89dab9238fbbb9147805540c4 Mon Sep 17 00:00:00 2001 From: John Simon Date: Sat, 8 Feb 2025 23:52:12 -0800 Subject: [PATCH 05/14] try again --- ...40b622142f1c98125abcfe89a76a661b0e8e343910 | 1 + ...9b5ef7a494f057aa214a4b33569b961c8605c42b97 | 2 + ...84a6ffb6bf87b30f151c27aaa06f360266c1d4ae1d | 2 + ...e9724619aab1da63b1df869f2f3b8c9464dbd9b611 | 2 + ...02bbf529c1f4888a953e7404ed794fc89f19ad0b40 | 2 + ...3eff4825977cf595078493d02f3cbf7409f0098e86 | 222 ++++++++++++++++++ ...af72b2520376a93d9dbb3d6cdf57d927a166fb4c2f | 4 + ...5fcaa24b376f795bc6c7c4dce95d7424349e10f11e | 2 + ...9128905bae0c8f75d33029ac7545b542560c11ba4b | 2 + ...2727d439a6b79a592e30af596984d6ba749ed75c4f | 66 ++++++ ...5bf0c776fa5ea5700bd345b40b8687cfedde5bb5c5 | 2 + ...bfa6bec1f96439cfb21dd68bbc76541b7a9fac8d63 | 2 + ...3e6315f70f0e557f161b4d49ec8365a1c7f8a68661 | 2 + ...c8996fb92427ae41e4649b934ca495991b7852b855 | 2 + ...a3ec129bc92d9fc48b19eea4fe7e0d5f2f5a67b69c | 4 + ...e0a04364cba17a92c68f9530bf0541bc7f96b5197e | 2 + .nojekyll | 0 17 files changed, 319 insertions(+) create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/11/98a4f51e34ec3d9e9a3e9b5ef7a494f057aa214a4b33569b961c8605c42b97 create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1e/ab7a53f03bdf0a19875b84a6ffb6bf87b30f151c27aaa06f360266c1d4ae1d create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/25/4f73d86242e65a8772b6e9724619aab1da63b1df869f2f3b8c9464dbd9b611 create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/28/409282bc7b120130c52502bbf529c1f4888a953e7404ed794fc89f19ad0b40 create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/39/10527bad802f5b463cf43eff4825977cf595078493d02f3cbf7409f0098e86 create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3b/7acab97e28d6e6622b24af72b2520376a93d9dbb3d6cdf57d927a166fb4c2f create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/48/3bf5d010bfcbf2c17a7d5fcaa24b376f795bc6c7c4dce95d7424349e10f11e create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4a/f9d3f394514d00bfb64e9128905bae0c8f75d33029ac7545b542560c11ba4b create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4f/172dedf2c78d58bc7abc2727d439a6b79a592e30af596984d6ba749ed75c4f create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/161e0f296a62f5800d6a5bf0c776fa5ea5700bd345b40b8687cfedde5bb5c5 create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/67915f405b1b58b7e972bfa6bec1f96439cfb21dd68bbc76541b7a9fac8d63 create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/a5d4c8932742435b43783e6315f70f0e557f161b4d49ec8365a1c7f8a68661 create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/66593c605d2558dd7641a3ec129bc92d9fc48b19eea4fe7e0d5f2f5a67b69c create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fa/4279ae7d32fa586eed1fe0a04364cba17a92c68f9530bf0541bc7f96b5197e create mode 100644 .nojekyll diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 new file mode 100644 index 0000000..29c3571 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 @@ -0,0 +1 @@ +I"ń{"title" => "🌲 johncsimon.github.io 🐦", "author" => "Abhinav Saxena", "url" => "http://localhost:4000", "description" => "got some downtime so how's about we starts ourselves a blog ...", "favicon" => "./logo.png", "remote_theme" => "abhinavs/moonwalk", "theme_config" => {"appearance" => "dark", "back_home_text" => "home..", "date_format" => "%Y-%m-%d", "show_description" => true, "show_navbar" => true, "show_footer" => true, "show_projects" => true, "show_old_projects" => true, "show_misc_list" => false}, "sass" => {"style" => ":compressed"}, "source" => "/Users/johnsimon/github/JohnCSimon.github.io", "destination" => "/Users/johnsimon/github/JohnCSimon.github.io/_site", "collections_dir" => "", "cache_dir" => ".jekyll-cache", "plugins_dir" => "_plugins", "layouts_dir" => "_layouts", "data_dir" => "_data", "includes_dir" => "_includes", "collections" => {"posts" => {"output" => true, "permalink" => "/:categories/:year/:month/:day/:title:output_ext"}}, "safe" => false, "include" => [".htaccess"], "exclude" => [".sass-cache", ".jekyll-cache", "gemfiles", "Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files" => [".git", ".svn"], "encoding" => "utf-8", "markdown_ext" => "markdown,mkdown,mkdn,mkd,md", "strict_front_matter" => false, "show_drafts" => nil, "limit_posts" => 0, "future" => false, "unpublished" => false, "whitelist" => [], "plugins" => ["jekyll-feed"], "markdown" => "kramdown", "highlighter" => "rouge", "lsi" => false, "excerpt_separator" => "\n\n", "incremental" => false, "detach" => false, "port" => "4000", "host" => "127.0.0.1", "baseurl" => nil, "show_dir_listing" => false, "permalink" => "date", "paginate_path" => "/page:num", "timezone" => nil, "quiet" => false, "verbose" => false, "defaults" => [], "liquid" => {"error_mode" => "warn", "strict_filters" => false, "strict_variables" => false}, "kramdown" => {"auto_ids" => true, "toc_levels" => [1, 2, 3, 4, 5, 6], "entity_output" => "as_char", "smart_quotes" => "lsquo,rsquo,ldquo,rdquo", "input" => "GFM", "hard_wrap" => false, "guess_lang" => true, "footnote_nr" => 1, "show_warnings" => false}, "github_username" => "johncsimon", "theme" => "moonwalk", "livereload_port" => 35729, "serving" => true, "watch" => true}:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/11/98a4f51e34ec3d9e9a3e9b5ef7a494f057aa214a4b33569b961c8605c42b97 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/11/98a4f51e34ec3d9e9a3e9b5ef7a494f057aa214a4b33569b961c8605c42b97 new file mode 100644 index 0000000..99b9dab --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/11/98a4f51e34ec3d9e9a3e9b5ef7a494f057aa214a4b33569b961c8605c42b97 @@ -0,0 +1,2 @@ +I"*

Blah blah blah blah okay okay

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1e/ab7a53f03bdf0a19875b84a6ffb6bf87b30f151c27aaa06f360266c1d4ae1d b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1e/ab7a53f03bdf0a19875b84a6ffb6bf87b30f151c27aaa06f360266c1d4ae1d new file mode 100644 index 0000000..dee9687 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1e/ab7a53f03bdf0a19875b84a6ffb6bf87b30f151c27aaa06f360266c1d4ae1d @@ -0,0 +1,2 @@ +I"H

Recently I had to write a file uploader for AWS S3 in node.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/25/4f73d86242e65a8772b6e9724619aab1da63b1df869f2f3b8c9464dbd9b611 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/25/4f73d86242e65a8772b6e9724619aab1da63b1df869f2f3b8c9464dbd9b611 new file mode 100644 index 0000000..5245025 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/25/4f73d86242e65a8772b6e9724619aab1da63b1df869f2f3b8c9464dbd9b611 @@ -0,0 +1,2 @@ +I"N

got some downtime so how’s about we starts ourselves a blog …

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/28/409282bc7b120130c52502bbf529c1f4888a953e7404ed794fc89f19ad0b40 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/28/409282bc7b120130c52502bbf529c1f4888a953e7404ed794fc89f19ad0b40 new file mode 100644 index 0000000..ea85f17 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/28/409282bc7b120130c52502bbf529c1f4888a953e7404ed794fc89f19ad0b40 @@ -0,0 +1,2 @@ +I"†

I’m a software dev with Go, Javascript and C#. I’m writing this blog to better at writing and to document my explorations.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/39/10527bad802f5b463cf43eff4825977cf595078493d02f3cbf7409f0098e86 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/39/10527bad802f5b463cf43eff4825977cf595078493d02f3cbf7409f0098e86 new file mode 100644 index 0000000..d225893 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/39/10527bad802f5b463cf43eff4825977cf595078493d02f3cbf7409f0098e86 @@ -0,0 +1,222 @@ +I"b.

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. +Here’s a way to get several of them installed into your unix user directory. +If things go wrong, or you get bored you can easily rm -rf the installation.

+ +

Initial Install

+

Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.

+
john@BigBox:~/git/JohnCSimon.github.io$  sudo docker run -ti debian /bin/bash
+Unable to find image 'debian:latest' locally
+latest: Pulling from library/debian
+cd8eada9c7bb: Pull complete
+Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5
+Status: Downloaded newer image for debian:latest
+root@6d933dddbbcd:/#
+
+

Just to satisfy my OCD let’s get the latest updates.

+ +

apt update && apt upgrade -y

+ +

apt install gnupg2 curl procps -y + Installs gpg2, curl and ps

+ +

ruby

+

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

+ +

\curl -sSL https://get.rvm.io | bash -s stable

+ +

To start using RVM you need to run source /etc/profile.d/rvm.sh or re-login to re-load ~/.profile

+ +

From here you can run - rvm list known and you’ll see a list of ruby flavors and individual versions.

+ +
# MRI Rubies
+[ruby-]1.8.6[-p420]
+[ruby-]1.8.7[-head] # security released on head
+[ruby-]1.9.1[-p431]
+[ruby-]1.9.2[-p330]
+[ruby-]1.9.3[-p551]
+[ruby-]2.0.0[-p648]
+[ruby-]2.1[.10]
+[ruby-]2.2[.10]
+[ruby-]2.3[.8]
+[ruby-]2.4[.5]
+[ruby-]2.5[.3]
+[ruby-]2.6[.0]
+
+ +

MRI Ruby is the reference version of Ruby so let’s install the latest version.

+ +

rvm install ruby-2.6.0

+ +

I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.

+ +

Congrats, you now have a ruby install

+ +
$ ruby -v
+ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
+
+ +

from here you can now do whatever since I’m blogging this using jekyll

+ +

gem install bundler jekyll

+ +

go

+

Go is a language that releases new versions on a regular basis. +There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here https://github.com/moovweb/gvm that’ll let you install multiple versions and set $GOPATH and $GOROOT.

+ +

as a regular user:

+
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
+Cloning from https://github.com/moovweb/gvm.git to /root/.gvm
+No existing Go versions detected
+Installed GVM v1.0.22
+
+Please restart your terminal session or to get started right away run
+ `source /root/.gvm/scripts/gvm`
+
+ +

you should be able to run and see

+
$ gvm version
+Go Version Manager v1.0.22 installed at /home/john/.gvm
+
+ +

Run gvm listall +which will give you a list of all the available versions of go.

+ +
$gvm listall
+
+gvm gos (available)
+
+   go1
+   go1.0.1
+   ...
+   go1.11rc1
+   go1.11rc2
+   go1.11.1
+   go1.11.2
+   go1.11.3
+   go1.11.4
+   go1.12beta1
+   go1.12beta2
+
+

of which there are entirely too many.

+ +

From here, we can install go as our user via binary here:

+ +

gvm install go1.4 -B

+ +

try it out

+
$ go version
+go version go1.4 linux/amd64
+
+

We can see it gets installed here:

+
$ echo $GOROOT
+/home/john/.gvm/gos/go1.4
+
+ +

From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. +Go compiles itself! Neat huh?

+ +

As of now the latest version is go1.11.4

+
$ export GOROOT_BOOTSTRAP=$GOROOT
+$ gvm install go1.11.4
+
+ +
$ go version
+go version go1.4 linux/amd64
+
+

you can run +gvm use - select a go version to use (--default to set permanently)

+ +
$ gvm use go1.11.4 --default
+Now using version go1.11.4
+$ go version
+go version go1.11.4 linux/amd64
+$ echo $GOROOT
+/home/john/.gvm/gos/go1.11.4
+$ echo $GOPATH
+/home/john/.gvm/pkgsets/go1.11.4/global
+$ ls /home/john/.gvm/gos/go1.11.4
+AUTHORS  CONTRIBUTING.md  CONTRIBUTORS  LICENSE  PATENTS  README.md  VERSION  api  bin  doc  favicon.ico  lib  manifest  misc  pkg  robots.txt  src  test
+ls $GOPATH
+overlay  pkg  src
+
+ +

Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.

+ +

node js

+

node.js, the server side javascript framework

+ +

nvm is Node Version Manager. Install it like this: +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

+ +

Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.

+ +

You can run nvm ls-remote and get a list of all the node versions available

+ +
$ nvm
+Example:
+  nvm install 8.0.0                     Install a specific version number
+  nvm use 8.0                           Use the latest available 8.0.x release
+  nvm run 6.10.3 app.js                 Run app.js using node 6.10.3
+  nvm exec 4.8.3 node app.js            Run `node app.js` with the PATH pointing to node 4.8.3
+  nvm alias default 8.1.0               Set default node version on a shell
+  nvm alias default node                Always default to the latest available node version on a shell
+
+ +

so if you run

+ +
$ nvm install 10
+Downloading and installing node v10.15.0...
+Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz...
+######################################################################## 100.0%
+Computing checksum with sha256sum
+Checksums matched!
+Now using node v10.15.0 (npm v6.4.1)
+Creating default alias: default -> 10 (-> v10.15.0)
+
+$ whereis node
+node: /home/john/.nvm/versions/node/v10.15.0/bin/node
+
+ +

and you can set it to be the default so the setting persists between sessions

+
nvm alias default 10
+
+ +

So now you can run:

+
$ node -v
+v10.15.0
+$ npm -v
+6.4.1
+
+ +

rust

+

Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.

+ +
curl https://sh.rustup.rs -sSf | sh
+
+
+
+Current installation options:
+
+   default host triple: x86_64-unknown-linux-gnu
+     default toolchain: stable
+  modify PATH variable: yes
+
+1) Proceed with installation (default)
+2) Customize installation
+3) Cancel installation
+>
+
+select 1 
+
+To configure your current shell run source $HOME/.cargo/env
+
+ +

add $HOME/.cargo/env to your path in .bashrc

+ +
$ whereis cargo
+cargo: /home/john/.cargo/bin/cargo
+$ whereis rustc
+cargo: /home/john/.cargo/bin/rustc
+
+ +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3b/7acab97e28d6e6622b24af72b2520376a93d9dbb3d6cdf57d927a166fb4c2f b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3b/7acab97e28d6e6622b24af72b2520376a93d9dbb3d6cdf57d927a166fb4c2f new file mode 100644 index 0000000..b368357 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3b/7acab97e28d6e6622b24af72b2520376a93d9dbb3d6cdf57d927a166fb4c2f @@ -0,0 +1,4 @@ +I"¦

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. +Here’s a way to get several of them installed into your unix user directory. +If things go wrong, or you get bored you can easily rm -rf the installation.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/48/3bf5d010bfcbf2c17a7d5fcaa24b376f795bc6c7c4dce95d7424349e10f11e b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/48/3bf5d010bfcbf2c17a7d5fcaa24b376f795bc6c7c4dce95d7424349e10f11e new file mode 100644 index 0000000..dee9687 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/48/3bf5d010bfcbf2c17a7d5fcaa24b376f795bc6c7c4dce95d7424349e10f11e @@ -0,0 +1,2 @@ +I"H

Recently I had to write a file uploader for AWS S3 in node.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4a/f9d3f394514d00bfb64e9128905bae0c8f75d33029ac7545b542560c11ba4b b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4a/f9d3f394514d00bfb64e9128905bae0c8f75d33029ac7545b542560c11ba4b new file mode 100644 index 0000000..b46b827 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4a/f9d3f394514d00bfb64e9128905bae0c8f75d33029ac7545b542560c11ba4b @@ -0,0 +1,2 @@ +I"

Hope this works

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4f/172dedf2c78d58bc7abc2727d439a6b79a592e30af596984d6ba749ed75c4f b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4f/172dedf2c78d58bc7abc2727d439a6b79a592e30af596984d6ba749ed75c4f new file mode 100644 index 0000000..f9b3f95 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4f/172dedf2c78d58bc7abc2727d439a6b79a592e30af596984d6ba749ed75c4f @@ -0,0 +1,66 @@ +I"Ļ

Recently I had to write a file uploader for AWS S3 in node.

+ +

+const AWS = require('aws-sdk');
+const s3 = new AWS.S3({ signatureVersion: 'v4' });
+
+const uploadToS3 = async () => {
+  const parameters = {
+    Bucket: s3Bucket,
+    Body: fileData,
+  };
+
+  try {
+    const { Location } = await s3.upload(parameters).promise();
+    return Location;
+  } catch (e) {
+    process.exit(1);
+  }
+};
+
+ +

It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other HTTP 400 - Bad Request errors coming out of the S3 service.

+ +

Is there anything that can help guarantee your calls to upload are legit with some sort of type checking?

+ +

You’ve probably heard of the type annotated javascript superset language TypeScript and its supplementary type definition repository Definitely Typed, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate .ts files, and modifications to your build process. Is there any way to get this without futzing with your existing project?

+ +

If you’re using the Visual Studio Code editor it turns out you can enable type checking on a per-file basis by adding the comment to the beginning of the file

+
// @ts-check
+
+

to the beginning of your file. +typeerror

+ +

The parameters variable is highlighted in red, and when you mouseover it you’ll see:

+ +
Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'.
+  Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345)
+s3.d.ts(3640, 5): 'Key' is declared here.
+const parameters: {
+    Bucket: string;
+    Body: string;
+}
+
+

There are a bunch of things happening here!

+ +

It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that s3.upload takes is called PutObjectRequest. The Type Script compiler is kvetching over a missing required field it needs to say the parameters variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.

+ +

When you add the Key parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.

+ +

The same checking is useful for output types.

+
  const { Location } = await s3.upload(parameters).promise();
+
+

You can mouseover s3.upload and see it returns a type of AWS.S3.ManagedUpload.SendData, which means the destructuring operation { Location } is guaranteed to work and Location will be populated.

+ +

Links:

+ +

Type Annotation and Checking within javascript + https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files

+ +

JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt

+ +

http://usejsdoc.org/tags-type.html

+ +

More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.

+ +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/161e0f296a62f5800d6a5bf0c776fa5ea5700bd345b40b8687cfedde5bb5c5 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/161e0f296a62f5800d6a5bf0c776fa5ea5700bd345b40b8687cfedde5bb5c5 new file mode 100644 index 0000000..99b9dab --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/161e0f296a62f5800d6a5bf0c776fa5ea5700bd345b40b8687cfedde5bb5c5 @@ -0,0 +1,2 @@ +I"*

Blah blah blah blah okay okay

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/67915f405b1b58b7e972bfa6bec1f96439cfb21dd68bbc76541b7a9fac8d63 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/67915f405b1b58b7e972bfa6bec1f96439cfb21dd68bbc76541b7a9fac8d63 new file mode 100644 index 0000000..82caec6 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/67915f405b1b58b7e972bfa6bec1f96439cfb21dd68bbc76541b7a9fac8d63 @@ -0,0 +1,2 @@ +I"7

Gradual Typing With Javascript and VS Code

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/a5d4c8932742435b43783e6315f70f0e557f161b4d49ec8365a1c7f8a68661 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/a5d4c8932742435b43783e6315f70f0e557f161b4d49ec8365a1c7f8a68661 new file mode 100644 index 0000000..fd549fd --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/a5d4c8932742435b43783e6315f70f0e557f161b4d49ec8365a1c7f8a68661 @@ -0,0 +1,2 @@ +I"+

🌲 johncsimon.github.io 🐦

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 new file mode 100644 index 0000000..e135808 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 @@ -0,0 +1,2 @@ +I" +:EF \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/66593c605d2558dd7641a3ec129bc92d9fc48b19eea4fe7e0d5f2f5a67b69c b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/66593c605d2558dd7641a3ec129bc92d9fc48b19eea4fe7e0d5f2f5a67b69c new file mode 100644 index 0000000..b368357 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/66593c605d2558dd7641a3ec129bc92d9fc48b19eea4fe7e0d5f2f5a67b69c @@ -0,0 +1,4 @@ +I"¦

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. +Here’s a way to get several of them installed into your unix user directory. +If things go wrong, or you get bored you can easily rm -rf the installation.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fa/4279ae7d32fa586eed1fe0a04364cba17a92c68f9530bf0541bc7f96b5197e b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fa/4279ae7d32fa586eed1fe0a04364cba17a92c68f9530bf0541bc7f96b5197e new file mode 100644 index 0000000..a7e0bec --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fa/4279ae7d32fa586eed1fe0a04364cba17a92c68f9530bf0541bc7f96b5197e @@ -0,0 +1,2 @@ +I"I

The Perspicacious Polyglot’s Programming Language Plethora

+:ET \ No newline at end of file diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 From 9f05212a3970d2f76d4685acd273c0a107caa8d4 Mon Sep 17 00:00:00 2001 From: John Simon Date: Sat, 8 Feb 2025 23:54:18 -0800 Subject: [PATCH 06/14] try again --- Docs/404.html | 103 ++++++ Docs/about/index.html | 1 + Docs/assets/css/main.css | 3 + Docs/assets/css/main.css.map | 16 + Docs/feed.xml | 283 ++++++++++++++++ Docs/index.html | 147 +++++++++ .../2018/12/29/javascript-gradual-typing.html | 153 +++++++++ Docs/javascript/2018/12/29/typeError.png | Bin 0 -> 131839 bytes Docs/polyglot/2019/01/17/polyglot-setup.html | 309 ++++++++++++++++++ Docs/utilities/2025/02/08/blah.html | 89 +++++ 10 files changed, 1104 insertions(+) create mode 100644 Docs/404.html create mode 100644 Docs/about/index.html create mode 100644 Docs/assets/css/main.css create mode 100644 Docs/assets/css/main.css.map create mode 100644 Docs/feed.xml create mode 100644 Docs/index.html create mode 100644 Docs/javascript/2018/12/29/javascript-gradual-typing.html create mode 100644 Docs/javascript/2018/12/29/typeError.png create mode 100644 Docs/polyglot/2019/01/17/polyglot-setup.html create mode 100644 Docs/utilities/2025/02/08/blah.html diff --git a/Docs/404.html b/Docs/404.html new file mode 100644 index 0000000..58e0ccf --- /dev/null +++ b/Docs/404.html @@ -0,0 +1,103 @@ + + + + + + + + + 🌲 johncsimon.github.io 🐦 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
+ + + +
+
+ + + + + diff --git a/Docs/about/index.html b/Docs/about/index.html new file mode 100644 index 0000000..b9f0283 --- /dev/null +++ b/Docs/about/index.html @@ -0,0 +1 @@ +

I’m a software dev with Go, Javascript and C#. I’m writing this blog to better at writing and to document my explorations.

diff --git a/Docs/assets/css/main.css b/Docs/assets/css/main.css new file mode 100644 index 0000000..d55c7ed --- /dev/null +++ b/Docs/assets/css/main.css @@ -0,0 +1,3 @@ +html{height:100%}body{font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1.0rem;line-height:2;margin:0;min-height:100%}h2,h3,h4,h5{margin-top:1.5em}hr{margin:1em 0}hr.page-break{text-align:center;border:0}hr.page-break:before{content:'-----'}hr.page-break:after{content:attr(data-content) "-----"}p{margin:1em 0}li{margin:0.4em 0}.w{max-width:720px;margin:0 auto;padding:4em 2em}table,th,td{width:100%;border:thin solid black;border-collapse:collapse;padding:0.4em}div.highlighter-rouge code,code.highlighter-rouge{display:block;overflow-x:auto;padding:1em}blockquote{font-style:italic;border:thin solid black;padding:1em}blockquote p{margin:0}img{max-width:100%;display:block;margin:0 auto}html{--bg: #FFF;--bg-secondary: #F8F9FA;--headings: #000;--text: #333;--links: blue;--highlight: #FFECB2}html[data-theme="dark"] html,html[data-theme="dark"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd}@media (prefers-color-scheme: dark){body[data-theme="auto"] html,body[data-theme="auto"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd}}html,body{background-color:var(--bg);color:var(--text)}h1,h2,h3,h4,h5,h6{color:var(--headings)}p,strong,b,em,small,li,hr,table,code,figcaption{color:var(--text)}code,blockquote{background-color:var(--bg-secondary);border:1px var(--text) solid}a{color:var(--links)}*:target{background-color:var(--bg-secondary)}html.transition,html.transition *,html.transition *:before,html.transition *:after{transition:all 250ms !important;transition-delay:0 !important}.theme-toggle{color:var(--text);background-color:transparent;padding:4px;cursor:pointer;margin:1em;position:fixed;right:0;top:0;border:2px transparent solid;outline:none}.theme-toggle:hover{color:var(--links);outline:none}.theme-toggle:focus{outline:none}.dashed{border-top:1px var(--text) dashed;margin:0.5em 0}mark{padding:0.4em;background-color:var(--highlight);font-size:0.7em}.post-date{color:var(--headings);margin-right:2em}.share{color:var(--text)}.home-date{font-family:monospace}.post-list-item a{text-decoration:none}.text-bold{font-weight:bold}.text-upcase{text-transform:uppercase}ul.horizontal-list{display:flex;margin-top:0em;margin-left:-40px;flex-wrap:wrap}ul.horizontal-list li{display:inline;margin-right:1em}ul.horizontal-list li a{text-decoration:none;font-weight:normal}.card{padding:1em;border:1px var(--text) solid;width:11em;height:11em;text-align:center;font-size:1em;align-items:center;background-color:var(--bg-secondary);margin-bottom:0.8em}.card .header{color:var(--links)}.card .body{font-size:0.8em}.card hr{margin:0.5em 0}@media screen and (max-width: 600px){ul.horizontal-list li.card{width:100%;display:block;margin-bottom:1em;margin-left:1em}ul.horizontal-list li.card a,ul.horizontal-list li.card .header{font-size:1em}} + +/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/Docs/assets/css/main.css.map b/Docs/assets/css/main.css.map new file mode 100644 index 0000000..4fca972 --- /dev/null +++ b/Docs/assets/css/main.css.map @@ -0,0 +1,16 @@ +{ + "version": 3, + "file": "main.css", + "sources": [ + "main.scss", + "../../../../opt/homebrew/lib/ruby/gems/3.4.0/gems/moonwalk-0.0.2/_sass/moonwalk.scss", + "../../../../opt/homebrew/lib/ruby/gems/3.4.0/gems/moonwalk-0.0.2/_sass/list.scss" + ], + "sourcesContent": [ + "@import \"moonwalk\";\n@import \"list\";\n", + "html { height: 100%; }\n\nbody {\n font-family: -apple-system,system-ui,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;\n font-size: 1.0rem;\n line-height: 2;\n margin: 0;\n min-height: 100%;\n}\n\nh2, h3, h4, h5 { margin-top: 1.5em; }\n\nhr { margin: 1em 0; }\n\nhr.page-break {\n text-align: center;\n border: 0;\n\n &:before { content: '-----' }\n &:after { content: attr(data-content) '-----' }\n}\n\np { margin: 1em 0; }\n\nli { margin: 0.4em 0; }\n\n.w {\n max-width: 720px;\n margin: 0 auto;\n padding: 4em 2em;\n}\n\ntable, th, td {\n width: 100%;\n border: thin solid black;\n border-collapse: collapse;\n padding: 0.4em;\n}\n\ndiv.highlighter-rouge code, code.highlighter-rouge {\n display: block;\n overflow-x: auto;\n padding: 1em;\n}\n\nblockquote {\n font-style: italic;\n border: thin solid black;\n padding: 1em;\n\n p { margin: 0; }\n}\n\nimg {\n max-width: 100%;\n display: block;\n margin: 0 auto;\n}\nhtml {\n --bg: #FFF;\n --bg-secondary: #F8F9FA;\n --headings: #000;\n --text: #333;\n --links: blue;\n //--highlight: #FFD19B;\n --highlight: #FFECB2; // light yellow\n}\n// -------------- THEME SWITCHER -------------- //\n@mixin dark-appearance {\n html, body {\n --headings: #74c0fc;\n --links: #91A7FF;\n --highlight: #41C7C7;\n --bg: #1f242A;\n --bg-secondary: #323945;\n --text: #adb5bd;\n };\n}\nhtml[data-theme=\"dark\"] { @include dark-appearance; }\n\n@media (prefers-color-scheme: dark) {\n body[data-theme=\"auto\"] { @include dark-appearance; }\n}\n// -------------------------------------------- //\n\nhtml, body {\n background-color: var(--bg);\n color: var(--text);\n}\nh1, h2, h3, h4, h5, h6 {\n color: var(--headings);\n}\np, strong, b, em, small, li, hr, table, code, figcaption {\n color: var(--text);\n}\ncode, blockquote {\n background-color: var(--bg-secondary);\n border: 1px var(--text) solid;\n}\na {\n color: var(--links);\n}\n*:target { background-color: var(--bg-secondary); }\n\nhtml.transition,\nhtml.transition *,\nhtml.transition *:before,\nhtml.transition *:after {\n transition: all 250ms !important;\n transition-delay: 0 !important;\n}\n\n.theme-toggle {\n color: var(--text);\n background-color: transparent;\n padding: 4px;\n cursor: pointer;\n margin: 1em;\n position: fixed;\n right: 0;\n top: 0;\n border: 2px transparent solid;\n outline: none;\n}\n\n.theme-toggle:hover {\n color: var(--links);\n outline: none;\n}\n.theme-toggle:focus {\n outline: none;\n}\n.dashed {\n border-top: 1px var(--text) dashed;\n margin: 0.5em 0;\n}\nmark {\n padding: 0.4em;\n background-color: var(--highlight);\n font-size: 0.7em;\n}\n\n.post-date {\n color: var(--headings);\n margin-right: 2em;\n}\n.share {\n color: var(--text);\n}\n.home-date {\n font-family: monospace;\n}\n.post-list-item a {\n text-decoration: none;\n}\n.text-bold {\n font-weight: bold;\n}\n.text-upcase {\n text-transform: uppercase;\n}\n", + "ul.horizontal-list {\n display: flex;\n //justify-content: space-between;\n margin-top: 0em;\n margin-left: -40px;\n flex-wrap: wrap;\n\n li {\n display:inline;\n margin-right: 1em;\n }\n\n li a {\n text-decoration: none;\n font-weight: normal\n }\n\n}\n\n.card {\n padding: 1em;\n border: 1px var(--text) solid;\n width: 11em;\n height: 11em;\n text-align: center;\n font-size: 1em;\n align-items: center;\n background-color: var(--bg-secondary);\n margin-bottom: 0.8em;\n\n .header {\n color: var(--links);\n }\n\n .body {\n font-size: 0.8em;\n }\n\n hr {\n margin: 0.5em 0;\n }\n\n}\n\n/* Responsive cards - one column layout on small screens */\n@media screen and (max-width: 600px) {\n ul.horizontal-list li.card {\n width: 100%;\n display: block;\n margin-bottom: 1em;\n margin-left: 1em;\n a, .header {\n font-size: 1em;\n }\n }\n}\n" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/Docs/feed.xml b/Docs/feed.xml new file mode 100644 index 0000000..ef056e7 --- /dev/null +++ b/Docs/feed.xml @@ -0,0 +1,283 @@ +Jekyll2025-02-08T23:51:11-08:00http://localhost:4000/feed.xml🌲 johncsimon.github.io 🐦got some downtime so how's about we starts ourselves a blog ...Abhinav SaxenaHope this works2025-02-08T10:04:18-08:002025-02-08T10:04:18-08:00http://localhost:4000/utilities/2025/02/08/blah<p>Blah blah blah blah okay okay</p>Abhinav SaxenaBlah blah blah blah okay okayThe Perspicacious Polyglot’s Programming Language Plethora2019-01-17T11:40:43-08:002019-01-17T11:40:43-08:00http://localhost:4000/polyglot/2019/01/17/polyglot-setup<p>I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. +Here’s a way to get several of them installed into your unix user directory. +If things go wrong, or you get bored you can easily <code class="language-plaintext highlighter-rouge">rm -rf</code> the installation.</p> + +<h1 id="initial-install">Initial Install</h1> +<p>Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>john@BigBox:~/git/JohnCSimon.github.io<span class="nv">$ </span> <span class="nb">sudo </span>docker run <span class="nt">-ti</span> debian /bin/bash +Unable to find image <span class="s1">'debian:latest'</span> locally +latest: Pulling from library/debian +cd8eada9c7bb: Pull <span class="nb">complete +</span>Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5 +Status: Downloaded newer image <span class="k">for </span>debian:latest +root@6d933dddbbcd:/# +</code></pre></div></div> +<p>Just to satisfy my OCD let’s get the latest updates.</p> + +<p><code class="language-plaintext highlighter-rouge">apt update &amp;&amp; apt upgrade -y</code></p> + +<p><code class="language-plaintext highlighter-rouge">apt install gnupg2 curl procps -y</code> + Installs gpg2, curl and ps</p> + +<h1 id="ruby">ruby</h1> +<p><code class="language-plaintext highlighter-rouge">gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB</code></p> + +<p><code class="language-plaintext highlighter-rouge">\curl -sSL https://get.rvm.io | bash -s stable</code></p> + +<p>To start using RVM you need to run <code class="language-plaintext highlighter-rouge">source /etc/profile.d/rvm.sh</code> or re-login to re-load <code class="language-plaintext highlighter-rouge">~/.profile</code></p> + +<p>From here you can run - <code class="language-plaintext highlighter-rouge">rvm list known</code> and you’ll see a list of ruby flavors and individual versions.</p> + +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># MRI Rubies</span> +<span class="o">[</span>ruby-]1.8.6[-p420] +<span class="o">[</span>ruby-]1.8.7[-head] <span class="c"># security released on head</span> +<span class="o">[</span>ruby-]1.9.1[-p431] +<span class="o">[</span>ruby-]1.9.2[-p330] +<span class="o">[</span>ruby-]1.9.3[-p551] +<span class="o">[</span>ruby-]2.0.0[-p648] +<span class="o">[</span>ruby-]2.1[.10] +<span class="o">[</span>ruby-]2.2[.10] +<span class="o">[</span>ruby-]2.3[.8] +<span class="o">[</span>ruby-]2.4[.5] +<span class="o">[</span>ruby-]2.5[.3] +<span class="o">[</span>ruby-]2.6[.0] +</code></pre></div></div> + +<p>MRI Ruby is the reference version of Ruby so let’s install the latest version.</p> + +<p><code class="language-plaintext highlighter-rouge">rvm install ruby-2.6.0</code></p> + +<p>I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.</p> + +<p>Congrats, you now have a ruby install</p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>ruby <span class="nt">-v</span> +ruby 2.6.0p0 <span class="o">(</span>2018-12-25 revision 66547<span class="o">)</span> <span class="o">[</span>x86_64-linux] +</code></pre></div></div> + +<p>from here you can now do whatever since I’m blogging this using jekyll</p> + +<p><code class="language-plaintext highlighter-rouge">gem install bundler jekyll</code></p> + +<h1 id="go">go</h1> +<p>Go is a language that releases new versions on a regular basis. +There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here <code class="language-plaintext highlighter-rouge">https://github.com/moovweb/gvm</code> that’ll let you install multiple versions and set $GOPATH and $GOROOT.</p> + +<p>as a regular user:</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bash &lt; &lt;<span class="o">(</span>curl <span class="nt">-s</span> <span class="nt">-S</span> <span class="nt">-L</span> https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer<span class="o">)</span> +Cloning from https://github.com/moovweb/gvm.git to /root/.gvm +No existing Go versions detected +Installed GVM v1.0.22 + +Please restart your terminal session or to get started right away run + <span class="sb">`</span><span class="nb">source</span> /root/.gvm/scripts/gvm<span class="sb">`</span> +</code></pre></div></div> + +<p>you should be able to run and see</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gvm version +Go Version Manager v1.0.22 installed at /home/john/.gvm +</code></pre></div></div> + +<p>Run <code class="language-plaintext highlighter-rouge">gvm listall</code> +which will give you a list of all the available versions of go.</p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$gvm</span> listall + +gvm gos <span class="o">(</span>available<span class="o">)</span> + + go1 + go1.0.1 + ... + go1.11rc1 + go1.11rc2 + go1.11.1 + go1.11.2 + go1.11.3 + go1.11.4 + go1.12beta1 + go1.12beta2 +</code></pre></div></div> +<p>of which there are entirely too many.</p> + +<p>From here, we can install go as our user via binary here:</p> + +<p><code class="language-plaintext highlighter-rouge">gvm install go1.4 -B</code></p> + +<p>try it out</p> +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>go version +go version go1.4 linux/amd64 +</code></pre></div></div> +<p>We can see it gets installed here:</p> +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOROOT</span> +/home/john/.gvm/gos/go1.4 +</code></pre></div></div> + +<p>From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. +Go compiles itself! Neat huh?</p> + +<p>As of now the latest version is go1.11.4</p> +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">export </span><span class="nv">GOROOT_BOOTSTRAP</span><span class="o">=</span><span class="nv">$GOROOT</span> +<span class="nv">$ </span>gvm <span class="nb">install </span>go1.11.4 +</code></pre></div></div> + +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>go version +go version go1.4 linux/amd64 +</code></pre></div></div> +<p>you can run +<code class="language-plaintext highlighter-rouge">gvm use - select a go version to use (--default to set permanently)</code></p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gvm use go1.11.4 <span class="nt">--default</span> +Now using version go1.11.4 +<span class="nv">$ </span>go version +go version go1.11.4 linux/amd64 +<span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOROOT</span> +/home/john/.gvm/gos/go1.11.4 +<span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOPATH</span> +/home/john/.gvm/pkgsets/go1.11.4/global +<span class="nv">$ </span><span class="nb">ls</span> /home/john/.gvm/gos/go1.11.4 +AUTHORS CONTRIBUTING.md CONTRIBUTORS LICENSE PATENTS README.md VERSION api bin doc favicon.ico lib manifest misc pkg robots.txt src <span class="nb">test +ls</span> <span class="nv">$GOPATH</span> +overlay pkg src +</code></pre></div></div> + +<p>Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.</p> + +<h1 id="node-js">node js</h1> +<p>node.js, the server side javascript framework</p> + +<p>nvm is Node Version Manager. Install it like this: +<code class="language-plaintext highlighter-rouge">curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash</code></p> + +<p>Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.</p> + +<p>You can run <code class="language-plaintext highlighter-rouge">nvm ls-remote</code> and get a list of all the node versions available</p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ nvm +Example: + nvm install 8.0.0 Install a specific version number + nvm use 8.0 Use the latest available 8.0.x release + nvm run 6.10.3 app.js Run app.js using node 6.10.3 + nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3 + nvm alias default 8.1.0 Set default node version on a shell + nvm alias default node Always default to the latest available node version on a shell +</code></pre></div></div> + +<p>so if you run</p> + +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>nvm <span class="nb">install </span>10 +Downloading and installing node v10.15.0... +Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz... +<span class="c">######################################################################## 100.0%</span> +Computing checksum with <span class="nb">sha256sum +</span>Checksums matched! +Now using node v10.15.0 <span class="o">(</span>npm v6.4.1<span class="o">)</span> +Creating default <span class="nb">alias</span>: default -&gt; 10 <span class="o">(</span>-&gt; v10.15.0<span class="o">)</span> + +<span class="nv">$ </span>whereis node +node: /home/john/.nvm/versions/node/v10.15.0/bin/node +</code></pre></div></div> + +<p>and you can set it to be the default so the setting persists between sessions</p> +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>nvm alias default 10 +</code></pre></div></div> + +<p>So now you can run:</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>node <span class="nt">-v</span> +v10.15.0 +<span class="nv">$ </span>npm <span class="nt">-v</span> +6.4.1 +</code></pre></div></div> + +<h1 id="rust">rust</h1> +<p>Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.</p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl https://sh.rustup.rs -sSf | sh + + + +Current installation options: + + default host triple: x86_64-unknown-linux-gnu + default toolchain: stable + modify PATH variable: yes + +1) Proceed with installation (default) +2) Customize installation +3) Cancel installation +&gt; + +select 1 + +To configure your current shell run source $HOME/.cargo/env +</code></pre></div></div> + +<p>add <code class="language-plaintext highlighter-rouge">$HOME/.cargo/env</code> to your path in .bashrc</p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>whereis cargo +cargo: /home/john/.cargo/bin/cargo +<span class="nv">$ </span>whereis rustc +cargo: /home/john/.cargo/bin/rustc +</code></pre></div></div>Abhinav SaxenaI like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. Here’s a way to get several of them installed into your unix user directory. If things go wrong, or you get bored you can easily rm -rf the installation.Gradual Typing With Javascript and VS Code2018-12-29T11:40:43-08:002018-12-29T11:40:43-08:00http://localhost:4000/javascript/2018/12/29/javascript-gradual-typing<p>Recently I had to write a file uploader for AWS S3 in node.</p> + +<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code> +<span class="kd">const</span> <span class="nx">AWS</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="dl">'</span><span class="s1">aws-sdk</span><span class="dl">'</span><span class="p">);</span> +<span class="kd">const</span> <span class="nx">s3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">AWS</span><span class="p">.</span><span class="nx">S3</span><span class="p">({</span> <span class="na">signatureVersion</span><span class="p">:</span> <span class="dl">'</span><span class="s1">v4</span><span class="dl">'</span> <span class="p">});</span> + +<span class="kd">const</span> <span class="nx">uploadToS3</span> <span class="o">=</span> <span class="k">async</span> <span class="p">()</span> <span class="o">=&gt;</span> <span class="p">{</span> + <span class="kd">const</span> <span class="nx">parameters</span> <span class="o">=</span> <span class="p">{</span> + <span class="na">Bucket</span><span class="p">:</span> <span class="nx">s3Bucket</span><span class="p">,</span> + <span class="na">Body</span><span class="p">:</span> <span class="nx">fileData</span><span class="p">,</span> + <span class="p">};</span> + + <span class="k">try</span> <span class="p">{</span> + <span class="kd">const</span> <span class="p">{</span> <span class="nx">Location</span> <span class="p">}</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">s3</span><span class="p">.</span><span class="nx">upload</span><span class="p">(</span><span class="nx">parameters</span><span class="p">).</span><span class="nx">promise</span><span class="p">();</span> + <span class="k">return</span> <span class="nx">Location</span><span class="p">;</span> + <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span> + <span class="nx">process</span><span class="p">.</span><span class="nx">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> + <span class="p">}</span> +<span class="p">};</span> +</code></pre></div></div> + +<p>It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other <code class="language-plaintext highlighter-rouge">HTTP 400 - Bad Request</code> errors coming out of the S3 service.</p> + +<p><strong>Is there anything that can help guarantee your calls to <code class="language-plaintext highlighter-rouge">upload</code> are legit with some sort of type checking?</strong></p> + +<p>You’ve probably heard of the type annotated javascript superset language <a href="https://www.typescriptlang.org/">TypeScript</a> and its supplementary type definition repository <a href="http://definitelytyped.org/">Definitely Typed</a>, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate <code class="language-plaintext highlighter-rouge">.ts</code> files, and modifications to your build process. Is there any way to get this without futzing with your existing project?</p> + +<p>If you’re using the Visual Studio Code editor it turns out you can enable <a href="https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files">type checking on a per-file basis</a> by adding the comment to the beginning of the file</p> +<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// @ts-check</span> +</code></pre></div></div> +<p>to the beginning of your file. +<img src="typeError.png" alt="typeerror" /></p> + +<p>The parameters variable is highlighted in red, and when you mouseover it you’ll see:</p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'. + Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345) +s3.d.ts(3640, 5): 'Key' is declared here. +const parameters: { + Bucket: string; + Body: string; +} +</code></pre></div></div> +<p>There are a bunch of things happening here!</p> + +<p>It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that <code class="language-plaintext highlighter-rouge">s3.upload</code> takes is called <code class="language-plaintext highlighter-rouge">PutObjectRequest</code>. The Type Script compiler is kvetching over a missing required field it needs to say the <code class="language-plaintext highlighter-rouge">parameters</code> variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.</p> + +<p>When you add the <code class="language-plaintext highlighter-rouge">Key</code> parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.</p> + +<p>The same checking is useful for output types.</p> +<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="kd">const</span> <span class="p">{</span> <span class="nx">Location</span> <span class="p">}</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">s3</span><span class="p">.</span><span class="nx">upload</span><span class="p">(</span><span class="nx">parameters</span><span class="p">).</span><span class="nx">promise</span><span class="p">();</span> +</code></pre></div></div> +<p>You can mouseover s3.upload and see it returns a type of <code class="language-plaintext highlighter-rouge">AWS.S3.ManagedUpload.SendData</code>, which means the destructuring operation <code class="language-plaintext highlighter-rouge">{ Location }</code> is guaranteed to work and Location will be populated.</p> + +<p>Links:</p> + +<p>Type Annotation and Checking within javascript + <code class="language-plaintext highlighter-rouge">https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files</code></p> + +<p>JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt</p> + +<p><code class="language-plaintext highlighter-rouge">http://usejsdoc.org/tags-type.html</code></p> + +<p>More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.</p>Abhinav SaxenaRecently I had to write a file uploader for AWS S3 in node. \ No newline at end of file diff --git a/Docs/index.html b/Docs/index.html new file mode 100644 index 0000000..920530c --- /dev/null +++ b/Docs/index.html @@ -0,0 +1,147 @@ + + + + + + + + + 🌲 johncsimon.github.io 🐦 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
    + +
+ +
+ + +

🌲 johncsimon.github.io 🐦

+ +

got some downtime so how's about we starts ourselves a blog ...

+ +
+ + +

Portfolio

+
    + +
+ + + + + + +

Blog

+ + + + + + +

Old Projects

+
    + +
+ + + + + +
+
+
    + +
+ +
+ + + + +
+
+ + + + + diff --git a/Docs/javascript/2018/12/29/javascript-gradual-typing.html b/Docs/javascript/2018/12/29/javascript-gradual-typing.html new file mode 100644 index 0000000..e5d2067 --- /dev/null +++ b/Docs/javascript/2018/12/29/javascript-gradual-typing.html @@ -0,0 +1,153 @@ + + + + + + + + + Gradual Typing With Javascript and VS Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ home.. +

Gradual Typing With Javascript and VS Code

+

Recently I had to write a file uploader for AWS S3 in node.

+ +

+const AWS = require('aws-sdk');
+const s3 = new AWS.S3({ signatureVersion: 'v4' });
+
+const uploadToS3 = async () => {
+  const parameters = {
+    Bucket: s3Bucket,
+    Body: fileData,
+  };
+
+  try {
+    const { Location } = await s3.upload(parameters).promise();
+    return Location;
+  } catch (e) {
+    process.exit(1);
+  }
+};
+
+ +

It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other HTTP 400 - Bad Request errors coming out of the S3 service.

+ +

Is there anything that can help guarantee your calls to upload are legit with some sort of type checking?

+ +

You’ve probably heard of the type annotated javascript superset language TypeScript and its supplementary type definition repository Definitely Typed, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate .ts files, and modifications to your build process. Is there any way to get this without futzing with your existing project?

+ +

If you’re using the Visual Studio Code editor it turns out you can enable type checking on a per-file basis by adding the comment to the beginning of the file

+
// @ts-check
+
+

to the beginning of your file. +typeerror

+ +

The parameters variable is highlighted in red, and when you mouseover it you’ll see:

+ +
Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'.
+  Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345)
+s3.d.ts(3640, 5): 'Key' is declared here.
+const parameters: {
+    Bucket: string;
+    Body: string;
+}
+
+

There are a bunch of things happening here!

+ +

It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that s3.upload takes is called PutObjectRequest. The Type Script compiler is kvetching over a missing required field it needs to say the parameters variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.

+ +

When you add the Key parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.

+ +

The same checking is useful for output types.

+
  const { Location } = await s3.upload(parameters).promise();
+
+

You can mouseover s3.upload and see it returns a type of AWS.S3.ManagedUpload.SendData, which means the destructuring operation { Location } is guaranteed to work and Location will be populated.

+ +

Links:

+ +

Type Annotation and Checking within javascript + https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files

+ +

JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt

+ +

http://usejsdoc.org/tags-type.html

+ +

More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.

+ + + + + +
+
+ + + + + diff --git a/Docs/javascript/2018/12/29/typeError.png b/Docs/javascript/2018/12/29/typeError.png new file mode 100644 index 0000000000000000000000000000000000000000..209314afd5e390bcb0a46c87f9e999734944f81f GIT binary patch literal 131839 zcmbrmbySsW*FK6ESfBzb4T=H+f^>&~A|l=0Al)F1A}uA|E#2KnO6Q_ey1VPlwcqzU zzx|zY{yF39F}6ctv3Q>6zVA7&n#)^UR1p0x-dz+F6m+2v0+J{wH$R}Dpx(TF3%-If z_cRXvykW^FBz+tHbG)tX1^>pidM9rsWvXjst6`yoqGw`itn=DZ%R)!T#PYML)z*A^=Hr|17)j)Lr3D^^jyyJ8k23UGspxC^ zGVp`0Zvsd7CktJ(fL5-zH=f^3C2ah3`F!=a4Dvvui7QMs*r|)(68rcPe^02 zbA2>6vWTN6W{)7Y)ObAX`D)l#^zK}LM#@f-mvsL4xbM(aNS}Rw$anicf80nQy(amu ze>cs2EK8&!`9ClC{t*2gYRdn-9KP<=8g}D@`~Uq0-ya6Nz7u%&UvELAgh}%FUq8TE z`hu78UvK!uNXS+CzrP;&<(-kAC>j5HzrO`9|Mw+n3D-SS9qjFW$il*+SYqH_QNh;S z+^nsuYq8M&_&F&lQ@dy^`(vkz-7LGmO?SFuIpm0Cp8V?q&aWdJTnC$)zQ1+5rJ=7c zWMjj8=gytw0cVuls&RWC<@bo~mX;k&uwU!Nr}OnQ_g?cvVqRf&8KB>S~KJ21drF#>VSXQc^xX zJ|9Fy7f%n?@M^^V{rHnISDAPX^z}0wC7hhz`{B8Jdwbi*@+FcmGKQq5Q{-&mF&TVM zOG|4h92}IsygW0tu(Vt&?f=*F@p8$wM-R-j_+f8v|1&U<_sbX7n>TNcjE@gw$*%$y?ENBz^&v$Q?ixcY3@+}u1OGIDlf!_U|EUaLQ$R5<#B2g4)GbaX)~ zRW^@saJ+JIUUx+?k+QK>sIJlev*+OVI`YfC{pW4H1by7x`1$1$KU%HrHN%5JDL0?< zki8U_2^?r|U;TRaikez_I(uYfWYFUEzaLeAFY-P;+OkknbzWiL<&BIlroVgd-nCvt z&T!ek_xv$h#_+PHfdM7T;^Ly>T4!e`%AdBjjKNwXW8-Uo+S@Zz$L{=Vix9EELW+F+ z_?(3$d?-gr%h=ed470Mbys{ECFfcGd)x^|P&EyTDs|(%1!Qt-RyKuShC*_p?wHI~* zr1OFqLqkFyVq)^uIbYz=Yu_#?C|Ffk&&ke)bsvhD&9q({;@oM%N=Zu#j*S)3*MAij z78Vg5oh(kl`ei%8KE38&XNXT)rlv=en3%W+)@)~cJ3*%-3s}6e|}-X9L`jCJdfD>_wSwL)c$>m4*+T7jqilk7i_mPp2UoSngD9cQe>P%!zuAI0m}FF81( z;Z7`f{om#JF8f&8e-#aQMq!7YlwR`xPtv65WRHX;5CTJ$m#A zT_sjS|(dxZ!mk4HK_M10PN@}k>WuUm~>gr-Yc_N)z z9UlJluKTwh9yP@kVH4UK1!k&!RR$+7V4L+Y+Bqx<_^RC|AqjC?0{ zK8|}S9QKfiXsQ>H5qA2SyuV*ElF3jucH>H8W@|b?p(sx7Drc22J~FZ`RXBX4)R@ED zn*}f5BOvz<7TL_^W;e%HwNzRjgXvT?`=kp$6*cut{a5vaX}Att2Hlyz{r*slInB=2 zjdawD3m?p7u9|-)zij(&hmsKP?8KW}SP&9ux;ZhStUvI}IMvfBG&MQ-EZ}~VbZCY? zX-w?6#cV?(gVAJr``v_YRH0aQyTLYRVw=%Xw&hh>XZsuX?%gXaDl&Y{nklKQ+!^*- z38i;TSl4geuOA)`udtjZd-bZ|tKsqT%0$Jz=4KzfEkS4E&mToaZ`C&>StNhA zv?$yahsiu zt>DX!rt_uUYdSi*ANVX7aF6uMfI$%U?Rr z*T*L_RF$>6djp5b0DEJ+O5Mollf6AVxmcX`T#E?amQ1KrcDDOHp8hd45qqb@&B^F+ zHD`s3qaL2TKKZ)Oeb24MOKrEfkymJnk!Uqa8#Xy?a zT;qeM>RMWje}YK!i;74Y7=mYJ)R|2tq&K@9bOOvp78Vy1(&R!n3;!`*Vc;k z2gv;9Om&AMWU`!lM_Ml|?$sU)DZw%`SS~Wax;=qb)Y;WlVYf#X&0;#+o9L!EE}d#j zD~!;cpP%2(bGcZ%7H@!v;U?@ZHCAE@6N%?`d&YljZe!A~?($SvD>g5W_Bt9y!|%kG zm6esYW8VDhBL!|he`@*_wzQCaied~R;<8uQ)a2viL&awa8}?tx*KEE^P2FjCd7`jT znv+>-))f^$TA)=mWREy0FhB&XPt|0t5)0hS&N0SeqI_s;`vBS?H2G(gls+QSmoM1a zKPIp5_4FjE@wgmJAC=NBIGI*oU7{5mEFkwkf0k@c1gG8I?rvi`28QeEyYsIou-~oj z#ycJ2<|vl*j|jeF`;fKgWTdU#dAu{Xg6QxBZ1xBrztyzv!pGhHWnRr8WxPwRbe5BZ zlc+U9bRsqRyv$!T^iL6^@DOSSyC$tAdKk`gzVZA9{y?XZS*;jx_mh*pR z6|llY%>GdD3$3Brt>y5_LxC0Kd5wYlR)%USU#O{w8Y5B&^H?0eY&zzW@cfb*_-gzYNbE4 zY}#2VwuhRE$~Tm%?q+>!8aWXWkRtUZz3yeu{I)82K(_O z*RSE+=Bz887cahNNTt0|=XGH=oytZ;|LMvh6^UkE=;2|>GEI`XIyl-AuCmz}spE-= zi6J;YKYgRyiStQB1kPwli!-2RLrQXTG!>N^#c?&`N~bescX#*s1qAiN+qsrS$KAG8 zc_pPH+pXyrFPgM;blzQEUaSmt`HFEX2naNtoNe-piN&)_I|f6sEi{{L#rrKmNT@Pp zzb3+Nv;M)%?2XH11ukH;)58O;!*!P9g>bcz$^(;LDspm9xTRFXVVW-v4p`XO0?HGU zDDRb(2@blNo83?LmMjkp?ng5lKj+}Mr!@ZSJ|X*eU`ccihXj7AjWWjM(pwp@lb~*f zxVoZX5VAJ`xPazP#w@$XwY0R9mFMJ|79VFmeM*IW_dYth-JG9Ga9CK2&tt0IVHVi# zLdfa}c+mnVm-R`d(YRrBW=)lo62mgH`CkD5Gu~ca>XVh$*pDCgr3yd&B^t{IPf@<~ zljYxHz+E@R#KhpRvO2NHwD{pOSg(dykm*sqq@eJE-}*LBm3w`>Oe{FYH<>ey`7oJ|s1)wt;4BmGAdL8ZW{Jgxz z1svM*hI_QVMS2e!8X8#5|Gp53Vw^1*R-GHnkg9LA^q2K8`0Qk2vVmTZXTWi7y9NL1 zmsYF4(PX8c;c#wZTAF8C8hKvr>D^zy$bc)R4Xu(>iv5>Cmn0Y~=@AeR$QQjI-J^Z+ z;sy^74}hxn*jG$UOpgTx1uqZs(i95*-t#9y&oP^JI^Ay>8VcjNJa$9JXGSqw?tKgG zF@oF4-fuN$)jd2euDd|1)yu#3BOFR7U(jLEP@pR%i{O(VFvEYG2ZLW=ZL|A|cA?|~ zQjFGU^q5^)X=@86zeYhLJJnfHWvksC!%|_+Z#PGbk1u?7xUtfg%z=TC;}uYcA9DvC z{TUNes6;ZVx1XQRmGegQ+-g4pF;}q^mz`>^~e1MzmwTUPaz?pg_ShDH;%_| zoUc?OwHSGL#4b)>E0xwaHoE2K&xLO8$l(eJdB1r1vcE`AjDSGVVy6E0U58|-3L`ZR zEORY>$pD7Gd&UpRPv^z+q^72>Pgcp*e6o(IvRY|?#q+2XRD=`J5l%}=LgETfB-4RF z<^X4SaIs4%ld-ePphkpBOi&O_Nl7O_0MIm$HC(7P9v&W!M=D(&!(uV4U*VV;9IRtt zaMuI)0J+3vrv=}1!j_n}_866ry?AM_hi9oj)faCK_~!CN1p}3wbC!9{4K%d9KEZnt zZ!}PU|3({ZRkc=)j%H~YACKPN-lk0Pr;tHYG$OkdJl-Z{HQ`H#&N9X$kt7o;Ig*7a&mglZ0 z`iR;9rQ***J#k!KUgh;aUkVSNv00ME08l-?wv}QscE?YyylAfd*Jn1n-4~IOxFu0> zshJz!>8*wJN=+u)p^0Xy=AJuWJbm)yNr^0r1k?XO-kX<~POpF|GD?rS0Z!i2*3+BY z+EO!dWuy|e;|~uEG@G8Gpm4Z>O2C#>5zpmtNbh|9<hk(gi zCwvfH4yLE3CSgTM85wU_T6Pid0)*5Y$=4{aupYb{r&4L9K!x+@v9&u9S0#}CoJS-% z!W(03@Ym*Ar!&NFiBLd;NEBUGR>sbI`ev+1kM`@=ubd~^uJ2uoB}f@6ZMV9i`LxF( zE|&X}@fxik`#eW-)_jddGaHjEj6j(q9J%3zj&Mqqp~2!uuq>;VrOYd9Ylf*(AB2Uq zMhh2WSRcu5T&%9H&d$y8TUZpzj`;$$=RV)&$M*Sqw)ixL)f}_7wl-V&B+1uK%4j*O2&eoryS)6T+1J+62V?+D+=}9) zuFMx49QaB~N<+C93$?%dqK<*WFkSiw)OqkFCg@8k`7JQ%j|UL2DeLi@3;NyFh6e7Z z1K>p)a2L~i0ccXm$;pkIlU2pt<24RfaCY!%X~nEv2N4K#aqb_KYePAV-7#$ZAiyz( zEiEh*xVXGQvVyiY?}!MT19q1yXO#7^lA?yAoiW2anZws|QL6;T11&{m?KzFQrt4`}r}Uu$WE_%BxCC{{d;?GgJh>X*Wvstkr8W zHmGiY|7!Zp_F!PVzNS-K<1>MO8>PMGl>~a%z;Iq&d}>#88A>}bUrcb%Y6=GbgM-eiJI4*~sot@d5qp6qA zpMM)jYh-h|RL)tXkv{mG)xqhKX_%Rvl=M8uCYO8caFx|;2BkHCiuiU!L_}|)&b{;V zbNRw~2B5_)u&=Kzu%Si0;+6h87uq4c@tU_tw|#0JG*WIuD)3wgZ6&CMEKPwUgpm`@Li3#dRno^lb47;_DykW@U2}HB3xI&CTgR$bhR!oghY&d5u&m zZ%f3(q4xLoz5@!<>TCsyT&{AW%hl!n=A>s=^cA)3`22hd+UE4g$Z@y$+l}bFu_*6@ zDW_>u)|i3DOZNFoh!3-l)&38b$EshQ^EK z;huQ%c*mb$4uH7EYPI~va40*7SO0p(5lRNEquVX?hW`Ga>+43Cn3%nNeZMCr2*}CF zb6oXgI{xtq2ForlLisOR0*HHn>6Hwfot??yki4d#ptiMBc=ztz^6IJqdNXP!XZ2Kl z!XnR=^xHV#z(WdwnKT(D6MjE_w5yncKp`Q~$4^Lbb3uS8oK{V@-u2RGtoRNl2&4uhI-z3kip)V|GnXS@{Z$8NOZI>xG6zFLDoZS+1xM4re>

$>Q$axiFW3T+w!TiyY=lI% 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[f;wV`5@}PBU-9T7V>ZNBKVErXVv_ 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 + + + + + + + + The Perspicacious Polyglot's Programming Language Plethora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ home.. +

The Perspicacious Polyglot's Programming Language Plethora

+

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. +Here’s a way to get several of them installed into your unix user directory. +If things go wrong, or you get bored you can easily rm -rf the installation.

+ +

Initial Install

+

Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.

+
john@BigBox:~/git/JohnCSimon.github.io$  sudo docker run -ti debian /bin/bash
+Unable to find image 'debian:latest' locally
+latest: Pulling from library/debian
+cd8eada9c7bb: Pull complete
+Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5
+Status: Downloaded newer image for debian:latest
+root@6d933dddbbcd:/#
+
+

Just to satisfy my OCD let’s get the latest updates.

+ +

apt update && apt upgrade -y

+ +

apt install gnupg2 curl procps -y + Installs gpg2, curl and ps

+ +

ruby

+

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

+ +

\curl -sSL https://get.rvm.io | bash -s stable

+ +

To start using RVM you need to run source /etc/profile.d/rvm.sh or re-login to re-load ~/.profile

+ +

From here you can run - rvm list known and you’ll see a list of ruby flavors and individual versions.

+ +
# MRI Rubies
+[ruby-]1.8.6[-p420]
+[ruby-]1.8.7[-head] # security released on head
+[ruby-]1.9.1[-p431]
+[ruby-]1.9.2[-p330]
+[ruby-]1.9.3[-p551]
+[ruby-]2.0.0[-p648]
+[ruby-]2.1[.10]
+[ruby-]2.2[.10]
+[ruby-]2.3[.8]
+[ruby-]2.4[.5]
+[ruby-]2.5[.3]
+[ruby-]2.6[.0]
+
+ +

MRI Ruby is the reference version of Ruby so let’s install the latest version.

+ +

rvm install ruby-2.6.0

+ +

I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.

+ +

Congrats, you now have a ruby install

+ +
$ ruby -v
+ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
+
+ +

from here you can now do whatever since I’m blogging this using jekyll

+ +

gem install bundler jekyll

+ +

go

+

Go is a language that releases new versions on a regular basis. +There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here https://github.com/moovweb/gvm that’ll let you install multiple versions and set $GOPATH and $GOROOT.

+ +

as a regular user:

+
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
+Cloning from https://github.com/moovweb/gvm.git to /root/.gvm
+No existing Go versions detected
+Installed GVM v1.0.22
+
+Please restart your terminal session or to get started right away run
+ `source /root/.gvm/scripts/gvm`
+
+ +

you should be able to run and see

+
$ gvm version
+Go Version Manager v1.0.22 installed at /home/john/.gvm
+
+ +

Run gvm listall +which will give you a list of all the available versions of go.

+ +
$gvm listall
+
+gvm gos (available)
+
+   go1
+   go1.0.1
+   ...
+   go1.11rc1
+   go1.11rc2
+   go1.11.1
+   go1.11.2
+   go1.11.3
+   go1.11.4
+   go1.12beta1
+   go1.12beta2
+
+

of which there are entirely too many.

+ +

From here, we can install go as our user via binary here:

+ +

gvm install go1.4 -B

+ +

try it out

+
$ go version
+go version go1.4 linux/amd64
+
+

We can see it gets installed here:

+
$ echo $GOROOT
+/home/john/.gvm/gos/go1.4
+
+ +

From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. +Go compiles itself! Neat huh?

+ +

As of now the latest version is go1.11.4

+
$ export GOROOT_BOOTSTRAP=$GOROOT
+$ gvm install go1.11.4
+
+ +
$ go version
+go version go1.4 linux/amd64
+
+

you can run +gvm use - select a go version to use (--default to set permanently)

+ +
$ gvm use go1.11.4 --default
+Now using version go1.11.4
+$ go version
+go version go1.11.4 linux/amd64
+$ echo $GOROOT
+/home/john/.gvm/gos/go1.11.4
+$ echo $GOPATH
+/home/john/.gvm/pkgsets/go1.11.4/global
+$ ls /home/john/.gvm/gos/go1.11.4
+AUTHORS  CONTRIBUTING.md  CONTRIBUTORS  LICENSE  PATENTS  README.md  VERSION  api  bin  doc  favicon.ico  lib  manifest  misc  pkg  robots.txt  src  test
+ls $GOPATH
+overlay  pkg  src
+
+ +

Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.

+ +

node js

+

node.js, the server side javascript framework

+ +

nvm is Node Version Manager. Install it like this: +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

+ +

Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.

+ +

You can run nvm ls-remote and get a list of all the node versions available

+ +
$ nvm
+Example:
+  nvm install 8.0.0                     Install a specific version number
+  nvm use 8.0                           Use the latest available 8.0.x release
+  nvm run 6.10.3 app.js                 Run app.js using node 6.10.3
+  nvm exec 4.8.3 node app.js            Run `node app.js` with the PATH pointing to node 4.8.3
+  nvm alias default 8.1.0               Set default node version on a shell
+  nvm alias default node                Always default to the latest available node version on a shell
+
+ +

so if you run

+ +
$ nvm install 10
+Downloading and installing node v10.15.0...
+Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz...
+######################################################################## 100.0%
+Computing checksum with sha256sum
+Checksums matched!
+Now using node v10.15.0 (npm v6.4.1)
+Creating default alias: default -> 10 (-> v10.15.0)
+
+$ whereis node
+node: /home/john/.nvm/versions/node/v10.15.0/bin/node
+
+ +

and you can set it to be the default so the setting persists between sessions

+
nvm alias default 10
+
+ +

So now you can run:

+
$ node -v
+v10.15.0
+$ npm -v
+6.4.1
+
+ +

rust

+

Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.

+ +
curl https://sh.rustup.rs -sSf | sh
+
+
+
+Current installation options:
+
+   default host triple: x86_64-unknown-linux-gnu
+     default toolchain: stable
+  modify PATH variable: yes
+
+1) Proceed with installation (default)
+2) Customize installation
+3) Cancel installation
+>
+
+select 1 
+
+To configure your current shell run source $HOME/.cargo/env
+
+ +

add $HOME/.cargo/env to your path in .bashrc

+ +
$ whereis cargo
+cargo: /home/john/.cargo/bin/cargo
+$ whereis rustc
+cargo: /home/john/.cargo/bin/rustc
+
+ + + + + +
+
+ + + + + diff --git a/Docs/utilities/2025/02/08/blah.html b/Docs/utilities/2025/02/08/blah.html new file mode 100644 index 0000000..c9973d4 --- /dev/null +++ b/Docs/utilities/2025/02/08/blah.html @@ -0,0 +1,89 @@ + + + + + + + + + Hope this works + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ home.. +

Hope this works

+

Blah blah blah blah okay okay

+ + + + +
+
+ + + + + From 4a66044529ce5bc88a338f71cab2ee87532dc7c4 Mon Sep 17 00:00:00 2001 From: John Simon Date: Sun, 9 Feb 2025 00:00:39 -0800 Subject: [PATCH 07/14] Blah --- ...a4f51e34ec3d9e9a3e9b5ef7a494f057aa214a4b33569b961c8605c42b97 | 2 -- ...113e0a6db01db8321bf6484d186528dfc0b31d2400a58e34856aa7041eba | 2 ++ ...77dfb149b40c8b64579d564b6bcc0c020d9791b2d33da568d67db4405be6 | 2 ++ ...1e0f296a62f5800d6a5bf0c776fa5ea5700bd345b40b8687cfedde5bb5c5 | 2 -- _posts/2025-2-2-blah.markdown | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/11/98a4f51e34ec3d9e9a3e9b5ef7a494f057aa214a4b33569b961c8605c42b97 create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/76/89113e0a6db01db8321bf6484d186528dfc0b31d2400a58e34856aa7041eba create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/b977dfb149b40c8b64579d564b6bcc0c020d9791b2d33da568d67db4405be6 delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/161e0f296a62f5800d6a5bf0c776fa5ea5700bd345b40b8687cfedde5bb5c5 diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/11/98a4f51e34ec3d9e9a3e9b5ef7a494f057aa214a4b33569b961c8605c42b97 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/11/98a4f51e34ec3d9e9a3e9b5ef7a494f057aa214a4b33569b961c8605c42b97 deleted file mode 100644 index 99b9dab..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/11/98a4f51e34ec3d9e9a3e9b5ef7a494f057aa214a4b33569b961c8605c42b97 +++ /dev/null @@ -1,2 +0,0 @@ -I"*

Blah blah blah blah okay okay

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/76/89113e0a6db01db8321bf6484d186528dfc0b31d2400a58e34856aa7041eba b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/76/89113e0a6db01db8321bf6484d186528dfc0b31d2400a58e34856aa7041eba new file mode 100644 index 0000000..8a377ae --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/76/89113e0a6db01db8321bf6484d186528dfc0b31d2400a58e34856aa7041eba @@ -0,0 +1,2 @@ +I"-

Blah blah blah blah okay okay !!

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/b977dfb149b40c8b64579d564b6bcc0c020d9791b2d33da568d67db4405be6 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/b977dfb149b40c8b64579d564b6bcc0c020d9791b2d33da568d67db4405be6 new file mode 100644 index 0000000..8a377ae --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/b977dfb149b40c8b64579d564b6bcc0c020d9791b2d33da568d67db4405be6 @@ -0,0 +1,2 @@ +I"-

Blah blah blah blah okay okay !!

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/161e0f296a62f5800d6a5bf0c776fa5ea5700bd345b40b8687cfedde5bb5c5 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/161e0f296a62f5800d6a5bf0c776fa5ea5700bd345b40b8687cfedde5bb5c5 deleted file mode 100644 index 99b9dab..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/161e0f296a62f5800d6a5bf0c776fa5ea5700bd345b40b8687cfedde5bb5c5 +++ /dev/null @@ -1,2 +0,0 @@ -I"*

Blah blah blah blah okay okay

-:ET \ No newline at end of file diff --git a/_posts/2025-2-2-blah.markdown b/_posts/2025-2-2-blah.markdown index d15532f..0fcacd6 100644 --- a/_posts/2025-2-2-blah.markdown +++ b/_posts/2025-2-2-blah.markdown @@ -5,4 +5,4 @@ date: 2025-02-08T18:04:18.692Z categories: utilities --- -Blah blah blah blah okay okay +Blah blah blah blah okay okay !! From 65fcf86cf49d174d88eb5960ef7e51feb659f596 Mon Sep 17 00:00:00 2001 From: John Simon Date: Sun, 9 Feb 2025 00:04:16 -0800 Subject: [PATCH 08/14] Blah --- ...40b622142f1c98125abcfe89a76a661b0e8e343910 | 2 +- Docs/404.html | 103 ------ Docs/about/index.html | 1 - Docs/assets/css/main.css | 3 - Docs/assets/css/main.css.map | 16 - Docs/feed.xml | 283 ---------------- Docs/index.html | 147 --------- .../2018/12/29/javascript-gradual-typing.html | 153 --------- Docs/javascript/2018/12/29/typeError.png | Bin 131839 -> 0 bytes Docs/polyglot/2019/01/17/polyglot-setup.html | 309 ------------------ Docs/utilities/2025/02/08/blah.html | 89 ----- 11 files changed, 1 insertion(+), 1105 deletions(-) delete mode 100644 Docs/404.html delete mode 100644 Docs/about/index.html delete mode 100644 Docs/assets/css/main.css delete mode 100644 Docs/assets/css/main.css.map delete mode 100644 Docs/feed.xml delete mode 100644 Docs/index.html delete mode 100644 Docs/javascript/2018/12/29/javascript-gradual-typing.html delete mode 100644 Docs/javascript/2018/12/29/typeError.png delete mode 100644 Docs/polyglot/2019/01/17/polyglot-setup.html delete mode 100644 Docs/utilities/2025/02/08/blah.html diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 index 29c3571..340b040 100644 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 @@ -1 +1 @@ -I"ń{"title" => "🌲 johncsimon.github.io 🐦", "author" => "Abhinav Saxena", "url" => "http://localhost:4000", "description" => "got some downtime so how's about we starts ourselves a blog ...", "favicon" => "./logo.png", "remote_theme" => "abhinavs/moonwalk", "theme_config" => {"appearance" => "dark", "back_home_text" => "home..", "date_format" => "%Y-%m-%d", "show_description" => true, "show_navbar" => true, "show_footer" => true, "show_projects" => true, "show_old_projects" => true, "show_misc_list" => false}, "sass" => {"style" => ":compressed"}, "source" => "/Users/johnsimon/github/JohnCSimon.github.io", "destination" => "/Users/johnsimon/github/JohnCSimon.github.io/_site", "collections_dir" => "", "cache_dir" => ".jekyll-cache", "plugins_dir" => "_plugins", "layouts_dir" => "_layouts", "data_dir" => "_data", "includes_dir" => "_includes", "collections" => {"posts" => {"output" => true, "permalink" => "/:categories/:year/:month/:day/:title:output_ext"}}, "safe" => false, "include" => [".htaccess"], "exclude" => [".sass-cache", ".jekyll-cache", "gemfiles", "Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files" => [".git", ".svn"], "encoding" => "utf-8", "markdown_ext" => "markdown,mkdown,mkdn,mkd,md", "strict_front_matter" => false, "show_drafts" => nil, "limit_posts" => 0, "future" => false, "unpublished" => false, "whitelist" => [], "plugins" => ["jekyll-feed"], "markdown" => "kramdown", "highlighter" => "rouge", "lsi" => false, "excerpt_separator" => "\n\n", "incremental" => false, "detach" => false, "port" => "4000", "host" => "127.0.0.1", "baseurl" => nil, "show_dir_listing" => false, "permalink" => "date", "paginate_path" => "/page:num", "timezone" => nil, "quiet" => false, "verbose" => false, "defaults" => [], "liquid" => {"error_mode" => "warn", "strict_filters" => false, "strict_variables" => false}, "kramdown" => {"auto_ids" => true, "toc_levels" => [1, 2, 3, 4, 5, 6], "entity_output" => "as_char", "smart_quotes" => "lsquo,rsquo,ldquo,rdquo", "input" => "GFM", "hard_wrap" => false, "guess_lang" => true, "footnote_nr" => 1, "show_warnings" => false}, "github_username" => "johncsimon", "theme" => "moonwalk", "livereload_port" => 35729, "serving" => true, "watch" => true}:ET \ No newline at end of file +I"Ö{"title" => "🌲 johncsimon.github.io 🐦", "author" => "Abhinav Saxena", "url" => "https://www.abhinavsaxena.com/moonwalk", "description" => "got some downtime so how's about we starts ourselves a blog ...", "favicon" => "./logo.png", "remote_theme" => "abhinavs/moonwalk", "theme_config" => {"appearance" => "dark", "back_home_text" => "home..", "date_format" => "%Y-%m-%d", "show_description" => true, "show_navbar" => true, "show_footer" => true, "show_projects" => true, "show_old_projects" => true, "show_misc_list" => false}, "sass" => {"style" => ":compressed"}, "source" => "/Users/johnsimon/github/JohnCSimon.github.io", "destination" => "/Users/johnsimon/github/JohnCSimon.github.io/_site", "collections_dir" => "", "cache_dir" => ".jekyll-cache", "plugins_dir" => "_plugins", "layouts_dir" => "_layouts", "data_dir" => "_data", "includes_dir" => "_includes", "collections" => {"posts" => {"output" => true, "permalink" => "/:categories/:year/:month/:day/:title:output_ext"}}, "safe" => false, "include" => [".htaccess"], "exclude" => [".sass-cache", ".jekyll-cache", "gemfiles", "Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files" => [".git", ".svn"], "encoding" => "utf-8", "markdown_ext" => "markdown,mkdown,mkdn,mkd,md", "strict_front_matter" => false, "show_drafts" => nil, "limit_posts" => 0, "future" => false, "unpublished" => false, "whitelist" => [], "plugins" => ["jekyll-feed"], "markdown" => "kramdown", "highlighter" => "rouge", "lsi" => false, "excerpt_separator" => "\n\n", "incremental" => false, "detach" => false, "port" => "4000", "host" => "127.0.0.1", "baseurl" => nil, "show_dir_listing" => false, "permalink" => "date", "paginate_path" => "/page:num", "timezone" => nil, "quiet" => false, "verbose" => false, "defaults" => [], "liquid" => {"error_mode" => "warn", "strict_filters" => false, "strict_variables" => false}, "kramdown" => {"auto_ids" => true, "toc_levels" => [1, 2, 3, 4, 5, 6], "entity_output" => "as_char", "smart_quotes" => "lsquo,rsquo,ldquo,rdquo", "input" => "GFM", "hard_wrap" => false, "guess_lang" => true, "footnote_nr" => 1, "show_warnings" => false}, "github_username" => "johncsimon", "theme" => "moonwalk", "serving" => false}:ET \ No newline at end of file diff --git a/Docs/404.html b/Docs/404.html deleted file mode 100644 index 58e0ccf..0000000 --- a/Docs/404.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - 🌲 johncsimon.github.io 🐦 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-

404

- -

Page not found :(

-

The requested page could not be found.

-
- - - -
-
- - - - - diff --git a/Docs/about/index.html b/Docs/about/index.html deleted file mode 100644 index b9f0283..0000000 --- a/Docs/about/index.html +++ /dev/null @@ -1 +0,0 @@ -

I’m a software dev with Go, Javascript and C#. I’m writing this blog to better at writing and to document my explorations.

diff --git a/Docs/assets/css/main.css b/Docs/assets/css/main.css deleted file mode 100644 index d55c7ed..0000000 --- a/Docs/assets/css/main.css +++ /dev/null @@ -1,3 +0,0 @@ -html{height:100%}body{font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1.0rem;line-height:2;margin:0;min-height:100%}h2,h3,h4,h5{margin-top:1.5em}hr{margin:1em 0}hr.page-break{text-align:center;border:0}hr.page-break:before{content:'-----'}hr.page-break:after{content:attr(data-content) "-----"}p{margin:1em 0}li{margin:0.4em 0}.w{max-width:720px;margin:0 auto;padding:4em 2em}table,th,td{width:100%;border:thin solid black;border-collapse:collapse;padding:0.4em}div.highlighter-rouge code,code.highlighter-rouge{display:block;overflow-x:auto;padding:1em}blockquote{font-style:italic;border:thin solid black;padding:1em}blockquote p{margin:0}img{max-width:100%;display:block;margin:0 auto}html{--bg: #FFF;--bg-secondary: #F8F9FA;--headings: #000;--text: #333;--links: blue;--highlight: #FFECB2}html[data-theme="dark"] html,html[data-theme="dark"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd}@media (prefers-color-scheme: dark){body[data-theme="auto"] html,body[data-theme="auto"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd}}html,body{background-color:var(--bg);color:var(--text)}h1,h2,h3,h4,h5,h6{color:var(--headings)}p,strong,b,em,small,li,hr,table,code,figcaption{color:var(--text)}code,blockquote{background-color:var(--bg-secondary);border:1px var(--text) solid}a{color:var(--links)}*:target{background-color:var(--bg-secondary)}html.transition,html.transition *,html.transition *:before,html.transition *:after{transition:all 250ms !important;transition-delay:0 !important}.theme-toggle{color:var(--text);background-color:transparent;padding:4px;cursor:pointer;margin:1em;position:fixed;right:0;top:0;border:2px transparent solid;outline:none}.theme-toggle:hover{color:var(--links);outline:none}.theme-toggle:focus{outline:none}.dashed{border-top:1px var(--text) dashed;margin:0.5em 0}mark{padding:0.4em;background-color:var(--highlight);font-size:0.7em}.post-date{color:var(--headings);margin-right:2em}.share{color:var(--text)}.home-date{font-family:monospace}.post-list-item a{text-decoration:none}.text-bold{font-weight:bold}.text-upcase{text-transform:uppercase}ul.horizontal-list{display:flex;margin-top:0em;margin-left:-40px;flex-wrap:wrap}ul.horizontal-list li{display:inline;margin-right:1em}ul.horizontal-list li a{text-decoration:none;font-weight:normal}.card{padding:1em;border:1px var(--text) solid;width:11em;height:11em;text-align:center;font-size:1em;align-items:center;background-color:var(--bg-secondary);margin-bottom:0.8em}.card .header{color:var(--links)}.card .body{font-size:0.8em}.card hr{margin:0.5em 0}@media screen and (max-width: 600px){ul.horizontal-list li.card{width:100%;display:block;margin-bottom:1em;margin-left:1em}ul.horizontal-list li.card a,ul.horizontal-list li.card .header{font-size:1em}} - -/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/Docs/assets/css/main.css.map b/Docs/assets/css/main.css.map deleted file mode 100644 index 4fca972..0000000 --- a/Docs/assets/css/main.css.map +++ /dev/null @@ -1,16 +0,0 @@ -{ - "version": 3, - "file": "main.css", - "sources": [ - "main.scss", - "../../../../opt/homebrew/lib/ruby/gems/3.4.0/gems/moonwalk-0.0.2/_sass/moonwalk.scss", - "../../../../opt/homebrew/lib/ruby/gems/3.4.0/gems/moonwalk-0.0.2/_sass/list.scss" - ], - "sourcesContent": [ - "@import \"moonwalk\";\n@import \"list\";\n", - "html { height: 100%; }\n\nbody {\n font-family: -apple-system,system-ui,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;\n font-size: 1.0rem;\n line-height: 2;\n margin: 0;\n min-height: 100%;\n}\n\nh2, h3, h4, h5 { margin-top: 1.5em; }\n\nhr { margin: 1em 0; }\n\nhr.page-break {\n text-align: center;\n border: 0;\n\n &:before { content: '-----' }\n &:after { content: attr(data-content) '-----' }\n}\n\np { margin: 1em 0; }\n\nli { margin: 0.4em 0; }\n\n.w {\n max-width: 720px;\n margin: 0 auto;\n padding: 4em 2em;\n}\n\ntable, th, td {\n width: 100%;\n border: thin solid black;\n border-collapse: collapse;\n padding: 0.4em;\n}\n\ndiv.highlighter-rouge code, code.highlighter-rouge {\n display: block;\n overflow-x: auto;\n padding: 1em;\n}\n\nblockquote {\n font-style: italic;\n border: thin solid black;\n padding: 1em;\n\n p { margin: 0; }\n}\n\nimg {\n max-width: 100%;\n display: block;\n margin: 0 auto;\n}\nhtml {\n --bg: #FFF;\n --bg-secondary: #F8F9FA;\n --headings: #000;\n --text: #333;\n --links: blue;\n //--highlight: #FFD19B;\n --highlight: #FFECB2; // light yellow\n}\n// -------------- THEME SWITCHER -------------- //\n@mixin dark-appearance {\n html, body {\n --headings: #74c0fc;\n --links: #91A7FF;\n --highlight: #41C7C7;\n --bg: #1f242A;\n --bg-secondary: #323945;\n --text: #adb5bd;\n };\n}\nhtml[data-theme=\"dark\"] { @include dark-appearance; }\n\n@media (prefers-color-scheme: dark) {\n body[data-theme=\"auto\"] { @include dark-appearance; }\n}\n// -------------------------------------------- //\n\nhtml, body {\n background-color: var(--bg);\n color: var(--text);\n}\nh1, h2, h3, h4, h5, h6 {\n color: var(--headings);\n}\np, strong, b, em, small, li, hr, table, code, figcaption {\n color: var(--text);\n}\ncode, blockquote {\n background-color: var(--bg-secondary);\n border: 1px var(--text) solid;\n}\na {\n color: var(--links);\n}\n*:target { background-color: var(--bg-secondary); }\n\nhtml.transition,\nhtml.transition *,\nhtml.transition *:before,\nhtml.transition *:after {\n transition: all 250ms !important;\n transition-delay: 0 !important;\n}\n\n.theme-toggle {\n color: var(--text);\n background-color: transparent;\n padding: 4px;\n cursor: pointer;\n margin: 1em;\n position: fixed;\n right: 0;\n top: 0;\n border: 2px transparent solid;\n outline: none;\n}\n\n.theme-toggle:hover {\n color: var(--links);\n outline: none;\n}\n.theme-toggle:focus {\n outline: none;\n}\n.dashed {\n border-top: 1px var(--text) dashed;\n margin: 0.5em 0;\n}\nmark {\n padding: 0.4em;\n background-color: var(--highlight);\n font-size: 0.7em;\n}\n\n.post-date {\n color: var(--headings);\n margin-right: 2em;\n}\n.share {\n color: var(--text);\n}\n.home-date {\n font-family: monospace;\n}\n.post-list-item a {\n text-decoration: none;\n}\n.text-bold {\n font-weight: bold;\n}\n.text-upcase {\n text-transform: uppercase;\n}\n", - "ul.horizontal-list {\n display: flex;\n //justify-content: space-between;\n margin-top: 0em;\n margin-left: -40px;\n flex-wrap: wrap;\n\n li {\n display:inline;\n margin-right: 1em;\n }\n\n li a {\n text-decoration: none;\n font-weight: normal\n }\n\n}\n\n.card {\n padding: 1em;\n border: 1px var(--text) solid;\n width: 11em;\n height: 11em;\n text-align: center;\n font-size: 1em;\n align-items: center;\n background-color: var(--bg-secondary);\n margin-bottom: 0.8em;\n\n .header {\n color: var(--links);\n }\n\n .body {\n font-size: 0.8em;\n }\n\n hr {\n margin: 0.5em 0;\n }\n\n}\n\n/* Responsive cards - one column layout on small screens */\n@media screen and (max-width: 600px) {\n ul.horizontal-list li.card {\n width: 100%;\n display: block;\n margin-bottom: 1em;\n margin-left: 1em;\n a, .header {\n font-size: 1em;\n }\n }\n}\n" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/Docs/feed.xml b/Docs/feed.xml deleted file mode 100644 index ef056e7..0000000 --- a/Docs/feed.xml +++ /dev/null @@ -1,283 +0,0 @@ -Jekyll2025-02-08T23:51:11-08:00http://localhost:4000/feed.xml🌲 johncsimon.github.io 🐦got some downtime so how's about we starts ourselves a blog ...Abhinav SaxenaHope this works2025-02-08T10:04:18-08:002025-02-08T10:04:18-08:00http://localhost:4000/utilities/2025/02/08/blah<p>Blah blah blah blah okay okay</p>Abhinav SaxenaBlah blah blah blah okay okayThe Perspicacious Polyglot’s Programming Language Plethora2019-01-17T11:40:43-08:002019-01-17T11:40:43-08:00http://localhost:4000/polyglot/2019/01/17/polyglot-setup<p>I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. -Here’s a way to get several of them installed into your unix user directory. -If things go wrong, or you get bored you can easily <code class="language-plaintext highlighter-rouge">rm -rf</code> the installation.</p> - -<h1 id="initial-install">Initial Install</h1> -<p>Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.</p> -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>john@BigBox:~/git/JohnCSimon.github.io<span class="nv">$ </span> <span class="nb">sudo </span>docker run <span class="nt">-ti</span> debian /bin/bash -Unable to find image <span class="s1">'debian:latest'</span> locally -latest: Pulling from library/debian -cd8eada9c7bb: Pull <span class="nb">complete -</span>Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5 -Status: Downloaded newer image <span class="k">for </span>debian:latest -root@6d933dddbbcd:/# -</code></pre></div></div> -<p>Just to satisfy my OCD let’s get the latest updates.</p> - -<p><code class="language-plaintext highlighter-rouge">apt update &amp;&amp; apt upgrade -y</code></p> - -<p><code class="language-plaintext highlighter-rouge">apt install gnupg2 curl procps -y</code> - Installs gpg2, curl and ps</p> - -<h1 id="ruby">ruby</h1> -<p><code class="language-plaintext highlighter-rouge">gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB</code></p> - -<p><code class="language-plaintext highlighter-rouge">\curl -sSL https://get.rvm.io | bash -s stable</code></p> - -<p>To start using RVM you need to run <code class="language-plaintext highlighter-rouge">source /etc/profile.d/rvm.sh</code> or re-login to re-load <code class="language-plaintext highlighter-rouge">~/.profile</code></p> - -<p>From here you can run - <code class="language-plaintext highlighter-rouge">rvm list known</code> and you’ll see a list of ruby flavors and individual versions.</p> - -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># MRI Rubies</span> -<span class="o">[</span>ruby-]1.8.6[-p420] -<span class="o">[</span>ruby-]1.8.7[-head] <span class="c"># security released on head</span> -<span class="o">[</span>ruby-]1.9.1[-p431] -<span class="o">[</span>ruby-]1.9.2[-p330] -<span class="o">[</span>ruby-]1.9.3[-p551] -<span class="o">[</span>ruby-]2.0.0[-p648] -<span class="o">[</span>ruby-]2.1[.10] -<span class="o">[</span>ruby-]2.2[.10] -<span class="o">[</span>ruby-]2.3[.8] -<span class="o">[</span>ruby-]2.4[.5] -<span class="o">[</span>ruby-]2.5[.3] -<span class="o">[</span>ruby-]2.6[.0] -</code></pre></div></div> - -<p>MRI Ruby is the reference version of Ruby so let’s install the latest version.</p> - -<p><code class="language-plaintext highlighter-rouge">rvm install ruby-2.6.0</code></p> - -<p>I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.</p> - -<p>Congrats, you now have a ruby install</p> - -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>ruby <span class="nt">-v</span> -ruby 2.6.0p0 <span class="o">(</span>2018-12-25 revision 66547<span class="o">)</span> <span class="o">[</span>x86_64-linux] -</code></pre></div></div> - -<p>from here you can now do whatever since I’m blogging this using jekyll</p> - -<p><code class="language-plaintext highlighter-rouge">gem install bundler jekyll</code></p> - -<h1 id="go">go</h1> -<p>Go is a language that releases new versions on a regular basis. -There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here <code class="language-plaintext highlighter-rouge">https://github.com/moovweb/gvm</code> that’ll let you install multiple versions and set $GOPATH and $GOROOT.</p> - -<p>as a regular user:</p> -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bash &lt; &lt;<span class="o">(</span>curl <span class="nt">-s</span> <span class="nt">-S</span> <span class="nt">-L</span> https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer<span class="o">)</span> -Cloning from https://github.com/moovweb/gvm.git to /root/.gvm -No existing Go versions detected -Installed GVM v1.0.22 - -Please restart your terminal session or to get started right away run - <span class="sb">`</span><span class="nb">source</span> /root/.gvm/scripts/gvm<span class="sb">`</span> -</code></pre></div></div> - -<p>you should be able to run and see</p> -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gvm version -Go Version Manager v1.0.22 installed at /home/john/.gvm -</code></pre></div></div> - -<p>Run <code class="language-plaintext highlighter-rouge">gvm listall</code> -which will give you a list of all the available versions of go.</p> - -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$gvm</span> listall - -gvm gos <span class="o">(</span>available<span class="o">)</span> - - go1 - go1.0.1 - ... - go1.11rc1 - go1.11rc2 - go1.11.1 - go1.11.2 - go1.11.3 - go1.11.4 - go1.12beta1 - go1.12beta2 -</code></pre></div></div> -<p>of which there are entirely too many.</p> - -<p>From here, we can install go as our user via binary here:</p> - -<p><code class="language-plaintext highlighter-rouge">gvm install go1.4 -B</code></p> - -<p>try it out</p> -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>go version -go version go1.4 linux/amd64 -</code></pre></div></div> -<p>We can see it gets installed here:</p> -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOROOT</span> -/home/john/.gvm/gos/go1.4 -</code></pre></div></div> - -<p>From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. -Go compiles itself! Neat huh?</p> - -<p>As of now the latest version is go1.11.4</p> -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">export </span><span class="nv">GOROOT_BOOTSTRAP</span><span class="o">=</span><span class="nv">$GOROOT</span> -<span class="nv">$ </span>gvm <span class="nb">install </span>go1.11.4 -</code></pre></div></div> - -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>go version -go version go1.4 linux/amd64 -</code></pre></div></div> -<p>you can run -<code class="language-plaintext highlighter-rouge">gvm use - select a go version to use (--default to set permanently)</code></p> - -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gvm use go1.11.4 <span class="nt">--default</span> -Now using version go1.11.4 -<span class="nv">$ </span>go version -go version go1.11.4 linux/amd64 -<span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOROOT</span> -/home/john/.gvm/gos/go1.11.4 -<span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOPATH</span> -/home/john/.gvm/pkgsets/go1.11.4/global -<span class="nv">$ </span><span class="nb">ls</span> /home/john/.gvm/gos/go1.11.4 -AUTHORS CONTRIBUTING.md CONTRIBUTORS LICENSE PATENTS README.md VERSION api bin doc favicon.ico lib manifest misc pkg robots.txt src <span class="nb">test -ls</span> <span class="nv">$GOPATH</span> -overlay pkg src -</code></pre></div></div> - -<p>Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.</p> - -<h1 id="node-js">node js</h1> -<p>node.js, the server side javascript framework</p> - -<p>nvm is Node Version Manager. Install it like this: -<code class="language-plaintext highlighter-rouge">curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash</code></p> - -<p>Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.</p> - -<p>You can run <code class="language-plaintext highlighter-rouge">nvm ls-remote</code> and get a list of all the node versions available</p> - -<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ nvm -Example: - nvm install 8.0.0 Install a specific version number - nvm use 8.0 Use the latest available 8.0.x release - nvm run 6.10.3 app.js Run app.js using node 6.10.3 - nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3 - nvm alias default 8.1.0 Set default node version on a shell - nvm alias default node Always default to the latest available node version on a shell -</code></pre></div></div> - -<p>so if you run</p> - -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>nvm <span class="nb">install </span>10 -Downloading and installing node v10.15.0... -Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz... -<span class="c">######################################################################## 100.0%</span> -Computing checksum with <span class="nb">sha256sum -</span>Checksums matched! -Now using node v10.15.0 <span class="o">(</span>npm v6.4.1<span class="o">)</span> -Creating default <span class="nb">alias</span>: default -&gt; 10 <span class="o">(</span>-&gt; v10.15.0<span class="o">)</span> - -<span class="nv">$ </span>whereis node -node: /home/john/.nvm/versions/node/v10.15.0/bin/node -</code></pre></div></div> - -<p>and you can set it to be the default so the setting persists between sessions</p> -<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>nvm alias default 10 -</code></pre></div></div> - -<p>So now you can run:</p> -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>node <span class="nt">-v</span> -v10.15.0 -<span class="nv">$ </span>npm <span class="nt">-v</span> -6.4.1 -</code></pre></div></div> - -<h1 id="rust">rust</h1> -<p>Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.</p> - -<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl https://sh.rustup.rs -sSf | sh - - - -Current installation options: - - default host triple: x86_64-unknown-linux-gnu - default toolchain: stable - modify PATH variable: yes - -1) Proceed with installation (default) -2) Customize installation -3) Cancel installation -&gt; - -select 1 - -To configure your current shell run source $HOME/.cargo/env -</code></pre></div></div> - -<p>add <code class="language-plaintext highlighter-rouge">$HOME/.cargo/env</code> to your path in .bashrc</p> - -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>whereis cargo -cargo: /home/john/.cargo/bin/cargo -<span class="nv">$ </span>whereis rustc -cargo: /home/john/.cargo/bin/rustc -</code></pre></div></div>Abhinav SaxenaI like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. Here’s a way to get several of them installed into your unix user directory. If things go wrong, or you get bored you can easily rm -rf the installation.Gradual Typing With Javascript and VS Code2018-12-29T11:40:43-08:002018-12-29T11:40:43-08:00http://localhost:4000/javascript/2018/12/29/javascript-gradual-typing<p>Recently I had to write a file uploader for AWS S3 in node.</p> - -<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code> -<span class="kd">const</span> <span class="nx">AWS</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="dl">'</span><span class="s1">aws-sdk</span><span class="dl">'</span><span class="p">);</span> -<span class="kd">const</span> <span class="nx">s3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">AWS</span><span class="p">.</span><span class="nx">S3</span><span class="p">({</span> <span class="na">signatureVersion</span><span class="p">:</span> <span class="dl">'</span><span class="s1">v4</span><span class="dl">'</span> <span class="p">});</span> - -<span class="kd">const</span> <span class="nx">uploadToS3</span> <span class="o">=</span> <span class="k">async</span> <span class="p">()</span> <span class="o">=&gt;</span> <span class="p">{</span> - <span class="kd">const</span> <span class="nx">parameters</span> <span class="o">=</span> <span class="p">{</span> - <span class="na">Bucket</span><span class="p">:</span> <span class="nx">s3Bucket</span><span class="p">,</span> - <span class="na">Body</span><span class="p">:</span> <span class="nx">fileData</span><span class="p">,</span> - <span class="p">};</span> - - <span class="k">try</span> <span class="p">{</span> - <span class="kd">const</span> <span class="p">{</span> <span class="nx">Location</span> <span class="p">}</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">s3</span><span class="p">.</span><span class="nx">upload</span><span class="p">(</span><span class="nx">parameters</span><span class="p">).</span><span class="nx">promise</span><span class="p">();</span> - <span class="k">return</span> <span class="nx">Location</span><span class="p">;</span> - <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">process</span><span class="p">.</span><span class="nx">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> - <span class="p">}</span> -<span class="p">};</span> -</code></pre></div></div> - -<p>It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other <code class="language-plaintext highlighter-rouge">HTTP 400 - Bad Request</code> errors coming out of the S3 service.</p> - -<p><strong>Is there anything that can help guarantee your calls to <code class="language-plaintext highlighter-rouge">upload</code> are legit with some sort of type checking?</strong></p> - -<p>You’ve probably heard of the type annotated javascript superset language <a href="https://www.typescriptlang.org/">TypeScript</a> and its supplementary type definition repository <a href="http://definitelytyped.org/">Definitely Typed</a>, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate <code class="language-plaintext highlighter-rouge">.ts</code> files, and modifications to your build process. Is there any way to get this without futzing with your existing project?</p> - -<p>If you’re using the Visual Studio Code editor it turns out you can enable <a href="https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files">type checking on a per-file basis</a> by adding the comment to the beginning of the file</p> -<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// @ts-check</span> -</code></pre></div></div> -<p>to the beginning of your file. -<img src="typeError.png" alt="typeerror" /></p> - -<p>The parameters variable is highlighted in red, and when you mouseover it you’ll see:</p> - -<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'. - Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345) -s3.d.ts(3640, 5): 'Key' is declared here. -const parameters: { - Bucket: string; - Body: string; -} -</code></pre></div></div> -<p>There are a bunch of things happening here!</p> - -<p>It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that <code class="language-plaintext highlighter-rouge">s3.upload</code> takes is called <code class="language-plaintext highlighter-rouge">PutObjectRequest</code>. The Type Script compiler is kvetching over a missing required field it needs to say the <code class="language-plaintext highlighter-rouge">parameters</code> variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.</p> - -<p>When you add the <code class="language-plaintext highlighter-rouge">Key</code> parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.</p> - -<p>The same checking is useful for output types.</p> -<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="kd">const</span> <span class="p">{</span> <span class="nx">Location</span> <span class="p">}</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">s3</span><span class="p">.</span><span class="nx">upload</span><span class="p">(</span><span class="nx">parameters</span><span class="p">).</span><span class="nx">promise</span><span class="p">();</span> -</code></pre></div></div> -<p>You can mouseover s3.upload and see it returns a type of <code class="language-plaintext highlighter-rouge">AWS.S3.ManagedUpload.SendData</code>, which means the destructuring operation <code class="language-plaintext highlighter-rouge">{ Location }</code> is guaranteed to work and Location will be populated.</p> - -<p>Links:</p> - -<p>Type Annotation and Checking within javascript - <code class="language-plaintext highlighter-rouge">https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files</code></p> - -<p>JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt</p> - -<p><code class="language-plaintext highlighter-rouge">http://usejsdoc.org/tags-type.html</code></p> - -<p>More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.</p>Abhinav SaxenaRecently I had to write a file uploader for AWS S3 in node. \ No newline at end of file diff --git a/Docs/index.html b/Docs/index.html deleted file mode 100644 index 920530c..0000000 --- a/Docs/index.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - 🌲 johncsimon.github.io 🐦 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
    - -
- -
- - -

🌲 johncsimon.github.io 🐦

- -

got some downtime so how's about we starts ourselves a blog ...

- -
- - -

Portfolio

-
    - -
- - - - - - -

Blog

- - - - - - -

Old Projects

-
    - -
- - - - - -
-
-
    - -
- -
- - - - -
-
- - - - - diff --git a/Docs/javascript/2018/12/29/javascript-gradual-typing.html b/Docs/javascript/2018/12/29/javascript-gradual-typing.html deleted file mode 100644 index e5d2067..0000000 --- a/Docs/javascript/2018/12/29/javascript-gradual-typing.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - Gradual Typing With Javascript and VS Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- home.. -

Gradual Typing With Javascript and VS Code

-

Recently I had to write a file uploader for AWS S3 in node.

- -

-const AWS = require('aws-sdk');
-const s3 = new AWS.S3({ signatureVersion: 'v4' });
-
-const uploadToS3 = async () => {
-  const parameters = {
-    Bucket: s3Bucket,
-    Body: fileData,
-  };
-
-  try {
-    const { Location } = await s3.upload(parameters).promise();
-    return Location;
-  } catch (e) {
-    process.exit(1);
-  }
-};
-
- -

It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other HTTP 400 - Bad Request errors coming out of the S3 service.

- -

Is there anything that can help guarantee your calls to upload are legit with some sort of type checking?

- -

You’ve probably heard of the type annotated javascript superset language TypeScript and its supplementary type definition repository Definitely Typed, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate .ts files, and modifications to your build process. Is there any way to get this without futzing with your existing project?

- -

If you’re using the Visual Studio Code editor it turns out you can enable type checking on a per-file basis by adding the comment to the beginning of the file

-
// @ts-check
-
-

to the beginning of your file. -typeerror

- -

The parameters variable is highlighted in red, and when you mouseover it you’ll see:

- -
Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'.
-  Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345)
-s3.d.ts(3640, 5): 'Key' is declared here.
-const parameters: {
-    Bucket: string;
-    Body: string;
-}
-
-

There are a bunch of things happening here!

- -

It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that s3.upload takes is called PutObjectRequest. The Type Script compiler is kvetching over a missing required field it needs to say the parameters variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.

- -

When you add the Key parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.

- -

The same checking is useful for output types.

-
  const { Location } = await s3.upload(parameters).promise();
-
-

You can mouseover s3.upload and see it returns a type of AWS.S3.ManagedUpload.SendData, which means the destructuring operation { Location } is guaranteed to work and Location will be populated.

- -

Links:

- -

Type Annotation and Checking within javascript - https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files

- -

JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt

- -

http://usejsdoc.org/tags-type.html

- -

More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.

- - - - - -
-
- - - - - diff --git a/Docs/javascript/2018/12/29/typeError.png b/Docs/javascript/2018/12/29/typeError.png deleted file mode 100644 index 209314afd5e390bcb0a46c87f9e999734944f81f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131839 zcmbrmbySsW*FK6ESfBzb4T=H+f^>&~A|l=0Al)F1A}uA|E#2KnO6Q_ey1VPlwcqzU zzx|zY{yF39F}6ctv3Q>6zVA7&n#)^UR1p0x-dz+F6m+2v0+J{wH$R}Dpx(TF3%-If z_cRXvykW^FBz+tHbG)tX1^>pidM9rsWvXjst6`yoqGw`itn=DZ%R)!T#PYML)z*A^=Hr|17)j)Lr3D^^jyyJ8k23UGspxC^ zGVp`0Zvsd7CktJ(fL5-zH=f^3C2ah3`F!=a4Dvvui7QMs*r|)(68rcPe^02 zbA2>6vWTN6W{)7Y)ObAX`D)l#^zK}LM#@f-mvsL4xbM(aNS}Rw$anicf80nQy(amu ze>cs2EK8&!`9ClC{t*2gYRdn-9KP<=8g}D@`~Uq0-ya6Nz7u%&UvELAgh}%FUq8TE z`hu78UvK!uNXS+CzrP;&<(-kAC>j5HzrO`9|Mw+n3D-SS9qjFW$il*+SYqH_QNh;S z+^nsuYq8M&_&F&lQ@dy^`(vkz-7LGmO?SFuIpm0Cp8V?q&aWdJTnC$)zQ1+5rJ=7c zWMjj8=gytw0cVuls&RWC<@bo~mX;k&uwU!Nr}OnQ_g?cvVqRf&8KB>S~KJ21drF#>VSXQc^xX zJ|9Fy7f%n?@M^^V{rHnISDAPX^z}0wC7hhz`{B8Jdwbi*@+FcmGKQq5Q{-&mF&TVM zOG|4h92}IsygW0tu(Vt&?f=*F@p8$wM-R-j_+f8v|1&U<_sbX7n>TNcjE@gw$*%$y?ENBz^&v$Q?ixcY3@+}u1OGIDlf!_U|EUaLQ$R5<#B2g4)GbaX)~ zRW^@saJ+JIUUx+?k+QK>sIJlev*+OVI`YfC{pW4H1by7x`1$1$KU%HrHN%5JDL0?< zki8U_2^?r|U;TRaikez_I(uYfWYFUEzaLeAFY-P;+OkknbzWiL<&BIlroVgd-nCvt z&T!ek_xv$h#_+PHfdM7T;^Ly>T4!e`%AdBjjKNwXW8-Uo+S@Zz$L{=Vix9EELW+F+ z_?(3$d?-gr%h=ed470Mbys{ECFfcGd)x^|P&EyTDs|(%1!Qt-RyKuShC*_p?wHI~* zr1OFqLqkFyVq)^uIbYz=Yu_#?C|Ffk&&ke)bsvhD&9q({;@oM%N=Zu#j*S)3*MAij z78Vg5oh(kl`ei%8KE38&XNXT)rlv=en3%W+)@)~cJ3*%-3s}6e|}-X9L`jCJdfD>_wSwL)c$>m4*+T7jqilk7i_mPp2UoSngD9cQe>P%!zuAI0m}FF81( z;Z7`f{om#JF8f&8e-#aQMq!7YlwR`xPtv65WRHX;5CTJ$m#A zT_sjS|(dxZ!mk4HK_M10PN@}k>WuUm~>gr-Yc_N)z z9UlJluKTwh9yP@kVH4UK1!k&!RR$+7V4L+Y+Bqx<_^RC|AqjC?0{ zK8|}S9QKfiXsQ>H5qA2SyuV*ElF3jucH>H8W@|b?p(sx7Drc22J~FZ`RXBX4)R@ED zn*}f5BOvz<7TL_^W;e%HwNzRjgXvT?`=kp$6*cut{a5vaX}Att2Hlyz{r*slInB=2 zjdawD3m?p7u9|-)zij(&hmsKP?8KW}SP&9ux;ZhStUvI}IMvfBG&MQ-EZ}~VbZCY? zX-w?6#cV?(gVAJr``v_YRH0aQyTLYRVw=%Xw&hh>XZsuX?%gXaDl&Y{nklKQ+!^*- z38i;TSl4geuOA)`udtjZd-bZ|tKsqT%0$Jz=4KzfEkS4E&mToaZ`C&>StNhA zv?$yahsiu zt>DX!rt_uUYdSi*ANVX7aF6uMfI$%U?Rr z*T*L_RF$>6djp5b0DEJ+O5Mollf6AVxmcX`T#E?amQ1KrcDDOHp8hd45qqb@&B^F+ zHD`s3qaL2TKKZ)Oeb24MOKrEfkymJnk!Uqa8#Xy?a zT;qeM>RMWje}YK!i;74Y7=mYJ)R|2tq&K@9bOOvp78Vy1(&R!n3;!`*Vc;k z2gv;9Om&AMWU`!lM_Ml|?$sU)DZw%`SS~Wax;=qb)Y;WlVYf#X&0;#+o9L!EE}d#j zD~!;cpP%2(bGcZ%7H@!v;U?@ZHCAE@6N%?`d&YljZe!A~?($SvD>g5W_Bt9y!|%kG zm6esYW8VDhBL!|he`@*_wzQCaied~R;<8uQ)a2viL&awa8}?tx*KEE^P2FjCd7`jT znv+>-))f^$TA)=mWREy0FhB&XPt|0t5)0hS&N0SeqI_s;`vBS?H2G(gls+QSmoM1a zKPIp5_4FjE@wgmJAC=NBIGI*oU7{5mEFkwkf0k@c1gG8I?rvi`28QeEyYsIou-~oj z#ycJ2<|vl*j|jeF`;fKgWTdU#dAu{Xg6QxBZ1xBrztyzv!pGhHWnRr8WxPwRbe5BZ zlc+U9bRsqRyv$!T^iL6^@DOSSyC$tAdKk`gzVZA9{y?XZS*;jx_mh*pR z6|llY%>GdD3$3Brt>y5_LxC0Kd5wYlR)%USU#O{w8Y5B&^H?0eY&zzW@cfb*_-gzYNbE4 zY}#2VwuhRE$~Tm%?q+>!8aWXWkRtUZz3yeu{I)82K(_O z*RSE+=Bz887cahNNTt0|=XGH=oytZ;|LMvh6^UkE=;2|>GEI`XIyl-AuCmz}spE-= zi6J;YKYgRyiStQB1kPwli!-2RLrQXTG!>N^#c?&`N~bescX#*s1qAiN+qsrS$KAG8 zc_pPH+pXyrFPgM;blzQEUaSmt`HFEX2naNtoNe-piN&)_I|f6sEi{{L#rrKmNT@Pp zzb3+Nv;M)%?2XH11ukH;)58O;!*!P9g>bcz$^(;LDspm9xTRFXVVW-v4p`XO0?HGU zDDRb(2@blNo83?LmMjkp?ng5lKj+}Mr!@ZSJ|X*eU`ccihXj7AjWWjM(pwp@lb~*f zxVoZX5VAJ`xPazP#w@$XwY0R9mFMJ|79VFmeM*IW_dYth-JG9Ga9CK2&tt0IVHVi# zLdfa}c+mnVm-R`d(YRrBW=)lo62mgH`CkD5Gu~ca>XVh$*pDCgr3yd&B^t{IPf@<~ zljYxHz+E@R#KhpRvO2NHwD{pOSg(dykm*sqq@eJE-}*LBm3w`>Oe{FYH<>ey`7oJ|s1)wt;4BmGAdL8ZW{Jgxz z1svM*hI_QVMS2e!8X8#5|Gp53Vw^1*R-GHnkg9LA^q2K8`0Qk2vVmTZXTWi7y9NL1 zmsYF4(PX8c;c#wZTAF8C8hKvr>D^zy$bc)R4Xu(>iv5>Cmn0Y~=@AeR$QQjI-J^Z+ z;sy^74}hxn*jG$UOpgTx1uqZs(i95*-t#9y&oP^JI^Ay>8VcjNJa$9JXGSqw?tKgG zF@oF4-fuN$)jd2euDd|1)yu#3BOFR7U(jLEP@pR%i{O(VFvEYG2ZLW=ZL|A|cA?|~ zQjFGU^q5^)X=@86zeYhLJJnfHWvksC!%|_+Z#PGbk1u?7xUtfg%z=TC;}uYcA9DvC z{TUNes6;ZVx1XQRmGegQ+-g4pF;}q^mz`>^~e1MzmwTUPaz?pg_ShDH;%_| zoUc?OwHSGL#4b)>E0xwaHoE2K&xLO8$l(eJdB1r1vcE`AjDSGVVy6E0U58|-3L`ZR zEORY>$pD7Gd&UpRPv^z+q^72>Pgcp*e6o(IvRY|?#q+2XRD=`J5l%}=LgETfB-4RF z<^X4SaIs4%ld-ePphkpBOi&O_Nl7O_0MIm$HC(7P9v&W!M=D(&!(uV4U*VV;9IRtt zaMuI)0J+3vrv=}1!j_n}_866ry?AM_hi9oj)faCK_~!CN1p}3wbC!9{4K%d9KEZnt zZ!}PU|3({ZRkc=)j%H~YACKPN-lk0Pr;tHYG$OkdJl-Z{HQ`H#&N9X$kt7o;Ig*7a&mglZ0 z`iR;9rQ***J#k!KUgh;aUkVSNv00ME08l-?wv}QscE?YyylAfd*Jn1n-4~IOxFu0> zshJz!>8*wJN=+u)p^0Xy=AJuWJbm)yNr^0r1k?XO-kX<~POpF|GD?rS0Z!i2*3+BY z+EO!dWuy|e;|~uEG@G8Gpm4Z>O2C#>5zpmtNbh|9<hk(gi zCwvfH4yLE3CSgTM85wU_T6Pid0)*5Y$=4{aupYb{r&4L9K!x+@v9&u9S0#}CoJS-% z!W(03@Ym*Ar!&NFiBLd;NEBUGR>sbI`ev+1kM`@=ubd~^uJ2uoB}f@6ZMV9i`LxF( zE|&X}@fxik`#eW-)_jddGaHjEj6j(q9J%3zj&Mqqp~2!uuq>;VrOYd9Ylf*(AB2Uq zMhh2WSRcu5T&%9H&d$y8TUZpzj`;$$=RV)&$M*Sqw)ixL)f}_7wl-V&B+1uK%4j*O2&eoryS)6T+1J+62V?+D+=}9) zuFMx49QaB~N<+C93$?%dqK<*WFkSiw)OqkFCg@8k`7JQ%j|UL2DeLi@3;NyFh6e7Z z1K>p)a2L~i0ccXm$;pkIlU2pt<24RfaCY!%X~nEv2N4K#aqb_KYePAV-7#$ZAiyz( zEiEh*xVXGQvVyiY?}!MT19q1yXO#7^lA?yAoiW2anZws|QL6;T11&{m?KzFQrt4`}r}Uu$WE_%BxCC{{d;?GgJh>X*Wvstkr8W zHmGiY|7!Zp_F!PVzNS-K<1>MO8>PMGl>~a%z;Iq&d}>#88A>}bUrcb%Y6=GbgM-eiJI4*~sot@d5qp6qA zpMM)jYh-h|RL)tXkv{mG)xqhKX_%Rvl=M8uCYO8caFx|;2BkHCiuiU!L_}|)&b{;V zbNRw~2B5_)u&=Kzu%Si0;+6h87uq4c@tU_tw|#0JG*WIuD)3wgZ6&CMEKPwUgpm`@Li3#dRno^lb47;_DykW@U2}HB3xI&CTgR$bhR!oghY&d5u&m zZ%f3(q4xLoz5@!<>TCsyT&{AW%hl!n=A>s=^cA)3`22hd+UE4g$Z@y$+l}bFu_*6@ zDW_>u)|i3DOZNFoh!3-l)&38b$EshQ^EK z;huQ%c*mb$4uH7EYPI~va40*7SO0p(5lRNEquVX?hW`Ga>+43Cn3%nNeZMCr2*}CF zb6oXgI{xtq2ForlLisOR0*HHn>6Hwfot??yki4d#ptiMBc=ztz^6IJqdNXP!XZ2Kl z!XnR=^xHV#z(WdwnKT(D6MjE_w5yncKp`Q~$4^Lbb3uS8oK{V@-u2RGtoRNl2&4uhI-z3kip)V|GnXS@{Z$8NOZI>xG6zFLDoZS+1xM4re>

$>Q$axiFW3T+w!TiyY=lI% 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[f;wV`5@}PBU-9T7V>ZNBKVErXVv_ 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 - - - - - - - - The Perspicacious Polyglot's Programming Language Plethora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
- home.. -

The Perspicacious Polyglot's Programming Language Plethora

-

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. -Here’s a way to get several of them installed into your unix user directory. -If things go wrong, or you get bored you can easily rm -rf the installation.

- -

Initial Install

-

Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.

-
john@BigBox:~/git/JohnCSimon.github.io$  sudo docker run -ti debian /bin/bash
-Unable to find image 'debian:latest' locally
-latest: Pulling from library/debian
-cd8eada9c7bb: Pull complete
-Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5
-Status: Downloaded newer image for debian:latest
-root@6d933dddbbcd:/#
-
-

Just to satisfy my OCD let’s get the latest updates.

- -

apt update && apt upgrade -y

- -

apt install gnupg2 curl procps -y - Installs gpg2, curl and ps

- -

ruby

-

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

- -

\curl -sSL https://get.rvm.io | bash -s stable

- -

To start using RVM you need to run source /etc/profile.d/rvm.sh or re-login to re-load ~/.profile

- -

From here you can run - rvm list known and you’ll see a list of ruby flavors and individual versions.

- -
# MRI Rubies
-[ruby-]1.8.6[-p420]
-[ruby-]1.8.7[-head] # security released on head
-[ruby-]1.9.1[-p431]
-[ruby-]1.9.2[-p330]
-[ruby-]1.9.3[-p551]
-[ruby-]2.0.0[-p648]
-[ruby-]2.1[.10]
-[ruby-]2.2[.10]
-[ruby-]2.3[.8]
-[ruby-]2.4[.5]
-[ruby-]2.5[.3]
-[ruby-]2.6[.0]
-
- -

MRI Ruby is the reference version of Ruby so let’s install the latest version.

- -

rvm install ruby-2.6.0

- -

I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.

- -

Congrats, you now have a ruby install

- -
$ ruby -v
-ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
-
- -

from here you can now do whatever since I’m blogging this using jekyll

- -

gem install bundler jekyll

- -

go

-

Go is a language that releases new versions on a regular basis. -There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here https://github.com/moovweb/gvm that’ll let you install multiple versions and set $GOPATH and $GOROOT.

- -

as a regular user:

-
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
-Cloning from https://github.com/moovweb/gvm.git to /root/.gvm
-No existing Go versions detected
-Installed GVM v1.0.22
-
-Please restart your terminal session or to get started right away run
- `source /root/.gvm/scripts/gvm`
-
- -

you should be able to run and see

-
$ gvm version
-Go Version Manager v1.0.22 installed at /home/john/.gvm
-
- -

Run gvm listall -which will give you a list of all the available versions of go.

- -
$gvm listall
-
-gvm gos (available)
-
-   go1
-   go1.0.1
-   ...
-   go1.11rc1
-   go1.11rc2
-   go1.11.1
-   go1.11.2
-   go1.11.3
-   go1.11.4
-   go1.12beta1
-   go1.12beta2
-
-

of which there are entirely too many.

- -

From here, we can install go as our user via binary here:

- -

gvm install go1.4 -B

- -

try it out

-
$ go version
-go version go1.4 linux/amd64
-
-

We can see it gets installed here:

-
$ echo $GOROOT
-/home/john/.gvm/gos/go1.4
-
- -

From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. -Go compiles itself! Neat huh?

- -

As of now the latest version is go1.11.4

-
$ export GOROOT_BOOTSTRAP=$GOROOT
-$ gvm install go1.11.4
-
- -
$ go version
-go version go1.4 linux/amd64
-
-

you can run -gvm use - select a go version to use (--default to set permanently)

- -
$ gvm use go1.11.4 --default
-Now using version go1.11.4
-$ go version
-go version go1.11.4 linux/amd64
-$ echo $GOROOT
-/home/john/.gvm/gos/go1.11.4
-$ echo $GOPATH
-/home/john/.gvm/pkgsets/go1.11.4/global
-$ ls /home/john/.gvm/gos/go1.11.4
-AUTHORS  CONTRIBUTING.md  CONTRIBUTORS  LICENSE  PATENTS  README.md  VERSION  api  bin  doc  favicon.ico  lib  manifest  misc  pkg  robots.txt  src  test
-ls $GOPATH
-overlay  pkg  src
-
- -

Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.

- -

node js

-

node.js, the server side javascript framework

- -

nvm is Node Version Manager. Install it like this: -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

- -

Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.

- -

You can run nvm ls-remote and get a list of all the node versions available

- -
$ nvm
-Example:
-  nvm install 8.0.0                     Install a specific version number
-  nvm use 8.0                           Use the latest available 8.0.x release
-  nvm run 6.10.3 app.js                 Run app.js using node 6.10.3
-  nvm exec 4.8.3 node app.js            Run `node app.js` with the PATH pointing to node 4.8.3
-  nvm alias default 8.1.0               Set default node version on a shell
-  nvm alias default node                Always default to the latest available node version on a shell
-
- -

so if you run

- -
$ nvm install 10
-Downloading and installing node v10.15.0...
-Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz...
-######################################################################## 100.0%
-Computing checksum with sha256sum
-Checksums matched!
-Now using node v10.15.0 (npm v6.4.1)
-Creating default alias: default -> 10 (-> v10.15.0)
-
-$ whereis node
-node: /home/john/.nvm/versions/node/v10.15.0/bin/node
-
- -

and you can set it to be the default so the setting persists between sessions

-
nvm alias default 10
-
- -

So now you can run:

-
$ node -v
-v10.15.0
-$ npm -v
-6.4.1
-
- -

rust

-

Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.

- -
curl https://sh.rustup.rs -sSf | sh
-
-
-
-Current installation options:
-
-   default host triple: x86_64-unknown-linux-gnu
-     default toolchain: stable
-  modify PATH variable: yes
-
-1) Proceed with installation (default)
-2) Customize installation
-3) Cancel installation
->
-
-select 1 
-
-To configure your current shell run source $HOME/.cargo/env
-
- -

add $HOME/.cargo/env to your path in .bashrc

- -
$ whereis cargo
-cargo: /home/john/.cargo/bin/cargo
-$ whereis rustc
-cargo: /home/john/.cargo/bin/rustc
-
- - - - - -
-
- - - - - diff --git a/Docs/utilities/2025/02/08/blah.html b/Docs/utilities/2025/02/08/blah.html deleted file mode 100644 index c9973d4..0000000 --- a/Docs/utilities/2025/02/08/blah.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - Hope this works - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- home.. -

Hope this works

-

Blah blah blah blah okay okay

- - - - -
-
- - - - - From b1372fc2c380a0967047687bbb1689c76a39fbf6 Mon Sep 17 00:00:00 2001 From: John Simon Date: Sun, 9 Feb 2025 00:06:27 -0800 Subject: [PATCH 09/14] Blah --- docs/404.html | 103 ++++++ docs/about/index.html | 1 + docs/assets/css/main.css | 3 + docs/assets/css/main.css.map | 16 + docs/feed.xml | 283 ++++++++++++++++ docs/index.html | 147 +++++++++ .../2018/12/29/javascript-gradual-typing.html | 153 +++++++++ docs/javascript/2018/12/29/typeError.png | Bin 0 -> 131839 bytes docs/polyglot/2019/01/17/polyglot-setup.html | 309 ++++++++++++++++++ docs/utilities/2025/02/08/blah.html | 89 +++++ 10 files changed, 1104 insertions(+) create mode 100644 docs/404.html create mode 100644 docs/about/index.html create mode 100644 docs/assets/css/main.css create mode 100644 docs/assets/css/main.css.map create mode 100644 docs/feed.xml create mode 100644 docs/index.html create mode 100644 docs/javascript/2018/12/29/javascript-gradual-typing.html create mode 100644 docs/javascript/2018/12/29/typeError.png create mode 100644 docs/polyglot/2019/01/17/polyglot-setup.html create mode 100644 docs/utilities/2025/02/08/blah.html diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000..be3f2d9 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,103 @@ + + + + + + + + + 🌲 johncsimon.github.io 🐦 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
+ + + +
+
+ + + + + diff --git a/docs/about/index.html b/docs/about/index.html new file mode 100644 index 0000000..b9f0283 --- /dev/null +++ b/docs/about/index.html @@ -0,0 +1 @@ +

I’m a software dev with Go, Javascript and C#. I’m writing this blog to better at writing and to document my explorations.

diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css new file mode 100644 index 0000000..d55c7ed --- /dev/null +++ b/docs/assets/css/main.css @@ -0,0 +1,3 @@ +html{height:100%}body{font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1.0rem;line-height:2;margin:0;min-height:100%}h2,h3,h4,h5{margin-top:1.5em}hr{margin:1em 0}hr.page-break{text-align:center;border:0}hr.page-break:before{content:'-----'}hr.page-break:after{content:attr(data-content) "-----"}p{margin:1em 0}li{margin:0.4em 0}.w{max-width:720px;margin:0 auto;padding:4em 2em}table,th,td{width:100%;border:thin solid black;border-collapse:collapse;padding:0.4em}div.highlighter-rouge code,code.highlighter-rouge{display:block;overflow-x:auto;padding:1em}blockquote{font-style:italic;border:thin solid black;padding:1em}blockquote p{margin:0}img{max-width:100%;display:block;margin:0 auto}html{--bg: #FFF;--bg-secondary: #F8F9FA;--headings: #000;--text: #333;--links: blue;--highlight: #FFECB2}html[data-theme="dark"] html,html[data-theme="dark"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd}@media (prefers-color-scheme: dark){body[data-theme="auto"] html,body[data-theme="auto"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd}}html,body{background-color:var(--bg);color:var(--text)}h1,h2,h3,h4,h5,h6{color:var(--headings)}p,strong,b,em,small,li,hr,table,code,figcaption{color:var(--text)}code,blockquote{background-color:var(--bg-secondary);border:1px var(--text) solid}a{color:var(--links)}*:target{background-color:var(--bg-secondary)}html.transition,html.transition *,html.transition *:before,html.transition *:after{transition:all 250ms !important;transition-delay:0 !important}.theme-toggle{color:var(--text);background-color:transparent;padding:4px;cursor:pointer;margin:1em;position:fixed;right:0;top:0;border:2px transparent solid;outline:none}.theme-toggle:hover{color:var(--links);outline:none}.theme-toggle:focus{outline:none}.dashed{border-top:1px var(--text) dashed;margin:0.5em 0}mark{padding:0.4em;background-color:var(--highlight);font-size:0.7em}.post-date{color:var(--headings);margin-right:2em}.share{color:var(--text)}.home-date{font-family:monospace}.post-list-item a{text-decoration:none}.text-bold{font-weight:bold}.text-upcase{text-transform:uppercase}ul.horizontal-list{display:flex;margin-top:0em;margin-left:-40px;flex-wrap:wrap}ul.horizontal-list li{display:inline;margin-right:1em}ul.horizontal-list li a{text-decoration:none;font-weight:normal}.card{padding:1em;border:1px var(--text) solid;width:11em;height:11em;text-align:center;font-size:1em;align-items:center;background-color:var(--bg-secondary);margin-bottom:0.8em}.card .header{color:var(--links)}.card .body{font-size:0.8em}.card hr{margin:0.5em 0}@media screen and (max-width: 600px){ul.horizontal-list li.card{width:100%;display:block;margin-bottom:1em;margin-left:1em}ul.horizontal-list li.card a,ul.horizontal-list li.card .header{font-size:1em}} + +/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/docs/assets/css/main.css.map b/docs/assets/css/main.css.map new file mode 100644 index 0000000..4fca972 --- /dev/null +++ b/docs/assets/css/main.css.map @@ -0,0 +1,16 @@ +{ + "version": 3, + "file": "main.css", + "sources": [ + "main.scss", + "../../../../opt/homebrew/lib/ruby/gems/3.4.0/gems/moonwalk-0.0.2/_sass/moonwalk.scss", + "../../../../opt/homebrew/lib/ruby/gems/3.4.0/gems/moonwalk-0.0.2/_sass/list.scss" + ], + "sourcesContent": [ + "@import \"moonwalk\";\n@import \"list\";\n", + "html { height: 100%; }\n\nbody {\n font-family: -apple-system,system-ui,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;\n font-size: 1.0rem;\n line-height: 2;\n margin: 0;\n min-height: 100%;\n}\n\nh2, h3, h4, h5 { margin-top: 1.5em; }\n\nhr { margin: 1em 0; }\n\nhr.page-break {\n text-align: center;\n border: 0;\n\n &:before { content: '-----' }\n &:after { content: attr(data-content) '-----' }\n}\n\np { margin: 1em 0; }\n\nli { margin: 0.4em 0; }\n\n.w {\n max-width: 720px;\n margin: 0 auto;\n padding: 4em 2em;\n}\n\ntable, th, td {\n width: 100%;\n border: thin solid black;\n border-collapse: collapse;\n padding: 0.4em;\n}\n\ndiv.highlighter-rouge code, code.highlighter-rouge {\n display: block;\n overflow-x: auto;\n padding: 1em;\n}\n\nblockquote {\n font-style: italic;\n border: thin solid black;\n padding: 1em;\n\n p { margin: 0; }\n}\n\nimg {\n max-width: 100%;\n display: block;\n margin: 0 auto;\n}\nhtml {\n --bg: #FFF;\n --bg-secondary: #F8F9FA;\n --headings: #000;\n --text: #333;\n --links: blue;\n //--highlight: #FFD19B;\n --highlight: #FFECB2; // light yellow\n}\n// -------------- THEME SWITCHER -------------- //\n@mixin dark-appearance {\n html, body {\n --headings: #74c0fc;\n --links: #91A7FF;\n --highlight: #41C7C7;\n --bg: #1f242A;\n --bg-secondary: #323945;\n --text: #adb5bd;\n };\n}\nhtml[data-theme=\"dark\"] { @include dark-appearance; }\n\n@media (prefers-color-scheme: dark) {\n body[data-theme=\"auto\"] { @include dark-appearance; }\n}\n// -------------------------------------------- //\n\nhtml, body {\n background-color: var(--bg);\n color: var(--text);\n}\nh1, h2, h3, h4, h5, h6 {\n color: var(--headings);\n}\np, strong, b, em, small, li, hr, table, code, figcaption {\n color: var(--text);\n}\ncode, blockquote {\n background-color: var(--bg-secondary);\n border: 1px var(--text) solid;\n}\na {\n color: var(--links);\n}\n*:target { background-color: var(--bg-secondary); }\n\nhtml.transition,\nhtml.transition *,\nhtml.transition *:before,\nhtml.transition *:after {\n transition: all 250ms !important;\n transition-delay: 0 !important;\n}\n\n.theme-toggle {\n color: var(--text);\n background-color: transparent;\n padding: 4px;\n cursor: pointer;\n margin: 1em;\n position: fixed;\n right: 0;\n top: 0;\n border: 2px transparent solid;\n outline: none;\n}\n\n.theme-toggle:hover {\n color: var(--links);\n outline: none;\n}\n.theme-toggle:focus {\n outline: none;\n}\n.dashed {\n border-top: 1px var(--text) dashed;\n margin: 0.5em 0;\n}\nmark {\n padding: 0.4em;\n background-color: var(--highlight);\n font-size: 0.7em;\n}\n\n.post-date {\n color: var(--headings);\n margin-right: 2em;\n}\n.share {\n color: var(--text);\n}\n.home-date {\n font-family: monospace;\n}\n.post-list-item a {\n text-decoration: none;\n}\n.text-bold {\n font-weight: bold;\n}\n.text-upcase {\n text-transform: uppercase;\n}\n", + "ul.horizontal-list {\n display: flex;\n //justify-content: space-between;\n margin-top: 0em;\n margin-left: -40px;\n flex-wrap: wrap;\n\n li {\n display:inline;\n margin-right: 1em;\n }\n\n li a {\n text-decoration: none;\n font-weight: normal\n }\n\n}\n\n.card {\n padding: 1em;\n border: 1px var(--text) solid;\n width: 11em;\n height: 11em;\n text-align: center;\n font-size: 1em;\n align-items: center;\n background-color: var(--bg-secondary);\n margin-bottom: 0.8em;\n\n .header {\n color: var(--links);\n }\n\n .body {\n font-size: 0.8em;\n }\n\n hr {\n margin: 0.5em 0;\n }\n\n}\n\n/* Responsive cards - one column layout on small screens */\n@media screen and (max-width: 600px) {\n ul.horizontal-list li.card {\n width: 100%;\n display: block;\n margin-bottom: 1em;\n margin-left: 1em;\n a, .header {\n font-size: 1em;\n }\n }\n}\n" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/docs/feed.xml b/docs/feed.xml new file mode 100644 index 0000000..776ee5e --- /dev/null +++ b/docs/feed.xml @@ -0,0 +1,283 @@ +Jekyll2025-02-09T00:04:05-08:00https://www.abhinavsaxena.com/moonwalk/feed.xml🌲 johncsimon.github.io 🐦got some downtime so how's about we starts ourselves a blog ...Abhinav SaxenaHope this works2025-02-08T10:04:18-08:002025-02-08T10:04:18-08:00https://www.abhinavsaxena.com/moonwalk/utilities/2025/02/08/blah<p>Blah blah blah blah okay okay !!</p>Abhinav SaxenaBlah blah blah blah okay okay !!The Perspicacious Polyglot’s Programming Language Plethora2019-01-17T11:40:43-08:002019-01-17T11:40:43-08:00https://www.abhinavsaxena.com/moonwalk/polyglot/2019/01/17/polyglot-setup<p>I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. +Here’s a way to get several of them installed into your unix user directory. +If things go wrong, or you get bored you can easily <code class="language-plaintext highlighter-rouge">rm -rf</code> the installation.</p> + +<h1 id="initial-install">Initial Install</h1> +<p>Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>john@BigBox:~/git/JohnCSimon.github.io<span class="nv">$ </span> <span class="nb">sudo </span>docker run <span class="nt">-ti</span> debian /bin/bash +Unable to find image <span class="s1">'debian:latest'</span> locally +latest: Pulling from library/debian +cd8eada9c7bb: Pull <span class="nb">complete +</span>Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5 +Status: Downloaded newer image <span class="k">for </span>debian:latest +root@6d933dddbbcd:/# +</code></pre></div></div> +<p>Just to satisfy my OCD let’s get the latest updates.</p> + +<p><code class="language-plaintext highlighter-rouge">apt update &amp;&amp; apt upgrade -y</code></p> + +<p><code class="language-plaintext highlighter-rouge">apt install gnupg2 curl procps -y</code> + Installs gpg2, curl and ps</p> + +<h1 id="ruby">ruby</h1> +<p><code class="language-plaintext highlighter-rouge">gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB</code></p> + +<p><code class="language-plaintext highlighter-rouge">\curl -sSL https://get.rvm.io | bash -s stable</code></p> + +<p>To start using RVM you need to run <code class="language-plaintext highlighter-rouge">source /etc/profile.d/rvm.sh</code> or re-login to re-load <code class="language-plaintext highlighter-rouge">~/.profile</code></p> + +<p>From here you can run - <code class="language-plaintext highlighter-rouge">rvm list known</code> and you’ll see a list of ruby flavors and individual versions.</p> + +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># MRI Rubies</span> +<span class="o">[</span>ruby-]1.8.6[-p420] +<span class="o">[</span>ruby-]1.8.7[-head] <span class="c"># security released on head</span> +<span class="o">[</span>ruby-]1.9.1[-p431] +<span class="o">[</span>ruby-]1.9.2[-p330] +<span class="o">[</span>ruby-]1.9.3[-p551] +<span class="o">[</span>ruby-]2.0.0[-p648] +<span class="o">[</span>ruby-]2.1[.10] +<span class="o">[</span>ruby-]2.2[.10] +<span class="o">[</span>ruby-]2.3[.8] +<span class="o">[</span>ruby-]2.4[.5] +<span class="o">[</span>ruby-]2.5[.3] +<span class="o">[</span>ruby-]2.6[.0] +</code></pre></div></div> + +<p>MRI Ruby is the reference version of Ruby so let’s install the latest version.</p> + +<p><code class="language-plaintext highlighter-rouge">rvm install ruby-2.6.0</code></p> + +<p>I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.</p> + +<p>Congrats, you now have a ruby install</p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>ruby <span class="nt">-v</span> +ruby 2.6.0p0 <span class="o">(</span>2018-12-25 revision 66547<span class="o">)</span> <span class="o">[</span>x86_64-linux] +</code></pre></div></div> + +<p>from here you can now do whatever since I’m blogging this using jekyll</p> + +<p><code class="language-plaintext highlighter-rouge">gem install bundler jekyll</code></p> + +<h1 id="go">go</h1> +<p>Go is a language that releases new versions on a regular basis. +There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here <code class="language-plaintext highlighter-rouge">https://github.com/moovweb/gvm</code> that’ll let you install multiple versions and set $GOPATH and $GOROOT.</p> + +<p>as a regular user:</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bash &lt; &lt;<span class="o">(</span>curl <span class="nt">-s</span> <span class="nt">-S</span> <span class="nt">-L</span> https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer<span class="o">)</span> +Cloning from https://github.com/moovweb/gvm.git to /root/.gvm +No existing Go versions detected +Installed GVM v1.0.22 + +Please restart your terminal session or to get started right away run + <span class="sb">`</span><span class="nb">source</span> /root/.gvm/scripts/gvm<span class="sb">`</span> +</code></pre></div></div> + +<p>you should be able to run and see</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gvm version +Go Version Manager v1.0.22 installed at /home/john/.gvm +</code></pre></div></div> + +<p>Run <code class="language-plaintext highlighter-rouge">gvm listall</code> +which will give you a list of all the available versions of go.</p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$gvm</span> listall + +gvm gos <span class="o">(</span>available<span class="o">)</span> + + go1 + go1.0.1 + ... + go1.11rc1 + go1.11rc2 + go1.11.1 + go1.11.2 + go1.11.3 + go1.11.4 + go1.12beta1 + go1.12beta2 +</code></pre></div></div> +<p>of which there are entirely too many.</p> + +<p>From here, we can install go as our user via binary here:</p> + +<p><code class="language-plaintext highlighter-rouge">gvm install go1.4 -B</code></p> + +<p>try it out</p> +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>go version +go version go1.4 linux/amd64 +</code></pre></div></div> +<p>We can see it gets installed here:</p> +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOROOT</span> +/home/john/.gvm/gos/go1.4 +</code></pre></div></div> + +<p>From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. +Go compiles itself! Neat huh?</p> + +<p>As of now the latest version is go1.11.4</p> +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">export </span><span class="nv">GOROOT_BOOTSTRAP</span><span class="o">=</span><span class="nv">$GOROOT</span> +<span class="nv">$ </span>gvm <span class="nb">install </span>go1.11.4 +</code></pre></div></div> + +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>go version +go version go1.4 linux/amd64 +</code></pre></div></div> +<p>you can run +<code class="language-plaintext highlighter-rouge">gvm use - select a go version to use (--default to set permanently)</code></p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gvm use go1.11.4 <span class="nt">--default</span> +Now using version go1.11.4 +<span class="nv">$ </span>go version +go version go1.11.4 linux/amd64 +<span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOROOT</span> +/home/john/.gvm/gos/go1.11.4 +<span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOPATH</span> +/home/john/.gvm/pkgsets/go1.11.4/global +<span class="nv">$ </span><span class="nb">ls</span> /home/john/.gvm/gos/go1.11.4 +AUTHORS CONTRIBUTING.md CONTRIBUTORS LICENSE PATENTS README.md VERSION api bin doc favicon.ico lib manifest misc pkg robots.txt src <span class="nb">test +ls</span> <span class="nv">$GOPATH</span> +overlay pkg src +</code></pre></div></div> + +<p>Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.</p> + +<h1 id="node-js">node js</h1> +<p>node.js, the server side javascript framework</p> + +<p>nvm is Node Version Manager. Install it like this: +<code class="language-plaintext highlighter-rouge">curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash</code></p> + +<p>Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.</p> + +<p>You can run <code class="language-plaintext highlighter-rouge">nvm ls-remote</code> and get a list of all the node versions available</p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ nvm +Example: + nvm install 8.0.0 Install a specific version number + nvm use 8.0 Use the latest available 8.0.x release + nvm run 6.10.3 app.js Run app.js using node 6.10.3 + nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3 + nvm alias default 8.1.0 Set default node version on a shell + nvm alias default node Always default to the latest available node version on a shell +</code></pre></div></div> + +<p>so if you run</p> + +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>nvm <span class="nb">install </span>10 +Downloading and installing node v10.15.0... +Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz... +<span class="c">######################################################################## 100.0%</span> +Computing checksum with <span class="nb">sha256sum +</span>Checksums matched! +Now using node v10.15.0 <span class="o">(</span>npm v6.4.1<span class="o">)</span> +Creating default <span class="nb">alias</span>: default -&gt; 10 <span class="o">(</span>-&gt; v10.15.0<span class="o">)</span> + +<span class="nv">$ </span>whereis node +node: /home/john/.nvm/versions/node/v10.15.0/bin/node +</code></pre></div></div> + +<p>and you can set it to be the default so the setting persists between sessions</p> +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>nvm alias default 10 +</code></pre></div></div> + +<p>So now you can run:</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>node <span class="nt">-v</span> +v10.15.0 +<span class="nv">$ </span>npm <span class="nt">-v</span> +6.4.1 +</code></pre></div></div> + +<h1 id="rust">rust</h1> +<p>Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.</p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl https://sh.rustup.rs -sSf | sh + + + +Current installation options: + + default host triple: x86_64-unknown-linux-gnu + default toolchain: stable + modify PATH variable: yes + +1) Proceed with installation (default) +2) Customize installation +3) Cancel installation +&gt; + +select 1 + +To configure your current shell run source $HOME/.cargo/env +</code></pre></div></div> + +<p>add <code class="language-plaintext highlighter-rouge">$HOME/.cargo/env</code> to your path in .bashrc</p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>whereis cargo +cargo: /home/john/.cargo/bin/cargo +<span class="nv">$ </span>whereis rustc +cargo: /home/john/.cargo/bin/rustc +</code></pre></div></div>Abhinav SaxenaI like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. Here’s a way to get several of them installed into your unix user directory. If things go wrong, or you get bored you can easily rm -rf the installation.Gradual Typing With Javascript and VS Code2018-12-29T11:40:43-08:002018-12-29T11:40:43-08:00https://www.abhinavsaxena.com/moonwalk/javascript/2018/12/29/javascript-gradual-typing<p>Recently I had to write a file uploader for AWS S3 in node.</p> + +<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code> +<span class="kd">const</span> <span class="nx">AWS</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="dl">'</span><span class="s1">aws-sdk</span><span class="dl">'</span><span class="p">);</span> +<span class="kd">const</span> <span class="nx">s3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">AWS</span><span class="p">.</span><span class="nx">S3</span><span class="p">({</span> <span class="na">signatureVersion</span><span class="p">:</span> <span class="dl">'</span><span class="s1">v4</span><span class="dl">'</span> <span class="p">});</span> + +<span class="kd">const</span> <span class="nx">uploadToS3</span> <span class="o">=</span> <span class="k">async</span> <span class="p">()</span> <span class="o">=&gt;</span> <span class="p">{</span> + <span class="kd">const</span> <span class="nx">parameters</span> <span class="o">=</span> <span class="p">{</span> + <span class="na">Bucket</span><span class="p">:</span> <span class="nx">s3Bucket</span><span class="p">,</span> + <span class="na">Body</span><span class="p">:</span> <span class="nx">fileData</span><span class="p">,</span> + <span class="p">};</span> + + <span class="k">try</span> <span class="p">{</span> + <span class="kd">const</span> <span class="p">{</span> <span class="nx">Location</span> <span class="p">}</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">s3</span><span class="p">.</span><span class="nx">upload</span><span class="p">(</span><span class="nx">parameters</span><span class="p">).</span><span class="nx">promise</span><span class="p">();</span> + <span class="k">return</span> <span class="nx">Location</span><span class="p">;</span> + <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span> + <span class="nx">process</span><span class="p">.</span><span class="nx">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> + <span class="p">}</span> +<span class="p">};</span> +</code></pre></div></div> + +<p>It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other <code class="language-plaintext highlighter-rouge">HTTP 400 - Bad Request</code> errors coming out of the S3 service.</p> + +<p><strong>Is there anything that can help guarantee your calls to <code class="language-plaintext highlighter-rouge">upload</code> are legit with some sort of type checking?</strong></p> + +<p>You’ve probably heard of the type annotated javascript superset language <a href="https://www.typescriptlang.org/">TypeScript</a> and its supplementary type definition repository <a href="http://definitelytyped.org/">Definitely Typed</a>, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate <code class="language-plaintext highlighter-rouge">.ts</code> files, and modifications to your build process. Is there any way to get this without futzing with your existing project?</p> + +<p>If you’re using the Visual Studio Code editor it turns out you can enable <a href="https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files">type checking on a per-file basis</a> by adding the comment to the beginning of the file</p> +<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// @ts-check</span> +</code></pre></div></div> +<p>to the beginning of your file. +<img src="typeError.png" alt="typeerror" /></p> + +<p>The parameters variable is highlighted in red, and when you mouseover it you’ll see:</p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'. + Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345) +s3.d.ts(3640, 5): 'Key' is declared here. +const parameters: { + Bucket: string; + Body: string; +} +</code></pre></div></div> +<p>There are a bunch of things happening here!</p> + +<p>It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that <code class="language-plaintext highlighter-rouge">s3.upload</code> takes is called <code class="language-plaintext highlighter-rouge">PutObjectRequest</code>. The Type Script compiler is kvetching over a missing required field it needs to say the <code class="language-plaintext highlighter-rouge">parameters</code> variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.</p> + +<p>When you add the <code class="language-plaintext highlighter-rouge">Key</code> parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.</p> + +<p>The same checking is useful for output types.</p> +<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="kd">const</span> <span class="p">{</span> <span class="nx">Location</span> <span class="p">}</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">s3</span><span class="p">.</span><span class="nx">upload</span><span class="p">(</span><span class="nx">parameters</span><span class="p">).</span><span class="nx">promise</span><span class="p">();</span> +</code></pre></div></div> +<p>You can mouseover s3.upload and see it returns a type of <code class="language-plaintext highlighter-rouge">AWS.S3.ManagedUpload.SendData</code>, which means the destructuring operation <code class="language-plaintext highlighter-rouge">{ Location }</code> is guaranteed to work and Location will be populated.</p> + +<p>Links:</p> + +<p>Type Annotation and Checking within javascript + <code class="language-plaintext highlighter-rouge">https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files</code></p> + +<p>JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt</p> + +<p><code class="language-plaintext highlighter-rouge">http://usejsdoc.org/tags-type.html</code></p> + +<p>More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.</p>Abhinav SaxenaRecently I had to write a file uploader for AWS S3 in node. \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..730a444 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,147 @@ + + + + + + + + + 🌲 johncsimon.github.io 🐦 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
    + +
+ +
+ + +

🌲 johncsimon.github.io 🐦

+ +

got some downtime so how's about we starts ourselves a blog ...

+ +
+ + +

Portfolio

+
    + +
+ + + + + + +

Blog

+ + + + + + +

Old Projects

+
    + +
+ + + + + +
+
+
    + +
+ +
+ + + + +
+
+ + + + + diff --git a/docs/javascript/2018/12/29/javascript-gradual-typing.html b/docs/javascript/2018/12/29/javascript-gradual-typing.html new file mode 100644 index 0000000..6402b2e --- /dev/null +++ b/docs/javascript/2018/12/29/javascript-gradual-typing.html @@ -0,0 +1,153 @@ + + + + + + + + + Gradual Typing With Javascript and VS Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ home.. +

Gradual Typing With Javascript and VS Code

+

Recently I had to write a file uploader for AWS S3 in node.

+ +

+const AWS = require('aws-sdk');
+const s3 = new AWS.S3({ signatureVersion: 'v4' });
+
+const uploadToS3 = async () => {
+  const parameters = {
+    Bucket: s3Bucket,
+    Body: fileData,
+  };
+
+  try {
+    const { Location } = await s3.upload(parameters).promise();
+    return Location;
+  } catch (e) {
+    process.exit(1);
+  }
+};
+
+ +

It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other HTTP 400 - Bad Request errors coming out of the S3 service.

+ +

Is there anything that can help guarantee your calls to upload are legit with some sort of type checking?

+ +

You’ve probably heard of the type annotated javascript superset language TypeScript and its supplementary type definition repository Definitely Typed, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate .ts files, and modifications to your build process. Is there any way to get this without futzing with your existing project?

+ +

If you’re using the Visual Studio Code editor it turns out you can enable type checking on a per-file basis by adding the comment to the beginning of the file

+
// @ts-check
+
+

to the beginning of your file. +typeerror

+ +

The parameters variable is highlighted in red, and when you mouseover it you’ll see:

+ +
Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'.
+  Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345)
+s3.d.ts(3640, 5): 'Key' is declared here.
+const parameters: {
+    Bucket: string;
+    Body: string;
+}
+
+

There are a bunch of things happening here!

+ +

It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that s3.upload takes is called PutObjectRequest. The Type Script compiler is kvetching over a missing required field it needs to say the parameters variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.

+ +

When you add the Key parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.

+ +

The same checking is useful for output types.

+
  const { Location } = await s3.upload(parameters).promise();
+
+

You can mouseover s3.upload and see it returns a type of AWS.S3.ManagedUpload.SendData, which means the destructuring operation { Location } is guaranteed to work and Location will be populated.

+ +

Links:

+ +

Type Annotation and Checking within javascript + https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files

+ +

JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt

+ +

http://usejsdoc.org/tags-type.html

+ +

More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.

+ + + + + +
+
+ + + + + diff --git a/docs/javascript/2018/12/29/typeError.png b/docs/javascript/2018/12/29/typeError.png new file mode 100644 index 0000000000000000000000000000000000000000..209314afd5e390bcb0a46c87f9e999734944f81f GIT binary patch literal 131839 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

$>Q$axiFW3T+w!TiyY=lI% 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[f;wV`5@}PBU-9T7V>ZNBKVErXVv_ zL*yTVq+gF2e7J}y8;ymD>C7{>uz+i6X$i1EEXfc96#PItb*i9ua&62;4?V>yX)lF{j?Tf%%!AW04<<|dHDGFY__ZX0EO?s z;GjiP>4e$o+1YoXQ}v_`oE{h$81D`cb@dGlAOf8)larIB5|48NBU(Bc0+=b`H|mu) z?6KmjqZF?41TxTgMpkd=>;nX#5^?+tk*K@`vJvnQ^y)1u=NdIC-YAx)0Kdkcp!L$!yCIg0)E?g#tTD4cip%hJu- zPSCEehzH){bFjaTO|JbU@53hp`7ym>OoHHqAS$ko;e|A}rjF=U$I9yxp?AkgjDi@< z=s`(bddDZB6_g4(@3njF2RV;(Hgm4Mg!z1rOu{=Y{P6Q4KP0NXF)wD!<$UJOT@zDG zS~++hFlO}##*ECG@wi{Pgz4Z)12>)R=TkKM6ssa)9$-I*XckFriy1%gT+Pp^xHj}q z(e%l6nJ<#4*tlF~2i|9C$(`JWWF6<5nQ2d(Ag$8bio`XiZ_ixKKk1`$LZ>osusff@ z)7&z@ur{81`0#u61FdoSbjc*gp@3wdiHS)nw|$l@x=OARq=J&tqzUg^pl?e~4rp&k z)|pU))gx#p&ilgFkrneTi-HyJH8=M?`nEyPrV*n@d-pX}yj+@ibfy2dRPv*OVqtU8 zz}vE5uy6%>_c<=GNMDDw=`s%=(+SP(E$*o(a|uKCm2+uNdWYd92Gt0?KdN+?Tbc6 z##B?#o_p(<%xRQ->y5YLp6Z#XjaPWxnTSxvXYFcCLMn325)#0u^=f}11I)Qus8 zwOQ$QPTVlE4Pim~J?jMw6lL|O&0WE-Li-E?T3S9>pCUG;!*BH|>Ld@%HrlIE$xySL z^*v6X(V&26h6-7MzKLkW|ORAf1;EX@Pk>Fem z!Y0byb%WfrE-@HSrds`$n9NoP|lpq{mV1Q71OZcPm zeB%ugQ~gegdqkg$L;S(>oqk~sI57=-J3(q@{y(lz?D~E*EBoS-{c}02a??Rg1_Z!B zT%WA1?bXj%T z=Y}zD4;83vp(l*Zk)n0{I+_>aoa&yrE(_R>;B$QSWCz-x#Kj;`XEpYPsxS)#NPMe7 zkTgC%(5jVYf6bbozf&?Ys05#AGxz*HJzHlh3&&LnJCCQmJ-G%v`tYhRU4I#!NZp4} zal$dFIXkgcsDhj}yq$QsuS-pQOL-A#*u&1P>* z7Pt%j?dkeGo`nTgnJ+22eI5o;;83(rSm1gub5m z-=mgCZr$k+R-ODppS%<1_g^69UEG25_Ah!t(1C~ng6=4vl$B0juDm-ot9}j*{@2y7 zZaM8*fr5ZQ!p)rs$UGI#whn~PSWt3tCD?EERv7fW*d0##rM5T}&(JkC7Ik^)1lV!$ z!gH45mgt+-Bf>~1cE#y&Le55UdXrKi_IR)1QBI~u{wKLd^R=N!4?dV)wh>2_AMovs zU=E!_%t$DL8Z2dZCBCc{Cjny4%NK4XJlkrJYs~K=$aPJl_KhCN+IQBmEGj*0EseJN zHF2w<(%FFbpRwqu_#$1*O#Nb3a>MM#eWc0qf#?TtKfGmoeA7N3QA8-i$Tiqbo41IBmp&vlCjl={!jr zhK1|+q*a$mm3|e9X<6kzlM|eJEY|XwT~Lr{f3?MjgwN#&(4Pze+Gx||rbb8Q&d<*a ze*AFINSl;ik*k!ixVm)%OAJHA`VO+i!sG9ZxG~|RF%07`XnN^MC|_F^J6~GA5eS_@ z)@$D%)@2HS)rTOU+@}}((XD9}hX65}8T@#On=QlZC zKV~Q&FH9ez@w7?gK8&8X4=Xpo!=!)y>4)N0M6_13qvcfyU|d-q#+y`|AH-Mn^_7r_jZ$|w$n$jQB9%s zGIL%VNk_5?=erQUO-Fl1kfhrDrsKIaj$~R;5r#XV7yjh`5N(G%h$~shpj-mZCP`hZ`Vse ziF9c0{n#ALU zpkO|4Lzrc)&3B@0|$3V)0KaNZIal2dy=2dTV6}_9oi1%oOqT) zim&!Krw6&$U79)S~@t;8BQjp5`?IN=r*AsHmV6)E9iAv2l$Fdzx?VmP8p^ zBD<@7w+idMw^cr@+YyQ@=pj{f2;Zu-jI_YIKaG`uLz~GH(9v8NZWs^@HJuqE<;sZ% zHo|n8Mu`P3d3dZ5wQwA%+pbmzR^i}xqbUrUENHvDMgwxRVf0#e;F{qy=BDhwk)M?H zY9J~|9fzfyHQ5U8W`NP7!nFZ+n7NyBoogVfbaISV({Zx&GKkCmHo}f-B~{|qmp>Ss z&aW}3*>M#0Q431P_$2y9#ro#8vn8^#u6F2HvkJZZt-(lPuRcP%sR@+MNKZ9;AB!1= z`Hqd%Oc<_^HLRlRmnpZ*bUEJrAN~3EHzBXGma{NUBlw9t;kWc*5IS5p&LC!m_rABV z69Pn6AGP6jz!IeQ2clH`E+{^@u=9kiZaUnA#J+ZqjvO-&L6$9w#8i~IU-{AY@6o%G z`S<8+-u#~XY#S9QC4jRWpnH*T;K6W`Z;1*EBPSv8D=KSEo}5(T<>Lc{1G|6#91uHq zIaxjK9yBgk#OFNk_IyvD?#{E8j3csG{S#*?#hhPBx?|PZilKkI-_I25Vz+lsAB0Jv z$+&x;2x2tww8zjKI+PFia81~JJF&!Ui^$fw8;zwPA~_&*t8IeuQ48C16eedqVy}1s zX&FUZyf1Ku;G_(++>)HN_5s!F>HV#&tbQ|!6Q_zHpeXmF&UJE;X~MGa`AqsXkrd_W z5B5i@u})vCal3%pO<$$wj%S@i*II||yFKpd`tbDz`@{r_$r-J_iE!}NIv>X^*c9mV zX8;}0Kr2mm2SsIaJhOVt%+`zSfY>~MiGY~5;zTAE94^&vDqlLzZ_ypRityGk zZRQE!zzquNG3cnEi-g4I=Wq#1}&&~-YfqxWRJ{m2y+1P zDL|_p1z>64AfclRD=scZE0q%M{b3(c6$0~vvqh}2QxWZ7*H;!}71s)EG+b{ubkjb= zYUA_XCD>#grhk?PYj5}>z$Hdz3JZv^jMc>a)uf}Aq~w5E0?D6G9Y&Sl3xD4zI5=GWg~XpzLeywj>FuAjNk(QE z52f_aIDx-$t6oQ^W797`=Fb%CJaLw_T~ZUZx$+>cW@}F^^avc}^MkvvZ_5_YMw?8J zMjp?O>)gHE=TEiS?O39kTaw#W)BW^sOL;Tx**=^P^??Va%i2Z`W{TWBxHCll%pU!B zzsqKYE>m0np{k+}RW;K=x3G1mVSFaxZhoBT%j7=YjzV6a@^`x1gY+cqNp`?%5s|A*g%M&1nRlR6e=o+xIb*8rtxG^QlNy9TOZ{t12OP6Z!o-Une#| z!zm*vTu}qD)EN#k01Q~O*6OGGF$gqz`E#m5jXqI^ikFwSps2_YP@MP{7Z>3)uosLa zRcn(4Gk@uhyZaHe(*Nac0`0Rk`ogi>NZZ@1B2NKq_o1Ui62LA5rdg%*<#2r3)36)csmVXXhP2 z)SD7;ECU1K0JlD>Lyv@&HHK0;{&XinS4lx(J$!PEFj6e}*l!@%WFZQR?PYu}n%>w( z#HIcbkwB^a%Z#JOG~BATp_ulP;!?tA&H9I1Js7Kqh`)PdyLoro?-J-gAmFykT(buh zMM|4Myc(LCJWl%xV`sp=@&Ej}u(;T0t2e^Q$q52bUQuiH;sFv11iVfNO)H>kQ*PJr zVHnT0_B;9v9~L(ME}XqrkyvybGYwvqmV~;~oM|}N9xMs+4SwBz%>DoYqkYgWIp%AE z=Ww8_E-7nOSAAV7U86QQQzys^{bX;Z8>8&F2i&Ed0b1WSk@-yfsfR6rm6|@rj){2R zET>mPVi$yRS6-i({gmDgFx*%+ocXJu_a=SM4)pJIb$4DueiO8V0R^>J>DGwmIhtU^ zneI_we=e)#G{wFIg*?@X@@1g3&!u{E`A!OdCfsnaMC;zz3(02}REXWSM$Ii$f2nKb4#0jp?$w%s8kW6Dz6ucK-a5{Q-hau~`9xQL zGD#P5QLe1~b!aw5BU!r-4K1d7=YoKM-sjU%?C9D5797XRTPzRrbVCGP+%UTd9(+2< zGF87D`jU8f6Ww-4c)i$8?SQPz_<$*tnAGoivn<|0g3aAXo$xM3QbLL}nj`!z#vi-U zpJ?|1CI|3a!<9B&a$>PebJ+20`m0V@551B2A zWiLV@?S$~gt`IA#*^MsV3xjR8h-~ba?at!5-PzA)^1(e-Jy$KO?5KEn9P8%05YU#h z&wM9b1Vz686?HyAr(ZealvBJn>=yg^tlS-s##M2Y{^b^{xqr>)jvKS3HUIK%?7S-| zzQS#1jn<9PasA>jlt&8%k>#u#cUFO~_%PK!YJnKTu3jDE=(oY#e&jr8numvhK_wuN zdH){vgXNlbrKTo8b$bnJOU@fGI=HAK_}F=^eWjN=%Hc{+)qx(oaOB;K0ovN!!`MKE zcWL!f;(nnpwmMiTNSH4Bs-;tri>aCa>Ga~VOHnfz69FaNPK=`=h>2;fg@d5Simb7fd%pv`!rI#h6k$KU4#rXr{d{z zidw{mTZ;Un{lJ<;$g5#C>>G8L%&1a4JbVa4RMOAL_sK}BiO|p$!)k+sb8_%M`d4%W zWv~Is$A4Wsd=Vb-<^W6Oc#G%L0N?=wE1wk5F91k_rxq3v{i32!SXfvfaFEEWW_KHg zI!aYh&ce?iK{}@xM4AxulkS)Cru~n-+JTUwkzCL_1O@y&;RFFJ{$VCQ2}4<1A*Y}W z{>7EiBhM66tUwgIOp2(ysYt=^y&A5QjXB~Ki;ze-K|6D>tGDG?DQmbmm(=I&pi1K`)Km*_?)f;L2MWo76q%L8lr&C#7@6k`0{N^~hkhbtqPD?TbHxhut;jV&WIyHAdNWGm0T z3ekbDidf*Yrt3%huof_+wdblO|J^=yBDHRJC8oKS!&1r7u%~}X{(_m*pW{-C^FM<+!4zh~xrvF6 zz*qQ*EQWAcVP9@<-2iL8P-jaFXng`dG(J1a`64c3q%*0F9v1_)`TUlxm?(b5GjdX( zXf@?bWdDOxRDEjCRs=iNGfJD>+C-fpn;jn4E0On+ky!2FbqP$&-K8J$%O}V6;Juh5 zpy5)#`vla2D4om&ZgG1a+6KnTaeaOLJbskqek8;Ok?-EqQ5a4F;A%GMC!;5of$kOuz~^4R&K(veKJ z?>p4Yzs}UCZg#DtvYHx>NmbI|;Gpemhu)qZNCgcI-sRl1B_y%%zFnQAAp5(1=m$>a zS!6}*b?XY8RUq4M2@IhwF>ABjLp+SjzRC`o@M?nhrx&Hr4n}N)n`)g(POSs zFN`GdcJ4C`A5=^`rA!MF686aP?*fbEbYqL+0%BRQn{bF8O9gj!47n~iZAW!pmIt@7 zt2gc3cN!)+qOW{n=P3-r_2`x*JIYm8!@42~$I;txwd3Q5p`c>H)R+)m0o<$*6Tvn}fT|4JW_p9r+5?N>IPAjawRZ(fr z1mZP0kC)=A6zMQig3pg_&?iPhlZ!Vt zR8`OD@!k38(#Y=6;r6tik-h*)C(wv%1e(H6iaFz<3`#cRf<=o-45XZlYIL)ypN9@FfdM6*pPA%?Kh;D5n-M!T$=a_xR`E((29(0F+!zzw^*vdT|gXyTozGZyw0C&&0 zXtr!uK$^Js2Md5dM%*0VFt;KhvzaR+e+Hq+F%suFe+3AIalN{Rsi2oiK~O!s(`&a3 z`|VNoD?~`W<#j(d0#slDlpu~BFbBwlynuQQ8NgTS>gsC6iQmxBu)Vu$@i`CDeajH$ zz#6IgekaM|$I7rJG4Rw=udGJ4p5%Rp9-daY+dngv2<{XjAG+u~*ggC_f#kMw_p0ZK zLXl@HZMltFzMg!0!hSXoB(xbzx_o%ZU45_Js^P_C{*mg!VRTlw?d8L>>+RzN@W)bX ziSF(VR>1s1-GTSH7!9$ttxYd-qL&vl^P_#!pV2QEs6b5~9a#bDc0ug51qH!?MjBe_ z{<7&QC)+4NuT&o1g7R)BKQKh20j0uU=0#=;QT|5`d^o zS=%@JXq?Y?drT|bSApakl5(Osa_85kWK*s(q6&~AghuV@J>44F?yga(=RS%S{Oi_7 zLy)F2i$B+&bH-i}h&vNYCm0QKa<$gx_ndoEO!8Nj3@Y?$G|a86_@CBohu^BbBkK_3 z8{xqG_KoWeLEMHuGlmHw`FtO|r#iBG&HVr%`t$4hdJ)DeG4>Mq&AEeuZ3YsbI5{S4 z#QnnG|BXL1!~PrGk+EvL{_oK6lEAb=jX5Q)F7L;mn4|wr6!MQJ_x~>f43+RzOenYL z@;&b$pJEPQx9*G=99=2`caKzbxnh@XKe(G;NiSz`+RXnuzr=Ji!T45m)EZP(x--&e zV(_reW8+h5wNIUlecBawHeV;$u>>0l8Fbq_M&fQmV6V6#DhjX93Dsa(53Wn9Ms`@p zPAaR&JH1(UxR9kVdQNKo#KiF1&OsG?RuP3$y2g}WxdFt$uOP@{nec+uD`H;Cs#R*Hiw7SjD*s`$*VR?;rFwgt7CN^U?C*Wk?>_jGFbB}#>+bGm zHXeKpq)F|ZoqJ5G0OhCdR__NOFYq*qh>UCkFNvD|32v zAIgeD-Hq3EsJ~w|%ji$YpYO4?MV*}3Wo2annWV{?nfJgERAo8_#G}d1hqDu_tE+5+ z^z`A~89wa^!7xgiHB9%JuS%BqY;|lZr17Fp zMm9B=Z)V!K%=kh#{d;C}$(p%#Eb;EB&}zU*0(g+k*T$gtxNW=ho7ymySqW3-wr!iq zRp2rPbt2QQ|I&%k>~LWsG=IBG;*X;UE6<-}ufGxFmb2Goh9%i=F;I-8O6mC#&lgn? z4U+k;=nmYnC$y^GZMN;(U}-hLNFRyvM_A9lxv?`l)|K!*VM~^4ttSml#P=CZeQzER zc)wv|+xbCPc4gJtsP!2Ec85A+Jq(-$?yGC7@(b<<9oEf$G-T)}I{~Mgcz$TZXl>1; zDQ!Gk(uzYDGxNiq$K$T1&bZNC?a%L_PM`Iho#DSxV}Pn$op|_&2#RIexRGa| zs5QX9S!s$F=v(4?HFaBeW3#T=i(z=Y1RixIUR`Mmb2?|$xift8y#+Zbex)bSScDt< zwDEL_B4zz_bc}l@-yx?w`cvE8l--fBV`&8COGX35PP*6I-m!npuiE;wA3Ko314Q+T zKhRmu7Jtvq&faSQScTEi(fxZ205(z7eGsRtv~<_ZOk9-UeK1fuf&e(Bhg3gmzXz&C z0P88VOWGg;^XTT1JVUp_9gn9FpppuNW=b|YO%*J~cMH}>MY!AiYhm@b1IEM11$o7K zbgC{Wy*)Z_r;iYpIkzVv^>ljU#so&D{Wyykh$}9psQAhDn2n!Hyj*wbIiDWkk7z*n zu8nd}m~%o7bQm($YBxTkr6U~G_)j=Oj-<4%H4e8!8OqDCqhBx_#}13@t;mjpYGc|+ z(@dJ+w@exJ&aI2eWqhOC1RmweqMi6zZoo`)!zg(*>yFpWni6b2;bGyV2G2DV*6!i{ z=dD7nc|*^`C?LtM79W%^_&WKc$b#Ql0w{C_zr37Hvwv$5oZRKh?~GX$E zKAR7s2I3=e+9F>tGG90dHMJk*gIou@8p{ly+s4h#%8B^cZmIFt`6|wfclT$+{w_zV zxu0dmxT3kKiO8?EO;l4SOj)_%;axyott3ecg%#1R$wW#btT)Y%s4ry|YMvoMYPq7n zs}@GZc0ee>>fFZw5OV=>nct5eZ{EFocY1od&x1ukFkElH^-JCtQ5+H|`q935L&nG$ z8G=E54fBJwGrR+b6||KrF2r4Hk^{fwbBa}0s@1;9PG*UNU-St~7%Tt}TSqK&~JDuWd}zOtw1DxI|4t&sXXLYu~;kMt4? z?Tg`tPob+}iAm_;L*M7zw^qdqex_aGW}RLDMlQtU+!rl zJ)YFx*WC`cie|eZqjeCzhq|#iL}Ir>NNa?{b#$Z4cg3q%vpNl$sd?Zc#MS<05Wk+` zMxH+bmR6`C(D*BZ5%^j5dG-Mhg1vHY%IX?I^zI@}88#=v*lKm$oBBpQ_I9FD!YatM zLcdEPzNI|+wKbFjx7vA);Fq!;Gke-N3Jf0F7i_TM>;8~`9A9L|11i}MMR9;-go1{) zcNO|N()b?*aO%b*fB#11T)?0And22?OYi^J5$uz#t%t(w!aSR36jQV1{M>Sy%CP&9l!e9pkOeE=v-}1>2H0a% zuDAtn|9Re7!E0ZuvK!L{rg-}q)wQkk_s`S5cgRt;<>`t7rroHb0YVD8D_m|wHXOO^ z5CLM2izUg6gw^azXb4e zsS?4sQt*i;Ck`ZOS;{phN!hrzPzfTQg@W#Uj^d0vu*`hMP#tJQ)I<7o2^#UbMd;A$@R|@2;2nhQASul&3bL%y}V9Y#)bAlCBJLIX!PR0 z1Mg8exwRZ~fI**~gX3#*vJ_A(gGftD16Y<7RaIw9iznt=G{d_#+O0T$fv++>L%jh3 zq70Tzm}^dr2STgtF1Yoe2NJ@Z<5wK{NGwg^!Ye|-*R_zn3+6R-km-HAyiM+jjR^*3 z*0pJ^HlLY@#4?{9IiEHJ;3DYoU9Jvv7)<6wxTfqc2r0(oxBTN?Hb4MY9+#;SbY@C( zjImp*_|RF>tonqptLsk7G6XUhtaufsf#Ti02fl*f=~**tB87OAT>-1S6ujjtGrk66 zHP$F=EP~C3K=hS#u?_UE->|tATd$GpSvvX`!Lqo&N%&Z+a;{c$Upk-WWERMkGk?T0L zEyi2?uKD3@c4-5&%fBVft#wa-Yf?Ll<$vBActu^(pdt4Y9_4%&9>t$D zHPiee(cvmeQnumSkdLzLl{HwnhYRT-*}8A`WeM-_b$A(@!0P93o@E=A3h-A~sEtQ( zpw)Y7pA6^4)}^moW;q>jiH|H9rBxR);cQzddX{>xv0wjj)T&aI=SU*L!zqA*d2=&A z0NFDKl#ohFB7jo53url{u8s?6Vi4GhI+3$w#sQqiVx5*`K(0O`J{}7RPUP2W=*8)z zN_(yEAy3Nux*SvCMt0AdizsIlPWyWZOp3h6ShT1cg&tFG3y{2pXCi+u@>xCK5TC0F%)#hqd-GVc#i(cbXoLOp6w5F7_&Qy%OG2`;MCC5c27LHPB%W#$P!rlZU!a&qcJ|UH#fBqdsAgpiuv6GQO`5hb__?!?5Vd1zL@WpLe zMkUKU-AoGl6c-j2u6eR5QL$e2N}qw;k3Zcd6Qdgj?1uZ=-KMxe@v;sK6~GzdnbXDE zA3A$a?YOdXK=57{@4PL8sC9h6KPrT&oA#{tQk<5={&j?D$ra0K%B((Uno}kg3i%`! z_-te{Jzv;T3jX-$c915jHht@p+X&aE$Lb$;j4$}jtt!uHdtk2 zsy0s(E)I@`$D5PNLX^Zo?Y4B0Zjv1@?c-ORR(`bI!{ZKf8rMgBNTRF^qYu^DZH1YI zXE1tu>!Z*jW=gLpj;|lw0a4d_U-!=78H(S>lqqq(T!m1pPC>pYIAjr;u&D4S=mC%f zAg89zAM*sT2JP+oMd7HP9Fc|K9+Zrh(8reC`Y)sUQd0DwtBk6RoiVv&n`dW&??y8i z+hbnIv_m=@wew@N^aVc~TJx=`Q=adUy|HxctTv|BS|s|(>sWUZ4(l%lL5_=OhF+Tl z^xrkzPXZa(38i}@eeUUIDceRv-_M=5VDBo#R7Cu^=Ujeg7%b83H}1#jB5=z45Zct| z3ai^O*|r?|b6ig98q1)jW&#scL`DkllST}X#SX;9@f^5#Nf9jAOqbj<9WqPv})@I2gl{%mRD z0&-8~@@-DTOeInnqQ)T* zx!tFRx0R9efx88?esEPBuaKadjFK5VtK=o}o7JfrGTi#f+6s(B7N58FIAK;jjLg|* z@P!2@4V5SIx330Vjmx<_KSz00kX|4`ZQC3_a9y-VNi|sPyw^%b@5(Yx$2k@+EGyPO z2?Ufd&p?JvQz;U616TB6M_KC;T<*^Do@GVVU!NY=+{w>eKIk|?-+=Bhe#KCY$oQaX+a4D{&`=yyRkEyOx2=|{4rgGc!6`rhr1$?w#@?~8Ane|8lduprdWd)EyR?lxN*kCJ?li1B9iYgU19^@Mg(nrRw2_eRGh4#Hkm%YwD{(8gUTKdf zWq4YT7^{$NKd}6P8Tq@$9!|;#R5-Nri8=WJNM*xjC>;U;d$_f=m1Ly#J191ES$k^wC0vdh+fxGh|CLkrpeeA7VdXf@t)XY=- zk~ux*H@@Ij7JHvy)di=_ ziev*I{In`en-O~Ws6&g}NxL!Re$b#9T(ft2q>WN#&OP)`N&)R_RWfi?S=-v00+@6F zm#}5W9UKv1e7-$UUtb@ck}?FG*AD^N5P)`Kv2I&B5XAtP2;gzmNGMy}o-v6iPKkhg^H3;Ga#dNF|J#h#$bW#WwS3`F%?q!0k{G%@KE}veX$Mn3b;Gw%&|rE^`e0Tq3X4 z7phMq7Vd)h z+h~)K?a}{##a+;n{7D6(ePxkOVNd%PbV8`yAd67b8#A{d#qFxhvfmQ-xbgRpMMXz# zYygqLHr!(}F^%r(S;4X)7f;^fRiO9)$hHB69C@Kze8=%|HQ|lbE`qBtY7S>cY?$2& zA5F|Oa<`9vAJH*witm?dOK?bt{@^#-+q=6BKp<_zBpb-3dOuw2*DXDS|7tD(WT$|C z(*c+;0R02F{dcyagj`&HnpXTjKn}8h2D(kZd+B$X6~;&gB%}ab5^!w&3Kf8i)Iyah z1|i|duU%kkdxHC`Q^&x73|Io>;*skc8yiP4V+_9`3pZwSe`nPp-qGSM9xCcvAn64} zZXA}g;}a7T7ps6$7*JvEFsM*aQ=4~e&dl_CeDnfxDjgji^xBQnNt78~NZHzczm0Bi zzxr5V(|n2y6$DVe`?aD~RaGILctsBn4$Q2qa*B$Ec;2VO%W34k{qrQEa2wNpfa1rm z92+1~1Oibfe*|U@0TJ(9~mJ6aMI-Ts!!+p}s>69eoX z04<_kVE_vxZJeB)(eUtoq4j_M{K?MA$y=3kp@6vLI^)14D#lELDZeG2n=6q-xK)8$T`+ zJ1qH!%)gveZ_&qpupFdS;QovDnT%3~p6u_J0NPdhM@A@xgxdDp6cy0`O_QA5+^^rh zbpx7FY3j4?RH=7EF)WJhbWuWG2a6M>e}W>>?W3J(*<|3Q{wH{Il>R3_dnAHyW@|9n z;eWnz7vPlxby&#L%gdvi)wg}y_{=yw*DQu})gFIWva*B4TMcDp=(j+C1-u)Ro2JIb zn8ZYcx5mb~Y|_8;-#~txWw_8X8no7yQD4su1qD@qe^5lrz>o{fVRTs7o&`JQh#gh-0 z^VbMg2C}!-*C!_E`nU%a@!sGzkA$m;N!jR90UMmYOz6Yw#|6Hj%sYKC(66OE1 zG!gp;dmt(*Cj$A?{d;Oux@RJNcG_<83#mc;zeiSZFw!Te$qWC_q0Izu#F~))PO4-0 z|5`4fy(TZt$uX*y{vGH5(<}Td$NuN~AMmpOHgo?~R9MUzz#W!$KZ;wDEMF?H<(Bce z_iVluqpHc)PWbbb{WyDAsHmqYzv?9KWh{>`8m;Q`9bfL7^=fDXNq1SdZpzqX57G@x z{M)SVjb+|HqY%wOagOHwoSix>y8~fGf3Xo4goP@=fIR6a*1-JtQ7cA%LKXrVW58hs z6!~F=goJ>SSjB?XYfQ`v+cm)>mxqwefdFRaH4$p9BgeTG{8&&IRHg9HHnWOu>m(=I9(tG$otNgXo>?m zx)6X8sKN8&U3FcZvZkiAwl*OEH3V?i=(xB8@eG>%V`Hw@Gf7-*Niq=Av$H^+>Qnm9b6}GT z^Z~-4fav52MkEvK%7*0AySy=7{*N8Z+RMX1QlnAw%jy9| z)uxA#T~%ysY#;-=e{_`7-0UR*q}N`7Z`bz1&#hdD;n3q9_s)&zH$Ek{y!sqf$E9pr zrC($_apd*)b?NT{&hgaFF#aeoi$EF*P)|ksuQU`O#wTWPe`a2$&zf{Q>e?z|X-Rj| z`oIX}Uh)Yt9J~!P=5TG3$F|V`sllWrUvCs?!$v-f0r&Vg6x(-Idw)@msYCxSgG+iW zbpq7L0lQ%5=x7Mk&huZ1j|r|0x9)Jp_u>=|dZoAuF320oe)toSbe+RTT1*272k2pMK0df+o0VaE?9x zF6>_B{8C{&TwF;&R@L3zeS2?jYIaskQxhK$zd2fNzyQF)fQ5z=5aQs7qgBo;HytCY ztgK8`yJLRwqIV79TI4SE^I7TNm+jtDNSFi6@V~U$JWp;b+S}V9$7CfXNm*FF3V2=v zGSe&$?<2VlZ*)ag>}g$SZ*+Yj;lw#In(ISLYREq%{=HM;)-~%jvR4e z04=1SGkMxHH(&z+c=M2*{h`3aAOA~4aj!i1JVGmL{qieTN}}-6uqV=QZqokx|8>AC zcY#gs2f!7)%Yc`K0{4*|I&=tlb>DK}))LSJZ~C8)ncv+OPXsO;<*zsk+#_48pkVqSSFZj04vuHFfE7~WiY{zt#wTmDc@-0WW`d2 + + + + + + + + The Perspicacious Polyglot's Programming Language Plethora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ home.. +

The Perspicacious Polyglot's Programming Language Plethora

+

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. +Here’s a way to get several of them installed into your unix user directory. +If things go wrong, or you get bored you can easily rm -rf the installation.

+ +

Initial Install

+

Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.

+
john@BigBox:~/git/JohnCSimon.github.io$  sudo docker run -ti debian /bin/bash
+Unable to find image 'debian:latest' locally
+latest: Pulling from library/debian
+cd8eada9c7bb: Pull complete
+Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5
+Status: Downloaded newer image for debian:latest
+root@6d933dddbbcd:/#
+
+

Just to satisfy my OCD let’s get the latest updates.

+ +

apt update && apt upgrade -y

+ +

apt install gnupg2 curl procps -y + Installs gpg2, curl and ps

+ +

ruby

+

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

+ +

\curl -sSL https://get.rvm.io | bash -s stable

+ +

To start using RVM you need to run source /etc/profile.d/rvm.sh or re-login to re-load ~/.profile

+ +

From here you can run - rvm list known and you’ll see a list of ruby flavors and individual versions.

+ +
# MRI Rubies
+[ruby-]1.8.6[-p420]
+[ruby-]1.8.7[-head] # security released on head
+[ruby-]1.9.1[-p431]
+[ruby-]1.9.2[-p330]
+[ruby-]1.9.3[-p551]
+[ruby-]2.0.0[-p648]
+[ruby-]2.1[.10]
+[ruby-]2.2[.10]
+[ruby-]2.3[.8]
+[ruby-]2.4[.5]
+[ruby-]2.5[.3]
+[ruby-]2.6[.0]
+
+ +

MRI Ruby is the reference version of Ruby so let’s install the latest version.

+ +

rvm install ruby-2.6.0

+ +

I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.

+ +

Congrats, you now have a ruby install

+ +
$ ruby -v
+ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
+
+ +

from here you can now do whatever since I’m blogging this using jekyll

+ +

gem install bundler jekyll

+ +

go

+

Go is a language that releases new versions on a regular basis. +There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here https://github.com/moovweb/gvm that’ll let you install multiple versions and set $GOPATH and $GOROOT.

+ +

as a regular user:

+
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
+Cloning from https://github.com/moovweb/gvm.git to /root/.gvm
+No existing Go versions detected
+Installed GVM v1.0.22
+
+Please restart your terminal session or to get started right away run
+ `source /root/.gvm/scripts/gvm`
+
+ +

you should be able to run and see

+
$ gvm version
+Go Version Manager v1.0.22 installed at /home/john/.gvm
+
+ +

Run gvm listall +which will give you a list of all the available versions of go.

+ +
$gvm listall
+
+gvm gos (available)
+
+   go1
+   go1.0.1
+   ...
+   go1.11rc1
+   go1.11rc2
+   go1.11.1
+   go1.11.2
+   go1.11.3
+   go1.11.4
+   go1.12beta1
+   go1.12beta2
+
+

of which there are entirely too many.

+ +

From here, we can install go as our user via binary here:

+ +

gvm install go1.4 -B

+ +

try it out

+
$ go version
+go version go1.4 linux/amd64
+
+

We can see it gets installed here:

+
$ echo $GOROOT
+/home/john/.gvm/gos/go1.4
+
+ +

From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. +Go compiles itself! Neat huh?

+ +

As of now the latest version is go1.11.4

+
$ export GOROOT_BOOTSTRAP=$GOROOT
+$ gvm install go1.11.4
+
+ +
$ go version
+go version go1.4 linux/amd64
+
+

you can run +gvm use - select a go version to use (--default to set permanently)

+ +
$ gvm use go1.11.4 --default
+Now using version go1.11.4
+$ go version
+go version go1.11.4 linux/amd64
+$ echo $GOROOT
+/home/john/.gvm/gos/go1.11.4
+$ echo $GOPATH
+/home/john/.gvm/pkgsets/go1.11.4/global
+$ ls /home/john/.gvm/gos/go1.11.4
+AUTHORS  CONTRIBUTING.md  CONTRIBUTORS  LICENSE  PATENTS  README.md  VERSION  api  bin  doc  favicon.ico  lib  manifest  misc  pkg  robots.txt  src  test
+ls $GOPATH
+overlay  pkg  src
+
+ +

Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.

+ +

node js

+

node.js, the server side javascript framework

+ +

nvm is Node Version Manager. Install it like this: +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

+ +

Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.

+ +

You can run nvm ls-remote and get a list of all the node versions available

+ +
$ nvm
+Example:
+  nvm install 8.0.0                     Install a specific version number
+  nvm use 8.0                           Use the latest available 8.0.x release
+  nvm run 6.10.3 app.js                 Run app.js using node 6.10.3
+  nvm exec 4.8.3 node app.js            Run `node app.js` with the PATH pointing to node 4.8.3
+  nvm alias default 8.1.0               Set default node version on a shell
+  nvm alias default node                Always default to the latest available node version on a shell
+
+ +

so if you run

+ +
$ nvm install 10
+Downloading and installing node v10.15.0...
+Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz...
+######################################################################## 100.0%
+Computing checksum with sha256sum
+Checksums matched!
+Now using node v10.15.0 (npm v6.4.1)
+Creating default alias: default -> 10 (-> v10.15.0)
+
+$ whereis node
+node: /home/john/.nvm/versions/node/v10.15.0/bin/node
+
+ +

and you can set it to be the default so the setting persists between sessions

+
nvm alias default 10
+
+ +

So now you can run:

+
$ node -v
+v10.15.0
+$ npm -v
+6.4.1
+
+ +

rust

+

Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.

+ +
curl https://sh.rustup.rs -sSf | sh
+
+
+
+Current installation options:
+
+   default host triple: x86_64-unknown-linux-gnu
+     default toolchain: stable
+  modify PATH variable: yes
+
+1) Proceed with installation (default)
+2) Customize installation
+3) Cancel installation
+>
+
+select 1 
+
+To configure your current shell run source $HOME/.cargo/env
+
+ +

add $HOME/.cargo/env to your path in .bashrc

+ +
$ whereis cargo
+cargo: /home/john/.cargo/bin/cargo
+$ whereis rustc
+cargo: /home/john/.cargo/bin/rustc
+
+ + + + + +
+
+ + + + + diff --git a/docs/utilities/2025/02/08/blah.html b/docs/utilities/2025/02/08/blah.html new file mode 100644 index 0000000..4c8bc9a --- /dev/null +++ b/docs/utilities/2025/02/08/blah.html @@ -0,0 +1,89 @@ + + + + + + + + + Hope this works + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ home.. +

Hope this works

+

Blah blah blah blah okay okay !!

+ + + + +
+
+ + + + + From 9d57bed03e5f4e14e4edcb013018bba6ae2dfc7b Mon Sep 17 00:00:00 2001 From: John Simon Date: Sun, 9 Feb 2025 12:25:39 -0800 Subject: [PATCH 10/14] rearrange --- ...40b622142f1c98125abcfe89a76a661b0e8e343910 | 1 - ...84a6ffb6bf87b30f151c27aaa06f360266c1d4ae1d | 2 - ...e9724619aab1da63b1df869f2f3b8c9464dbd9b611 | 2 - ...02bbf529c1f4888a953e7404ed794fc89f19ad0b40 | 2 - ...3eff4825977cf595078493d02f3cbf7409f0098e86 | 222 ------------- ...af72b2520376a93d9dbb3d6cdf57d927a166fb4c2f | 4 - ...5fcaa24b376f795bc6c7c4dce95d7424349e10f11e | 2 - ...9128905bae0c8f75d33029ac7545b542560c11ba4b | 2 - ...2727d439a6b79a592e30af596984d6ba749ed75c4f | 66 ---- ...f6484d186528dfc0b31d2400a58e34856aa7041eba | 2 - ...9d564b6bcc0c020d9791b2d33da568d67db4405be6 | 2 - ...bfa6bec1f96439cfb21dd68bbc76541b7a9fac8d63 | 2 - ...3e6315f70f0e557f161b4d49ec8365a1c7f8a68661 | 2 - ...c8996fb92427ae41e4649b934ca495991b7852b855 | 2 - ...a3ec129bc92d9fc48b19eea4fe7e0d5f2f5a67b69c | 4 - ...e0a04364cba17a92c68f9530bf0541bc7f96b5197e | 2 - Dockerfile | 22 ++ .gitignore => blog/.gitignore | 0 .nojekyll => blog/.nojekyll | 0 404.html => blog/404.html | 0 Gemfile => blog/Gemfile | 0 Gemfile.lock => blog/Gemfile.lock | 0 _config.yml => blog/_config.yml | 0 ...8-12-30-javascript-gradual-typing.markdown | 0 .../_posts}/2019-1-16-polyglot-setup.markdown | 0 .../_posts}/2025-2-2-blah.markdown | 0 about.md => blog/about.md | 0 index.md => blog/index.md | 0 .../javascript/2018/12/29/typeError.png | Bin build.sh | 4 + docs/404.html | 103 ------ docs/about/index.html | 1 - docs/assets/css/main.css | 3 - docs/assets/css/main.css.map | 16 - docs/feed.xml | 283 ---------------- docs/index.html | 147 --------- .../2018/12/29/javascript-gradual-typing.html | 153 --------- docs/polyglot/2019/01/17/polyglot-setup.html | 309 ------------------ docs/utilities/2025/02/08/blah.html | 89 ----- javascript/2018/12/29/typeError.png | Bin 131839 -> 0 bytes 40 files changed, 26 insertions(+), 1423 deletions(-) delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1e/ab7a53f03bdf0a19875b84a6ffb6bf87b30f151c27aaa06f360266c1d4ae1d delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/25/4f73d86242e65a8772b6e9724619aab1da63b1df869f2f3b8c9464dbd9b611 delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/28/409282bc7b120130c52502bbf529c1f4888a953e7404ed794fc89f19ad0b40 delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/39/10527bad802f5b463cf43eff4825977cf595078493d02f3cbf7409f0098e86 delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3b/7acab97e28d6e6622b24af72b2520376a93d9dbb3d6cdf57d927a166fb4c2f delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/48/3bf5d010bfcbf2c17a7d5fcaa24b376f795bc6c7c4dce95d7424349e10f11e delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4a/f9d3f394514d00bfb64e9128905bae0c8f75d33029ac7545b542560c11ba4b delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4f/172dedf2c78d58bc7abc2727d439a6b79a592e30af596984d6ba749ed75c4f delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/76/89113e0a6db01db8321bf6484d186528dfc0b31d2400a58e34856aa7041eba delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/b977dfb149b40c8b64579d564b6bcc0c020d9791b2d33da568d67db4405be6 delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/67915f405b1b58b7e972bfa6bec1f96439cfb21dd68bbc76541b7a9fac8d63 delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/a5d4c8932742435b43783e6315f70f0e557f161b4d49ec8365a1c7f8a68661 delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/66593c605d2558dd7641a3ec129bc92d9fc48b19eea4fe7e0d5f2f5a67b69c delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fa/4279ae7d32fa586eed1fe0a04364cba17a92c68f9530bf0541bc7f96b5197e create mode 100644 Dockerfile rename .gitignore => blog/.gitignore (100%) rename .nojekyll => blog/.nojekyll (100%) rename 404.html => blog/404.html (100%) rename Gemfile => blog/Gemfile (100%) rename Gemfile.lock => blog/Gemfile.lock (100%) rename _config.yml => blog/_config.yml (100%) rename {_posts => blog/_posts}/2018-12-30-javascript-gradual-typing.markdown (100%) rename {_posts => blog/_posts}/2019-1-16-polyglot-setup.markdown (100%) rename {_posts => blog/_posts}/2025-2-2-blah.markdown (100%) rename about.md => blog/about.md (100%) rename index.md => blog/index.md (100%) rename {docs => blog}/javascript/2018/12/29/typeError.png (100%) create mode 100755 build.sh delete mode 100644 docs/404.html delete mode 100644 docs/about/index.html delete mode 100644 docs/assets/css/main.css delete mode 100644 docs/assets/css/main.css.map delete mode 100644 docs/feed.xml delete mode 100644 docs/index.html delete mode 100644 docs/javascript/2018/12/29/javascript-gradual-typing.html delete mode 100644 docs/polyglot/2019/01/17/polyglot-setup.html delete mode 100644 docs/utilities/2025/02/08/blah.html delete mode 100644 javascript/2018/12/29/typeError.png diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 deleted file mode 100644 index 340b040..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 +++ /dev/null @@ -1 +0,0 @@ -I"Ö{"title" => "🌲 johncsimon.github.io 🐦", "author" => "Abhinav Saxena", "url" => "https://www.abhinavsaxena.com/moonwalk", "description" => "got some downtime so how's about we starts ourselves a blog ...", "favicon" => "./logo.png", "remote_theme" => "abhinavs/moonwalk", "theme_config" => {"appearance" => "dark", "back_home_text" => "home..", "date_format" => "%Y-%m-%d", "show_description" => true, "show_navbar" => true, "show_footer" => true, "show_projects" => true, "show_old_projects" => true, "show_misc_list" => false}, "sass" => {"style" => ":compressed"}, "source" => "/Users/johnsimon/github/JohnCSimon.github.io", "destination" => "/Users/johnsimon/github/JohnCSimon.github.io/_site", "collections_dir" => "", "cache_dir" => ".jekyll-cache", "plugins_dir" => "_plugins", "layouts_dir" => "_layouts", "data_dir" => "_data", "includes_dir" => "_includes", "collections" => {"posts" => {"output" => true, "permalink" => "/:categories/:year/:month/:day/:title:output_ext"}}, "safe" => false, "include" => [".htaccess"], "exclude" => [".sass-cache", ".jekyll-cache", "gemfiles", "Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files" => [".git", ".svn"], "encoding" => "utf-8", "markdown_ext" => "markdown,mkdown,mkdn,mkd,md", "strict_front_matter" => false, "show_drafts" => nil, "limit_posts" => 0, "future" => false, "unpublished" => false, "whitelist" => [], "plugins" => ["jekyll-feed"], "markdown" => "kramdown", "highlighter" => "rouge", "lsi" => false, "excerpt_separator" => "\n\n", "incremental" => false, "detach" => false, "port" => "4000", "host" => "127.0.0.1", "baseurl" => nil, "show_dir_listing" => false, "permalink" => "date", "paginate_path" => "/page:num", "timezone" => nil, "quiet" => false, "verbose" => false, "defaults" => [], "liquid" => {"error_mode" => "warn", "strict_filters" => false, "strict_variables" => false}, "kramdown" => {"auto_ids" => true, "toc_levels" => [1, 2, 3, 4, 5, 6], "entity_output" => "as_char", "smart_quotes" => "lsquo,rsquo,ldquo,rdquo", "input" => "GFM", "hard_wrap" => false, "guess_lang" => true, "footnote_nr" => 1, "show_warnings" => false}, "github_username" => "johncsimon", "theme" => "moonwalk", "serving" => false}:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1e/ab7a53f03bdf0a19875b84a6ffb6bf87b30f151c27aaa06f360266c1d4ae1d b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1e/ab7a53f03bdf0a19875b84a6ffb6bf87b30f151c27aaa06f360266c1d4ae1d deleted file mode 100644 index dee9687..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1e/ab7a53f03bdf0a19875b84a6ffb6bf87b30f151c27aaa06f360266c1d4ae1d +++ /dev/null @@ -1,2 +0,0 @@ -I"H

Recently I had to write a file uploader for AWS S3 in node.

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/25/4f73d86242e65a8772b6e9724619aab1da63b1df869f2f3b8c9464dbd9b611 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/25/4f73d86242e65a8772b6e9724619aab1da63b1df869f2f3b8c9464dbd9b611 deleted file mode 100644 index 5245025..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/25/4f73d86242e65a8772b6e9724619aab1da63b1df869f2f3b8c9464dbd9b611 +++ /dev/null @@ -1,2 +0,0 @@ -I"N

got some downtime so how’s about we starts ourselves a blog …

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/28/409282bc7b120130c52502bbf529c1f4888a953e7404ed794fc89f19ad0b40 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/28/409282bc7b120130c52502bbf529c1f4888a953e7404ed794fc89f19ad0b40 deleted file mode 100644 index ea85f17..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/28/409282bc7b120130c52502bbf529c1f4888a953e7404ed794fc89f19ad0b40 +++ /dev/null @@ -1,2 +0,0 @@ -I"†

I’m a software dev with Go, Javascript and C#. I’m writing this blog to better at writing and to document my explorations.

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/39/10527bad802f5b463cf43eff4825977cf595078493d02f3cbf7409f0098e86 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/39/10527bad802f5b463cf43eff4825977cf595078493d02f3cbf7409f0098e86 deleted file mode 100644 index d225893..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/39/10527bad802f5b463cf43eff4825977cf595078493d02f3cbf7409f0098e86 +++ /dev/null @@ -1,222 +0,0 @@ -I"b.

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. -Here’s a way to get several of them installed into your unix user directory. -If things go wrong, or you get bored you can easily rm -rf the installation.

- -

Initial Install

-

Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.

-
john@BigBox:~/git/JohnCSimon.github.io$  sudo docker run -ti debian /bin/bash
-Unable to find image 'debian:latest' locally
-latest: Pulling from library/debian
-cd8eada9c7bb: Pull complete
-Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5
-Status: Downloaded newer image for debian:latest
-root@6d933dddbbcd:/#
-
-

Just to satisfy my OCD let’s get the latest updates.

- -

apt update && apt upgrade -y

- -

apt install gnupg2 curl procps -y - Installs gpg2, curl and ps

- -

ruby

-

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

- -

\curl -sSL https://get.rvm.io | bash -s stable

- -

To start using RVM you need to run source /etc/profile.d/rvm.sh or re-login to re-load ~/.profile

- -

From here you can run - rvm list known and you’ll see a list of ruby flavors and individual versions.

- -
# MRI Rubies
-[ruby-]1.8.6[-p420]
-[ruby-]1.8.7[-head] # security released on head
-[ruby-]1.9.1[-p431]
-[ruby-]1.9.2[-p330]
-[ruby-]1.9.3[-p551]
-[ruby-]2.0.0[-p648]
-[ruby-]2.1[.10]
-[ruby-]2.2[.10]
-[ruby-]2.3[.8]
-[ruby-]2.4[.5]
-[ruby-]2.5[.3]
-[ruby-]2.6[.0]
-
- -

MRI Ruby is the reference version of Ruby so let’s install the latest version.

- -

rvm install ruby-2.6.0

- -

I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.

- -

Congrats, you now have a ruby install

- -
$ ruby -v
-ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
-
- -

from here you can now do whatever since I’m blogging this using jekyll

- -

gem install bundler jekyll

- -

go

-

Go is a language that releases new versions on a regular basis. -There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here https://github.com/moovweb/gvm that’ll let you install multiple versions and set $GOPATH and $GOROOT.

- -

as a regular user:

-
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
-Cloning from https://github.com/moovweb/gvm.git to /root/.gvm
-No existing Go versions detected
-Installed GVM v1.0.22
-
-Please restart your terminal session or to get started right away run
- `source /root/.gvm/scripts/gvm`
-
- -

you should be able to run and see

-
$ gvm version
-Go Version Manager v1.0.22 installed at /home/john/.gvm
-
- -

Run gvm listall -which will give you a list of all the available versions of go.

- -
$gvm listall
-
-gvm gos (available)
-
-   go1
-   go1.0.1
-   ...
-   go1.11rc1
-   go1.11rc2
-   go1.11.1
-   go1.11.2
-   go1.11.3
-   go1.11.4
-   go1.12beta1
-   go1.12beta2
-
-

of which there are entirely too many.

- -

From here, we can install go as our user via binary here:

- -

gvm install go1.4 -B

- -

try it out

-
$ go version
-go version go1.4 linux/amd64
-
-

We can see it gets installed here:

-
$ echo $GOROOT
-/home/john/.gvm/gos/go1.4
-
- -

From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. -Go compiles itself! Neat huh?

- -

As of now the latest version is go1.11.4

-
$ export GOROOT_BOOTSTRAP=$GOROOT
-$ gvm install go1.11.4
-
- -
$ go version
-go version go1.4 linux/amd64
-
-

you can run -gvm use - select a go version to use (--default to set permanently)

- -
$ gvm use go1.11.4 --default
-Now using version go1.11.4
-$ go version
-go version go1.11.4 linux/amd64
-$ echo $GOROOT
-/home/john/.gvm/gos/go1.11.4
-$ echo $GOPATH
-/home/john/.gvm/pkgsets/go1.11.4/global
-$ ls /home/john/.gvm/gos/go1.11.4
-AUTHORS  CONTRIBUTING.md  CONTRIBUTORS  LICENSE  PATENTS  README.md  VERSION  api  bin  doc  favicon.ico  lib  manifest  misc  pkg  robots.txt  src  test
-ls $GOPATH
-overlay  pkg  src
-
- -

Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.

- -

node js

-

node.js, the server side javascript framework

- -

nvm is Node Version Manager. Install it like this: -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

- -

Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.

- -

You can run nvm ls-remote and get a list of all the node versions available

- -
$ nvm
-Example:
-  nvm install 8.0.0                     Install a specific version number
-  nvm use 8.0                           Use the latest available 8.0.x release
-  nvm run 6.10.3 app.js                 Run app.js using node 6.10.3
-  nvm exec 4.8.3 node app.js            Run `node app.js` with the PATH pointing to node 4.8.3
-  nvm alias default 8.1.0               Set default node version on a shell
-  nvm alias default node                Always default to the latest available node version on a shell
-
- -

so if you run

- -
$ nvm install 10
-Downloading and installing node v10.15.0...
-Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz...
-######################################################################## 100.0%
-Computing checksum with sha256sum
-Checksums matched!
-Now using node v10.15.0 (npm v6.4.1)
-Creating default alias: default -> 10 (-> v10.15.0)
-
-$ whereis node
-node: /home/john/.nvm/versions/node/v10.15.0/bin/node
-
- -

and you can set it to be the default so the setting persists between sessions

-
nvm alias default 10
-
- -

So now you can run:

-
$ node -v
-v10.15.0
-$ npm -v
-6.4.1
-
- -

rust

-

Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.

- -
curl https://sh.rustup.rs -sSf | sh
-
-
-
-Current installation options:
-
-   default host triple: x86_64-unknown-linux-gnu
-     default toolchain: stable
-  modify PATH variable: yes
-
-1) Proceed with installation (default)
-2) Customize installation
-3) Cancel installation
->
-
-select 1 
-
-To configure your current shell run source $HOME/.cargo/env
-
- -

add $HOME/.cargo/env to your path in .bashrc

- -
$ whereis cargo
-cargo: /home/john/.cargo/bin/cargo
-$ whereis rustc
-cargo: /home/john/.cargo/bin/rustc
-
- -:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3b/7acab97e28d6e6622b24af72b2520376a93d9dbb3d6cdf57d927a166fb4c2f b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3b/7acab97e28d6e6622b24af72b2520376a93d9dbb3d6cdf57d927a166fb4c2f deleted file mode 100644 index b368357..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3b/7acab97e28d6e6622b24af72b2520376a93d9dbb3d6cdf57d927a166fb4c2f +++ /dev/null @@ -1,4 +0,0 @@ -I"¦

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. -Here’s a way to get several of them installed into your unix user directory. -If things go wrong, or you get bored you can easily rm -rf the installation.

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/48/3bf5d010bfcbf2c17a7d5fcaa24b376f795bc6c7c4dce95d7424349e10f11e b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/48/3bf5d010bfcbf2c17a7d5fcaa24b376f795bc6c7c4dce95d7424349e10f11e deleted file mode 100644 index dee9687..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/48/3bf5d010bfcbf2c17a7d5fcaa24b376f795bc6c7c4dce95d7424349e10f11e +++ /dev/null @@ -1,2 +0,0 @@ -I"H

Recently I had to write a file uploader for AWS S3 in node.

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4a/f9d3f394514d00bfb64e9128905bae0c8f75d33029ac7545b542560c11ba4b b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4a/f9d3f394514d00bfb64e9128905bae0c8f75d33029ac7545b542560c11ba4b deleted file mode 100644 index b46b827..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4a/f9d3f394514d00bfb64e9128905bae0c8f75d33029ac7545b542560c11ba4b +++ /dev/null @@ -1,2 +0,0 @@ -I"

Hope this works

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4f/172dedf2c78d58bc7abc2727d439a6b79a592e30af596984d6ba749ed75c4f b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4f/172dedf2c78d58bc7abc2727d439a6b79a592e30af596984d6ba749ed75c4f deleted file mode 100644 index f9b3f95..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4f/172dedf2c78d58bc7abc2727d439a6b79a592e30af596984d6ba749ed75c4f +++ /dev/null @@ -1,66 +0,0 @@ -I"Ļ

Recently I had to write a file uploader for AWS S3 in node.

- -

-const AWS = require('aws-sdk');
-const s3 = new AWS.S3({ signatureVersion: 'v4' });
-
-const uploadToS3 = async () => {
-  const parameters = {
-    Bucket: s3Bucket,
-    Body: fileData,
-  };
-
-  try {
-    const { Location } = await s3.upload(parameters).promise();
-    return Location;
-  } catch (e) {
-    process.exit(1);
-  }
-};
-
- -

It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other HTTP 400 - Bad Request errors coming out of the S3 service.

- -

Is there anything that can help guarantee your calls to upload are legit with some sort of type checking?

- -

You’ve probably heard of the type annotated javascript superset language TypeScript and its supplementary type definition repository Definitely Typed, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate .ts files, and modifications to your build process. Is there any way to get this without futzing with your existing project?

- -

If you’re using the Visual Studio Code editor it turns out you can enable type checking on a per-file basis by adding the comment to the beginning of the file

-
// @ts-check
-
-

to the beginning of your file. -typeerror

- -

The parameters variable is highlighted in red, and when you mouseover it you’ll see:

- -
Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'.
-  Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345)
-s3.d.ts(3640, 5): 'Key' is declared here.
-const parameters: {
-    Bucket: string;
-    Body: string;
-}
-
-

There are a bunch of things happening here!

- -

It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that s3.upload takes is called PutObjectRequest. The Type Script compiler is kvetching over a missing required field it needs to say the parameters variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.

- -

When you add the Key parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.

- -

The same checking is useful for output types.

-
  const { Location } = await s3.upload(parameters).promise();
-
-

You can mouseover s3.upload and see it returns a type of AWS.S3.ManagedUpload.SendData, which means the destructuring operation { Location } is guaranteed to work and Location will be populated.

- -

Links:

- -

Type Annotation and Checking within javascript - https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files

- -

JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt

- -

http://usejsdoc.org/tags-type.html

- -

More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.

- -:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/76/89113e0a6db01db8321bf6484d186528dfc0b31d2400a58e34856aa7041eba b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/76/89113e0a6db01db8321bf6484d186528dfc0b31d2400a58e34856aa7041eba deleted file mode 100644 index 8a377ae..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/76/89113e0a6db01db8321bf6484d186528dfc0b31d2400a58e34856aa7041eba +++ /dev/null @@ -1,2 +0,0 @@ -I"-

Blah blah blah blah okay okay !!

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/b977dfb149b40c8b64579d564b6bcc0c020d9791b2d33da568d67db4405be6 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/b977dfb149b40c8b64579d564b6bcc0c020d9791b2d33da568d67db4405be6 deleted file mode 100644 index 8a377ae..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/b977dfb149b40c8b64579d564b6bcc0c020d9791b2d33da568d67db4405be6 +++ /dev/null @@ -1,2 +0,0 @@ -I"-

Blah blah blah blah okay okay !!

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/67915f405b1b58b7e972bfa6bec1f96439cfb21dd68bbc76541b7a9fac8d63 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/67915f405b1b58b7e972bfa6bec1f96439cfb21dd68bbc76541b7a9fac8d63 deleted file mode 100644 index 82caec6..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/97/67915f405b1b58b7e972bfa6bec1f96439cfb21dd68bbc76541b7a9fac8d63 +++ /dev/null @@ -1,2 +0,0 @@ -I"7

Gradual Typing With Javascript and VS Code

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/a5d4c8932742435b43783e6315f70f0e557f161b4d49ec8365a1c7f8a68661 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/a5d4c8932742435b43783e6315f70f0e557f161b4d49ec8365a1c7f8a68661 deleted file mode 100644 index fd549fd..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/a5d4c8932742435b43783e6315f70f0e557f161b4d49ec8365a1c7f8a68661 +++ /dev/null @@ -1,2 +0,0 @@ -I"+

🌲 johncsimon.github.io 🐦

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 deleted file mode 100644 index e135808..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +++ /dev/null @@ -1,2 +0,0 @@ -I" -:EF \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/66593c605d2558dd7641a3ec129bc92d9fc48b19eea4fe7e0d5f2f5a67b69c b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/66593c605d2558dd7641a3ec129bc92d9fc48b19eea4fe7e0d5f2f5a67b69c deleted file mode 100644 index b368357..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/66593c605d2558dd7641a3ec129bc92d9fc48b19eea4fe7e0d5f2f5a67b69c +++ /dev/null @@ -1,4 +0,0 @@ -I"¦

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. -Here’s a way to get several of them installed into your unix user directory. -If things go wrong, or you get bored you can easily rm -rf the installation.

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fa/4279ae7d32fa586eed1fe0a04364cba17a92c68f9530bf0541bc7f96b5197e b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fa/4279ae7d32fa586eed1fe0a04364cba17a92c68f9530bf0541bc7f96b5197e deleted file mode 100644 index a7e0bec..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fa/4279ae7d32fa586eed1fe0a04364cba17a92c68f9530bf0541bc7f96b5197e +++ /dev/null @@ -1,2 +0,0 @@ -I"I

The Perspicacious Polyglot’s Programming Language Plethora

-:ET \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..878d942 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM ruby:3.4 + +# Set the working directory +WORKDIR /site + +# Copy the site files +COPY . /site + +# Install site dependencies +RUN bundle install + +# Build the site +RUN bundle exec jekyll build + +# Copy the built site to a separate directory +RUN mkdir /output && cp -r _site/* /output/ + +# Expose Jekyll default port +EXPOSE 4000 + +# Serve the site +CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0", "--watch", "--drafts"] diff --git a/.gitignore b/blog/.gitignore similarity index 100% rename from .gitignore rename to blog/.gitignore diff --git a/.nojekyll b/blog/.nojekyll similarity index 100% rename from .nojekyll rename to blog/.nojekyll diff --git a/404.html b/blog/404.html similarity index 100% rename from 404.html rename to blog/404.html diff --git a/Gemfile b/blog/Gemfile similarity index 100% rename from Gemfile rename to blog/Gemfile diff --git a/Gemfile.lock b/blog/Gemfile.lock similarity index 100% rename from Gemfile.lock rename to blog/Gemfile.lock diff --git a/_config.yml b/blog/_config.yml similarity index 100% rename from _config.yml rename to blog/_config.yml diff --git a/_posts/2018-12-30-javascript-gradual-typing.markdown b/blog/_posts/2018-12-30-javascript-gradual-typing.markdown similarity index 100% rename from _posts/2018-12-30-javascript-gradual-typing.markdown rename to blog/_posts/2018-12-30-javascript-gradual-typing.markdown diff --git a/_posts/2019-1-16-polyglot-setup.markdown b/blog/_posts/2019-1-16-polyglot-setup.markdown similarity index 100% rename from _posts/2019-1-16-polyglot-setup.markdown rename to blog/_posts/2019-1-16-polyglot-setup.markdown diff --git a/_posts/2025-2-2-blah.markdown b/blog/_posts/2025-2-2-blah.markdown similarity index 100% rename from _posts/2025-2-2-blah.markdown rename to blog/_posts/2025-2-2-blah.markdown diff --git a/about.md b/blog/about.md similarity index 100% rename from about.md rename to blog/about.md diff --git a/index.md b/blog/index.md similarity index 100% rename from index.md rename to blog/index.md diff --git a/docs/javascript/2018/12/29/typeError.png b/blog/javascript/2018/12/29/typeError.png similarity index 100% rename from docs/javascript/2018/12/29/typeError.png rename to blog/javascript/2018/12/29/typeError.png diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..58f3c67 --- /dev/null +++ b/build.sh @@ -0,0 +1,4 @@ +docker build -t github-pages-local . +docker create --name temp-container github-pages-local +docker cp temp-container:/output ./docs +docker rm temp-container diff --git a/docs/404.html b/docs/404.html deleted file mode 100644 index be3f2d9..0000000 --- a/docs/404.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - 🌲 johncsimon.github.io 🐦 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-

404

- -

Page not found :(

-

The requested page could not be found.

-
- - - -
-
- - - - - diff --git a/docs/about/index.html b/docs/about/index.html deleted file mode 100644 index b9f0283..0000000 --- a/docs/about/index.html +++ /dev/null @@ -1 +0,0 @@ -

I’m a software dev with Go, Javascript and C#. I’m writing this blog to better at writing and to document my explorations.

diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css deleted file mode 100644 index d55c7ed..0000000 --- a/docs/assets/css/main.css +++ /dev/null @@ -1,3 +0,0 @@ -html{height:100%}body{font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1.0rem;line-height:2;margin:0;min-height:100%}h2,h3,h4,h5{margin-top:1.5em}hr{margin:1em 0}hr.page-break{text-align:center;border:0}hr.page-break:before{content:'-----'}hr.page-break:after{content:attr(data-content) "-----"}p{margin:1em 0}li{margin:0.4em 0}.w{max-width:720px;margin:0 auto;padding:4em 2em}table,th,td{width:100%;border:thin solid black;border-collapse:collapse;padding:0.4em}div.highlighter-rouge code,code.highlighter-rouge{display:block;overflow-x:auto;padding:1em}blockquote{font-style:italic;border:thin solid black;padding:1em}blockquote p{margin:0}img{max-width:100%;display:block;margin:0 auto}html{--bg: #FFF;--bg-secondary: #F8F9FA;--headings: #000;--text: #333;--links: blue;--highlight: #FFECB2}html[data-theme="dark"] html,html[data-theme="dark"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd}@media (prefers-color-scheme: dark){body[data-theme="auto"] html,body[data-theme="auto"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd}}html,body{background-color:var(--bg);color:var(--text)}h1,h2,h3,h4,h5,h6{color:var(--headings)}p,strong,b,em,small,li,hr,table,code,figcaption{color:var(--text)}code,blockquote{background-color:var(--bg-secondary);border:1px var(--text) solid}a{color:var(--links)}*:target{background-color:var(--bg-secondary)}html.transition,html.transition *,html.transition *:before,html.transition *:after{transition:all 250ms !important;transition-delay:0 !important}.theme-toggle{color:var(--text);background-color:transparent;padding:4px;cursor:pointer;margin:1em;position:fixed;right:0;top:0;border:2px transparent solid;outline:none}.theme-toggle:hover{color:var(--links);outline:none}.theme-toggle:focus{outline:none}.dashed{border-top:1px var(--text) dashed;margin:0.5em 0}mark{padding:0.4em;background-color:var(--highlight);font-size:0.7em}.post-date{color:var(--headings);margin-right:2em}.share{color:var(--text)}.home-date{font-family:monospace}.post-list-item a{text-decoration:none}.text-bold{font-weight:bold}.text-upcase{text-transform:uppercase}ul.horizontal-list{display:flex;margin-top:0em;margin-left:-40px;flex-wrap:wrap}ul.horizontal-list li{display:inline;margin-right:1em}ul.horizontal-list li a{text-decoration:none;font-weight:normal}.card{padding:1em;border:1px var(--text) solid;width:11em;height:11em;text-align:center;font-size:1em;align-items:center;background-color:var(--bg-secondary);margin-bottom:0.8em}.card .header{color:var(--links)}.card .body{font-size:0.8em}.card hr{margin:0.5em 0}@media screen and (max-width: 600px){ul.horizontal-list li.card{width:100%;display:block;margin-bottom:1em;margin-left:1em}ul.horizontal-list li.card a,ul.horizontal-list li.card .header{font-size:1em}} - -/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/docs/assets/css/main.css.map b/docs/assets/css/main.css.map deleted file mode 100644 index 4fca972..0000000 --- a/docs/assets/css/main.css.map +++ /dev/null @@ -1,16 +0,0 @@ -{ - "version": 3, - "file": "main.css", - "sources": [ - "main.scss", - "../../../../opt/homebrew/lib/ruby/gems/3.4.0/gems/moonwalk-0.0.2/_sass/moonwalk.scss", - "../../../../opt/homebrew/lib/ruby/gems/3.4.0/gems/moonwalk-0.0.2/_sass/list.scss" - ], - "sourcesContent": [ - "@import \"moonwalk\";\n@import \"list\";\n", - "html { height: 100%; }\n\nbody {\n font-family: -apple-system,system-ui,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;\n font-size: 1.0rem;\n line-height: 2;\n margin: 0;\n min-height: 100%;\n}\n\nh2, h3, h4, h5 { margin-top: 1.5em; }\n\nhr { margin: 1em 0; }\n\nhr.page-break {\n text-align: center;\n border: 0;\n\n &:before { content: '-----' }\n &:after { content: attr(data-content) '-----' }\n}\n\np { margin: 1em 0; }\n\nli { margin: 0.4em 0; }\n\n.w {\n max-width: 720px;\n margin: 0 auto;\n padding: 4em 2em;\n}\n\ntable, th, td {\n width: 100%;\n border: thin solid black;\n border-collapse: collapse;\n padding: 0.4em;\n}\n\ndiv.highlighter-rouge code, code.highlighter-rouge {\n display: block;\n overflow-x: auto;\n padding: 1em;\n}\n\nblockquote {\n font-style: italic;\n border: thin solid black;\n padding: 1em;\n\n p { margin: 0; }\n}\n\nimg {\n max-width: 100%;\n display: block;\n margin: 0 auto;\n}\nhtml {\n --bg: #FFF;\n --bg-secondary: #F8F9FA;\n --headings: #000;\n --text: #333;\n --links: blue;\n //--highlight: #FFD19B;\n --highlight: #FFECB2; // light yellow\n}\n// -------------- THEME SWITCHER -------------- //\n@mixin dark-appearance {\n html, body {\n --headings: #74c0fc;\n --links: #91A7FF;\n --highlight: #41C7C7;\n --bg: #1f242A;\n --bg-secondary: #323945;\n --text: #adb5bd;\n };\n}\nhtml[data-theme=\"dark\"] { @include dark-appearance; }\n\n@media (prefers-color-scheme: dark) {\n body[data-theme=\"auto\"] { @include dark-appearance; }\n}\n// -------------------------------------------- //\n\nhtml, body {\n background-color: var(--bg);\n color: var(--text);\n}\nh1, h2, h3, h4, h5, h6 {\n color: var(--headings);\n}\np, strong, b, em, small, li, hr, table, code, figcaption {\n color: var(--text);\n}\ncode, blockquote {\n background-color: var(--bg-secondary);\n border: 1px var(--text) solid;\n}\na {\n color: var(--links);\n}\n*:target { background-color: var(--bg-secondary); }\n\nhtml.transition,\nhtml.transition *,\nhtml.transition *:before,\nhtml.transition *:after {\n transition: all 250ms !important;\n transition-delay: 0 !important;\n}\n\n.theme-toggle {\n color: var(--text);\n background-color: transparent;\n padding: 4px;\n cursor: pointer;\n margin: 1em;\n position: fixed;\n right: 0;\n top: 0;\n border: 2px transparent solid;\n outline: none;\n}\n\n.theme-toggle:hover {\n color: var(--links);\n outline: none;\n}\n.theme-toggle:focus {\n outline: none;\n}\n.dashed {\n border-top: 1px var(--text) dashed;\n margin: 0.5em 0;\n}\nmark {\n padding: 0.4em;\n background-color: var(--highlight);\n font-size: 0.7em;\n}\n\n.post-date {\n color: var(--headings);\n margin-right: 2em;\n}\n.share {\n color: var(--text);\n}\n.home-date {\n font-family: monospace;\n}\n.post-list-item a {\n text-decoration: none;\n}\n.text-bold {\n font-weight: bold;\n}\n.text-upcase {\n text-transform: uppercase;\n}\n", - "ul.horizontal-list {\n display: flex;\n //justify-content: space-between;\n margin-top: 0em;\n margin-left: -40px;\n flex-wrap: wrap;\n\n li {\n display:inline;\n margin-right: 1em;\n }\n\n li a {\n text-decoration: none;\n font-weight: normal\n }\n\n}\n\n.card {\n padding: 1em;\n border: 1px var(--text) solid;\n width: 11em;\n height: 11em;\n text-align: center;\n font-size: 1em;\n align-items: center;\n background-color: var(--bg-secondary);\n margin-bottom: 0.8em;\n\n .header {\n color: var(--links);\n }\n\n .body {\n font-size: 0.8em;\n }\n\n hr {\n margin: 0.5em 0;\n }\n\n}\n\n/* Responsive cards - one column layout on small screens */\n@media screen and (max-width: 600px) {\n ul.horizontal-list li.card {\n width: 100%;\n display: block;\n margin-bottom: 1em;\n margin-left: 1em;\n a, .header {\n font-size: 1em;\n }\n }\n}\n" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/docs/feed.xml b/docs/feed.xml deleted file mode 100644 index 776ee5e..0000000 --- a/docs/feed.xml +++ /dev/null @@ -1,283 +0,0 @@ -Jekyll2025-02-09T00:04:05-08:00https://www.abhinavsaxena.com/moonwalk/feed.xml🌲 johncsimon.github.io 🐦got some downtime so how's about we starts ourselves a blog ...Abhinav SaxenaHope this works2025-02-08T10:04:18-08:002025-02-08T10:04:18-08:00https://www.abhinavsaxena.com/moonwalk/utilities/2025/02/08/blah<p>Blah blah blah blah okay okay !!</p>Abhinav SaxenaBlah blah blah blah okay okay !!The Perspicacious Polyglot’s Programming Language Plethora2019-01-17T11:40:43-08:002019-01-17T11:40:43-08:00https://www.abhinavsaxena.com/moonwalk/polyglot/2019/01/17/polyglot-setup<p>I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. -Here’s a way to get several of them installed into your unix user directory. -If things go wrong, or you get bored you can easily <code class="language-plaintext highlighter-rouge">rm -rf</code> the installation.</p> - -<h1 id="initial-install">Initial Install</h1> -<p>Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.</p> -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>john@BigBox:~/git/JohnCSimon.github.io<span class="nv">$ </span> <span class="nb">sudo </span>docker run <span class="nt">-ti</span> debian /bin/bash -Unable to find image <span class="s1">'debian:latest'</span> locally -latest: Pulling from library/debian -cd8eada9c7bb: Pull <span class="nb">complete -</span>Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5 -Status: Downloaded newer image <span class="k">for </span>debian:latest -root@6d933dddbbcd:/# -</code></pre></div></div> -<p>Just to satisfy my OCD let’s get the latest updates.</p> - -<p><code class="language-plaintext highlighter-rouge">apt update &amp;&amp; apt upgrade -y</code></p> - -<p><code class="language-plaintext highlighter-rouge">apt install gnupg2 curl procps -y</code> - Installs gpg2, curl and ps</p> - -<h1 id="ruby">ruby</h1> -<p><code class="language-plaintext highlighter-rouge">gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB</code></p> - -<p><code class="language-plaintext highlighter-rouge">\curl -sSL https://get.rvm.io | bash -s stable</code></p> - -<p>To start using RVM you need to run <code class="language-plaintext highlighter-rouge">source /etc/profile.d/rvm.sh</code> or re-login to re-load <code class="language-plaintext highlighter-rouge">~/.profile</code></p> - -<p>From here you can run - <code class="language-plaintext highlighter-rouge">rvm list known</code> and you’ll see a list of ruby flavors and individual versions.</p> - -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># MRI Rubies</span> -<span class="o">[</span>ruby-]1.8.6[-p420] -<span class="o">[</span>ruby-]1.8.7[-head] <span class="c"># security released on head</span> -<span class="o">[</span>ruby-]1.9.1[-p431] -<span class="o">[</span>ruby-]1.9.2[-p330] -<span class="o">[</span>ruby-]1.9.3[-p551] -<span class="o">[</span>ruby-]2.0.0[-p648] -<span class="o">[</span>ruby-]2.1[.10] -<span class="o">[</span>ruby-]2.2[.10] -<span class="o">[</span>ruby-]2.3[.8] -<span class="o">[</span>ruby-]2.4[.5] -<span class="o">[</span>ruby-]2.5[.3] -<span class="o">[</span>ruby-]2.6[.0] -</code></pre></div></div> - -<p>MRI Ruby is the reference version of Ruby so let’s install the latest version.</p> - -<p><code class="language-plaintext highlighter-rouge">rvm install ruby-2.6.0</code></p> - -<p>I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.</p> - -<p>Congrats, you now have a ruby install</p> - -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>ruby <span class="nt">-v</span> -ruby 2.6.0p0 <span class="o">(</span>2018-12-25 revision 66547<span class="o">)</span> <span class="o">[</span>x86_64-linux] -</code></pre></div></div> - -<p>from here you can now do whatever since I’m blogging this using jekyll</p> - -<p><code class="language-plaintext highlighter-rouge">gem install bundler jekyll</code></p> - -<h1 id="go">go</h1> -<p>Go is a language that releases new versions on a regular basis. -There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here <code class="language-plaintext highlighter-rouge">https://github.com/moovweb/gvm</code> that’ll let you install multiple versions and set $GOPATH and $GOROOT.</p> - -<p>as a regular user:</p> -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bash &lt; &lt;<span class="o">(</span>curl <span class="nt">-s</span> <span class="nt">-S</span> <span class="nt">-L</span> https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer<span class="o">)</span> -Cloning from https://github.com/moovweb/gvm.git to /root/.gvm -No existing Go versions detected -Installed GVM v1.0.22 - -Please restart your terminal session or to get started right away run - <span class="sb">`</span><span class="nb">source</span> /root/.gvm/scripts/gvm<span class="sb">`</span> -</code></pre></div></div> - -<p>you should be able to run and see</p> -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gvm version -Go Version Manager v1.0.22 installed at /home/john/.gvm -</code></pre></div></div> - -<p>Run <code class="language-plaintext highlighter-rouge">gvm listall</code> -which will give you a list of all the available versions of go.</p> - -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$gvm</span> listall - -gvm gos <span class="o">(</span>available<span class="o">)</span> - - go1 - go1.0.1 - ... - go1.11rc1 - go1.11rc2 - go1.11.1 - go1.11.2 - go1.11.3 - go1.11.4 - go1.12beta1 - go1.12beta2 -</code></pre></div></div> -<p>of which there are entirely too many.</p> - -<p>From here, we can install go as our user via binary here:</p> - -<p><code class="language-plaintext highlighter-rouge">gvm install go1.4 -B</code></p> - -<p>try it out</p> -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>go version -go version go1.4 linux/amd64 -</code></pre></div></div> -<p>We can see it gets installed here:</p> -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOROOT</span> -/home/john/.gvm/gos/go1.4 -</code></pre></div></div> - -<p>From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. -Go compiles itself! Neat huh?</p> - -<p>As of now the latest version is go1.11.4</p> -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">export </span><span class="nv">GOROOT_BOOTSTRAP</span><span class="o">=</span><span class="nv">$GOROOT</span> -<span class="nv">$ </span>gvm <span class="nb">install </span>go1.11.4 -</code></pre></div></div> - -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>go version -go version go1.4 linux/amd64 -</code></pre></div></div> -<p>you can run -<code class="language-plaintext highlighter-rouge">gvm use - select a go version to use (--default to set permanently)</code></p> - -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gvm use go1.11.4 <span class="nt">--default</span> -Now using version go1.11.4 -<span class="nv">$ </span>go version -go version go1.11.4 linux/amd64 -<span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOROOT</span> -/home/john/.gvm/gos/go1.11.4 -<span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOPATH</span> -/home/john/.gvm/pkgsets/go1.11.4/global -<span class="nv">$ </span><span class="nb">ls</span> /home/john/.gvm/gos/go1.11.4 -AUTHORS CONTRIBUTING.md CONTRIBUTORS LICENSE PATENTS README.md VERSION api bin doc favicon.ico lib manifest misc pkg robots.txt src <span class="nb">test -ls</span> <span class="nv">$GOPATH</span> -overlay pkg src -</code></pre></div></div> - -<p>Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.</p> - -<h1 id="node-js">node js</h1> -<p>node.js, the server side javascript framework</p> - -<p>nvm is Node Version Manager. Install it like this: -<code class="language-plaintext highlighter-rouge">curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash</code></p> - -<p>Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.</p> - -<p>You can run <code class="language-plaintext highlighter-rouge">nvm ls-remote</code> and get a list of all the node versions available</p> - -<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ nvm -Example: - nvm install 8.0.0 Install a specific version number - nvm use 8.0 Use the latest available 8.0.x release - nvm run 6.10.3 app.js Run app.js using node 6.10.3 - nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3 - nvm alias default 8.1.0 Set default node version on a shell - nvm alias default node Always default to the latest available node version on a shell -</code></pre></div></div> - -<p>so if you run</p> - -<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>nvm <span class="nb">install </span>10 -Downloading and installing node v10.15.0... -Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz... -<span class="c">######################################################################## 100.0%</span> -Computing checksum with <span class="nb">sha256sum -</span>Checksums matched! -Now using node v10.15.0 <span class="o">(</span>npm v6.4.1<span class="o">)</span> -Creating default <span class="nb">alias</span>: default -&gt; 10 <span class="o">(</span>-&gt; v10.15.0<span class="o">)</span> - -<span class="nv">$ </span>whereis node -node: /home/john/.nvm/versions/node/v10.15.0/bin/node -</code></pre></div></div> - -<p>and you can set it to be the default so the setting persists between sessions</p> -<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>nvm alias default 10 -</code></pre></div></div> - -<p>So now you can run:</p> -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>node <span class="nt">-v</span> -v10.15.0 -<span class="nv">$ </span>npm <span class="nt">-v</span> -6.4.1 -</code></pre></div></div> - -<h1 id="rust">rust</h1> -<p>Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.</p> - -<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl https://sh.rustup.rs -sSf | sh - - - -Current installation options: - - default host triple: x86_64-unknown-linux-gnu - default toolchain: stable - modify PATH variable: yes - -1) Proceed with installation (default) -2) Customize installation -3) Cancel installation -&gt; - -select 1 - -To configure your current shell run source $HOME/.cargo/env -</code></pre></div></div> - -<p>add <code class="language-plaintext highlighter-rouge">$HOME/.cargo/env</code> to your path in .bashrc</p> - -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>whereis cargo -cargo: /home/john/.cargo/bin/cargo -<span class="nv">$ </span>whereis rustc -cargo: /home/john/.cargo/bin/rustc -</code></pre></div></div>Abhinav SaxenaI like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. Here’s a way to get several of them installed into your unix user directory. If things go wrong, or you get bored you can easily rm -rf the installation.Gradual Typing With Javascript and VS Code2018-12-29T11:40:43-08:002018-12-29T11:40:43-08:00https://www.abhinavsaxena.com/moonwalk/javascript/2018/12/29/javascript-gradual-typing<p>Recently I had to write a file uploader for AWS S3 in node.</p> - -<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code> -<span class="kd">const</span> <span class="nx">AWS</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="dl">'</span><span class="s1">aws-sdk</span><span class="dl">'</span><span class="p">);</span> -<span class="kd">const</span> <span class="nx">s3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">AWS</span><span class="p">.</span><span class="nx">S3</span><span class="p">({</span> <span class="na">signatureVersion</span><span class="p">:</span> <span class="dl">'</span><span class="s1">v4</span><span class="dl">'</span> <span class="p">});</span> - -<span class="kd">const</span> <span class="nx">uploadToS3</span> <span class="o">=</span> <span class="k">async</span> <span class="p">()</span> <span class="o">=&gt;</span> <span class="p">{</span> - <span class="kd">const</span> <span class="nx">parameters</span> <span class="o">=</span> <span class="p">{</span> - <span class="na">Bucket</span><span class="p">:</span> <span class="nx">s3Bucket</span><span class="p">,</span> - <span class="na">Body</span><span class="p">:</span> <span class="nx">fileData</span><span class="p">,</span> - <span class="p">};</span> - - <span class="k">try</span> <span class="p">{</span> - <span class="kd">const</span> <span class="p">{</span> <span class="nx">Location</span> <span class="p">}</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">s3</span><span class="p">.</span><span class="nx">upload</span><span class="p">(</span><span class="nx">parameters</span><span class="p">).</span><span class="nx">promise</span><span class="p">();</span> - <span class="k">return</span> <span class="nx">Location</span><span class="p">;</span> - <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">process</span><span class="p">.</span><span class="nx">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> - <span class="p">}</span> -<span class="p">};</span> -</code></pre></div></div> - -<p>It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other <code class="language-plaintext highlighter-rouge">HTTP 400 - Bad Request</code> errors coming out of the S3 service.</p> - -<p><strong>Is there anything that can help guarantee your calls to <code class="language-plaintext highlighter-rouge">upload</code> are legit with some sort of type checking?</strong></p> - -<p>You’ve probably heard of the type annotated javascript superset language <a href="https://www.typescriptlang.org/">TypeScript</a> and its supplementary type definition repository <a href="http://definitelytyped.org/">Definitely Typed</a>, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate <code class="language-plaintext highlighter-rouge">.ts</code> files, and modifications to your build process. Is there any way to get this without futzing with your existing project?</p> - -<p>If you’re using the Visual Studio Code editor it turns out you can enable <a href="https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files">type checking on a per-file basis</a> by adding the comment to the beginning of the file</p> -<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// @ts-check</span> -</code></pre></div></div> -<p>to the beginning of your file. -<img src="typeError.png" alt="typeerror" /></p> - -<p>The parameters variable is highlighted in red, and when you mouseover it you’ll see:</p> - -<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'. - Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345) -s3.d.ts(3640, 5): 'Key' is declared here. -const parameters: { - Bucket: string; - Body: string; -} -</code></pre></div></div> -<p>There are a bunch of things happening here!</p> - -<p>It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that <code class="language-plaintext highlighter-rouge">s3.upload</code> takes is called <code class="language-plaintext highlighter-rouge">PutObjectRequest</code>. The Type Script compiler is kvetching over a missing required field it needs to say the <code class="language-plaintext highlighter-rouge">parameters</code> variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.</p> - -<p>When you add the <code class="language-plaintext highlighter-rouge">Key</code> parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.</p> - -<p>The same checking is useful for output types.</p> -<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="kd">const</span> <span class="p">{</span> <span class="nx">Location</span> <span class="p">}</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">s3</span><span class="p">.</span><span class="nx">upload</span><span class="p">(</span><span class="nx">parameters</span><span class="p">).</span><span class="nx">promise</span><span class="p">();</span> -</code></pre></div></div> -<p>You can mouseover s3.upload and see it returns a type of <code class="language-plaintext highlighter-rouge">AWS.S3.ManagedUpload.SendData</code>, which means the destructuring operation <code class="language-plaintext highlighter-rouge">{ Location }</code> is guaranteed to work and Location will be populated.</p> - -<p>Links:</p> - -<p>Type Annotation and Checking within javascript - <code class="language-plaintext highlighter-rouge">https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files</code></p> - -<p>JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt</p> - -<p><code class="language-plaintext highlighter-rouge">http://usejsdoc.org/tags-type.html</code></p> - -<p>More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.</p>Abhinav SaxenaRecently I had to write a file uploader for AWS S3 in node. \ No newline at end of file diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 730a444..0000000 --- a/docs/index.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - 🌲 johncsimon.github.io 🐦 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
    - -
- -
- - -

🌲 johncsimon.github.io 🐦

- -

got some downtime so how's about we starts ourselves a blog ...

- -
- - -

Portfolio

-
    - -
- - - - - - -

Blog

- - - - - - -

Old Projects

-
    - -
- - - - - -
-
-
    - -
- -
- - - - -
-
- - - - - diff --git a/docs/javascript/2018/12/29/javascript-gradual-typing.html b/docs/javascript/2018/12/29/javascript-gradual-typing.html deleted file mode 100644 index 6402b2e..0000000 --- a/docs/javascript/2018/12/29/javascript-gradual-typing.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - Gradual Typing With Javascript and VS Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- home.. -

Gradual Typing With Javascript and VS Code

-

Recently I had to write a file uploader for AWS S3 in node.

- -

-const AWS = require('aws-sdk');
-const s3 = new AWS.S3({ signatureVersion: 'v4' });
-
-const uploadToS3 = async () => {
-  const parameters = {
-    Bucket: s3Bucket,
-    Body: fileData,
-  };
-
-  try {
-    const { Location } = await s3.upload(parameters).promise();
-    return Location;
-  } catch (e) {
-    process.exit(1);
-  }
-};
-
- -

It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other HTTP 400 - Bad Request errors coming out of the S3 service.

- -

Is there anything that can help guarantee your calls to upload are legit with some sort of type checking?

- -

You’ve probably heard of the type annotated javascript superset language TypeScript and its supplementary type definition repository Definitely Typed, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate .ts files, and modifications to your build process. Is there any way to get this without futzing with your existing project?

- -

If you’re using the Visual Studio Code editor it turns out you can enable type checking on a per-file basis by adding the comment to the beginning of the file

-
// @ts-check
-
-

to the beginning of your file. -typeerror

- -

The parameters variable is highlighted in red, and when you mouseover it you’ll see:

- -
Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'.
-  Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345)
-s3.d.ts(3640, 5): 'Key' is declared here.
-const parameters: {
-    Bucket: string;
-    Body: string;
-}
-
-

There are a bunch of things happening here!

- -

It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that s3.upload takes is called PutObjectRequest. The Type Script compiler is kvetching over a missing required field it needs to say the parameters variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.

- -

When you add the Key parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.

- -

The same checking is useful for output types.

-
  const { Location } = await s3.upload(parameters).promise();
-
-

You can mouseover s3.upload and see it returns a type of AWS.S3.ManagedUpload.SendData, which means the destructuring operation { Location } is guaranteed to work and Location will be populated.

- -

Links:

- -

Type Annotation and Checking within javascript - https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files

- -

JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt

- -

http://usejsdoc.org/tags-type.html

- -

More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.

- - - - - -
-
- - - - - diff --git a/docs/polyglot/2019/01/17/polyglot-setup.html b/docs/polyglot/2019/01/17/polyglot-setup.html deleted file mode 100644 index 6b0678a..0000000 --- a/docs/polyglot/2019/01/17/polyglot-setup.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - - - - The Perspicacious Polyglot's Programming Language Plethora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- home.. -

The Perspicacious Polyglot's Programming Language Plethora

-

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. -Here’s a way to get several of them installed into your unix user directory. -If things go wrong, or you get bored you can easily rm -rf the installation.

- -

Initial Install

-

Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.

-
john@BigBox:~/git/JohnCSimon.github.io$  sudo docker run -ti debian /bin/bash
-Unable to find image 'debian:latest' locally
-latest: Pulling from library/debian
-cd8eada9c7bb: Pull complete
-Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5
-Status: Downloaded newer image for debian:latest
-root@6d933dddbbcd:/#
-
-

Just to satisfy my OCD let’s get the latest updates.

- -

apt update && apt upgrade -y

- -

apt install gnupg2 curl procps -y - Installs gpg2, curl and ps

- -

ruby

-

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

- -

\curl -sSL https://get.rvm.io | bash -s stable

- -

To start using RVM you need to run source /etc/profile.d/rvm.sh or re-login to re-load ~/.profile

- -

From here you can run - rvm list known and you’ll see a list of ruby flavors and individual versions.

- -
# MRI Rubies
-[ruby-]1.8.6[-p420]
-[ruby-]1.8.7[-head] # security released on head
-[ruby-]1.9.1[-p431]
-[ruby-]1.9.2[-p330]
-[ruby-]1.9.3[-p551]
-[ruby-]2.0.0[-p648]
-[ruby-]2.1[.10]
-[ruby-]2.2[.10]
-[ruby-]2.3[.8]
-[ruby-]2.4[.5]
-[ruby-]2.5[.3]
-[ruby-]2.6[.0]
-
- -

MRI Ruby is the reference version of Ruby so let’s install the latest version.

- -

rvm install ruby-2.6.0

- -

I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.

- -

Congrats, you now have a ruby install

- -
$ ruby -v
-ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
-
- -

from here you can now do whatever since I’m blogging this using jekyll

- -

gem install bundler jekyll

- -

go

-

Go is a language that releases new versions on a regular basis. -There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here https://github.com/moovweb/gvm that’ll let you install multiple versions and set $GOPATH and $GOROOT.

- -

as a regular user:

-
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
-Cloning from https://github.com/moovweb/gvm.git to /root/.gvm
-No existing Go versions detected
-Installed GVM v1.0.22
-
-Please restart your terminal session or to get started right away run
- `source /root/.gvm/scripts/gvm`
-
- -

you should be able to run and see

-
$ gvm version
-Go Version Manager v1.0.22 installed at /home/john/.gvm
-
- -

Run gvm listall -which will give you a list of all the available versions of go.

- -
$gvm listall
-
-gvm gos (available)
-
-   go1
-   go1.0.1
-   ...
-   go1.11rc1
-   go1.11rc2
-   go1.11.1
-   go1.11.2
-   go1.11.3
-   go1.11.4
-   go1.12beta1
-   go1.12beta2
-
-

of which there are entirely too many.

- -

From here, we can install go as our user via binary here:

- -

gvm install go1.4 -B

- -

try it out

-
$ go version
-go version go1.4 linux/amd64
-
-

We can see it gets installed here:

-
$ echo $GOROOT
-/home/john/.gvm/gos/go1.4
-
- -

From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. -Go compiles itself! Neat huh?

- -

As of now the latest version is go1.11.4

-
$ export GOROOT_BOOTSTRAP=$GOROOT
-$ gvm install go1.11.4
-
- -
$ go version
-go version go1.4 linux/amd64
-
-

you can run -gvm use - select a go version to use (--default to set permanently)

- -
$ gvm use go1.11.4 --default
-Now using version go1.11.4
-$ go version
-go version go1.11.4 linux/amd64
-$ echo $GOROOT
-/home/john/.gvm/gos/go1.11.4
-$ echo $GOPATH
-/home/john/.gvm/pkgsets/go1.11.4/global
-$ ls /home/john/.gvm/gos/go1.11.4
-AUTHORS  CONTRIBUTING.md  CONTRIBUTORS  LICENSE  PATENTS  README.md  VERSION  api  bin  doc  favicon.ico  lib  manifest  misc  pkg  robots.txt  src  test
-ls $GOPATH
-overlay  pkg  src
-
- -

Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.

- -

node js

-

node.js, the server side javascript framework

- -

nvm is Node Version Manager. Install it like this: -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

- -

Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.

- -

You can run nvm ls-remote and get a list of all the node versions available

- -
$ nvm
-Example:
-  nvm install 8.0.0                     Install a specific version number
-  nvm use 8.0                           Use the latest available 8.0.x release
-  nvm run 6.10.3 app.js                 Run app.js using node 6.10.3
-  nvm exec 4.8.3 node app.js            Run `node app.js` with the PATH pointing to node 4.8.3
-  nvm alias default 8.1.0               Set default node version on a shell
-  nvm alias default node                Always default to the latest available node version on a shell
-
- -

so if you run

- -
$ nvm install 10
-Downloading and installing node v10.15.0...
-Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz...
-######################################################################## 100.0%
-Computing checksum with sha256sum
-Checksums matched!
-Now using node v10.15.0 (npm v6.4.1)
-Creating default alias: default -> 10 (-> v10.15.0)
-
-$ whereis node
-node: /home/john/.nvm/versions/node/v10.15.0/bin/node
-
- -

and you can set it to be the default so the setting persists between sessions

-
nvm alias default 10
-
- -

So now you can run:

-
$ node -v
-v10.15.0
-$ npm -v
-6.4.1
-
- -

rust

-

Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.

- -
curl https://sh.rustup.rs -sSf | sh
-
-
-
-Current installation options:
-
-   default host triple: x86_64-unknown-linux-gnu
-     default toolchain: stable
-  modify PATH variable: yes
-
-1) Proceed with installation (default)
-2) Customize installation
-3) Cancel installation
->
-
-select 1 
-
-To configure your current shell run source $HOME/.cargo/env
-
- -

add $HOME/.cargo/env to your path in .bashrc

- -
$ whereis cargo
-cargo: /home/john/.cargo/bin/cargo
-$ whereis rustc
-cargo: /home/john/.cargo/bin/rustc
-
- - - - - -
-
- - - - - diff --git a/docs/utilities/2025/02/08/blah.html b/docs/utilities/2025/02/08/blah.html deleted file mode 100644 index 4c8bc9a..0000000 --- a/docs/utilities/2025/02/08/blah.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - Hope this works - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- home.. -

Hope this works

-

Blah blah blah blah okay okay !!

- - - - -
-
- - - - - diff --git a/javascript/2018/12/29/typeError.png b/javascript/2018/12/29/typeError.png deleted file mode 100644 index 209314afd5e390bcb0a46c87f9e999734944f81f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131839 zcmbrmbySsW*FK6ESfBzb4T=H+f^>&~A|l=0Al)F1A}uA|E#2KnO6Q_ey1VPlwcqzU zzx|zY{yF39F}6ctv3Q>6zVA7&n#)^UR1p0x-dz+F6m+2v0+J{wH$R}Dpx(TF3%-If z_cRXvykW^FBz+tHbG)tX1^>pidM9rsWvXjst6`yoqGw`itn=DZ%R)!T#PYML)z*A^=Hr|17)j)Lr3D^^jyyJ8k23UGspxC^ zGVp`0Zvsd7CktJ(fL5-zH=f^3C2ah3`F!=a4Dvvui7QMs*r|)(68rcPe^02 zbA2>6vWTN6W{)7Y)ObAX`D)l#^zK}LM#@f-mvsL4xbM(aNS}Rw$anicf80nQy(amu ze>cs2EK8&!`9ClC{t*2gYRdn-9KP<=8g}D@`~Uq0-ya6Nz7u%&UvELAgh}%FUq8TE z`hu78UvK!uNXS+CzrP;&<(-kAC>j5HzrO`9|Mw+n3D-SS9qjFW$il*+SYqH_QNh;S z+^nsuYq8M&_&F&lQ@dy^`(vkz-7LGmO?SFuIpm0Cp8V?q&aWdJTnC$)zQ1+5rJ=7c zWMjj8=gytw0cVuls&RWC<@bo~mX;k&uwU!Nr}OnQ_g?cvVqRf&8KB>S~KJ21drF#>VSXQc^xX zJ|9Fy7f%n?@M^^V{rHnISDAPX^z}0wC7hhz`{B8Jdwbi*@+FcmGKQq5Q{-&mF&TVM zOG|4h92}IsygW0tu(Vt&?f=*F@p8$wM-R-j_+f8v|1&U<_sbX7n>TNcjE@gw$*%$y?ENBz^&v$Q?ixcY3@+}u1OGIDlf!_U|EUaLQ$R5<#B2g4)GbaX)~ zRW^@saJ+JIUUx+?k+QK>sIJlev*+OVI`YfC{pW4H1by7x`1$1$KU%HrHN%5JDL0?< zki8U_2^?r|U;TRaikez_I(uYfWYFUEzaLeAFY-P;+OkknbzWiL<&BIlroVgd-nCvt z&T!ek_xv$h#_+PHfdM7T;^Ly>T4!e`%AdBjjKNwXW8-Uo+S@Zz$L{=Vix9EELW+F+ z_?(3$d?-gr%h=ed470Mbys{ECFfcGd)x^|P&EyTDs|(%1!Qt-RyKuShC*_p?wHI~* zr1OFqLqkFyVq)^uIbYz=Yu_#?C|Ffk&&ke)bsvhD&9q({;@oM%N=Zu#j*S)3*MAij z78Vg5oh(kl`ei%8KE38&XNXT)rlv=en3%W+)@)~cJ3*%-3s}6e|}-X9L`jCJdfD>_wSwL)c$>m4*+T7jqilk7i_mPp2UoSngD9cQe>P%!zuAI0m}FF81( z;Z7`f{om#JF8f&8e-#aQMq!7YlwR`xPtv65WRHX;5CTJ$m#A zT_sjS|(dxZ!mk4HK_M10PN@}k>WuUm~>gr-Yc_N)z z9UlJluKTwh9yP@kVH4UK1!k&!RR$+7V4L+Y+Bqx<_^RC|AqjC?0{ zK8|}S9QKfiXsQ>H5qA2SyuV*ElF3jucH>H8W@|b?p(sx7Drc22J~FZ`RXBX4)R@ED zn*}f5BOvz<7TL_^W;e%HwNzRjgXvT?`=kp$6*cut{a5vaX}Att2Hlyz{r*slInB=2 zjdawD3m?p7u9|-)zij(&hmsKP?8KW}SP&9ux;ZhStUvI}IMvfBG&MQ-EZ}~VbZCY? zX-w?6#cV?(gVAJr``v_YRH0aQyTLYRVw=%Xw&hh>XZsuX?%gXaDl&Y{nklKQ+!^*- z38i;TSl4geuOA)`udtjZd-bZ|tKsqT%0$Jz=4KzfEkS4E&mToaZ`C&>StNhA zv?$yahsiu zt>DX!rt_uUYdSi*ANVX7aF6uMfI$%U?Rr z*T*L_RF$>6djp5b0DEJ+O5Mollf6AVxmcX`T#E?amQ1KrcDDOHp8hd45qqb@&B^F+ zHD`s3qaL2TKKZ)Oeb24MOKrEfkymJnk!Uqa8#Xy?a zT;qeM>RMWje}YK!i;74Y7=mYJ)R|2tq&K@9bOOvp78Vy1(&R!n3;!`*Vc;k z2gv;9Om&AMWU`!lM_Ml|?$sU)DZw%`SS~Wax;=qb)Y;WlVYf#X&0;#+o9L!EE}d#j zD~!;cpP%2(bGcZ%7H@!v;U?@ZHCAE@6N%?`d&YljZe!A~?($SvD>g5W_Bt9y!|%kG zm6esYW8VDhBL!|he`@*_wzQCaied~R;<8uQ)a2viL&awa8}?tx*KEE^P2FjCd7`jT znv+>-))f^$TA)=mWREy0FhB&XPt|0t5)0hS&N0SeqI_s;`vBS?H2G(gls+QSmoM1a zKPIp5_4FjE@wgmJAC=NBIGI*oU7{5mEFkwkf0k@c1gG8I?rvi`28QeEyYsIou-~oj z#ycJ2<|vl*j|jeF`;fKgWTdU#dAu{Xg6QxBZ1xBrztyzv!pGhHWnRr8WxPwRbe5BZ zlc+U9bRsqRyv$!T^iL6^@DOSSyC$tAdKk`gzVZA9{y?XZS*;jx_mh*pR z6|llY%>GdD3$3Brt>y5_LxC0Kd5wYlR)%USU#O{w8Y5B&^H?0eY&zzW@cfb*_-gzYNbE4 zY}#2VwuhRE$~Tm%?q+>!8aWXWkRtUZz3yeu{I)82K(_O z*RSE+=Bz887cahNNTt0|=XGH=oytZ;|LMvh6^UkE=;2|>GEI`XIyl-AuCmz}spE-= zi6J;YKYgRyiStQB1kPwli!-2RLrQXTG!>N^#c?&`N~bescX#*s1qAiN+qsrS$KAG8 zc_pPH+pXyrFPgM;blzQEUaSmt`HFEX2naNtoNe-piN&)_I|f6sEi{{L#rrKmNT@Pp zzb3+Nv;M)%?2XH11ukH;)58O;!*!P9g>bcz$^(;LDspm9xTRFXVVW-v4p`XO0?HGU zDDRb(2@blNo83?LmMjkp?ng5lKj+}Mr!@ZSJ|X*eU`ccihXj7AjWWjM(pwp@lb~*f zxVoZX5VAJ`xPazP#w@$XwY0R9mFMJ|79VFmeM*IW_dYth-JG9Ga9CK2&tt0IVHVi# zLdfa}c+mnVm-R`d(YRrBW=)lo62mgH`CkD5Gu~ca>XVh$*pDCgr3yd&B^t{IPf@<~ zljYxHz+E@R#KhpRvO2NHwD{pOSg(dykm*sqq@eJE-}*LBm3w`>Oe{FYH<>ey`7oJ|s1)wt;4BmGAdL8ZW{Jgxz z1svM*hI_QVMS2e!8X8#5|Gp53Vw^1*R-GHnkg9LA^q2K8`0Qk2vVmTZXTWi7y9NL1 zmsYF4(PX8c;c#wZTAF8C8hKvr>D^zy$bc)R4Xu(>iv5>Cmn0Y~=@AeR$QQjI-J^Z+ z;sy^74}hxn*jG$UOpgTx1uqZs(i95*-t#9y&oP^JI^Ay>8VcjNJa$9JXGSqw?tKgG zF@oF4-fuN$)jd2euDd|1)yu#3BOFR7U(jLEP@pR%i{O(VFvEYG2ZLW=ZL|A|cA?|~ zQjFGU^q5^)X=@86zeYhLJJnfHWvksC!%|_+Z#PGbk1u?7xUtfg%z=TC;}uYcA9DvC z{TUNes6;ZVx1XQRmGegQ+-g4pF;}q^mz`>^~e1MzmwTUPaz?pg_ShDH;%_| zoUc?OwHSGL#4b)>E0xwaHoE2K&xLO8$l(eJdB1r1vcE`AjDSGVVy6E0U58|-3L`ZR zEORY>$pD7Gd&UpRPv^z+q^72>Pgcp*e6o(IvRY|?#q+2XRD=`J5l%}=LgETfB-4RF z<^X4SaIs4%ld-ePphkpBOi&O_Nl7O_0MIm$HC(7P9v&W!M=D(&!(uV4U*VV;9IRtt zaMuI)0J+3vrv=}1!j_n}_866ry?AM_hi9oj)faCK_~!CN1p}3wbC!9{4K%d9KEZnt zZ!}PU|3({ZRkc=)j%H~YACKPN-lk0Pr;tHYG$OkdJl-Z{HQ`H#&N9X$kt7o;Ig*7a&mglZ0 z`iR;9rQ***J#k!KUgh;aUkVSNv00ME08l-?wv}QscE?YyylAfd*Jn1n-4~IOxFu0> zshJz!>8*wJN=+u)p^0Xy=AJuWJbm)yNr^0r1k?XO-kX<~POpF|GD?rS0Z!i2*3+BY z+EO!dWuy|e;|~uEG@G8Gpm4Z>O2C#>5zpmtNbh|9<hk(gi zCwvfH4yLE3CSgTM85wU_T6Pid0)*5Y$=4{aupYb{r&4L9K!x+@v9&u9S0#}CoJS-% z!W(03@Ym*Ar!&NFiBLd;NEBUGR>sbI`ev+1kM`@=ubd~^uJ2uoB}f@6ZMV9i`LxF( zE|&X}@fxik`#eW-)_jddGaHjEj6j(q9J%3zj&Mqqp~2!uuq>;VrOYd9Ylf*(AB2Uq zMhh2WSRcu5T&%9H&d$y8TUZpzj`;$$=RV)&$M*Sqw)ixL)f}_7wl-V&B+1uK%4j*O2&eoryS)6T+1J+62V?+D+=}9) zuFMx49QaB~N<+C93$?%dqK<*WFkSiw)OqkFCg@8k`7JQ%j|UL2DeLi@3;NyFh6e7Z z1K>p)a2L~i0ccXm$;pkIlU2pt<24RfaCY!%X~nEv2N4K#aqb_KYePAV-7#$ZAiyz( zEiEh*xVXGQvVyiY?}!MT19q1yXO#7^lA?yAoiW2anZws|QL6;T11&{m?KzFQrt4`}r}Uu$WE_%BxCC{{d;?GgJh>X*Wvstkr8W zHmGiY|7!Zp_F!PVzNS-K<1>MO8>PMGl>~a%z;Iq&d}>#88A>}bUrcb%Y6=GbgM-eiJI4*~sot@d5qp6qA zpMM)jYh-h|RL)tXkv{mG)xqhKX_%Rvl=M8uCYO8caFx|;2BkHCiuiU!L_}|)&b{;V zbNRw~2B5_)u&=Kzu%Si0;+6h87uq4c@tU_tw|#0JG*WIuD)3wgZ6&CMEKPwUgpm`@Li3#dRno^lb47;_DykW@U2}HB3xI&CTgR$bhR!oghY&d5u&m zZ%f3(q4xLoz5@!<>TCsyT&{AW%hl!n=A>s=^cA)3`22hd+UE4g$Z@y$+l}bFu_*6@ zDW_>u)|i3DOZNFoh!3-l)&38b$EshQ^EK z;huQ%c*mb$4uH7EYPI~va40*7SO0p(5lRNEquVX?hW`Ga>+43Cn3%nNeZMCr2*}CF zb6oXgI{xtq2ForlLisOR0*HHn>6Hwfot??yki4d#ptiMBc=ztz^6IJqdNXP!XZ2Kl z!XnR=^xHV#z(WdwnKT(D6MjE_w5yncKp`Q~$4^Lbb3uS8oK{V@-u2RGtoRNl2&4uhI-z3kip)V|GnXS@{Z$8NOZI>xG6zFLDoZS+1xM4re>

$>Q$axiFW3T+w!TiyY=lI% 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[f;wV`5@}PBU-9T7V>ZNBKVErXVv_ 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 Date: Sun, 9 Feb 2025 12:58:21 -0800 Subject: [PATCH 11/14] new dockerfile to build locally --- Dockerfile | 2 +- blog/_posts/2025-2-2-blah.markdown | 2 + buildlocal.sh | 3 + build.sh => buildrelease.sh | 0 docs/404.html | 103 ++++++ docs/about/index.html | 1 + docs/assets/css/main.css | 3 + docs/assets/css/main.css.map | 16 + docs/feed.xml | 283 ++++++++++++++++ docs/index.html | 147 +++++++++ .../2018/12/29/javascript-gradual-typing.html | 153 +++++++++ docs/javascript/2018/12/29/typeError.png | Bin 0 -> 131839 bytes docs/polyglot/2019/01/17/polyglot-setup.html | 309 ++++++++++++++++++ docs/utilities/2025/02/08/blah.html | 89 +++++ 14 files changed, 1110 insertions(+), 1 deletion(-) create mode 100755 buildlocal.sh rename build.sh => buildrelease.sh (100%) create mode 100644 docs/404.html create mode 100644 docs/about/index.html create mode 100644 docs/assets/css/main.css create mode 100644 docs/assets/css/main.css.map create mode 100644 docs/feed.xml create mode 100644 docs/index.html create mode 100644 docs/javascript/2018/12/29/javascript-gradual-typing.html create mode 100644 docs/javascript/2018/12/29/typeError.png create mode 100644 docs/polyglot/2019/01/17/polyglot-setup.html create mode 100644 docs/utilities/2025/02/08/blah.html diff --git a/Dockerfile b/Dockerfile index 878d942..4947545 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ FROM ruby:3.4 WORKDIR /site # Copy the site files -COPY . /site +COPY blog /site # Install site dependencies RUN bundle install diff --git a/blog/_posts/2025-2-2-blah.markdown b/blog/_posts/2025-2-2-blah.markdown index 0fcacd6..787f18b 100644 --- a/blog/_posts/2025-2-2-blah.markdown +++ b/blog/_posts/2025-2-2-blah.markdown @@ -6,3 +6,5 @@ categories: utilities --- Blah blah blah blah okay okay !! + +Try again diff --git a/buildlocal.sh b/buildlocal.sh new file mode 100755 index 0000000..74d4407 --- /dev/null +++ b/buildlocal.sh @@ -0,0 +1,3 @@ +docker build -t github-pages-local . +docker create --name temp-container github-pages-local +docker run --rm -p 4000:4000 -v $(pwd)/blog:/site github-pages-local diff --git a/build.sh b/buildrelease.sh similarity index 100% rename from build.sh rename to buildrelease.sh diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000..1ee03bc --- /dev/null +++ b/docs/404.html @@ -0,0 +1,103 @@ + + + + + + + + + 🌲 johncsimon.github.io 🐦 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
+ + + +
+
+ + + + + diff --git a/docs/about/index.html b/docs/about/index.html new file mode 100644 index 0000000..b9f0283 --- /dev/null +++ b/docs/about/index.html @@ -0,0 +1 @@ +

I’m a software dev with Go, Javascript and C#. I’m writing this blog to better at writing and to document my explorations.

diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css new file mode 100644 index 0000000..d55c7ed --- /dev/null +++ b/docs/assets/css/main.css @@ -0,0 +1,3 @@ +html{height:100%}body{font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1.0rem;line-height:2;margin:0;min-height:100%}h2,h3,h4,h5{margin-top:1.5em}hr{margin:1em 0}hr.page-break{text-align:center;border:0}hr.page-break:before{content:'-----'}hr.page-break:after{content:attr(data-content) "-----"}p{margin:1em 0}li{margin:0.4em 0}.w{max-width:720px;margin:0 auto;padding:4em 2em}table,th,td{width:100%;border:thin solid black;border-collapse:collapse;padding:0.4em}div.highlighter-rouge code,code.highlighter-rouge{display:block;overflow-x:auto;padding:1em}blockquote{font-style:italic;border:thin solid black;padding:1em}blockquote p{margin:0}img{max-width:100%;display:block;margin:0 auto}html{--bg: #FFF;--bg-secondary: #F8F9FA;--headings: #000;--text: #333;--links: blue;--highlight: #FFECB2}html[data-theme="dark"] html,html[data-theme="dark"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd}@media (prefers-color-scheme: dark){body[data-theme="auto"] html,body[data-theme="auto"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd}}html,body{background-color:var(--bg);color:var(--text)}h1,h2,h3,h4,h5,h6{color:var(--headings)}p,strong,b,em,small,li,hr,table,code,figcaption{color:var(--text)}code,blockquote{background-color:var(--bg-secondary);border:1px var(--text) solid}a{color:var(--links)}*:target{background-color:var(--bg-secondary)}html.transition,html.transition *,html.transition *:before,html.transition *:after{transition:all 250ms !important;transition-delay:0 !important}.theme-toggle{color:var(--text);background-color:transparent;padding:4px;cursor:pointer;margin:1em;position:fixed;right:0;top:0;border:2px transparent solid;outline:none}.theme-toggle:hover{color:var(--links);outline:none}.theme-toggle:focus{outline:none}.dashed{border-top:1px var(--text) dashed;margin:0.5em 0}mark{padding:0.4em;background-color:var(--highlight);font-size:0.7em}.post-date{color:var(--headings);margin-right:2em}.share{color:var(--text)}.home-date{font-family:monospace}.post-list-item a{text-decoration:none}.text-bold{font-weight:bold}.text-upcase{text-transform:uppercase}ul.horizontal-list{display:flex;margin-top:0em;margin-left:-40px;flex-wrap:wrap}ul.horizontal-list li{display:inline;margin-right:1em}ul.horizontal-list li a{text-decoration:none;font-weight:normal}.card{padding:1em;border:1px var(--text) solid;width:11em;height:11em;text-align:center;font-size:1em;align-items:center;background-color:var(--bg-secondary);margin-bottom:0.8em}.card .header{color:var(--links)}.card .body{font-size:0.8em}.card hr{margin:0.5em 0}@media screen and (max-width: 600px){ul.horizontal-list li.card{width:100%;display:block;margin-bottom:1em;margin-left:1em}ul.horizontal-list li.card a,ul.horizontal-list li.card .header{font-size:1em}} + +/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/docs/assets/css/main.css.map b/docs/assets/css/main.css.map new file mode 100644 index 0000000..3633e19 --- /dev/null +++ b/docs/assets/css/main.css.map @@ -0,0 +1,16 @@ +{ + "version": 3, + "file": "main.css", + "sources": [ + "main.scss", + "../usr/local/bundle/gems/moonwalk-0.0.2/_sass/moonwalk.scss", + "../usr/local/bundle/gems/moonwalk-0.0.2/_sass/list.scss" + ], + "sourcesContent": [ + "@import \"moonwalk\";\n@import \"list\";\n", + "html { height: 100%; }\n\nbody {\n font-family: -apple-system,system-ui,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;\n font-size: 1.0rem;\n line-height: 2;\n margin: 0;\n min-height: 100%;\n}\n\nh2, h3, h4, h5 { margin-top: 1.5em; }\n\nhr { margin: 1em 0; }\n\nhr.page-break {\n text-align: center;\n border: 0;\n\n &:before { content: '-----' }\n &:after { content: attr(data-content) '-----' }\n}\n\np { margin: 1em 0; }\n\nli { margin: 0.4em 0; }\n\n.w {\n max-width: 720px;\n margin: 0 auto;\n padding: 4em 2em;\n}\n\ntable, th, td {\n width: 100%;\n border: thin solid black;\n border-collapse: collapse;\n padding: 0.4em;\n}\n\ndiv.highlighter-rouge code, code.highlighter-rouge {\n display: block;\n overflow-x: auto;\n padding: 1em;\n}\n\nblockquote {\n font-style: italic;\n border: thin solid black;\n padding: 1em;\n\n p { margin: 0; }\n}\n\nimg {\n max-width: 100%;\n display: block;\n margin: 0 auto;\n}\nhtml {\n --bg: #FFF;\n --bg-secondary: #F8F9FA;\n --headings: #000;\n --text: #333;\n --links: blue;\n //--highlight: #FFD19B;\n --highlight: #FFECB2; // light yellow\n}\n// -------------- THEME SWITCHER -------------- //\n@mixin dark-appearance {\n html, body {\n --headings: #74c0fc;\n --links: #91A7FF;\n --highlight: #41C7C7;\n --bg: #1f242A;\n --bg-secondary: #323945;\n --text: #adb5bd;\n };\n}\nhtml[data-theme=\"dark\"] { @include dark-appearance; }\n\n@media (prefers-color-scheme: dark) {\n body[data-theme=\"auto\"] { @include dark-appearance; }\n}\n// -------------------------------------------- //\n\nhtml, body {\n background-color: var(--bg);\n color: var(--text);\n}\nh1, h2, h3, h4, h5, h6 {\n color: var(--headings);\n}\np, strong, b, em, small, li, hr, table, code, figcaption {\n color: var(--text);\n}\ncode, blockquote {\n background-color: var(--bg-secondary);\n border: 1px var(--text) solid;\n}\na {\n color: var(--links);\n}\n*:target { background-color: var(--bg-secondary); }\n\nhtml.transition,\nhtml.transition *,\nhtml.transition *:before,\nhtml.transition *:after {\n transition: all 250ms !important;\n transition-delay: 0 !important;\n}\n\n.theme-toggle {\n color: var(--text);\n background-color: transparent;\n padding: 4px;\n cursor: pointer;\n margin: 1em;\n position: fixed;\n right: 0;\n top: 0;\n border: 2px transparent solid;\n outline: none;\n}\n\n.theme-toggle:hover {\n color: var(--links);\n outline: none;\n}\n.theme-toggle:focus {\n outline: none;\n}\n.dashed {\n border-top: 1px var(--text) dashed;\n margin: 0.5em 0;\n}\nmark {\n padding: 0.4em;\n background-color: var(--highlight);\n font-size: 0.7em;\n}\n\n.post-date {\n color: var(--headings);\n margin-right: 2em;\n}\n.share {\n color: var(--text);\n}\n.home-date {\n font-family: monospace;\n}\n.post-list-item a {\n text-decoration: none;\n}\n.text-bold {\n font-weight: bold;\n}\n.text-upcase {\n text-transform: uppercase;\n}\n", + "ul.horizontal-list {\n display: flex;\n //justify-content: space-between;\n margin-top: 0em;\n margin-left: -40px;\n flex-wrap: wrap;\n\n li {\n display:inline;\n margin-right: 1em;\n }\n\n li a {\n text-decoration: none;\n font-weight: normal\n }\n\n}\n\n.card {\n padding: 1em;\n border: 1px var(--text) solid;\n width: 11em;\n height: 11em;\n text-align: center;\n font-size: 1em;\n align-items: center;\n background-color: var(--bg-secondary);\n margin-bottom: 0.8em;\n\n .header {\n color: var(--links);\n }\n\n .body {\n font-size: 0.8em;\n }\n\n hr {\n margin: 0.5em 0;\n }\n\n}\n\n/* Responsive cards - one column layout on small screens */\n@media screen and (max-width: 600px) {\n ul.horizontal-list li.card {\n width: 100%;\n display: block;\n margin-bottom: 1em;\n margin-left: 1em;\n a, .header {\n font-size: 1em;\n }\n }\n}\n" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/docs/feed.xml b/docs/feed.xml new file mode 100644 index 0000000..127c407 --- /dev/null +++ b/docs/feed.xml @@ -0,0 +1,283 @@ +Jekyll2025-02-09T20:42:05+00:00https://www.abhinavsaxena.com/moonwalk/feed.xml🌲 johncsimon.github.io 🐦got some downtime so how's about we starts ourselves a blog ...Abhinav SaxenaHope this works2025-02-08T18:04:18+00:002025-02-08T18:04:18+00:00https://www.abhinavsaxena.com/moonwalk/utilities/2025/02/08/blah<p>Blah blah blah blah okay okay !!</p>Abhinav SaxenaBlah blah blah blah okay okay !!The Perspicacious Polyglot’s Programming Language Plethora2019-01-17T19:40:43+00:002019-01-17T19:40:43+00:00https://www.abhinavsaxena.com/moonwalk/polyglot/2019/01/17/polyglot-setup<p>I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. +Here’s a way to get several of them installed into your unix user directory. +If things go wrong, or you get bored you can easily <code class="language-plaintext highlighter-rouge">rm -rf</code> the installation.</p> + +<h1 id="initial-install">Initial Install</h1> +<p>Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>john@BigBox:~/git/JohnCSimon.github.io<span class="nv">$ </span> <span class="nb">sudo </span>docker run <span class="nt">-ti</span> debian /bin/bash +Unable to find image <span class="s1">'debian:latest'</span> locally +latest: Pulling from library/debian +cd8eada9c7bb: Pull <span class="nb">complete +</span>Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5 +Status: Downloaded newer image <span class="k">for </span>debian:latest +root@6d933dddbbcd:/# +</code></pre></div></div> +<p>Just to satisfy my OCD let’s get the latest updates.</p> + +<p><code class="language-plaintext highlighter-rouge">apt update &amp;&amp; apt upgrade -y</code></p> + +<p><code class="language-plaintext highlighter-rouge">apt install gnupg2 curl procps -y</code> + Installs gpg2, curl and ps</p> + +<h1 id="ruby">ruby</h1> +<p><code class="language-plaintext highlighter-rouge">gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB</code></p> + +<p><code class="language-plaintext highlighter-rouge">\curl -sSL https://get.rvm.io | bash -s stable</code></p> + +<p>To start using RVM you need to run <code class="language-plaintext highlighter-rouge">source /etc/profile.d/rvm.sh</code> or re-login to re-load <code class="language-plaintext highlighter-rouge">~/.profile</code></p> + +<p>From here you can run - <code class="language-plaintext highlighter-rouge">rvm list known</code> and you’ll see a list of ruby flavors and individual versions.</p> + +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># MRI Rubies</span> +<span class="o">[</span>ruby-]1.8.6[-p420] +<span class="o">[</span>ruby-]1.8.7[-head] <span class="c"># security released on head</span> +<span class="o">[</span>ruby-]1.9.1[-p431] +<span class="o">[</span>ruby-]1.9.2[-p330] +<span class="o">[</span>ruby-]1.9.3[-p551] +<span class="o">[</span>ruby-]2.0.0[-p648] +<span class="o">[</span>ruby-]2.1[.10] +<span class="o">[</span>ruby-]2.2[.10] +<span class="o">[</span>ruby-]2.3[.8] +<span class="o">[</span>ruby-]2.4[.5] +<span class="o">[</span>ruby-]2.5[.3] +<span class="o">[</span>ruby-]2.6[.0] +</code></pre></div></div> + +<p>MRI Ruby is the reference version of Ruby so let’s install the latest version.</p> + +<p><code class="language-plaintext highlighter-rouge">rvm install ruby-2.6.0</code></p> + +<p>I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.</p> + +<p>Congrats, you now have a ruby install</p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>ruby <span class="nt">-v</span> +ruby 2.6.0p0 <span class="o">(</span>2018-12-25 revision 66547<span class="o">)</span> <span class="o">[</span>x86_64-linux] +</code></pre></div></div> + +<p>from here you can now do whatever since I’m blogging this using jekyll</p> + +<p><code class="language-plaintext highlighter-rouge">gem install bundler jekyll</code></p> + +<h1 id="go">go</h1> +<p>Go is a language that releases new versions on a regular basis. +There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here <code class="language-plaintext highlighter-rouge">https://github.com/moovweb/gvm</code> that’ll let you install multiple versions and set $GOPATH and $GOROOT.</p> + +<p>as a regular user:</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bash &lt; &lt;<span class="o">(</span>curl <span class="nt">-s</span> <span class="nt">-S</span> <span class="nt">-L</span> https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer<span class="o">)</span> +Cloning from https://github.com/moovweb/gvm.git to /root/.gvm +No existing Go versions detected +Installed GVM v1.0.22 + +Please restart your terminal session or to get started right away run + <span class="sb">`</span><span class="nb">source</span> /root/.gvm/scripts/gvm<span class="sb">`</span> +</code></pre></div></div> + +<p>you should be able to run and see</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gvm version +Go Version Manager v1.0.22 installed at /home/john/.gvm +</code></pre></div></div> + +<p>Run <code class="language-plaintext highlighter-rouge">gvm listall</code> +which will give you a list of all the available versions of go.</p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$gvm</span> listall + +gvm gos <span class="o">(</span>available<span class="o">)</span> + + go1 + go1.0.1 + ... + go1.11rc1 + go1.11rc2 + go1.11.1 + go1.11.2 + go1.11.3 + go1.11.4 + go1.12beta1 + go1.12beta2 +</code></pre></div></div> +<p>of which there are entirely too many.</p> + +<p>From here, we can install go as our user via binary here:</p> + +<p><code class="language-plaintext highlighter-rouge">gvm install go1.4 -B</code></p> + +<p>try it out</p> +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>go version +go version go1.4 linux/amd64 +</code></pre></div></div> +<p>We can see it gets installed here:</p> +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOROOT</span> +/home/john/.gvm/gos/go1.4 +</code></pre></div></div> + +<p>From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. +Go compiles itself! Neat huh?</p> + +<p>As of now the latest version is go1.11.4</p> +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">export </span><span class="nv">GOROOT_BOOTSTRAP</span><span class="o">=</span><span class="nv">$GOROOT</span> +<span class="nv">$ </span>gvm <span class="nb">install </span>go1.11.4 +</code></pre></div></div> + +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>go version +go version go1.4 linux/amd64 +</code></pre></div></div> +<p>you can run +<code class="language-plaintext highlighter-rouge">gvm use - select a go version to use (--default to set permanently)</code></p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gvm use go1.11.4 <span class="nt">--default</span> +Now using version go1.11.4 +<span class="nv">$ </span>go version +go version go1.11.4 linux/amd64 +<span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOROOT</span> +/home/john/.gvm/gos/go1.11.4 +<span class="nv">$ </span><span class="nb">echo</span> <span class="nv">$GOPATH</span> +/home/john/.gvm/pkgsets/go1.11.4/global +<span class="nv">$ </span><span class="nb">ls</span> /home/john/.gvm/gos/go1.11.4 +AUTHORS CONTRIBUTING.md CONTRIBUTORS LICENSE PATENTS README.md VERSION api bin doc favicon.ico lib manifest misc pkg robots.txt src <span class="nb">test +ls</span> <span class="nv">$GOPATH</span> +overlay pkg src +</code></pre></div></div> + +<p>Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.</p> + +<h1 id="node-js">node js</h1> +<p>node.js, the server side javascript framework</p> + +<p>nvm is Node Version Manager. Install it like this: +<code class="language-plaintext highlighter-rouge">curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash</code></p> + +<p>Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.</p> + +<p>You can run <code class="language-plaintext highlighter-rouge">nvm ls-remote</code> and get a list of all the node versions available</p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ nvm +Example: + nvm install 8.0.0 Install a specific version number + nvm use 8.0 Use the latest available 8.0.x release + nvm run 6.10.3 app.js Run app.js using node 6.10.3 + nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3 + nvm alias default 8.1.0 Set default node version on a shell + nvm alias default node Always default to the latest available node version on a shell +</code></pre></div></div> + +<p>so if you run</p> + +<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>nvm <span class="nb">install </span>10 +Downloading and installing node v10.15.0... +Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz... +<span class="c">######################################################################## 100.0%</span> +Computing checksum with <span class="nb">sha256sum +</span>Checksums matched! +Now using node v10.15.0 <span class="o">(</span>npm v6.4.1<span class="o">)</span> +Creating default <span class="nb">alias</span>: default -&gt; 10 <span class="o">(</span>-&gt; v10.15.0<span class="o">)</span> + +<span class="nv">$ </span>whereis node +node: /home/john/.nvm/versions/node/v10.15.0/bin/node +</code></pre></div></div> + +<p>and you can set it to be the default so the setting persists between sessions</p> +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>nvm alias default 10 +</code></pre></div></div> + +<p>So now you can run:</p> +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>node <span class="nt">-v</span> +v10.15.0 +<span class="nv">$ </span>npm <span class="nt">-v</span> +6.4.1 +</code></pre></div></div> + +<h1 id="rust">rust</h1> +<p>Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.</p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl https://sh.rustup.rs -sSf | sh + + + +Current installation options: + + default host triple: x86_64-unknown-linux-gnu + default toolchain: stable + modify PATH variable: yes + +1) Proceed with installation (default) +2) Customize installation +3) Cancel installation +&gt; + +select 1 + +To configure your current shell run source $HOME/.cargo/env +</code></pre></div></div> + +<p>add <code class="language-plaintext highlighter-rouge">$HOME/.cargo/env</code> to your path in .bashrc</p> + +<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>whereis cargo +cargo: /home/john/.cargo/bin/cargo +<span class="nv">$ </span>whereis rustc +cargo: /home/john/.cargo/bin/rustc +</code></pre></div></div>Abhinav SaxenaI like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. Here’s a way to get several of them installed into your unix user directory. If things go wrong, or you get bored you can easily rm -rf the installation.Gradual Typing With Javascript and VS Code2018-12-29T19:40:43+00:002018-12-29T19:40:43+00:00https://www.abhinavsaxena.com/moonwalk/javascript/2018/12/29/javascript-gradual-typing<p>Recently I had to write a file uploader for AWS S3 in node.</p> + +<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code> +<span class="kd">const</span> <span class="nx">AWS</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="dl">'</span><span class="s1">aws-sdk</span><span class="dl">'</span><span class="p">);</span> +<span class="kd">const</span> <span class="nx">s3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">AWS</span><span class="p">.</span><span class="nx">S3</span><span class="p">({</span> <span class="na">signatureVersion</span><span class="p">:</span> <span class="dl">'</span><span class="s1">v4</span><span class="dl">'</span> <span class="p">});</span> + +<span class="kd">const</span> <span class="nx">uploadToS3</span> <span class="o">=</span> <span class="k">async</span> <span class="p">()</span> <span class="o">=&gt;</span> <span class="p">{</span> + <span class="kd">const</span> <span class="nx">parameters</span> <span class="o">=</span> <span class="p">{</span> + <span class="na">Bucket</span><span class="p">:</span> <span class="nx">s3Bucket</span><span class="p">,</span> + <span class="na">Body</span><span class="p">:</span> <span class="nx">fileData</span><span class="p">,</span> + <span class="p">};</span> + + <span class="k">try</span> <span class="p">{</span> + <span class="kd">const</span> <span class="p">{</span> <span class="nx">Location</span> <span class="p">}</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">s3</span><span class="p">.</span><span class="nx">upload</span><span class="p">(</span><span class="nx">parameters</span><span class="p">).</span><span class="nx">promise</span><span class="p">();</span> + <span class="k">return</span> <span class="nx">Location</span><span class="p">;</span> + <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span> + <span class="nx">process</span><span class="p">.</span><span class="nx">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> + <span class="p">}</span> +<span class="p">};</span> +</code></pre></div></div> + +<p>It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other <code class="language-plaintext highlighter-rouge">HTTP 400 - Bad Request</code> errors coming out of the S3 service.</p> + +<p><strong>Is there anything that can help guarantee your calls to <code class="language-plaintext highlighter-rouge">upload</code> are legit with some sort of type checking?</strong></p> + +<p>You’ve probably heard of the type annotated javascript superset language <a href="https://www.typescriptlang.org/">TypeScript</a> and its supplementary type definition repository <a href="http://definitelytyped.org/">Definitely Typed</a>, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate <code class="language-plaintext highlighter-rouge">.ts</code> files, and modifications to your build process. Is there any way to get this without futzing with your existing project?</p> + +<p>If you’re using the Visual Studio Code editor it turns out you can enable <a href="https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files">type checking on a per-file basis</a> by adding the comment to the beginning of the file</p> +<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// @ts-check</span> +</code></pre></div></div> +<p>to the beginning of your file. +<img src="typeError.png" alt="typeerror" /></p> + +<p>The parameters variable is highlighted in red, and when you mouseover it you’ll see:</p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'. + Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345) +s3.d.ts(3640, 5): 'Key' is declared here. +const parameters: { + Bucket: string; + Body: string; +} +</code></pre></div></div> +<p>There are a bunch of things happening here!</p> + +<p>It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that <code class="language-plaintext highlighter-rouge">s3.upload</code> takes is called <code class="language-plaintext highlighter-rouge">PutObjectRequest</code>. The Type Script compiler is kvetching over a missing required field it needs to say the <code class="language-plaintext highlighter-rouge">parameters</code> variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.</p> + +<p>When you add the <code class="language-plaintext highlighter-rouge">Key</code> parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.</p> + +<p>The same checking is useful for output types.</p> +<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="kd">const</span> <span class="p">{</span> <span class="nx">Location</span> <span class="p">}</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">s3</span><span class="p">.</span><span class="nx">upload</span><span class="p">(</span><span class="nx">parameters</span><span class="p">).</span><span class="nx">promise</span><span class="p">();</span> +</code></pre></div></div> +<p>You can mouseover s3.upload and see it returns a type of <code class="language-plaintext highlighter-rouge">AWS.S3.ManagedUpload.SendData</code>, which means the destructuring operation <code class="language-plaintext highlighter-rouge">{ Location }</code> is guaranteed to work and Location will be populated.</p> + +<p>Links:</p> + +<p>Type Annotation and Checking within javascript + <code class="language-plaintext highlighter-rouge">https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files</code></p> + +<p>JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt</p> + +<p><code class="language-plaintext highlighter-rouge">http://usejsdoc.org/tags-type.html</code></p> + +<p>More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.</p>Abhinav SaxenaRecently I had to write a file uploader for AWS S3 in node. \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..1c86d84 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,147 @@ + + + + + + + + + 🌲 johncsimon.github.io 🐦 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
    + +
+ +
+ + +

🌲 johncsimon.github.io 🐦

+ +

got some downtime so how's about we starts ourselves a blog ...

+ +
+ + +

Portfolio

+
    + +
+ + + + + + +

Blog

+ + + + + + +

Old Projects

+
    + +
+ + + + + +
+
+
    + +
+ +
+ + + + +
+
+ + + + + diff --git a/docs/javascript/2018/12/29/javascript-gradual-typing.html b/docs/javascript/2018/12/29/javascript-gradual-typing.html new file mode 100644 index 0000000..9329d3b --- /dev/null +++ b/docs/javascript/2018/12/29/javascript-gradual-typing.html @@ -0,0 +1,153 @@ + + + + + + + + + Gradual Typing With Javascript and VS Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ home.. +

Gradual Typing With Javascript and VS Code

+

Recently I had to write a file uploader for AWS S3 in node.

+ +

+const AWS = require('aws-sdk');
+const s3 = new AWS.S3({ signatureVersion: 'v4' });
+
+const uploadToS3 = async () => {
+  const parameters = {
+    Bucket: s3Bucket,
+    Body: fileData,
+  };
+
+  try {
+    const { Location } = await s3.upload(parameters).promise();
+    return Location;
+  } catch (e) {
+    process.exit(1);
+  }
+};
+
+ +

It looks simple enough, but you’re probably going to be spending a decent amount of time googling around for examples if the parameters in an s3 call are more than just basic hello world. Add to this javascript is a dynamically typed language; you won’t know if your code will work until you run it, but you’re also working with Amazon’s AWS SDK, it’s derived from Java and expects a few things beyond just numbers and strings. In the end, you’d be beating your head against the stack traces and other HTTP 400 - Bad Request errors coming out of the S3 service.

+ +

Is there anything that can help guarantee your calls to upload are legit with some sort of type checking?

+ +

You’ve probably heard of the type annotated javascript superset language TypeScript and its supplementary type definition repository Definitely Typed, which contains definitions for many popular NPM packages including AWS-SDK. This would be great except switching from Javascript to TypeScript requires adoption from the rest of the team, separate .ts files, and modifications to your build process. Is there any way to get this without futzing with your existing project?

+ +

If you’re using the Visual Studio Code editor it turns out you can enable type checking on a per-file basis by adding the comment to the beginning of the file

+
// @ts-check
+
+

to the beginning of your file. +typeerror

+ +

The parameters variable is highlighted in red, and when you mouseover it you’ll see:

+ +
Argument of type '{ Bucket: string; Body: string; }' is not assignable to parameter of type 'PutObjectRequest'.
+  Property 'Key' is missing in type '{ Bucket: string; Body: string; }' but required in type 'PutObjectRequest'.ts(2345)
+s3.d.ts(3640, 5): 'Key' is declared here.
+const parameters: {
+    Bucket: string;
+    Body: string;
+}
+
+

There are a bunch of things happening here!

+ +

It turns out VS Code has pulled in the AWS S3 type definitions in the background. The type of the parameter parameter that s3.upload takes is called PutObjectRequest. The Type Script compiler is kvetching over a missing required field it needs to say the parameters variable is of that type. There’s nothing stopping you from running the code as it stands here, it’ll just crash at runtime.

+ +

When you add the Key parameter (the unique file key in an S3 bucket), the red squiggly underline disappears and you have a properly formed object.

+ +

The same checking is useful for output types.

+
  const { Location } = await s3.upload(parameters).promise();
+
+

You can mouseover s3.upload and see it returns a type of AWS.S3.ManagedUpload.SendData, which means the destructuring operation { Location } is guaranteed to work and Location will be populated.

+ +

Links:

+ +

Type Annotation and Checking within javascript + https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files

+ +

JSDoc - the type annotation here is based after JSDoc, so looking at the docs can’t hurt

+ +

http://usejsdoc.org/tags-type.html

+ +

More to come, as with introducing gradual typing, learning this stuff is also a gradual process that pays you back the more you put into it.

+ + + + + +
+
+ + + + + diff --git a/docs/javascript/2018/12/29/typeError.png b/docs/javascript/2018/12/29/typeError.png new file mode 100644 index 0000000000000000000000000000000000000000..209314afd5e390bcb0a46c87f9e999734944f81f GIT binary patch literal 131839 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

$>Q$axiFW3T+w!TiyY=lI% zm-Q_zVQ`ioJ$zUX@PdwsX<=Ax7}35qs2kV0DtWVL>u9pC7s)IE?SFT7e}swoQC4=y zjm1Fy<;&*v>AHZ6vm*`ALf~BVr-_-KU!3(9>IefTi1o<*tCcZzJ%yW_TV7Go0yb86 z99NcT=Dmfh4><;QNIBN)6d*zmmKf)6;Haae#-I?mxVThTbLvmm@`vtHhlPgO_%a)h zsq5&Z2FXbRT?2{VFjNk`hk?e6jl!Y zpVs9pu9L}vVj#ARmYK%OidD|fYaedPbbp=z2JL~4-%??@#Af+^ue_wqN{OfbcjYj~osz_65n)1LmvvfmeWp%Z$IK!fe5A@xdeO4(I zw9L3<;Lz7<|M>U@xL2(} zJph+6z!B*C<2fcSDJ2C^q6Stmp0-y0?bcL{;cI|O<<`QZSOa5Y?+s&%EXUDIOtrLp zYiqedWw!1&9PjRqdqn#F;S(D^EzAr-Arljf)&SzU;~gy^rBwTy8^Qy>y2|bLW;b`P z#H3jUcx3A*CSssyn_rw-1IS2zw0>iQ-0puW_B4>|>m)!uvB(>WFGnk_sS@so$c9tq zuWoGQ6jTH9SU8-43$nxNuddJ~>MAvkHGEm7D=&`&r~5umuiDx#eURMFw;PX&O{WuE z@{(8Ww2h5b=A1$w6B3G8SkO;a*`|R=hqngsx)*_1=uNEb5c|TD85eytl=WOggB%Iw zK+M=*Mfj2m@(nWdg$qU|@0;-U^!9qeu>p^#++x9`KB?B<+&bmgFSEH8bnDB;(>GSj z4^e28%Q?&g4Q?;h42R^In&xZ>fAqP7&gBDb9kxB*S`<^!9LNSBmVAAT!619G7;Op` z*5A}{)xjt)Atvwkbcy8N;kxm0VL`$0VO57v)7q2D303>dwN7x;YV%aWzyJYwrUh&s zQzSm zMORl>%|Py2NY$mrW892$RlwC%ExSWGgv1dpgJ3bhCj0I4xTB+sRtbN7eI2Ek2#2e) zx~6Kc`Kg+^>9n$;ih04e{{DW0RINu$a(P@IqFLnP{@)B*mE-PV20P+QaM@~?U zX9qKO9guZ12(~w{+y}CGswz3Ewm=$h-@mU7Qb|N4({nmHId%cG|H%RbfldDxj0=!# zN=zg}g5RZLJ$%TkJi%l#QT`SlJ1&RK{iig_O^Aa_mZS$if%9Ko9`WdQM*RMEleo}& zjTtJ<&bC>aT%KwSmxCrz+s?xcmuRJJhVAKS&Byxsj4U{HrP%( z^^BYL=vW$sk270ThtXb~C|hglF7!1GoI?_472 z8`v?1q42QD;KaO=`h{{7--jDg^N8no<~jxuCoeeSNXG(ni>_!E!+qYYJS}CFckk|6 zSsC#3CS+xGNQrUXboKYgfHDFCv6h}*>%rRaX!VJS^KVi?|2LXVx5>ofn#M|+fiL%G zNa?}i=!>-9%6GmnwOU_pp~|cN1Vzi+x5}fW)@p1{ zR8;Tx3sWoZd)rU$%(dRWcP|+LBFMK6AS)5`^IwN{L6RCsdUx*$t!g$CN5xMJutsgU)6itAB;j@C_6L-};&AZs9}ziwz!T2S z&W7{|2`y~^mqT%02hfZA=ziOKYsm$l)YOO>7#QHx4|V`~{uNi8o|!pT8lGyT(>Q6=YQIAXE-fupE;suMEmy9J8(yleJM`hAEK{x^K0e;w%UPuV5eO3IEB!Ay zxw!0R-Ji0$aHE13i;8*+^sB@(?sI5=T<}1(b#xvPI3_6OU6E8)w%0pq%w7=FAVOD* zu>dmv9vln-A1WXrfiNX?k`ErE+%Wm_co{9!ftoEhQ3>1s9ePOJk^Yn@{tyrEqqMYi z$$xPfs4DDz04NUEM=hrlok1J~xx^gq#&TO7VTxH;Xo3`VBB8uAdY~sm0;EW<2dTkw z?sYPt;E@`G(Ij8}g$_iig;Bluw?KkA!bue>t#FaL9OA$mZ|OPu-Mi1B_X5bK(`b-F zI_wba;=vd93rez%qJ@El|L{9`= zGMsU0VA?6EsRed>x}`=ZYhSreR@;GS+XWXWzVRp8V8PK9lp@-kzP(1t=e1gVo)ACKTZF3{PykJ2k*EMmEy5B&$%w1Y*p{k zBnt*;ZqGc6h-M+<;fYU4(U#3Q4FW-HQ0c;*3>p3!8ZV2Bk0&-BD}Dwq`2PI{0QOfD z6!lY6m)&N>*MW=CTATP}hUIx3eZTKl7jUJkptmJ~jC@=Xba!_*wGNx~#Eg}K9}3b) z^L$${ekEnnSF4S&P{5Fdn$1tYeRn zjyk`z6n;iB3J`rXyT`5KG@T1rU_nM%ki4T*o9*Iu}< zq7&>US5l44?KJU70PX;burE!F7|cF4^XK=$?eM@L{Fa+bgU@1Ov`pz^zX&!ScsfWH z1+vUM?7hTt`MzF6CX0rKhSlbT_h`}d%<;|}uzev&CLkcdXodKmUc6emk((AKna2wlaKCek!^V~09@LBk~8?`?9jKP^Sz9!m|`r|CPadmYFn#^`)h?wa9Wwl#`S5 z^Jw8qxGx~ESVTnKqeXfU8px3NXW#$NPo-zyikzijV~a#q28I9qtsnMXZ~vXleE0zC z|8JDjAW&hQm>lFpbd{U`uxr7ncr`Uu$DNxt>$f$#q7ZP-KH6Oz3qJ?`NZD~Q(j30QBVd4_><2w|%aVq$vWRJHZ=7%s1JS?nL6 zA5UL7UsDIG85$LfncwPr>#@~Bz_A*$4FRl{i`4OsyXJ(0;+!AhO<#ei*9HCbc-E5` zuaf7W!K0GV@@n3Eb4qD5fmgBL%|Hn#~RlU1Sm$ zkQ^><+u;UBxz&oMiri6v&+NAQKB&a(P4PM8AIdfpvn^>WSn_4dujidz{@ML?#-;Dg+TA zD1&bR3{`@mcz!~BNh$@RbtSDsCpg^t5X6m(i?doA@`GfV`T21{W%?p%D*JE^B`;-7 z?v{PXU-kbnnG(yU?C;sy+Uj;YdYI3({DpKd$Y>z^Yws<-CSbP`H^ir+GHm%FF_j+~ z9UTn4AFgM#SRV`I68(^k$to5gEQP0A@t`ahIQJ#JW7?e50~HF$Dj16Oot-~^{J0Nz zyAzO><({rZ#rXc}0!W_M3(Cq`q1HvSNZr1})&PJf)ImxjbXQe%5<-k@cpXF`Zu@QI z@!HUzM#jc|f?*GlM>g=Vrycj0IBYlPq3%kCUjPwA+VhA^;z)WOdJ_{9K&}t*@jJ#! z>K+mjrj}g!6HelCJF4|0$)4BkovVEgXhWSAX^fn-? zfJeOuIc(r4DJQdEobUAr2&(Cv>@IL#><^Sz*$Sws!QyJkR~;@{xV^c4>jpBc5yfIE z3TZ0vCLzfa4bACVDxS{40lIvVE)xhU^0kh*@KkUBSa(H_YiVl>XluXNsyT{lVGiXY zM-~IXpeM`8?#LJeQeHNhWbcj-m;s-^xx3pxFz{h5gnj%-jATG@8NXw?wF$);2O8%7 z{{ALGk=y#nqZDfue_RF+;Fk=LssKa^c_4b={w@9en1qCcPiW2~ESI`v&2CV&j#dyt zlSy)Nc>2T7Pe@E`3BZ)mM7ei%_V}tr=0uZDj#{1S+!nxjyo1wf7TWEaGum+_Q;3>v zA8mD%&dZC2(;qrUVY#*exNUS#Lnd?5ZHU~Pw+K1mJo10_|-+` zb7VPM;^D&=HK6_X4mg;(?(eUd0W8cc_=J!$2TDRMpO51DxkV*oTHb9mCh5kzaCb_(D_=d1rlg^lW{=Z8UC zv;Q2Jk;Y)U#6qb`sBsp&swDUIOfB1o*VNRwT=v*-yg-Hh33eSEhm*Y?5l|ToLWdCu zEs&W(N=^pk0Wb=SIG$Hr{Go?i&w(-!{SnT??RqGem7a^?+$cXI(O!!_ zuArcs66)v4qjsi%WvPy4*)xO)9vb>|dd`3<%(AywZQb-3(bwVC8pW4b567Ej>X-%W zSa9f3ot&;C)sPO_IssKx8pv*mhnJO>YV;+EyHtkk#>YLmH{nR>I&VuTG!=Vs>YP-MDw)Vit z4UTgbR+)mx6)+lN2)7&qrv1~^m25oD`~!!MK(KX)TCq5N!X5&Fu`PaG5ctLS!(&QP ztGh(H9@yCPmb>$9XSHc(ko;cADVs_G@`p@oEX7AdoHYq}D6#>lIiI*gs*L-K;A4pR zX~45t87sLrH8lmv$VX3YMQXTdXhaR8y|KtKad19>ngYlTnQx&{seEI-iVa3oD;Nq{ zD#WfJ_u#QG&ux?~VLr9>L$VTld_zF#?SPVdV%RJpoGlYh%waxj`zvFoF=@PY+O9B!>g?;hBm1LAoLgWwO;9K=_*OrkkZOGpK8(L<~n(sKE_U3l0&nw*>y$kl_Yj?_kzt0^Pq zfHnZSf|(8Tnfhz6+aa<@`ucT_kD!dyQnw1Sb%3Z`pwpq2k~ZA{ehzqHpi0S2IiDHt z?uOJog%h4_LfYa_=mu3kOIH8ZWG2IksKWn_TS4qKrJy!_c{9K#A%O%;7|e$c#Z6oX zr>8-pBDC2UOI7_Pjy zMM0dJgHYhWD!S@uX=Qr)2dAlPI5^7?M(w=2W~!l)aalVJcF1s^S}W{MP`(PxX8E9C zAICl0V223-WHbT9qvp$t-yriLz5f`tB856FAr+4YcpL@$>2NlAZB`ck)kzQM&){Gr4v35_(??`J25+$m z7=PJxT-weXKvD~$Vv9IPxx>chNolDF9N^or?ADrx>uh-XFETAAr-cucRwP!LUTwn2 zR63^C)t33%)ORI(GE6L)rxG5AR%ZtI7cpOzl;nAwFbZ^3TeO>WRh|0$iqVr#W<4z* zZ#E}P_f((CiruvlUCLT`*6#jGwOqtLuDe#Hpoqb_y?qf)EPv+9q4#sha9bd2_7+^5{np}gcO^)es!OXO#G?XtL?5eG|v<-6*S>bug zC$ELW9N%wEIWeN9fJ_O|JHD)^@4g)Cg9zIR82Ag+bVNt+PfVeYA5&lg1)PZa`mb&! zQA+th>5v9KU;xYQnQI5TAobE24pG}5uD4CQY#~O#OhwVu)I9#{OFP)X$IlP*G{4}* zz+&|$%%n>kVb165XiI8%>++f;VapF(eo;}3drurwYTvQ}6M&Fz%EW63&6rzR!3={b zA`c56A9)U7kRSzwSdhzeXttJ@KY+ghX)$5GZ@V6QFmnJA(G>uChlgE4pQ;lN*kO{$ z)?VzDDI=s0PR{pULg>Eq{WVDlM#Ee{wuFl-5KQjV&)2ZXK9R5ll0CPQ6uN(=63Se_b~){t0#CR;c@u; z`y)dDVBtJH>T*&FwM;55#)be16q$#B^nbf~0!$@=d9CejGn2`WdN5jbl)-9&)Vv3rkOVMkIQWx9rKzdyHi-~ZJ3pH?O%Krd-&w*VnPI?6kO7w5 zz{ZE`fmr)AON2CTV&XF>j`R@12leuZ>(<6Nm0Q75w|<&pxf4e)3=IMc$uBZ|ubHH4 zGT2^<081Lr`VBpOt*PsNMp}!OhQ@DjT1dGsH~D`-+AfUdA_gL^zrl`0bT}M9iZeWI zDBTkjO0X;LAj|#LrTW43>alYt$g?XhzV+O-OgG?wK$cf{`0iHW18&$qfNm8^R#SyM zk!uQ8(=I5snb(7!Jrnf$QQZk|eFxm8jj?!y(*DNyQ<$pYzC6}CxceUsywK%hKvM%`((#7Z|8Og;yrdxwG@k6{w%P*QpF-%vC}s{=b=#aWZ68o zA$sNgYvVq&T)|d~r}7w@BfGTbMc3a+-Z1w}Zlhsr&6ZJ8+>idI6?`v-hfw%rrS;v0 z@chxqbdl$MO(4&dVcef^W_UG5=xsjR`aB9Kuf~cV!QW~rWZBjc`KIql$x{m*EE9jE_~xY_|d7nf6YO$|&W{F1GI1tFO9 z^v`2ureYAMc_Qi%F6Ntj>2L>;l=?x!q7N5EloI>OymtqS?_W)_yt5@ zE=bMo%Jcy~fOr*~#k|*hvEk}!Whe`cP2O1TlcI^@pU)3(c=^jt4FWu%4k`5D?!w0$5^N}pJRt_6dMkMq8w~+M2{REfZ!OwQ9Agw^0wz+ za6q0dHr+~k6p<$k>x9JN4o5UOaS9GcmwshsEFjl2-3`o~z|ZEf-=_eX1#+lXz4EGu zxO|rGfXgGw6>fp+bBpBJv)Qj$ZZbCr)I3z*Jni3T`3RWKsfTJPV#&uU+MX`wJSGJ=xsKsiOlc0wj9DhjB^@aBiLq@1C?zUJ0ePndZH zgu~>I)H%SsLdwJ0f|NM#aGb)z@*zSozn2B)mIhBF|N?~E)#ja@2ni?+fCjJ6s zhIo)ByR!4eJESH{Bp zgR-8ZsD2}ahh+Hny{cdJBJ@}$*WMRL>=2pQ+)TMRxNBH9m4|z~WIxGC@XL9BE=vlk zi9kz|6aJ{#y62CCXa(lPDn9Mc7d(;#Ro`gnF4=fI&dwVmuQTCWkW;3;;qo3|^p{r{ z(TpY%{219X+&lE-p3|SYNJW#aenAc`ySDte}?B(MYgU4YR58(E8L|jCGKi>*l9atdQ$n>WN?Kj4Ya{lyMH< z1RvtAp&=CtkbvT$cklFp-pw2k7PkISX7!uH(`C(t+*;c zv!Hw43b}Hi;O0(jxz_*Wb;w3j&B^DE{(*r{_X_lSR3RS!Wvj*(RHPX|yD%^;w`omI zWO_hE5)0x191$45`D#2~n&FvpO_8VN0U^7z$^InR+8|^EhlVzTgt1!PUGhGU?TISZ z=f%yh-l>l(wUa;8d>m>fd=Ym$F+sk_NGo2S(RQzXu>U@G8O0}d;j!707tK=x@=+Mg z3y3AUfQzuADvQtTW&|RN?CO7B?`j=AtebP081i`$r8zkJN^yTXu|R}j|KOg4c3N<} zRoFgOoq18GA&!-rho_5@UrtVoNy@rd?|Op1GPl$~{!dbxOOwET4vD1)!B{u_r}*{t zAM!QCZn4Jx@J-Qii?zn5c2)lIdB^^?)U8M<$5S3hwyg(u^IICa3B3O5@?D$p4>pvV z!PZziG(5uWV*S0)$dqmGWRBapO6yp_zR#d_ndkbb2VJ|ojLSwh(22@@JD#P`OfNE; zUrEqIY%`BqO9ypyMcKE!^H;o05v^=hUG`hw!%r^GC>P4c1@zKpum9e!bHevt`l-K9 z%h|pzq~u*LRl2ukTJ+`NdQ45k!Xq8q{vcas(UhZ{#%gv_uc`pHPMq3(p6YqU#f+02 zv;`7G+Vr=Z)eBCs)SKRusHGs8U1>s%3@P5qQ~0EYp04Ou1l*SXIXg!~ z!`MAUL_cixKi<2?c?y$9_~DYKq&GIZEER~fv`A5Q_d4=I z4Jv|yBsOH$uh}2$E+FL8p1pqU2kF{fLP9@Od&ivM^;~MjyH` zieZl$&9|v-cRzZjQX4DG9JN;dDZD57&T?swlRKa@hHbCAlTB~Qafxe-BMN2&8NO_* zqabmArcBma7(rR7qwqst#8GCUWJXb*#`@qXBeVBVD~uoGuvxqSEhk%k2MdJlbZNwQ zPfrGohU51ERJ6k?tLb-M_J*x*LxM+IMrH>DXJ*Cs(>F?zd%Z|QLn}8Fi$n$v$N97( zzjkzV6ciR_o{f*lH~oCM^>=pmto!V}dHi%cbImHjlk1DcIGm45BfQv4`y8>AwW8&m~-VA4@iR^Gv^E`>>QZ)E4i=+e-RZ zt-O%uEHlHyy^VW9-oqD3(uQ={@q%1$y4gkgPOzI)FY*tgzfNCwZ@Q}FH?*MG+#};^ zxuuz2&Nq9KEG_FrS8CqUNrf67=UIG1Qsyta_Fa6GPxjnCS@Ac07LPpNgo(DDN_E(rQ(}>ZThV0mA`4uxXinE8-he8 z-YkEMB~180t|ok~prO6x#@(x1_f}q4?wzMy;AqJ;ETjnh4Am{S+9RQ8!t2|l&O`}1 zLYY!x4pKM26E4=YCunn1lSA+uAKLcmaIKZfIXX}CutSB_dh=R5SLeej%Kq-yB{TMs zn;+~>_+79yd2PE#`6yY74q0lgm~RnyNAck37X>_?r8jw^Cbr8P874Y0%b0KdoOdiV z7jyMSKTS|T{<`%mo13^XoQ~fb@8)l>x6jaFopAnfvsIgFy5p27A8uxEhqBaTmP+V} z&G5j5=w9(Na?<#w5NeC|OuDkd#BftF)qRW94%4%d2sM85_uOo(vzsPv%NERjku$5h zZfqaBf9bb;e5678+zv4v(jS9Qz^%mhO4G>5c>8FhJKs=_RkgpAWEta{n*w{o9SMEz zC7Lwz@QFqV;1Yu>J*^!uzzO5cRw33-`3 z@kmd3_JU`wVoX(qnKn*%bY|ER#pwkdfzj@yR8wym%T9nZ@2)B5(O9KJ``k%w618vV zb4$)_Li3;yi=zA4%Ij~KWF3UPLHy%xci+Gsdl4 ze1DI^#K3^4QY*SJxpfT0029tMjG}ug5>cL38?7cQM41{D%kd^*!YwC|#m`1Fg?L^(CX{QUeEfSJLtgb~Q260+g9Z=IqzheqUCetYZgPQ6(X z6Q-b|Y6P_oTqPSn!Er@O%0cF3thY?#W62^cWYQmAU}F1>2k$2&aDVyo#S8}GVp9(f z2pRGC<408EON+f1`}=z2NgH6?yqI;bn)_LG&gWI5^|?R@O328_9A&d+YQStRh>@}B z=@Ou-GgvK)1Ly*geA16-U~nY$jv>mCYTYmlBIL2-_9=bjf3P(a7@Qo}$j-rGDIv!A z0Hy+X>%1nQbm(?6yh#{!%AReF^M6jWSv|xM4T>yGgs}G%q|SZUr5-%GBngTr`}3ZZ zbdou-KroTQxUW1kGV(X_lNthea_h&(eP?EBe-Lr`KqA)=i-+e&50M|9I|PttB%F=AUca!YQ*f@^32<=+?!4D zbuUfutQ$AHd(6#=y>m7&3Rh)Gt$(w#KGez$tX)L6DCWi#dZYh_Xt-T0$Yo7lDs83w z^eg=V%E?AdN}JIPg)#-%!m@tmwUeDWY;O8{(_T~Se#4H4prCk}JI<#q;| zVIR$HzT>;Avfq>R{oUfJx zmLJ67U@s_XjyTOtE2a?bG;`b_7-1!6Pm3Gm)-Nsp7Kpm z;^96upnSl^;HpAPv`B{1a)XQR>oXgf7kOuKazomam@Cv?j%PPji6?BL-@a?9C|7zO z%)+HxCO~4Xy^S++)T85Q_kWRf7Eo2LUAqQBkPsvlq(r()8VP9-DWySLN=iVwRHUUl z6zT2`X{3~pZjc7)hBMdqpKqLT#=pjPxX0L=#mmcjpXZtLzVB=9A1})cb==nJFInLA z(J+WLig@P}H#@Gg+tkADPq{E>i@vw@SVrJt<~cd?P=Styu>cW^;OsHZ0aG>K6I%8Uk|QEAp-Qeva7+QXd<&H&B-WP8Fbwq=^G0W^q=%k zcmK2xw8#8z%2Kxbc*55irP^E*fr`FV6_`O~C}vCF*JHk&b!9!a!9`70k#ddagz>tl znek^bb3?sAYP62=$nLD6hv4rFl2z_@ZaXSlsTyjf=9Y^og3XOzGLEUfykl~*8h(x% zZmvImFuOdJNcUvu?Uyp#3Hq4-I8xWHf*ZioM%=Xs!g(bq=bqgliWik}qemcaf79l*E`0l4_6s>n##ySm@6ezgbR3-0hZU(bdRxf(P_ zLbFrdf}l@=M?vA$B?#tT5Nwxz#xT1rDb7U2-)$f0A|sTMn{&}OSJhw^9o&9NgkRux z+bG1(uWeF4t+KW`BH^)_Z^by$zi71!_jC6!uin!^>!g!*Ha;-aaJzUnzCrtKl#VcMDX zhn!!0QFi~a8&NgdXg5bIVVMeAJryXTz2)a8nQ$&MR-?fXky=Se_O!25LJh34Z*Q2N z|9w-2Stp0_ds;JsPenX7y`eL9cKyVdpWTx8^>Y`Q#|#7XT58!} z@e==;38pdU^>$m8I|ktWO+0t%3}V`suNd5z>c6X#Cl@kI%o}VHH{l|a&4JhS!(WSZ z0W;V9{Rz$@1J5oAPem<<49@t%7G165dfqMY58lpfHM-bf@yk9N2cYWS4q(y|_i)|}+z=Kh7x5=a5~WYZc}X~o5YZ>K<; zaEk0|u^GgGZ7Rjn=4(mG9Y;sU!kQ$=aD|ZNUNg-6D(~v(hyjs48l3nkb?QttuO-)X|vDuyAPFKRVdQh(Z%w*ZF zuvt&9{uhX(&_tS~c}gzefa(LC2FsMGmXwT6&Wc3mP2r9 z3RcNTNg2L*BWrEF+TOv$%v^68C0_n>ce3(fglv1%ivhS5AHkS4Y;p$TN}&n2Q7Hy| zS&ljr{7f5FbA?`WDuhJ2bGg&g6{`ktOCS*U#4Xv3tgO1)w(J@lClP4|VzRP#R4uL~ zMbL!zyW5~Ev=83ub&;yaU6$}omU|}mxWEQ*b~yY(3sS#-j@tr82j35U57eHLqUL<@ z^o$Vnk|Kh{&EeP+l$gAr-KGmZSdAP0wH|1vCb5#!^9UG0lj1)E}BO3E~8QHq`w z2f!^jz4E|*n3Yr_Bq99PZM~mK}!l(On!ecOY-2sK6K0W4u=QV8sFBW zBo{wo-99ONB<#Tfs=G1x3&@>ueE&LXh{*Q$kE$htSpfh3{VuSqsW1@AW~xH>6j7l< z2Q2@BDLou=U`QnZUZ^*6te7Vq$(bI5*`n zkLEuM<@cdMXh-=>^2kEim9MaMv-uyTkOri_@6!u2ZM6teV^@idl61}foZ<7FMg&EX zLsn2Wuk%A5H%$i-0lq*8#f<19J{1uywmN4NA}>uL9V$HZ*BK3plY0asW+DLwxZWZ1 zGo?tFx7_o%-VtxPY-#6j+wdOcn)f{^?yA;%R z^#9o-MJ@`=elS}anNlEs?A&MlC(NQCnnbBejP3Q3PcXTiNR-vxBr!|Dv6%TG=lm%# z4EwHkBBHj&;u@m#>9N1Y49uSqtXNA?St&=#=-r=b% zDTY0Pn-lFbEc0$k7zr_9Mq2>nQe+VE5Tq^<0br z_OGQpww8JP$341<0|qR=@biKX7^*5;1_+rj%MRJ2__#W|ALK9$b5m%j=H5~a<>d6O zCswcU2OI+m!gln-FAmlodPq-#CI=x{O?i2FFoPA&E*0t4wzl}9yx*=I1Dp#gq}hO_ zrTj9}2we7sRjcEr8PEcap-)R51e0?~waaVJfG<}?ZxC;}1`_V|wFuZcq;d;rn3a-!Qf* z93a-caXZ-G7jRJ`_r6)~AwXp0p$~L0=-t!?KP+Cb6xiCLA#qR&NXkZPcLg~`#qU*B zu`(2{s6bmK3{nMA%ihrufix-V)l7r%H9UWa$P5rTh#^_@16sQ9hCr4x09VK8cXU0+ zo`C@~Sp5KPM-`>l1#Xf63b!xd^=8G}X#I#49T&$9d2}wWw-9J)2eTPu*UZ7kg!mP} z>JLRt5|M4iqe2S;*38Pmn%bogx@_>fIKzb+h<~@SI(mER=KHsAel0Dt(35fm(<-Zd zQATcI;X)UsM#-Ds4_UOzq9JejRXKX7Fo_asApjzln7!21 z;pcEXKeRw3TA>dFKsxHGDqi8kU(Y~o9)`Qo*kx*JssfoEaBb%1&r{t83ttlCfK&M9bo*eJf@lU6RXROnHg$nk0e(o!(V3yrx=i?;CV)2pY+xS% zFL9q;za8SQDjDCvCp*&f${S>IG+Z1+aXmgUVZSpi0IeqyE=duuLfu+bTZgu)CQ7)Z zQqUHG3DE*aZcXs9{MxsN+)@I>zlQ2vY(Y?I&sC!bdlwY|9l$}g?i3^h)(6BbKls~k z4qD-7Nox40{(i$B4UEPJ@9P6{efRAr-!iHrQc^yG;s}UIF}Ap|z`k?}4M@6mMl-5$ zJbChnZATc2Yq&5xA|feQR{{5v4N48|$z2`)uV0ZN@gx|Si7FUS&-8`#K~BsGd`P_D zz*&dp4R;nuHLl>+CgHVyU^TXpMhFEy+FjBQ5?^bIBe_RO137M~$7DYLU^qtAI!>4# zWGNEWY#B32KlDpC{6-P0bx*y$NlIeR_}x0C-}7$lEeW%n{BEJ2{WfV)aqce0^+9MM zt$NribSQVccbp{{9>-y}pxk_&34E@O9+_Jk(=*#TgRUVYiaq2-TfRkIX%T~ZcHFY@ z=`pc-r2R`5R(Gcb3svVdI#WI$3@95r8!PY3$?X!jvP9~w?u3(6mx+n1sTkO>j_3)U zg&!4&%xHR06Y=pdGj_yk-eTxI8qxXqt$$BuO8)lk{jB4M#)imL=5ujV0-C=**S*T5 z5`QuL>W^IU_VNOj&m$4)PY2HFL@#gioo>EHlk134e~BW^D=Br9bDt+~gj%v?5{(iB^^P}MQU3I5e6YPMZ{qDjeSxAL6-7G8 z=T30czRS~IpTr(1bk}BnAJ{Wc(b4do6^a>HWsR41hPMXB$c#Uf zVu%sRr%W06tBxKzcsp9DIj9aZ9R2&g`;UXV9JjPM<=g8K8FhNKIr_c)n^)8L{3*Fc9#tAEA05S%H zk9A?eKOWr4@|lsqT??bINlI=u?S0j5L;wyrF$iBH9Fn@Vky!T!4!|16>9nB^R-tzA zG>R*Q2|7=qQ+l)jvFpy=yM+XM`}_OjkR;KmmfoZ>ek12fNoo6cFs;})Tb)UYsgXQ= zrF<}UbSA$)$s2t{VyVH^5kf7HloLhhY`~y%(rVS|jWb{~hh(YnzZP{%E2~qg(7NBg)qB4Zqv10(8))EBn!G-oz4xz;yR@QW8T3yUovIM5`xS9r1F2V< zDcs_o8*>2%tL!5f-xKSg&D&dIhzB0_a6m;sAYQ9#%Mt8n6Iq+1R8c*r$5XptEyhPU zh^wlIYju^tp;K8oXsF~2!g2$-UVF$TgF%F#ub&qDkZ>ajA!K*9o}H#`s-Q3> zY4xU``)v<@DWK-SNlYT@bqkzNVl?;>2?-q=qxlo{e1D7Bp&7eQz1vj(0dBhwEckaI z3Vhx4ECcM)hMt8n*PnrETTv5c546uy^u-K81Bmnl~HXKu7L)!@L z%2R#02iJ~pfT3aEc}9b;qN@w^&pIWCOjz#z!Oi^l>lyA)ejFhrbAggO4t6|HKJ~Ki zR=z8E%ZMq3VcU4b3uH4SP-hax$F-SOpaam$>>5-VKDm7ddFB+F4y;1eCGT2(@&0+8K zDV^gu-@tJBdry#JDvgaA9ovCTEeDk{F5B?A{^;U z%OlH9W45k6sRu6y`-QJ&dhZz#b9`6v_7ef)P9d&7LSzS(?o{;e- z4RWG=bE1Es&@f8Dz5AK}u0J{I7T(OhHfb;Uv~o};_wo#X%j_e~sGt5{TC&*)i4%0c zI}TjmfAte{(zcuPy+4kT+7fd3;3*?!Vis7ebN`#fCCMT|_d`4>;b!{!9~`PZJ9B)) z?-PAKsXH9)3(VGg;Djjt+genV+@%OPJ~G)k#Wb;EOQ&eeXUs>v_vjB^F*blfB?wd= zx3LKJ|JMt!g3;w_^@5Jt8!s)?!E`5Qhen3Js+>Oej-!sFSfH-guA9cCZ3dq7sDwpZ zmu-PFyVT%MuEy!-*!6zCT-IeX?xjz&7 zDk=luQaq%90y4;q-N{-m>GWW5Tf654=$PrF17OSq`RL~3m;!H?x5=vUDI{-!S%s1o9t9m$zfkM|u-b+eKS_WoPGuQ4}D6GiiHYeqX5i1S?x)NGjHpah8^o=q|?Ehg}hSiPEv4I8}+3p>&qE(<{V+6QmEDh?V4 z$dOQ@jf~@kr`n)mZh;B#8Qe}PO_D*kXpFfhcR`-b>042!-2n&ai3Y7Po$6BF2ngux zuNd(3QuxHjHwxNY>`Gdldny2Hk(QUY>e=9jgS-S%2GR4@B4rO0^icK12yxqSB3 z_pw?Axo;W7$(QlwNcBhN$1zqs5F4bTSEk5VGdoZ+(93-5-nljy?`nSGxh7OX8LDtW zN*KLEjOW<6)N%C?gHL7t^J;o3|Fu`LP*rTJa2X+$lT&6ss>xC1V@lkHLx$8$d7{_8 zA8R?acY5Da)KoP~xSG*xB6Eo_K{YjLWr6z`JJu`DJV&ZAjN8;G=2mV~_ z3iPpA-9Jbuk1P+T)K>}8Pz;rdKD?K=V;)%c@WRQ|GNM@937YO840;Q2pgm&37^)aa`3}a-U&GH3lcxE;TQ^oOxbx-{s8z$v5$D&F&tpA03TU)#m zvob0Nm09qaaB3EUc?i>! zP%jTMvhNKigb)LRf)=|YGD3^)+&gvWu#OjWUaz#W!F@zcMfIz8`lT-qt(3^~-61JH z#xQ?>!FgM8-)lt*L~<9rttT1|baz*}7-UmEN>v-am+XwJIf?%B!5{_91Ub1OiwgIZ z&yL!h|GnoL%J^L%$zzuslwW*XolGiqHnyknu2~U26Bl4DR{>sDlD*Q{FxVA1A>gjJs6Bnfdxet@-4rNS_x^dALYu_EcQq68( zGGWeM*u_AzU_3e`A(*Dr{ctrpsv8t%;Z8GwP4D4H$UwJgDY40x&TaH%7I}0cV@nC^ z@1u2D{S=0!lx;0-8>Qv7{?GULn=W4cIc6e3e-X<;UB-+nyewhe$a3tTee(OE_u=14 zvgmRAdkewKCatXOQdnq%8^hS8HCJ+zPRYx1#(POT2@_qfO6m0L@pN2psavHxDe0a3 ztMeiUBEN-vYj$UE;D27P__g;ZgSv0MKbA-cS8a~Pd+9&I9ODmXl0#x>Oo^V|m&rQj z%~W=d;K^f9>@j~U%4qmEy&*M|)j3gfsO_6y{@LV`Z+9yiy>WU)LFjb}-KpTihy=Z? z?T?l;KW50385s*s`e|s_>Gs78>d>9K_|BY(-K}8$cah^RGazQ#6 zGCFN~zN9B2IkUEnV?ysxMA8*f>Ll!hIqYXDL)7NNn5Y*kum>p2uFTh6omw1Qp} z1IHu!x7}{@+ahrkFAg&pXvt$fqQAQKjVHOUTw_K1(FP;NV*X>B|4pkep?r}+#y4g0 z&|FsHCjXKO6;*pPos6UWp|G#YN9{&yI;V-dnK@#tx(vg|$}F~_pA7>COMD-w$;m%v zyVzgqV)SUojr+BySt$4Y!R<2(se8+)xA&$;?vTH{FROs!Evjs)|F>#{tut?srBhfS zIO2BCw4##u*Bn$VgK59-_>2$-f8Q3a(sABIBBJ-6=nqV{_#ncSX6v~W*!#-xJ{9eVl9X@irJ!lopo7H1 z;1@jHgOr)VeXncOk)LvHsxmY&?@r9$X!PoM3oJfDvoo5H_u`)`6Sv>S3?R^%sIjH^ z+qNsLbzBxL^VFbwo&cjglewjpco50JPxyJy%#ZXhM1}~a{K(i$i6hlsg~}Q|V>i&4W?XGgc(*_K4lhZBvF1h{!Nn7w+X7RX}WaMge!2Ce2@=Ie72sI_T&GsxqS9ud=Q5)bBnlxia%wR z{HFsqBiBjG3Zj@DFU5daq-!VHI27Rf|9Y!F>*SqY}2@2LdPuPL4*}03@$5nGR zA&ZAa%rc+iG7GFIHNyM%hhfH!u&}VKtn55wngqK5An^-mh8JuCQN%0eayKiqK^Oh) zwJubzJa2JI`Pw(?@adfAH+Qjk7Ak=x2#~@@qb)`oe4T9g zvpy0{8^#?DO_f>1e%tcb4xu@tidEvgrGrsuK zZe{6!b9{jw!qT#2zXDyh-KPV-jd8!+jB4#0noE)eUWC(d)lfz;&@*2P8?Y(Rm`qqp z^9YMC(8e~`llz+o;E|F^ewR?%UwAO9`|?M{lT^W5xx>Fo8!o>X`xmAvx}7=qRP^6; zEfBMX7r*G-aq4RZV#ILU12QU8#rQjfw1g)5=5uwuTcJHbtmjg)5tSBiW z=_-nE-$Gj~T}1Ovee!suBW$Os=|ckP*8&E5dX3J>sQVMCzyEwUrX}M~{p{*O57vuy z)3>Nhv;wyUwyt+gy_#9Z0&U%l2A@7<#4&O6Au#kz$zftzZg28Wb|7he=o^|WjcZD> zs^#@FHSP&l7u)}qq}-s1Z|Yc z-!-4YS^;O`&Kz~3oFIqpzL-rs&ff022n@EccpXjS%)In(JaG?enXDUkslJfTX~z}U zRaO|xH?2-qMiY0j5!QIWVR>8N)6yuRVEh%@#E|0DA-=DYegF;e75EUZTXXN|fTz9{ z88mxo8K+PDX??)Di;_364ccSam=FH2Phr6l3Ntw!vu*7A1z*$~~-fqy4M%)OKNWhg4t5gQ@2LJQA z&c*}z9uAR$KWp&IaUKos&4pqQSnG5o5R<7?IO3@}JI9OPI=MCKP(g&6wUF!4yy;@Rg(%x~j4e-Kk_+PK|@_YaJ{{QcN z|MPFYH(DQPkI5C`BVe9H^}k+r8ntOWoIm{4|JVD8&3hAzQxV3huzr{iMq# zlbN>x7n7KnND8|GggjGhj)iw>$z+C zm6g_IqviUziQ1wm~oLb6}t$ zLVUHfGKR!A+$3ctW})xbF!ra^?I;f?_u}oBw6rc5eKI^@_6DZ%EDrE~eNHCo6$1EW zrz#R8a2rR>Ho6~xw(C^I=n@lq{_UA6S|;o2M_e4$_W_H4JSi5|10Js}ybVtI7$0qrx-x2$;L@S4r?_@K zOOo{|%keOwwEd@G54P_`qV}#--;EbV6}`UcS-rRN%mms@0AwjCYjwkXeUbnC;g!uq z7CxQ#$0p_Z3qM>~n`7@iQZ(7ZXWLa4yOY`^i?92h0cmtfdcs#c(tQy$6 zLP&byZt{Dc^FZ&etns-OFE}SZeUf;`=6mxT=*YQ6ui$pMq{JS&b91Y;8*#$CzwNg& zuU_#2922>vy`2yu9&qCTTDX*7+*CAm;sTVH7R23#$D9g3a59&7X3ibiH%#oF>}~B2 z>;H&k+pHPKFFA61QYuk@qE7uNzQ@b-!2E?M*;WAuv4(0yOkaOgl0eyx2G{O)VT_8$ zIOEODckWYiFz}0Si1MmvH(R_{Y~NkFqexI?chs1{b8cxt={q<^z}bxVZ0KQqE-Hs( zhovRq@zoWFQ{?M(mS-5xAD~)ktKWVX0&4#{>U^3Q$cyQL40Ce zb023qhkkzi^;540Rh|u;+eQK1ul&B2h2)Wu&~je%%p^^oRw7fuy6GV;kbN)};6f}D zfxW!`ahSv;qW@#cZ|kPmXG*Fn4~tK{<0j_^UC%P))UP=McAJGJC;swawUyYuw_ktL zwG6!(cJUUg@ zxl<<~f(B=211n&#Yj`+HhBD=2S{ggd6F?F^Ut=j;=>z8l!mA}LOa{LZbtWQc^OiZT z;wYs(Ei?@X561;w1}D(C7N=|ZDcr4zLAV2#28g}J+mn@qMC)PizJ5h;;fQT*ZK2f- zWz!;{sG#IhknvcX;P#6of&u@Rfgr*{LeTd;Po*8egH04Rm~KE{(!{wn(iR9*@1qm&^C;;aba#| z)(H=LzDt6;mKLM5^fvRCfrJBo2&j%u9#5F}!UtSEqYG#`DUfIy2Fp!B0SlxXXxP}o zAnQP0t2=9{L-Bqd8Dz`8=If)UhzkT;V1Z6`m_pnl5GZJMb#?h6oyh#^QvHMs)*G$b zefmN-K(A`n*coQ5mVyuu>7>IQ^3RQp`#GAgnTB*qb6J=Kp)6ENv-+-keyH6-3w0MW0a0ath-I-sjjg=OW%VJ zoPtE_%al480RtG`nwsj6D=Mb84nxgT(YS5{VZ zn>-N6jI|L_lkR)^?-xGSHIEf&6;|G4gg><$d93DW4fKP=~7pGYV)a?YN)EEnjz{;9mB%}%*@Pr`T4+Aqy|)6 zd%I*|85kc<&(9Zkcf(_1h`^`>`xk7jwZLhG)&)14c)D6?i&LxcIVz!AeC$Affi6=t zo#w?+hs#j?DGo(T)opgW$}3TQ%(XVDpio@(tXZ+GVFD{}V|gIXNA%VQs$yjEDt%73 z$NN2s!KoY-;fvo=N3R##*Y*d)vdlC(wJ*C){)5VWzP`2q!?!8odzs}n|HK?y&MQ~# zaI0F=d6I@sxfyy}x;shKEbfHOd_C-TBTN+d)=iYu<6lah_H!#Ky60yuk&fX8xzEfJ zvgXmn-3b|bi+9M8{ZwXQhhnal0z$=nZNkN~hb2fWxi38~mpBEz7p!T^C{q_jA1W|3 zO-xi>+A2HRvaZM-=Y{w>!qJe)A%e zO5oBh0apMliT_Sc#wOzu6NA)Aebkvi!_R;qDJs<$1eQeNNM8Q(;wD}1pAA)%Uz$XAS z^@R$8E8+Nc-P;*AXe%M$DE9WN0x-E{rfG5UoHE{WqSEUA3*kL}5RJ!ydp_Wa@czM5 z4hdA=138}1&hl#b!ilbT+Z(-px3PfTF%QU^QLRPG*RQ)bi`l<}DoMs~=ToSY0aBRZ zc*z}o&m+pq^UY#w$SwPT=C(g>Tn@1)R0yI9O603gVu9Vi>TT#-9<(Jvbst^YmoJbNZ z#0T*9rx4>uP(#9>o-=SIgusL&XayJ`U{$cjZni^P7!#;e0d<0a$KInGG&G}I@W-9a z&XS%%14m_PNeLB~13&bD7ZAz`p2GEBxW*dH3Yn_Dk<->D1-r$E4#V#Fx74 z>KE?A?$rt741D03U0Pb2$q^YH-S8rN@Sq!b73yx5>$$G zbbp&AWo+9fCISJP0*Kig5J=*jBxhso{>_U+5YBZYmmc7Lt0!}nq8#ckXLi_OUYHTM zTO_5V)`?`nYlJwLd0)NsW+|+zw0!_HazG`ZfPRgS#~BT>^SwaHR*;)EepY{x*`O%Im=B|{ka3&66H4s3TAA12e@Wnfu`gN}|4P8dl@ zrcrtxmWJ`4gM>~^96SLqE(Amyz67i>3&1N`y*d${hgPZ63ivwDpab+k)JvFxVh3SI z$jh6$Vq#@&d_FcsN~e_E4WDg(hvhr&$6HdFstcP_G5^y$!fiU=$geAdZO!B63iojP zq2il24DbUlo*z}zT_w&PpI027G-Y&Qz~KRG4NyD@z@a4*W}!hw7;w#qLD4HKetduC zV(QtxBqk(q!c;oQKLd6RSSSD*MgdR7zrDTRc(RZ_mxmTDBO4nXpo%9awZVi0l$x)= zEJYB(ZLS{?*UWX(pB-R$XvK?V{t;>r(Py_c`Wyc{#N*vPIRgqJx_K956B8uyk6v2^Xriu!@>4w2)-k%HzVcT!m^0F1xWq|SwbuN0ZoXP& zT4tpXbl+k-zJB@|wT5pk^}N+tRa8h;>PjHL8|^?@qvG%9m$}Q=ju<3bnA^80%y#%2 zkA%Y->E@?zZdqg>cHMCx=L@_h#tgf1IvkkI@F}eoFcMSIe2@D%!!nvL+~L_hnOzD~ znHrB;{2OIPJ$Eg9Z`G-b>_1iv`p&PvIDcsmQ7S9VRPX5yjdQ9Z@)m+ax6gpgQiJeO zTq_iZv49=_*UO&&#yW5k&{sgF%nmc}0+byPV+IqRY^s1MZIjNE)cy$zO9+BWeR}#H z38caR@KwM=4!9}D<1G>~5!Yl+W5LqW0L0dwpD)ULd=IKU#dr>1IEBH~0k!Jlf`Vvp z6MP@i|18;wu)mOygyKqo{eu?R;otxRv&VR|fyU_wJQB!e1Igm*>d|3hFxyE!oI>O+ z22qgo<{JzE)Ox_gPThLvLah~YGBT}-wYxwiKZDQr(In@aUsOg89y*#I7dgB09eshVKIytAOmY?#YRvFnG$#yVATtqBqVPvB#%?b1I7*wqukXF zJAU8}!xx-~yx5@3J_W!#D>C(?1tzdew{&#WD%sgELKXuGSzuwM!cL4s9z@H*@uja% zadB~xf#C}`pcWe%JvUHQWAfxTXGM?43+M(BRza`|pTQ_tewQ8Vnd8SYI0u&p>@cG8 z8||0L$w_d6v;(zpqQua1#@VSkAsD{LfWU_PJv4Om8F8wYCreOf!VoB|&GR@#x;AJt zA)~YckA_A>&-2C1^fU>-9n#)joK}^!mYxWl?GZ#79@p)DxXHyksX!i|RXNQmDuTd= zPCjL~NiH0u5qNVT;dTKaRNH0{N?u^RW4?GQkOp!GU02NJm?`2o1S0}VEJvAGi}j$I z_=HQT1di_2!MU&mE%)9TE`I)a4gE88TH1{xY5-%+_p-+k5D|ge+YEraNUu4Hitlp| zNt}|uFcBxsujS}Jg7Jl)fVqaSK*1m(uqIXK?gUV#2ExW?0KC+9%JI_w^#afcYzI&EwV}X*2-2QBDqyd4Jre-%FIIqC7i8))Dh2-~3*zYeGfPa^Vc+ z2-}5yAugVlRsvuTVDT1%aEQSBf6C>?U;d1Yr~=sMWG|!ffdE$!oR9(3xaoFGiNIQT zdwaJVMb(9?5fQCGX^hLvtN`}Oz~JC|W9*^W>sgmWeooV$gp$;FU<$;GW6z(n#UUGq zlQI^da>UteJ$NE4uA>~3~{inZg>$QfmyNQ=j6l$f@}t3 zhQQ8}^h$;jL?r8rU&*=S{o769zV%DR+>h86QCfI_Yc1kt z)cV_9T65^@%R%ffhd-Vgkt#LmaaNZ21l?kK3kjHc?d4iipF8=1`RjBsjt2p&J(fn9 z34*$Q0%s5ZQbkqr>iXS{MVaC3eyV6Maf^?ePeMMN$9j;6q5M!?-OInV#+uA?nseO@EBmnH&XLifn1M3c(yue6fdS_I&Xa|) z2loW--M`Nq64Swe>CoNmkv!bYMqBIq%Z%Io{tMAX4O@kMa-%P9OHVFXKZTNf_9xFN zTa=srM-u1m(b315rK>6YS#OnRR-}>Sa*4QA59gl91-fFYc6W<1BQLRXqKA+1jaMA^ z-kEl#!uRq!>Me|akU`OJi|taWO|=5ZRmQ7c2kr7#DP#<%VudYg+AvP)0z#>~UB?-U}z zOz)`l{oUH+wtpeTK0>iW+E?oQRgxcEKWMa85b*Erzh_qjkpqZEOO0jb>^+)9cTfUD7tU;K{EUNBlEhWx1HrDX$a3^^3XwZ|;TNIatMJ$uy8^bo&*vU=n*KL_fk=!RI zO4H+>W6%7ZgUaH+EgS3V)`t+RnrKViMJt}Cw8hPMGt*|R_@HO4i*9jc9rfqCw>uY+ zDa_aDr`L)>Gc3>&1t&F;kK<~E6#MhecW_FF*8B^#y?Ss>BBej3fh`62Wxe3fMH~&Y zl`L?Z02u1DnDePE02e6IVa?6nDPrJ@`4ka>2U}CePkEgYm=MGQTrx4H?M&J)dBx(s z85xhE*qvN9$;|{Kbh-BpGPGrbp{UHwtrp$7OG$yz0@e82u7enGHcb_j#l{jlDKvNCff#H6_GU<)J33+^Mz8`OASI^= z*OS8D<>7M{NjMRKqo3TI7x-iC?Z;X_bMQ)^=v$Bu(uU5{M96CERd-$&>3LS54#8d< z%X*=h-C$->o}GOk&gdf}(-cp<0Z;#G>i3s?4T5*)8V(NlC}PLb7`Sb0%KIaSF+MdU4bu|d^e9($a#y3YW@kJAM=P(GhR?S$$lKo zA4|7odFpjp6PuH(`VvvWg5}yLEzLFs7$#nGue67DuP#RpIto}k+52psG2Q)jUW101 z7y%xjs`ct0P-Fpl5ggTpv|)bQIRH0fWP0h8VP6jNL2N-a=>^?Evgqp~ z?_?i;kC-JG>W!vp7X3uRm4NXbPkDFM)q}=mK*VvU5&l_qpFQxri;YbJm_O6;@;F1Z!*xdlZ;zz8{BNI+UhZSBC&UizTM`st$8#>Ap& z`cK#-5-(rINRz!R2cReH9k%Bp(4}fJ?jgMGrj&;HJvKJ>y_=h=va%Qq#TZzH8ZYue zrOYc=*V+LV1j7#aPJ-Vy^n$e>P#oNZWi+Ciy51Vyllj7&DVvOD_~e>1TH{4zu`9h( z$J+s!_wEWRv1u9m?$qUz&is`A0lLsAsv2uaO z>Vi;t(DIQ`C0aqGVKLVmRjN-;jOra}l7DE#O}0Pej%g;NQ;y=x##o4c(aVl}5P~lH zA-FiY?!Z80R$5kt(79ht0ez3*Tb%dv&*dRO+|3S;s zrn|!0N#E4H`n9LJTK~C7mm4Ku9Xr1I4px-ah-tgZD;0EAN|vjgjGI=mAa9RAze_Yy zhl4j5|9-TNhAjRJqcO7TOGy?>5VKLijYbjjE;#pHl;jExVoHoUut?#2u<51qW(3ur z?-6s(*C#Fb#_s746g^TnP__GKIPE{x3EvaaMyl)%iuUm{OD9qYVfCGQ-I(jufv2PJ zRgE)+oXYtJbvMSB$Lu3VC%0OjL_VSryL46E$x${A7@WK5-C~eQ;)TbhO*GD!i6W8KZy<$Me?J=ZG<@kr8F<^Ydf(FYs6DT%)x%k3HL}YT}9va{0iS>Qq z6{<0x?{V_?1!;u3y(RnE{+;u)uKAW8-qr&0RKq4QiUgUdq6UsmqgMI9>?8q4l_sj; zH|;Be94BOf23x(t_{)QXgH2-6GNP`*oFO-MOpmHE2~FBnpiSE@)P6TZBrwlw{fZ3N ztKxzAez!nV=m#T`&HS3B*G%j9#vx?8riYhz6m8vzukLuP zqSM{h8j8-pCO?}ecoJc+5U{kj@XT5;zOX#b{@123*Jxyrg3RYZyB1atGJQ2sv!aGC zwoSi9l^Y&?>#eyAzgLx3dyz)Q$@yDd9Tf$5R?l9)rUD)$OoF#NEjf0uJE|WBf4VJ+ zCrqAF0&oo+@C4Ix;|^-;>ef8|cuhPMv#?0W^0b75BC=+giCln<-MbMYu8}S~Av6!D zWetbEYa)=E&>uk_eeDX}YGCkN1!j5nq}^PaLuLp$p3jy7$bt-nb+M{DJ39|ZNJ=e7 zn}rH`XRkX23X6)Up-~K|HXwyR85882xh~y!)0=u)q7PGu0E>s1T?1(V7?A})%0L+V-H71>$!r0q4IZfL zUPFf+niHR3JPNoqDyZMM%iEXkEElTwOm7oT=Tg z;vc;oIVj}!z7~cM52O~0W5omkd%o;Y8zz<^J!h-wnOazAJFQSZxqER74zv(V>1+KM z4jFjYVcEl-NB~@AJr_mEdr9EzTm=w^M958-K|bnj@H<$;Awmw<^6li{IA5od^Yz|h z^Zc%8JXlOOj=D-qON?Z$bhI%$Fi0BwRb? zda0oSqxFDDCPEz{dyvk{!O;RSE!d+mvAnT1G5brBPszfLf4#fDTeKBCM*8L9ICfh> ze|(?aFM=9(1&jWhSmw>@H#E2X9dSAB7K96oDZ0*oa^+2iZ)}UanYhC4*&7SUl18y} z-!e{~$tW$In4nAiMU=nb`&stUZhf;_UgfPeMOxX)ua)~OL}MpU?306o*}Kbe)P4uc zC2ISx63k;Cq2F|RKNbG&0^mdJULj0?sm>h;1`jb&3WTE=^S!A z6b{YK!jW*u_uH4ODx4nW{*gaCW{os3Ol425)9$w#ztmv5$F_F_ zk-m86Yef-sv9cY>59jXR2gF=4okV`2g!uV$X8IwDAu{_tp&!p)-jv%~d=q#Eox##C54 z?bQ3%5~$*jw`lUttvFBN{8P@me;VaT!e{Yh(|h2RO_89?Uy2xx zKY||oOW9~ty;CxmsZ%lEd*XaFWly^rw}c#*CQO!zgI12PYy}rscfya--3HT6z0SV! znz!Rrn|m9HZ}o=UoojPGayZXh`fl!1ePbuA_f=7^kU!G5sZ*J(E2e^Xb<_q~EsZ=t zs*|)yr%aLg+p+A3JaOaGn6~8HH*TnaH}V9#`0AcUXbcU*BVN02-(%w_dj=bIrJXf z`)3}!r*%o)l$}bKp*QyBymjFwseRpg^z4n3d)Vz8{SfyNY+aa?+%M-7MHUza*` zQ4mIH2b=fV(O9GQZ&MparaC8{aEMPle||2dURjf8tE#d_&_y;M&PqdynX|kwZFXUXC;akimz~@6=hcT# zpYR{#{M?60(g;z{jn-1Bn(}CttLOY&5ORA?@b=J5HUSP74D$#E`OJB1yys70ox(@N zgvCq+;{*tuLZ^!z>Uf42d6=s@09kG~DTeI=y@bHP4T|)^)ygKmIgL75nWkEoTQTg1 zZ;9DFKKS?`0pJ>(@zgXlAD~&f`8@Xa`QTir`+8`$nalar_TL2aR6`g}0c2wkyHrzX z|2B%l0a0nc3IJYvu$z>^v?(y<2&E|IvTiu$r`}n|gapDL;VJ016uFSpmX>ZD93En) z(5TrkvX7-CHzbYMpCCF1@%;8MNE6X4Muro0_hjW}_uwwM!N}B6L%_fs{YaJ6w*Se9 z(;WdjuerlqF-x1mAPK@iNzkrP)P^7Oxx?{RSCEd~Q7+cDM9t01ZPhoAP}S&qsj>__GllLgO|P$_oHh>W~ttoww2 zuXZx$Qe;NV>y+Ur@=Wutvo8UrVu9~ZtL~z~sBSOq=S344HDM=R$8z4*zJGq=lMbup zOnb)XRiyTpRnc8Z99!a196T$D=cEiK$+0FM8qR&{5b~4YjQsPKYG0f5>+PItov^L; z@MW(AF_~}$bUu0-G1F^SuXrQwg2KKM2Q2g1WU=%Q5MbcPpy8CJLH;6s;esl~`$VKJ zg>>nuGs~au?%B)ASdMJ|#@N&8TuC?Q3R|?jO>djwLFR5D2fURJftn|~=+pNWNXw?M zy*h{=BrKtrvwYf`2?Ai*ICP9oe0-?e^xNn$Lz z{%D%^$@jO{5tf0>W;W(-sxRfzKA}o2wFn%teUCAi|AlS?ofwIqWww{JkvVAHb!`?T zWo4NKecKDKT;WsNJdwdQ6Rm(t!b zn)VbadGc(NFIQau*-Ry=BF*Tu)Y4|s{!iv&OViR_>=Zfe;gON=Bx{v2jd})tk347J zZP0exd_+2$FNg7&?d?Sv_UCAfjUBMIfHq)wxb}Ms+Dmt$D(04hQ0n^*C*D31u zq_y_3wsvAMJv#R5(|_|inBS$P>xN{EGd9TbG>V)*W@XUv+Znctx=I_yA34(3T3Z8p+5Ufau?&z|Oj^!o~BX`oMKgYlJ}h{QP@F zgzV#V%*&^6P*W#&y$86$|3lSTfMvCHYnu>|5-><4%{AwUXWS1MFapBs5o6Rm*fp4#+ykx< zm|2?lkb?nz3hdF+A*78kFORBW^fo#=S}c`vjXgi?F&DAq>q{0(Te8tV{)p0RKQju{ zWg5S5m0vsez)f!LsHous2*X(oi}Ly!V_{}K6mxhqgy z=VW%3r+h1Qrk29$;L?Y)_DIwJPiFC$!tcfOkLHwzn7)+$+fTV3Vv!FbdgF|@Hr^!= z{YAUb~F`sLh{%s)(wls=o0zxph+9H+tkZG7xEw&A???vEmt?ED54f~0wu z!se=lkC>lpQ^gBu8UI@UfN(<(#g0Qbn>WmMVf?V5G>y7g% z8zxt4*Q?wm#9I4mWw{K1wqx-IuV9ZlZBD!_Dz985US2~*-QlF?ERK2Kt?tqzXH}5W=3UxwF7X{mGemQ@W{^^9Q*2}ga&kN#Y-$Gzz=25G3FTB$1uxIBcD4S`9q#F~`JZfO*ZASM?cqX!`v@lP?Git+X)<^AZhqL? z49zR%icql8Ih!+ikjdgkc<1d54TnH_?Rq{dN8ZePfwU|2Fe#*Yr zx}Wv5o$&N9Dmq#gEC*pPK_)dYdJGOE&uir;&u~gt%+=KBL0?4#-Rvdci_$>rfvr)- z#pMR{1@OohvyJs$Sy}?SYKTIk21E=gK9_FL_W~ciy1zwp)k$EsRty{pMo2Qjiux9r z;A#Ph?3C)umu1UURjtEt_B)c7sx2Gd9B zu#kqqL8M$^Rf-0*K>pB)!NI}VIXGA<^wIl9fBX6Km+3J5&B4J@E0(T`coLw}>dGdU z=?6(N?8zNHJxhq}6eED4+!gcuGb((AX>Mtm@#BX|q0f)FxUmOE{Cs>+%DqFX_569( znAnqFo0)x4yuOxYOCVNEyru|VEWp+Q#5{D*zQjs8KsOq$1+-&4iQ2S44+E9RpRqz} z;MQ+Fm-S4g`$U5lU399{-4jfdfWmA(ny$&qroj{Fzr0*U?UJ^|N9hqdoETt_kJ~6@ zLRCh)r>+s5nqjck9=%2(IH#0b_Tz#q=ZzK7rKB3!9VgM?k2TSst+&2!B#H7XR}4Rs zJ^8DA!az->R~#QtLK1bhpDh$5zbPc-)+066+(53xkxrAB{#q@3om>L_z|HN~6g4hM z&Ns5KOlRzo2?Ifz>*;#|TnFpnv~I(z_=wfJ{>|?=VM&uk2oFnX6>s_x> zacRvMdnERD=;Vk+VRinojLMURgeczJTffHfTQ>h<2%IT4dP$T26?dxPEHAD4?C(YK zQ&o$5yMyITch5cR6*Ag?QDmJZ! z51#)~doTTjP{ijhE7N1L5wp?n#uM4(SG@)Fjas?6d6MC_@4gj~_fschQo3T~2SmSN zHl(&O@Z(TVooGvo%C30MB7T7CAnxbqPedUcd9Y@Cp97YpF?1+FhqQXn7%hhR_wurmWMinuTs)UCN`>c1 z8+kCOH+O&1hZ9nI5y1S-(5_JJR$WJTvT&U1tXp||(A(hwA;8Ti&msvjz^O|G=^$-` z^-kX!J1DHb>7HO9P05hbL-5=CC@m`n_#b3Z2mn9#nDj^SW}(RKww!R44(6L8XX}na zk-9JqoDO&yu;GM;Ndq`S`P@Qxf_^W^f$ns6u^q4GY3QUP!fVS8HxIVa-)uKxAqgdg zb*G83fg_WX(1{Q3jb{|`yoO6G(lVIY#ms71E|jMI6fCe)!@!Af5EVp3@1IK*$Hg5{ z?on^BL969EbW2kMv%+Vpk2vjrOQm@3Vne>ccbPzm^i}K=w;fgJg_r^ivCtq*0hU3Q zuIrhX{+F`9&pedoY`|$IC`d(-zx;qO|J%0~kjOz6nIA)d)M_HqGcyw^D%2oQ3Ij#E z{qADuH4`PJUcfKvgZ=WWt=TZq#I;pR@PFZO1MMByt<>-K3U3V_@;kuefFH5y2sDPh70azNL8;ek{I@t0Jr!qB+c-U5^}M6~ zF2#qjZ*t_CUQd+k)AD#ptQN+rrv&`DZkDIL3HjXd6Kmxc-x)pQN_(+IUp_S+=7;v5 zEH6Wfw`4`~(~2mXK23Z-Ik%R(dLgU*mM$_?d}5O6scSU;n9SwD#IVVnJ9ggJZB}k0 zPG^TFCU-t+&j_k2KjloK^3Aj-H{xeer%WrGa=~GgeO$|R?GJUJwa?7Wwq}3B^T&~L zRw~hh>No-whMQYq%G)Kk|Dy#k{7XhoktWE4RcUhFv=K+@tw{F5dZlHenzCwzFlpDx zY&@2bger$H?(+c9`8Yhq`#V+9J?Q@w=wrOaz6Q)@1S8!5hR z%VTjzU0ZKSy0<<<4T8&Mois}!!4Ej*aUA;6tTABD7z#R3(EpB6Xt*uOu@=_sa)YmY zW=)MBh<gA<*KXu`D7_he_z^;Qr!D<099gNAQ3&3lg|}-D(A4FfCLin z7eLV>2ar;#cAf5>1JC7d3y?)1E7@1a?G*6NT!-Ssp8;dA;z0rX=V7)_P}(l`II_>905v}Yg`(U*@83?%)a z?oJ>0h?0vRgxaAa(#rSmfiFvi!x9cHE$#UdhYu|a3mMo@fs={FUy#bLWo3-$4e* zj|LEqF9G0{WLwt(*KKZYP9r2l4zfOwUVa@3ubzTx{ehM~1Kkmb-wV2vvT^=!@$$l5 zO9X`$pyQd8Q-*aC>_Edw<+ZOu<#Ub=HTw@*_ZcCb)zNV(?nk$pKBj-{e{H+GUbN?n zq&LX%!MjBsoWFqN>IrRS_oLVHMn-5z&fDeL7HA+Xbcjk|4kQTV-#pfn>fiG7Wfc@! zMn}Uuwn7^R2mN40{mJJ6U0z^dWDV%eK8txJj*b$;=czD9gINCgmYBakCUj2>O@t9li&IJvKnduo)o4?bgMFwj_3eI2lXnT8-;_o$l3V-D6+qn zm)l^7#@u?uN7Uwt{xlPm`<{ZsCNlemKK7Tiw8-z@ImyXa4<_+T8E6awvu@D3@0ZI! zgVxzOH*zX8X$61(m7J5KBf7e`#)gV*arv0uZ~Jn?XNiFdf;WQpWbcP4sXD41q`hrp z6&&|4m}kz?eSOW^ACZ0Qnaoh>OHUT_f=98n;Z5uE%*5Xshr9@vW1kh;o+CIivd1E6 zIRs>u`&NE-@-K7PDz=K+kvcu1X&t_^wnof7qo~8;LMkO?ZYCo8La=Q##Vx|+rrT3S z2N6z6fx9~ik0{S%DRKISzJxSR(xb?~yX0LtmwKG?-ZG`RYK}1ETiQt{M%9L{$!fUs zThe!*noUIN)AdAEzs;R9ZK7it&evdRb4lDOYQoexb2Hws4x$rQW3X9z)vqN^yhp=8 zXPNV0-DELf*=*c{z~{kjoDnI1QlXf<(avRec`0{&?7ZULiZ&Xn=@~*br?oY#+gZ!> z?dTM)SicTQ%lS1kKlyORoU5I{D=k)cIWJI@oz!8)%G~kb1C7k*)2T-~Q#zQxSKXrS zA11eqcc9*)VWNGR&6pH1ueCOXz?ZAoY;=#}b|Cu|SfUrk14s7Sff_EHB6b2})dm@}DbK8ugUlB7BgA^VwD(n9sHf@fGY zsVv}q$>ZCdu6xJpC?c5Jc2(c22h1mK6L&QXk@Wczx1?IU2*(I}CyGLLN7IQX8+Shh z)*?tKkPuZu5VJvG7SUk>tv(PSzLtGj`OUQ+EDs-Ap9UdStsu;RAqbG08eN=T4SLJH zIoh0wj)}3K^E%pVK;I(_ZUuk0Vw)KuQ1{KTbv=ra!vNhF2dG&apsoskJv=-d0d{CR ziLb+T*%u%&0rmH6X~HzW&2(U4ApsE)eWk;zo6vs5M2fdxLFEPpCy?l?&&$iEPd2ZK8WOv0*2H|G8qfJ=2dLPuVGxpt295^7p+i5M<Je%Bt&nsr8> z0h;tiR#p~VHqz5}FjL-nor#sL5VVPfU^R)ysF)a%nTY`&TDM8!z?`#OD4`m{OJ^^{ z_lMykyWf}R;H4Ga9lwCfM#?+V($XNr^8?2xCf+v2K11cI$i=DKnrJqRQo{I` z`Q_zUz1XUw?>_9!Ptu-o!f=K^9yYwezF^e$`?ru-9LNOkF*65VoDob9mLV0=AkE;k z7`z9%6`*hZZl~ridKJ8>da!wTHpdO=E6nZPdiEdEFSZ*&TiZG)k?N|eE+=P` z{D)BeD-+Xvi5soO%PyfR6M2%Fpi~5|0otjN49ff-Y2huXRpZu0}WZ8 z1W0v^$5w3|Y=8gGLJnfbuHjsq&Rm`WQW=fyxn~>vTnxn(0RPLhBJp3YGFozuk-7eje1|0zn^n zP9{6FTSm3I?}lO1^sx+@|G@Na)Jj-V_4uLtBD!cbV4<0w5dGu6dhN|G+!tsGyQEFi z0l!)Wx%Z<7Bxz-C{Mo_U5;J{lZ+}07`Gtpld0IMwDmLlx$RUk`uJjHxXB3m)9d(P( zJM2pnd+Y?tVE^HiR9msAdJY*s6|w)$p>?98^`El09$BZeo-3W)i6|6I{6evouXL*u z!*3Eyw}rMJhX~1y+?m5r`*Y%?`;aARfwcCX-`o0{r=6cPrx>D(8yGFwl}^?w2YVk+ z&{$&$jx7`NTJfTPen-^75#f+_LFYyGs=7Q%+?i`rZO+hXdf~48XfHPhnLteAs9BJB z)XYZu_qzf(MM|paBl#KQLN8GHey+N6M?RMyofk-KYM{!Mnb#RALG-p-ivFe8gD7!oOo#hu0Z@Tj*> z{HnW8d=Adt7XaCV68Lf`|Lh<26F}EGvkV<0r+EJsSwcMaW-Z^x#e!PAUJ~}^nE{1O z{_3^|4|;0$dWGG~x27xKB?}+O&^W)>>7Inqw=s%Ic~965kiYe2ZLco9Allm+#i;%n zMmaU{!?=2RtEJ_dVhg#1qT+$#)#m-DPlN6;ID4bzWn{$rT%FA&vz|5KayTI#U|^h3 zQZ)lnV4~Key!Q~WdbRaK+uPsQQeEek!BT8UPb{1A0X31W3UJCpiCAx z5>6KN@aGQeS}P(2!e=#Gd1vqIT$yj(QUm#NPW}k>^ToISADT_;Ote(_~K6@oK)O9^5!IQB87;$;uVdQLu_Q4QXo9Q5rhQryMQp4oz1Q zB>fvdw#_vsbHF$9QzNB1F0penxa?Cz+#8c093ycY5y_FtwRgKkL8`SGoWmYgp~sJ@ zmOn~Qda}MSU0>m!`&%S8xa*nR-S4~j4KHzi@(5gP#hmi+UOk5n=bN>1Es>JzUGd>$ zLh1(;svoT)1n}FMX0Yuq%Ukj=R6BDxm{DB`6k=AGSyfSRRtF2{5^n}VweF6~*!bYJ zz3aAkk!sY1;;T~Lw6|LETowE=XeOMl34UR&k;dI5Reh?KrSm*LovRiNb5ha^+uD(o z>_%9Vv-fTGm=j*pJTV^5;^zAe6hE%%eDY3Px5DZoZn+8Zz3QS%J;dWutIGz;nOdr ziy}|NooR&lTO2vl!oK&@zOQ~H&B2(pg_9q4#N{@!AnV8x;V2ljDnyoFCU*Q@#z2{+ zL)=D+&2C!gc75bKUIH9~7sd@Yv$=4ulR9}Vl=A2brtf~{mA#A?#gf@=c#qM2H5jnC z5EuFMf=r+h>y?dS`_n|Bsmr0OdCwgIX{p*i=HWT2j9tvg7ZQxEovgu#Tnm5&S?3!=)5d1 z%$c7=Sl`wYr)q5s7jUxWjPfHc{u4ZZPrp-&<)D#?747v?mV_>Gy7cnr1acuREKpgAf9#u}71^E19lNy0D;1M$IbLGea~9xq^wH1`%<18JCC?}ynkb~)=noz|_$=b~2?oevn%4xn5q#R~*4EbG z2Tn`BAZ?`q^LXg6=tf6l$#_fwte`9}j|)jD5=;(kLhwD-r+Rc`As|2Na~Yo4k7Y+r z9=P;fLTZ?{uuAUWM}D*ggBN?o?`#s4F!yUKZzZgxulW_-aN9A&3G-35cOjrI$`@3> zI~6qWOH#JB&4`Gm@tJl&jfij2OcHZo{q)ZE7Y8Qo7gl!R_LD{gNf@ zpE?%FbRHMwk@ah7D_nnFK;hn(npl~R9lp<}hiVTbJH9wE1!z+62v`XyrBDfAU>MLv z4yb>Y>`kcstaHUM@xj&h_A^(D2UCwG$1KL5^tR2K5k91UB&i)xl>5GFFQ78k=@A=u zB?}wI(sibg-G!V=Zy}wc-#MC?Mg!4L70;v=l3PotW6^s!BeK<^Mtvm`;^g#}w5-ku zTAMbn-?<~9!s5_SB9?mkaF4tw8ck=jxH%^SC1DvQn%7GAv7sR$@#SVb-rbKumDkYS z&^yn&bcNkN7d2bxb;xJE`+ZF8fZb{t&(By;7k@3@kl9v3TU%mdmM7X;@UbyPb^mfp z?d?rGmD2V$qTnJ`YYOY6nXkLwoD;oiZg!i?vvojPV3k8SV7({mco$}M5!mXUwbuPN7RITV$4VL`s(qHAL<;S(L%<$$5%!$tj|&w|8-+lV($)BftPj8p~)78_#4sUFPK zn=DcWrCT&fW!z*IaI1OO;>?|UDAKW-=Sa$TMC*CZbd%Hu&pC6Lgehvf`Q^={H6H|E zF+aK#%-49{v#BGx=Kq53kuxPX|AUnl0`auug+4#;y;-KVdOf~6wIHwO)=v75o7n1A zGl-t6J$+*=c0h0$8hMNEdOW$W?90bb+6wPp?$9e8(VS{XNQ6omDX6R8o1LAVcI*=c z0?MBQqH|F$7+*R)I--S=4B+Y9AS=M|;q_%78XuRElDcMNV>6b|r4#t^W6R7;GQ{^j zSFeoz|hk(>3svpytI$~e=RM200;RmyWBlpUG%iH zs3(d%Mmg7gBwkbq?=9qiUPS_Z+$l7(ylOtTTZL^etLYQ^nwS#|B)@YL~5}gE081va;DoZlO(rmk1-HKV;#4ci6<%J~4F8d<20;xac7>3=5Fs z*7CistF<70gX&uivmg{en^A<)6I51tA3pp9O095ln~ahYsV%XiIq?r_*-96NU)zM= z1q1{zGzMqe{kkCp@02+^It^Lzlb8=g1r~FWHGuP zz=ytKj}nSfme|%v+3gz=9c(P+2JAi^yp~zmGiP?x*KgFN*%SAf|B&w$msY+;x^SMI z-+jnIzXzwi%*3P;r~H0!DHMM`WM&prO%w^)fGX8Q|>pv&w5)$ z=Ba$_FWChWlju1ro(%t`l#%YKq+fg!*7CXu?L32Zt7|nxe`0U8y@jc~uZsP@ut|0+ z{{woeCVO({37N)pkA1o|LiCdOMcCZm=l=l{{STgqs#$mj<=_9`|N6JD@P~gvI{*Fo z*Ut_A?=AZOU*ao%-%o<|zb@mS54HoI0EPy+UjO@_%kS6G5dX!F`safN>i>guI>z6F znR1|IOXJ~(ZaS%X7Xu(H44_O!cJt}3RV?M9K(hFR{1`svInad9PY4W6?yU~j(M4(% z7lwu^7M8U4^duuc!+hZDON8>5mHRJi;^AW`Nw{PueSMcYM}wp{txq_*=l6;~swY9h zr2dE`d$8U74_1osI2o82Ip4lzq@~R(@h_FxA8!*uqYg^L$U=(6P?oB`KGJ{2wi3qK zCDNYJ5CC{`CF-e*gcyRsE0Q!ZYt^GsSfw3JS6^GQh}B z4M`e+qhENuX^wrXW{({j6aOS2Q?8$d?zAJ+?91~nt9|$Pc|i(^f*c=5Mb#%FCLU$+ zz5S)2;08kdqb_@Oa!<{J{Z`vQM-AX8pL0Ny#q{rz_o$_=owx9_d36k*^Y$mDaCh8$Wo;4b&;ZbP;m* zZUR&d+|61**8uf7V0OTc!SvvPVzn={ zFE1}qK&!TUakS>#8A>JU54sLE@ym)xeea2H<@wo@~zr@Hxi7380sU@wX6 zFo49OCr2e6>|S9Pj0Wp+hxKulWG}dNZ+`h=fpGzdI3fYWy$cR3yM;bpfsfJ_TS@f$ z&-BXo$fp}n(9z#1#o3tWwExUG!We|om!}sNr_ZG)j57zQB9Lyio<}oB&|^1`(W`am zgMVta{SMvs4iA?>P~2bXt#^U%d^ln$2kDR$VDKy^OMn*88?g?)Kvd>d; z2r^|;pxFaM!ob>E5o&#L9N927p9DIa(UTiYOlF_}mKxd`8XPza4&DnR9|b~! zg64ymQjjIvc}VPa4xrB=4^}I?FaiEdQ!{U(4&HW!6p^QS>i`NO0<)13k8a?S8v!*O zaBRUyi(w%4b9ufY1b`4JDd{$R`^fnCFQv+Fj;|waQ9x!0a0`HGIzsCPS~mGZTmNu} zz?kJnd3iSU^}uB?Dl&4SQR5G}*T7b_UsYiqT%@y3Du-TGG-!`!&#phqrbar~v2Zd#1HxU-HHjfK&JDNFo&%R#+AksEy!e=;=|OoSeX= zA%&1&-V3vfknIEhArJ;7q1c#_nMq3=43310U=y$ea19d^ll=qQ|LnX@A3@#+1h~-9 zNqI()8);YVdqFk2{_>O!pm|6!BoKifJ(^ugz48q1?xxrh0N<~glVx$FNiZlM7MGWQ zuda4>aa>U*D0p=2K_Li^bPOq(xn}4yI?;`zq51#%^XDf=z13f}!bYG?eK%-CQ~E5> zI9q%6j5X%?c;5`xA^4_#H)_Sn-xWXqjtW8}kWKbx%I|<@kldcOqGGAig`gm-id(~5 zRHVb(ty|4MjN6&--v>ih7)i7q5EK>;*2t?vYv}C_1DMfV$%S0zO<;2D^@)S!83x<) zZ(tg+*Z+7AsWBKFA8)91T;W}+t*vzf;*7bKmC4?+KEU&gS_17-+?L6pv|?`cZFLg6 zrg?a5Y%W&H00x+lZ_!;rhiJ9z-`ht72B7P#sIJ~y%_}@$Mk~&%Pb+|}_-9|A*{=rQ zYghrm^6PU1N1QMaKfsuxL#1wBO-xK_*4);_9vcP*2J}O@EmZGAPl5iV9UK$t@Qe)v(8Ym255u*ZW zIMl5HWt3J`MUGIHd-CMN^Ak8ZcziD3=~mtD1NHnf)+B7ayPW`^fyZtzQS?e@X{&n6 zo62p`5O#Seo?)SYG{ppDr&N?Hp@(y`-g6p*Lp)lgt8B2|#US89ZZJ5l_eu+}|Dy%K zN9E?{SKiy&oSquFq89hQ3pwR4=>NhE0|zWpu&4L{Qvm?_7|G54&&quSD;KOpnkFX` zaY@)CA|fPSuZ3nRwL$Orm6xX{h|@AED&nF1Z}}1hY9>QjibxZT>1o~MID-F)24H5R zp#cR8OQR%F>wX&mxSmECffcRiMXAgFpT`6}?NF{`6T1FuFf$nGd-4I7dY<~~IKcD_ zIxRm+OP65Sq1d?HrRVV5H!DC(x#d?SCB-21#xQ4$)cvySRplICw8V#{D6HEItvUiK1>@)`ugNWTWfMgP0eRAo~)?k*s#@bamgz7Wte6Z|rRBHfbad2>r1bP^pYv|#YUqP+ z%9YXnA1<9o9k5wJ0AF);smiXeg!yZG{xK{+dB7{EX;1u+aIY@#eVDJO!~L%-jeTJ` za_9k60!fP|BZ8CQHY2w*M=B~Lx3yKy=5)Y6ObJtIJBNp+17F*;B{Daf)0!30aO_? zmF0QulQ1K`Qn`{cCiRM1%rkzeOPm2hf5jy4QK>tw2Z`9Qvd>fgsL|8H*$e;X|hB8N86FC99|~D}LYE*;&YX zqTE&-=Yt<~*#{$md1pf5;;SCsm2-usqU|hjnK+U_2Rw=+Fb9shr4%vbte=fw?Y5( zN@o=OwI$$d2mr(a8J^03fLd3m1RxOanV0?VGaR}OtvXGV(2BqRcXqIU zJm=yq9~T!YG#n+f*$)gF;N=I<(A2cUf3}9C^k>Xkb-JYr)BXK~uV1sle3RSXOcK!C za_akB@WGV`2nav~%_rY91wmW$ThuxMVd2-9C1GJoP(w>z%7cv*dJ$X(4Ji2=BO@9u zt*u0N?tDm27KI^I6e($GKr+GnmA=Q>wrvO8d$;qQCjgJbfrYKCs(N#02V1xLx&2zQ zaFF|>3m8(beQxFfR)9`rEVpr_zETv9+zjFZ$RnKItI<8(HSSZBqj%uj$k}b%#ol)d zf{wIrcXyu7Y_!)CC8e_7vQM8>Q52;PXF?{!cYa1Dd8h!Q#=z3D^NZv=t=iMI8(kAq zQ)>E!35R1jny}tb6MrS{-?{M zv9J&J)K|kj!SSLq^%!nshY7m09NDWAmEcCZg%qZ^HFx^CzY7}*^;>LJj<$t`WB3B9 zSWF2CGo(@fyLw@!;-ViH8=Dq}w;;Nsjq0$ox2J_}GdK*gva<4WlmeOQ`1qI;a7o~X zz)Qsmhs*JCPAuB=4UT*NS<17&A?^dRT`(ZGfSQy~1YIq~{a8&~+v*}|#wZKM#Hk?{ zyQx?Z#e$eID6B335)l|~35Ax=+Nc*+$?D9C3rvzpK=YX{l2p9j7ouJwO3EIvGi2nb zEqUMB`C9byhSygU{d8ir{n~7DvLIfx)#R3mi6>D#9zZd6mEy%B40aBnU)>uTxcA5- zB;-^i-|q(ZM9&jjXP<|h5=>nl?anUKTRlC_=(0Bcb$ipdgogTt^H5*|7IyBoOu`S6 zDxY(5sz0Y6O!la*^N1AEdTO17qF4W)6*l}%T@iHX?cvnf|C);_Dc#uF*@5mF5)`CZ z2{0!(w*c?>3dUaE2L#*#MJnK8A4PNI}%>Yn|w)6Et3u&mY3I-7wX$i4&N_-F}b+R zXg!o=J^JwJ5O0<>FPEk6Z(^H3hSMz2!()-PGOAcpa;Qwe)q?gJoPZs(9y;L>4F}F1} zr;>y>HkMVrxcUAkN??{}F!%BD!>+*F<8ktBRy818uJOFJ#eZ6nagOxUO~WpR7t{X@U=Stu0!Kg7Q$Y} zmVqpMdvA|k)XQIS>dzli6?ux|w3xn z+M2wHNk-2uNLenvPAP%Kc%1&_15j#D1qm}L9wv0kt%O+fnNOi%y; zpL@4A$A;*wYm&!8m01fa_iwRjqh%Uv`_m;~8H)=D`~+#Dp!^>1$@3hS9s&? z#*}zc!=4>j$w8%q@l16bDltX|4L`wMPXR_>`S?l&1SP>o8u@e~q=F+^c)WltSxLs_ z@Gg+p;N=Dr+?WOld{C!;-j_Z499- zB64}WfaKloACMtUWMK2QF&f;{p6vtir~Z%0Z!3-t4lZw$yz>F9EfTuBi!)ky#RVfL zGTB3s(b3&CZjLM*9OV?hs{z|c<+&{hxswW*4}4T$q~~`HD#eSV*IeV_B?AGi_`k*J zDV01?P`S5GO$B7i?>$3^jMto~B^?6QXZdi-*0?8e1VRqbJq85^($LcS0$=myO)GQ_ zfIgU)>cGJOcM$Lekq~rlR;?)ov%D z++`b7RemD3l83gJ(U+Irs%qJhQBjXU2%%_aWB#)RDw<93j87)|ygPwo7b*9uJ2~mG zwl*0qaR~MG)WFv}wW;4=!$j7FpyZ=uXh=&>-<&gIiHW5Ms*EX@4UU8H*}=gkW$)cv z03npo*QW*<8KgikILVllWFL2$g6&7+nXEg6f_SA>0|eX`W(ih^^71j8WcpZb3JP-a zf@fRs+QTnKWx7bac1l;RtIgHbuaILw{iz6U?&+D#J0qR^*n_pyMMyr4c78tr1QMY0 zkb41;27Si$KCc~!p0AsUuO!W#GeR4MfywNB6jRr6D@V!_#asn7=bXty@__ZzQr9gp zsGZ7aXpHdTV>4W3}AlA5BNsXP-)=oH-m7@th@&% z-R)gn&1P%d&cOjXy|_3EY_*U<(yZqmet`4C!cjAG?)_7$6!%q&&6>R%urG9UbTk@p z+Wl^M3X&7^xSpx0ysK4@`mmF|6)tY>M{p$8AGa2JZh6d=PSpPkE9QgwRz!pkG? zBA3nSAgGoJ3Ql}`S&NfCAPW)t$qB}SjU!9@p#$_OCS0R@O%7+{G0dL z5B}NAs_Z_7h1Hop5lK!?t~}eUhL~V!NLf5HJ-xX~gr7eSJc@5niTs4d(zhvq2E1No ziRa-4vUV@z(Xh9G52!VX*L1?ss@0{~x$lC}iXY8&_+{MM((+8-$C>-MAO?cm?Uq~0 z+q+%$^x{{))LmDyR#sQrgtuxGfy&w^di1&Z03`D-U{()my56U`2MaJ{A_H!x)K@#y znj2j2^HzW`Knr?mTTkPej3VI=6mwEx8&E|9rhEGDV~*=h(NLAl%+0mTt>!Wu<9+A! z<_*#-6Bw)AfYHuDAb#{30Yh66=6Gg;;{ZLJno13C0-!!&N8Q=pmM9!^gzD1k39o-Q zZ3-|TWILMk5r^(R%&90jyV|glE7IgWpXr4~3}u}F=aUe!<*H&R1KubHM4Aj;2PbD|aCcp~Q7$hhmr+@n0CgzcflCO`0LA&f zxR?h{9eDj8+Sa*CYQY7H*jtfYldNzraC>{Z`^i^VsIaAhfoV$epu6_J&y+tAYE_U) z%Oxfyxq&QxgRz>ZpsrDpUi{*(a^+eF!dLxwCtFy1 z_D&tSr@^m+Qi^;`#GbmV#Q*%kzkhtqFgFkd@z0|B_cGz%{11p|?)=YR|MRui=Cc^k zGXDSH|MMTyB~owy^S%H5-1kYb*CTNL>$B{JZleBsE&u=9+33(ou>SK*;D_3M5D=XC z6Q`x5HuF!|Rk3WduW$SB&x9Ck&9Auly++>i$WNcRNAwbI^YddsElJqken)NQ4)U`q zvfv^rSib4-1str6O`b=|750T+ePa0gO}{?2|JfB{^COM!)oqLO_SZ>owh$OO?bf$@ zFF3q@25`(OSFDpCZd84tv2VRvFsr}f+48CgQcQZeFvX=dlU-O}`g*L$uo)Ak9tIGb zof^09-faSG$Qx)2Gu4K}iS-dQaD)^Tt{5JS(}5YPWE2mr41n1V@vmNSy9TT1_Ws?g zF=ObRnEqN==mA*xotdptBVO{zt|iEya5D#ubF1l*H)1TrDOZ?gT1%ItR&w_~htQQ9 zwOJl!c9rn0!=<ux>Pt)ND*LIC zqMa>_MX}mMnO&D{@fWr!eSW+3Ac(? z*8M#Yg@8jLi(rG)4!XWaIEqG9e`UzYX#u>RV7q|x0ojXz_D$Y|-u&x~y1J3m ztNr~y6s!`tV-(EnVy}zui%b)g>O56cWYg12C;274u%vI2JFPRTrngO;{# zc&uD|>~*Oq9zpn*=WOg1)C2^3r(uWeD7SG)>P~ueYieW6OWj#J*T{JBA?t43|Eu!m z4Kv&i(MVSZ2cv`4yT2FSagm0oYw~k(8b~3W=!JwL#>Z)rP!QSKeu9oS2P_XtN}UZk zNmW?&K(6Gk z3Xa8?7D(#f#1<8CUtS&^ag1-CAK@7o7`%nXDh@6#bQ9LzqiN~8LWTl;AqwOq5d`dt zZ-i@KhN~i4%%ii}{FxX;974rP7^z?V2T?I)TQ1Kh!NrFk2 zR=FlZ9a`yuzNqvY8yll#5amEa+7T)S`NJK_UYoHjFlbxv)Q+ zuQ0`_1;k4jOq*G*upKmqilsK-ZADykki z4QAcz*gM4&V(`e1j}2DWrcT<$4|zB_$p=2kB?pBQ6k8OItU_N(`On`UwE_nR2a7M} zbejAyhL|6S%IgErXr5slN7r6hTTT>XYL6pA)KaDE(E85w-Uh~W>;+ZpnN65M+9MXM z5cAS8MtXV9;%l-TvDiRLX#po@yth(xkdh>Ygpi3GYSAGOi1Wkp`pWe>$e)yQlBMX7 zqx|=PZVF-b4#YR<>h7G5ro?axpU)HcECzEN>bv+9@Z)>{o#Frt*eK>)j30G(bYR1s zwX|e~xRwBrt}x-tLxN{8g9j)6H{S~Rw6UY#>z-b*;)yU>DCg-Z0?!L7$}i&Jkyp z3Gnghd3d5=9rBWgHa~Qzy!+O;y)FZ~Jbr!I;PL(>nD|o!VINpPxmj@d|Fea>h1IYR zK_R5dlQxx7bn_`5n`!m+sZ~`%YYyP50DIUw*hV1nE5}ss>g=r8D4UAsdrb`dI?~X# z*N1o6gYRAM>-NBokNuc5Nny4hKiSu>Ru_|%eu9TLQFie2l320>!8|O->1<@hp0?1S zZ&6@TJX2`IV1IQ$nwvPrJTV)5RaCu$gZ)H_>4HxfF?Y&ewNWr|yW-wAhBqz`sp?Q= zGo=;WA6)b>n1_2yti`uS^qk@&g1=gq9oDVszX?BiQNQs*omgK)iYsM$+6e$&Z;odA z1YLVw&R1?JPd_%xPT`*&x6~^$YE>8-@h%B z-u@cDcu~YuUF8mC^-fa(OiXt!GbQe{w7Q>5-0tqD%p8RPz;Q@=o4&DkT{3$u^T&^O z{{A;$JDjMk{%IQT<>A2(KM1nq=)Rkoh;7CL|^KnWbJ}I4*ZD7x&#naHXZX0dD-&iujr8Fn3XsW&iq1SdgBBPqBV#PGF9%%$1x92Ic4fx(%5v+ApPgtSu(7n_vTjJqfo;N=YgYJKGA z&mpP^c=uvHeYy!#d8ElouZIqg>aRpEFPG=C;4>!n^K)}QW~aD!+FXUr@|c-nD~na8 zK%*KoiXAZg{B2D{bY$ATog8AhXL%z~`GV5XM8yuhrKRQiAvNI_FbS%A0&Nyp4av)3 zsJ8@{$^dN$##_g#;|Vv<;$L9C6wKF7_DQi2G^do58BoIq0C6UC5QFpb@|stEEoT{Ap1Xl6(SGqK(ewPO z8ADl_p|7@Y2GHJhu_5y&<;4m^(UT^uq9ow_#f zcoZxp#mrSo{p5vKcn2T3#_l7(EyY%^JpzQ71@$7CN-xtcMVf3<_@IVvsEEj|zWCCX zX{C(O2mjFmq%ACZydd>py{GK)>HQKyV6AK5&I(UIhfMAbpv0mkwp=_!RUJYcAqJ9g z$E)voziS|6I5jRDm=&n1Z)`)5xfjD;g%UI+I0@?q1E^nXP}@8%zaP0 zt%!V0=PN0Rf2~zj@e|n0E3+OX+dJ(T>gvN&R-lt`@(&0Q9P5`%C?G+oKYCLkUOxTF zS9+nf%v#23a?U}X5rK#tB~QTlz}6M}s(;Aw6?bh@)46u_sBSedz;&vs&#n^?&*}yDDkI~@=4Q&|g182W zy@eUT#8JPtUnF{fMZxewf(TZ9p!m=WV+!?X#>L;XA1;3@cQ+1ju`i9IdFR-k z-HGf#6mq(_SDEA;cUI{p`yz>C&yx^0L%LDcqKOy^M-K zg1yFs5DwQDX>oUgv}EmkMD>_l2Va(u=uM5_j&v4Irhvr)o(vx;yH`bNV}CnP+mL#z zpwQ4Cn6exre}^=X-a=5-{{&6gS@*REm{>CCLe9=*^@f1fMyWZP)wi~!8yy)b0-ykL zvw}|HRJo67aWYgp#Lwp!)~Cu-9|z#b%E_5to}VCXgCHWEh{guF4-^O{PLJSyOAr&a zo?eN7!fcdsL3U>52e2&)ga8zf?G^Bzo0yvJE>IViV>h+6Gi`VCC>wK=BHYi*pFFu|6 zBI5t?_0~~Y#ofOkjYtWobV#doNQ0(w6%#8JQx>|=F?0(i!a%IU5gQN^vJfJ$O~u6(3DeBPWJP6VG=y^o6LSv6^4Zb@ zyp>+zz{U1n&2?Ut5oArg0y6Yhm-I6EBLjmRF1C%_KWxLc>&Rb^N8OJWJGQV$J;YsU$9?018dIr zYjVzW@1PhE70@ICbr13{`acr48@86~n3xwAJ3F4&+ibH^^vla`Vm;m0S#fzH~!<_LCL2`T!MO^oFd*3DyP|(r7=#*?u&ULbk;6D9pcSzbI zRQ%9>mL}(El7!0W)dyC3~m%EBl%v~vYd3X`VhjOQ5jX3>-X{DWI zcJNBuwW|?P4_i}TJ}@d@VG8-Ht)=*u#@J$XZ>(|q=XQ492ASiWkmcYNh3Ujk*$hQP zSfJ{Mhhtuk;*#+;nOF8w>#L#=b1pCnn#Grp5E23oLtxk&V=0+XV2m~x5R5I%`rPEY z-^t}kPLcnw=ai;BgTJ0zmQ7L!3e6BxP>AMpR|?tZed<@x+OFgD_x85wO)}4#vOa%= zFftOXXUOnVTl5JFiw(3!O1Qd4_iS!LmuUhjW)@h9f}}I41g9wjTVm^7Wmry~2p_h1 zTNde8jJ5uj6IVUH`Cf@h&x6^!JHf-dS1XQo-g{v|?jDqZ{tmy4%D=*Mn_S4FN^hQW z2YZW@@90>oxY{oKbe@{LHd**k3>AxZH8m;8H-p}@+nVuC(VZZ%Zdk|M{o_Q`7vxWDCM>JD)ny^txMI(Oe((vlae+pGSuWW4zVBC7d#r4_!;y6^zXSn&LuXuWD zdiqe|Fy3=(YYa$fVPIhyWqBS4a$C4&Y)yj);da#KxMDb1>7j$Li?p=G(F(&}r70}j zQ6nzGJ7N5LTb4JZ5Xb==(9o#1t;e;fd}7`bNKmzpHbyRwigx1E1o#dTcP<6!BLacq z$f$Qe6qgkfqno>!b*x?t5dc#xPeB*v-F;(AOG6-u04Xgt?AykyOCvNO9u#~=V6`>r z3d-iCb`ed>2+{Wn3crdxukdk&4ykVA0_@M=Gyx8M1t% zXm{v=-N*T8WXvpS6BwYgR#uN*2o&f7EvA`wZ*{eEf{^QImZq7gs4%$5poM}ay7ql3 z-o*v>?U3{Rj}HjG0424P;+EtwKX+1mdBCayXmztx9JCdIB!f)IC1_!xq_4Si-lML* zM>oIC1FdawyO0(ding~Y{6$|A5~^gqehsHj@Lz4)^>iUuhbetgWYBQ}Ce&T1k*v#h zsKNF;PoWAqEH+lkv+)yXb3kfML}n*QQdD1$Eh3@?>MpVWV4|m!@%sqCF7W_(0am$z z5q;On+2&?suOtdv1rUtifo%aannyk=sk_gYZwI zgPMLrDm$0OGuXSrXf=IW4p;mhb$>|6P>sy~6{BsqxeFOvCaWhl!5W2d7qiRU#H^yy z@y&;c=ZcC%^Ye&GDxpck&q4$7tE)P~BopAFkXBguea$GC+v-kOj8S2-^S^Q9cq&t6 zWxzj#PS0Ir^X49Uc$mQJ8kr2L`lLTZ^?xE6`%v_SPK<^Z9MVJ)#xXVg2fKx%@5qIO z(D3npL&@&&qy^XWjSy&b`t(VYOz^$mi+O476dry3@|=;CpNLURBk2;a=jT(YXlVQ% zJpGBVwy^-?R7HvgNLEgRKPlkwomgH+0NHWGvf)tb%e(=<+=?A9JDOkyfR+1is$Dl z3oE373H9lp6avXs_d*t4npfxxAZ&=FrVE9p#5~A(aAx=3+hF$V?!Yg}o_A#-4L1bB z6)5u&NnbdbxhzFkdGE4W#U(ven*YVhi@=v+UKRPTOVqAFmCDOY8#Pi(bGW~gfgpJ) zaM&?2eX6F_ErHVHmFGU|+UsjyRb~8*GPPZqUV3e3dPL{MwWlWo9+z+VNhhmz3%oED za^5@@#7OXXdZN#mYD?*xoqg>$+S8)FRvItlk_H8i?<>rRp^6OhiL~aE_*NEmg{u-p z%Er>_XWV2Dj*iOJRJ7)_c|HvhYW)KeuNqthQ-HjP>FJ?>;Xn(uXQ@LkohK(Rzb|EM zGxiyCYYh_+Boq*>L<9j0#uTRZmaf2OP>D@*{x@gB3=d6O3K4-~t1H z4t`NDGWW|YbU9)fSy^u}(yH30>s#E(Ls=QJ$iaCAIJ?Vb7jZp{}37ty;*|KO=68f+dpWLm?_^2 zA_$Z6IDm(L3AW5C&UFp0xI9}B!6tkh#6_02nnsiEZT+_ElgVMhs#ZUaPLAoPQzP~I zD}*V5Uili%!{kcOx1OwjgSP@QRcoGZ5+BRa9?sAGed8RtUCOX#Dir*2kl5jEdSZ+w)wWG|h7~E7xc1bi^ z2n(+u3V(*U z+AD9HqEg_{4%0s&A+elX;^}!F04w6u*5a8q*)=X)1jbHIpZi2adQ)F6zY;^m$6t_n zA0q<)I3rWcW>-5_?%u<{ErBFYo{|Ox4c{Z#kgzJo1;uDfD=IX&|M92XE{&(n%gzp6 zO`3uNRnbfv22Rc>ZquI=jW;M~XAz0M)d?cPb#Wr{Hk*NO(&rWX(kZ2)UpuiGSa}P>7e|yM167*KLBI&R& zh!Ib+dW15uVICbS8x4-$3s3NGN5@ro%UPXbu<^2SWz~7bE4n1pOU2{pu7u@}mltx- z)frp6T|>%-o(AA>XLt86cwzvt-v1H8`n55Had7yryFZxJ!*w@aV0%B(*q9w%_3HAH zVI~{6;9m{T*4{@w`h$>~x2cmVegGuzx&=hQD5IdRt~1tNln!Vj@KF#J@x|XC9TXj9W#geHrJw`UH!>QZ-*v?V z+&aRrM}s@27%IzIrq%|-+TX!Go{L#E8k6@tqYD$4CD8vlR)XkqX*Qn{-R=TkKJ( z1fb_CXZhm;?s#%==g0N5XvibrK-N5>-0O|{n2W3IL#b|&$lXZiM%rgI zk@LrHsty!smHE+l1VNHM7*$6f1^I3`XC&L(j)L^&B%a$m@!*S%VKomX%712KQ0o40 zRr`#^-gvEuBN3sa$3=6k*zrS| zuP9kJp~aLx@AH|HghagSnAU60ouvzvqxCMqi%iO<(rDWgZ$80OD++y)i7$(P?0+kL zlcb$?KhYR%bai!wcqN_9(Sk8M#rrbYEqlEMOkK?OZ0#GHrIZc=BnpX_a%M8m4ZyEM z#=qpWpHjj^Y!Q)r;R4;kevn)hi~vt7P>XiB?py`;#6u4H>VnR8AMElt$axQ={;4CV zs6<=)nCfn}%SS=98wlhscWxTkEaDF~4Y$WXCehjh4Fm;`?2g;&2q2P&+$KjOqpE}f z;<3tEO`&ABpRurB;}a80fvXxM4Y1#nqdfzoEpS4=1ySY(?hq0}u&4BMFA*>&L#>-e z20G2*@v-8E4^nDsq+lTi-^CCKl``WrL?344ZIsP?HX``Qc6ggf*QBj|8}r1#Foi0~ z9ATg#zoqsc()x`o(1j4f7b`2SubameY-gt5dY3wDPOZj$nJo~O0ZabYGOy50%sqra4AMw2L2 ze~p-{v_I0Br5nQ1Fg?vwK1J`z{*epEy_~grMl6s{z|PFPYJDjE4Wl~9Aa%(^H1&ss zXRM328YxQYL#s z^dqIFw3E}XD#XDO6H_%wc^sN2(wv5SqhI(`{^9Xd{7dyX@x zdUY>p4|DJ6f^=0d`fmY>?)(adUX@nMb5?qSzj<{VA}mp<`2hv*{N`rD&`v3_;%TeR z<8za*e5#ldm|xh?>N<6eyFQRKe6M5`6#2r23g`fM7!;26@D!d~%-O(Xo~8XlUSKaBR$9I&)z-_bnkgn(#YgV~os9 zI>}6qg~de>7E*&4Df#-4;d0ks@wRf1#y^wJiA+X)K^>5|VbXZIUt9011yn@1pi(c|Fr@ev1T3zh{aK&4?} z>9rv3+J`-O0#&&Er=EtZ^MvOy(@_}t3>h9!o}Y{2A7h89`i&)v@J0A$9_P>z@ki-@ za6CEEVjIdWk3<}Lu@pDqB)Pxd@b~);9~M8&so%mpYx;~qKqgXUF~alLo~sYY8u>GH zQw$h_xy7&wUB4EGp-e0HZ?0u>Yb1J=>9_44AiK=Y5>l8@+)K&IYCA?5>FZNhF|GTX zK*#$yqLVF_OslTEe0}%m=+~Tm473haWww+ZJ{-9FNnH@{3stI2kLxIkRrv2<9KOuSk-|-@S_= zEMSM+XTJkP*alFHBDPhaNrZ1q-!wa`fdIem&Td501E=2K!zI&_6(~$?B&@}JZ`|GMxwyD)D;r>HoGCsV zRytU%OZ$E87pcFpUBX3T>q*ZaUr7^{B4=ast@%hg6W!%%jnTJ;-}Yj6m#ww}KQIz> z$mwGz-;zD82Hp9S<+GQev3=fk?tka%S-C%@)R6Il)p28L)l zMn<)BS)DiN#>-(MDi=D zs|)7Z;DQp}_eB%T3C+zbw)6$>WQ=pK;JBTJRYp92WU$|=ce~VZZq{vkE2qV8+0SR$ z?>}l0w?qx5z2!U%EUZ@r?}nzQ&3O1C#MIQ{%b`~nQB|#IZ2qV2A$dl%D()ZO&n&$^ zN$+heeQz_;c}_XQAkCKAV!AD@-qvE9a5;L9sNnN8e%Vp9ZEAiSGh2rTj=a>pLg`-_ z`c?@UxNj>d!aS9ckN%Vlmj#8A)+2y|TIcv*3#LVM5`{SdEhgpx1J`hLNJx_PW~eH~ zQ(mX(1i>dyx(QWF4H;DZ2|w{w5drK7BxiYfI-v)D;_UgUZfiR#0p3SSs`7s#oSeN` z&y3a8i_1OMmW@n@24-h{#M9|H29GZ|4doY9+=-Y?A*wq->B)RIaXZviCvmfehGLep zY_6@f!FZHH#Y#fbjo1Xl1MKv7FxU-AKWLhIL4xk)e#!KVMrSwIm@+9TQ%Ep2_2b9W zEIE(AOaJJbpROJ_-m`8(K^Zp`K|wtW`>sFhsWGERqT%Kka#*3m z@hO5H88^NrsRV_ovw8lPO0?DV6`9_HT<>t{CaJmK#aF61H$le^VcG7X{Z4c=*lO!l z)V9%FgVuGQKO)_Ee|B$s)p3&UA+E$#BFfM@Ywj~|4qD&cKnvQh`l@&OZN4n3XxE)t z?G2H+ULRvzUhqvm`sGSDpFg%hx*&hk89ZEfa!0I4SX6F)Hvb+OHzy7b(!NZ=D=Kw= zet{mX!4#?~T^BpMpymTwOd0LwuFc;(a}}0zI1pVh_neyeO5-jzwl0L)f|On1y^+=` z+p}k*{9P5T)71wEyw*DV_9B~`o1lqgc=jv`=+NYo7;7kO*_?KmG9T3kIb>N`+3o6! zgv9l1tF*M#c`01t2hU3TPn2>uw>A-msxa1u@xHyq_E-T&79i&;J~;l5SzuyR0R(JL z^S*@d8$IfK_6Zoe)43k9s2i2Kb$)A=%sl49hMSDnsh^BY6a2S|>uaJ-00ZoJ-ZY*L zC0_@`Pk~o79b?ItP!pQ`S{*Ka%Cb3ogb|8sz3uw3tFq4zAOiO7an;@q z4f^+wPm;D54%v?Wu=V_QQ!u5!sPzPI!)A45dAaqeRVsJvt5mB>=cJW(TisEngVl?rG*tukeppq2%_n=f z*m!+7P=Cc!b}snIvyGG1H@aU#tCj(L9~9@T3w7zZ82Awj8yn2Trwl3Wp(+vKc+CZsy=i4-Xg*CHVa6Q>;wOLppylPq z2ZoI9{z7&JE!h0V69zs$EYO)$Sc({MUbsnh5_53sc6P}y(2o1dn}>48xNHpbEi9OE ziongv_?S<|#Dw-%cnBPey1E|dIEDsN+uPfPP0tn0=R6|IO$n{WG;AL~&Ckqk*T$ye z;Wp-TFypeF;;3sV?6s~4<&)tFt~$N9xykkHl+WS4o31W8JUzh#QE;S<_~NB|XIFg4 zyZr2uk_b@c!WKqN!wr*VUS6CTz5V{75@gHD!^wn=y|s39RaMn-2lqrG*G?>Z=r;csgWA`=CM@%zKg32gUz}9CpdE@Qd>>fRMNPCLoBX<1v~N5qlaHZ# zKlnb)%%W^B7jf1?G#}~lQ|gGZu-!!2nkO=AJLrae3XymiSnhk|Po@f=(@Sfy*UB8~ z>1VNV-pQlCw;M^{LobTKe9@@=?c=|$Ay4m$9tK{uH{D*0tMuw=plB;oWd?yZL{vch zs-%+>uj7n8gTDSUEgfG&>U&Mi-UPlVDy1$4@RL)p=`<2H_b7E;D7{ zZ5Hj#Wgq9QGsSH3kR9x)AetoNpmfa17ZW_d$9U#nST<6!-@#ug#Bdv)(Nlubx3kUoZsAr=})> z9~%Jr959Yz?rLrrf;;gA_?BM0d-w3>K&0=0{jb&kXaR~{Pbijbh~c3Q>i*R1WalU?3;og8w$~q~kyJF*`e@ zz$yxlNeBw~rIL(k+Xfo*@|kNUdns-b>}>g912xEmpbqCfTD0|Iy*Z% zMO71lH=yjr$Hk=sy#`@7)5HHv;h11|IC))k1N!Xw^>ulGMn8V^zyd#> z`P7@kbB~1u@7zL*pBS`Bd_ygN|K9ubNf?C3RMB1I^|digq6AG%!jX}~pzyE4H+%7d z(ZeGtGJ1?J;SNShetvYRVf>pXGXd}(n7Re0!4(~6J{6*BnlDY;`{RAM?|*cFp6kUF zR&WHauMdDp7X-v#2Y5Snckg`oU`>RD{BK6U1&`^ww3IwfcJ&7tsm?WDeGs_0yI(Qh zFGNAf!N5LhZGI_gnjZq>?C~~p1%}_Iol8wkHz7LU%pgGlsxAdI;R_3#W)n6o^a%N5 zC%RlXsR~sfW(NU_uPi-GV)6~A3n=I~2?+}ICApj(&yPNyXOK*Lf7=U^ZkkaG**mOF zm`Dg^5+ZaoS>sjrD(`Pq5NYmZk-U#rSy~C0)m-SXE3}PFiEV#0p4V|&=zjP?ij6L^ zpxyi(Lwec_9HB+he93B-^$)7mdqLU8m3j<8HMd#V0OWxJy!#v7S1>@W9*xaC&)lbi z`YiLQipi0?f{?4Am>UT?wZWlm0w~Y`=~MP=l{X*w&TDzV<>cXkh>Uz&I~pDr_XRX0 z;4r;he_b@G@8ja?3W5a?JYI}9xTAv^TOXz*BQ8X6i}u|*!~g#E?b?Ur?%>a#QNV|_ zX!Y)}w-*O|Sa9pN!pVP|vF_pF0f|{*AQ1~)v#a<3PMZ}hAxcV0@VNH?MFURIg@ZoF z0|@sRN4a4F8Pa3cA}U}zBO~=d@(i}!wXH3v?o3}hN^g#6ckKhon1;p-G-nY2O$XT* z2)2or$mrc4GC*PrPlr$#gTN(z1}C(UijIj@f5+aU7z)a1L^!(-Fi&uDfJapTtY6^3 zSxpZW{)tnP)NQ!XpZenb{5&8y_+yjz8Du#0PfT=zbE#`JdFQ9AJNRk=xdwO++0&=N)_;xYa4 zmkssCCaIOJZ8Mbolur^w7zaRWGf=Zu_S~!|2M5h#V}x*unVOP9x=n(BVY0a~8xibi zO?`dv$h*6F28DuL@Y4jcYIkq1_;=pOq3Qg1k8$7Q_*ICLm{p?+-l__(d7=K;7uot=pxasHRy&w6E`jb1^tA01sL ze66Plc$rYd|5s;i@?AhoLPF~x0A%_@V9s2HY$gcu0Tc)b1IgE~+xz-(VI<=h z5CC0HYHHKaH(o`_Row(9VwZgOs`0&`79WEuG~0MO~c=myx?ZR2n)aU<%yI5(Fb zwMe7a^fX;}LM)`1xv`IE)aU^~vcAr_wzgI#Pey;MVd6plk14B4iWj|rik5*yHt{g= zlG9$`*aMpbSw_}M8xv_NnCPDH%e%Y##3V@F zdaZJ0rLYH0<%a*4H|!(F|JcmnQ+7P6*ov#U+g`T|)qg*JE8+cr*}q)A`}+H*zx(>= z>i_&=Z!4kyf3w(sUii1142tCKUG(3ND&xTaw}Wl{KSsBCgZWqok%QCM z-RzTJUo2+jZb$w1ZB7rrLd&(%APzi5G#0u3Z0s!ccIJEhsN}hf+fC`v<%Or-YkQRj z&HJ`a|NKwF5)rU3c=pbp7VVy-fyd?h|M5D9@H)V8mERK%Mxi4Lt?M}`BJAfGxw^$Z z|Mv%CRU6_UFv$xG3oPSV&=vtU%gs4qVHgfx!IRaesE8F3j{!+52A@Ozj0S+FPsKO3 zL&*9!?WlSGZ{Hl4#=^l735PzpW1@JvXr|)8u%22dD+CV#VRB0luCF(>wl14E9-w9Y zV*bdC7#r(!ibfUf{YEP^)rFARS72?OqRe>nTXEFiiHX}!K?nRcRt?RLZDCbV>P_FQ zyT638IX2m~T(aIE=_4UpdfHD4*cxm|X^QpK4-cONpdP8>6}c$?t5^S?@A2;6easXz zg)eq@nD0r_)t~5nlTF?Um3l!hRF<-R;_ODX3ULde~W70uR~x|Q@=#`w)eSm=+N`66@aJ25vihbbP z77LN=_|X`r(;D0P+4cpSP-<*cm61IjNjMBMz?sF^< zGEs5x-z!%PeRe_>XvwN$`IBO|<*5fA4MT972;)5lT*BeuG-mmgCBKu23ImmVs<GrSfYzNP0~W|O>cX_NajXta;e=)Zc&dbB;!NOrK zia(E#p*2VK=B(jV9P@C6t8YS}#|jna0>`+^YIz2>Q&?AFytGvquFXs42c4#8Tg&=- zDwRn$qAay8)YqaFXZGJShxN!7T5yX>PZT~z@6`VHD!%i=vDeg#3$`%8ogCWrIf%zJ zU710@4KjjSThQl2NDw5u_=JYyLet6end)|O5RV0?CKXo}rJ^~#a&CN1|EFnt1eTZE zzlv-qbJ73AwLMV?bxF#RX%5@q$mRcuNxseN8{B&FCEDu9HEOYO+maF?5`DpTi(@!L zA-)bf-;jyokuF9;cFXBJr&4)HxXWCJ7*FrZml*c&;y<2I*>CvQXfbILhNflMdzIO6 zI&aETqyO-Tz@WhM<-S1Q4_T>{HOw`>spcb3x^aqkmKNd@co%NE+h%!5tFv<*QHWg*fv%)7Z=D*p#+Hp1lsJ^OkrJ9HTc%@xXQ9t!V&s^oOsb8{>2 zyiYd!MSfkbac%xH8vg`R#y3g7*@`eC4o2RF_~}0!vQ>YHg#yRLk_jFj-Afj%92Fi? z;PZQAZOZqpI396`p8Yc1GN7>guhVZ;leRuOvjGCEN#Rf$xh65=ju$Hp$Bd8uDBe9b z|Epa>kuO2?(fT0vdT!wK@T0+b7tP1TO9{nhc%0bA(RFFLaS?Fe%UaFhu1iaLDWm+|#d<#vU&mT;h z%#G5(?K5yy9l|_3;>u$6^pA;s&32eQ!POo{r`)*P<^3S?LB-i6pS3i&b{n{&Ro3h*!{=WLtn%L%|X zlQO*$Hz>aF^&eNup>EeDv~AC4d|whH7yndY34QnP6+4Pp4)4#`xL?A9-2c6KF)sJJ z@u4;C#jv2-)hg%CRyL9Sm^oR)s$3pI9zmz9WErzLg#0BE`v_YSNZ|ALP1*-&wH+FN z8m67@CA2g*{{Cq*@a8H%Mr7*^eH&e|g_Z`oia!A-_P3;jKUwbC-U%Ex;ZTFUvYwhbp2bdMAq2+@$UoPtAJ=C6 z?=ze58z%L0k_Qh^pR1~_5<9<8x!fgt_%#y$3r`u$Tx&zQrVrG=X>p-3@Dbs-**@XD zn<66Lc}?pEf!OZ-VoQYO*a|CeN-Fty@Ai8gzq*?hQ^I(4nWF5a1o9g{oKce&b+yr^ zy@O`AHG<=E9R7C<#fG+M>|-tWxcNULZ~ioICsllG8mOBa#>bzknCErh#`dTM3%h*? z`=@~OeW~r}%V~aiX{)l4ga=BQiFX_RkO_r9RqpT_Ty$pRBI`q-E7Qz>lpL3JG4gN> z;faZ~8KTNdWnzByekWc;mkggmL&-b0Fj8jZBnyAs&_otqjSrY^AlF9BV0>rjPk*aqZr>A4PI09_zC`G2)Gwy$=6HKGh-3 zFZ1w zZfg}1i|i#9FV&i*(kZtU&&2;$`C@A}>ReUUOEuL5V}&osGci87ij2XWqccA`+~X&i z`&;#=+OwuXU*91<;qSFTF_+>Y_Mbh7y*hsT`Ke6jL|uZA6hn@2o_7kFEv0RiFHg_h zOXkj+3j5pyv$3cj?g0hp{C}2Eb28~~xV+O5?iwmdr`SAgtgrWzZ~m@qz8RHNQ(2K$ z>$>^)#^}-9_u1yt^=N`;w(Q|@a_M%}q~qtm8~MJ?3>;r!`meVT*6mO4REeqo?w-(% z`DyeB{dHaU_QrP6e=jSP`O7s3xlzp3gGgHPXNLGLqFSMyC^?BPhkmMdXwL(Gq@Tv; z8RNXIcTeosBn>tjS4t|2?Wy_*+WCa;sFMg_N+ad0@i-#R%e&aj)`VLU{M_oT z5t|*my3`mTg1d9;wI#wAeo{ zmYe@gFGcf@63u_t%iX4N|3?OemBS%uZJ3y_d|!xyU9WaU_62LqP!21)M6{HI z(~u};D^6|vxe{4<*To?jkrx?bXZKI?u+IyNh)VQt6~^hi2KIE&J|~~?tGl~<3Eoxw zIhC;2%*wwTv|1!56cS=p*CziS3yM09ZADfJzB`wq*UgaY}}N{pQ_NEkpGWd z4XQhYUxcy4o>>+V_QduoJ$m5(ZMT*>%0p#F`iLjlp})1kt0oIaH0yB2h&A}PamSGp zg_GZxm96`FZ|^4 zutVqJJ;Lx`$7NXs6Ba{6*%@sdmNAE@afo~FCV(Ua~_wN%)F@`Q(O^>5~Wef zpfxkrqD{%eBL6$v*Z7qhX(Hj&gNJ~E_+_`oYwLyZ_Ku3FXWKy+r>5)CH*}9DvPlJx zng!Zo|12q8^nLn`i_7p!;p=u;WnOYJNrpoZ8kSdDZN_c5SgNTa>ibthh64C}?_Cv* zq)tn%tgKp$xO6xI`)Y3I;RIawhg4g0jUrH>0oe^-S7Z%8t#?f6q1Hb)>Lx>*<^C2o zOl!vpPV)ASa9)8=^Bw;86K5Ni z>F*AwC(oy`F;D)ZC3%|1Hvf6h6J;Aw{{7d+blRebvn~gPw?gRtVQPUfc+bT?K7L5> z9wbKtAG%I8``^{vJDGfax-MWaui}^HImZNL>7k z^V(irJDKxcX}*{3n3=O0TdwWoO$wzTRB!gjBO?!Zc`l=8e~;?>{Y!C!y%*xxu92IR z7&MPFu}YP3&jfgF7;E*_7gr=ci0sQ4wD;-HN~CvARQi9D7UGy=yG-|A+)QOypVJy- zk*dh1eH7$$X{*zb^7r(S^cPc6Vz1ZJv@hI_lzv=AM&f)6g9ZQd!Sm%W2In^)2S)l& z57G`C)bf=AheR4$V~%P3XrA^?xwGowOR$m^IpMnROUphsm3K{AP4-N>%_V~fX-FXI zUAWuV4WR8Wu!uO_T;T!-W9zTGWP=KsNlen2-yn6syRFUk0Q-fV9oE-}Gi^}8c?J!& zeVsxG51Cb4mO3LoK=#5!fk(JUYW4n~r?JBBXt%l8?V${g{1%@8ZVo zqbb$#oay;wf>7MIZ-Xi_r(YkZyUe&}Wb~!ab(HY7%Qh+F_-zQ1M2KY4*4yVL;>{el z^JzK|T&GJckl8-4!6M3k%Q$t#Er#C9WjhqG-H#jjL3iLZq=j=D<1rf6i1YCFRnVnK zMMWo*IdkIgo!RFuXX?|`MbvC<6@622iuUi2GPpOlb?aAf=;h+2642MaL`b>pC_gKb zDRVV2|2^Z@+8FD0wES5v{&hxb!L%R^8VJv0+&MtCgwb8ac#bBx1&KKOHMPpejL zwy-V_da_&6tI+7Pv3|~Y%3t4(>E~uDqQ^-s^xscg=@`hru*eZpOOO!#Z6j}XUcOjx za(nfhvoATaP}y9%WwlIksNQa_p z&n91j3!2(a!35dGvCNXL|GbDDeUtnXwqeBx*DxQ;t7s8?{5}`I61XM%Un$A=^z<76wa zl+yQp|9NkwsiG1a2@QGx%OgSKjF{$Z^}0E90s8?!ubBHUp?gj?eIQ}ztnZr-q?J}Iu+12$G@&TeY5uka8n8$()0m2bM zb^ULe<@9y>r?$w~o$_a861qo^DXln`eJFx@QrFUB?P6rYPH-f&T(W0AzC2c0GVmPn zsh%o*XHK^>Rj`yeIx_Q^!LXHDc<0%AM#%o>_S0wcCCAxGq%B>E>X{mx@zJg^bswQ1 z?FiRnx+&JVE}{S2RLJcBpfsT|1d4@=v!0 zlrKlOI{5P(>RQgpS&yt%_(MdT@!DOvD#9+yyE?R{nsZsLvd&$wyduPXkgAG3F7Knv z7j=9=S@wF|f!-^=LGbm}I?AMuEZ&HHB(l{j6@KR$lv`OD_qe_arab}QrnHfM0# z^%ycdDLgOPfwXunbi{Rbwz?uvxne&uHs;8mm6!L8XVwWhQ_;THJN-ZS1mq0hYi{OjGuKNx2I~@W5?LL*LPFAZM!B2RPww2brYtI z`W(-JZ^JrNC%3a%J@O8Rgx;0^0^2s;k|wh8^yLoD>NkH)KbJvU$q|GyDG7V5EHh$fA=rfXJ0PirB>1*-VwH*aZdv34 zfW(_N(_qr;n;`kmM1H!t8G*14Q7L?Gr&cG(pTG?yd{xFk91cG{!eT!Sx3dY9-xkE3 z<*(~{%Ac=fJMQ(rCX`R)5xsY<`h$Cd>(VKLxp;JXSaRFT0Ce|mI${3mUmhQfHE8I) zmQrR+D{4|t^ndIq&?Ddy{MfWaN&h1Y-;sM}3pY`=>ATc`1gXVso|J)xSD}JtBq49L z+7-WxUA0}XKlqm!PyV~ZharvP3L(q;)y5w;g8$J1EM3z~;f8fsR~>%H;6TN0ob`F^ ziiz-NJYFHx^}atw=+N!~dA)~O;Ga?ALAbp9UQ#;njXM34S$eA}_Q00;{A$bb#4bA{ zBXVIu$LOxGBRv&W7?eGc0fC6gS|@2>AYQaHLYkSG>EQXlhS3B}_sLdG;C^ zO0*+LuY4{R(+9K}8Fx0tFuZpe=rL>CoeVzdc*erj(L3)5@-N*08p=hJKKg5feV>BB6v6WqCQ#)6(i_LN>x@ z9U`9%WePKH`za*Gjp&V-Q4d|Sv0ns*TFYQ&GXHm{DIbCufQHT?lRg;w@k-XFAu zARZ2CV=);*iq?1*J7uZ$dBlVc3dg~w_2T7AD8jY!Uxe_v5YS5E=8r%r2fuiFxTufL z`=5FkkOq<rEF*-C90okbYkk1Jn5+M6xyf2-Wo}OD|xn^~30QU}2Fd6{%CGVNA zNVo!^UuI!>x#wc%rbvG}Ly91l?IRKh6CjuZR7$%iC)qWV$FXZ;ebI)=?r6|<0PnS< zyPKAp+8bPGcrX)PLv+r>%n8I(8C;(35n)xhB4d$0D^m%MhISr^WLjEUqKfDwW}}LP z;*xu0WZj@SQ#ol|&x(hZDCh<|0xLFbQ!3&iWKy!SSl|s$j{1fJq*r&M0AWPuD^PAh zb-59j{F+^jW*^-xF!?`=tyKsgFR#r(4-Xz8p+ESCA(O(O^$RPQoB62*iN%J^5J<-6 zETTn?#U_Pm6u10L#>piC9YmjuQ-5aRcF&ZDn+K7MUg)b*u4tttpC9s0IaxHShWAR| zjlH!#Y4C%!>-VGE#cscpGNdK!TxWkBt{~P_e{t9$FIn8VvU7;hv583yix^};7s;;O(Q0M zd87>dO6{qd{L-mJPG!SXgp9&ea?L3^iK(l|0o(8s%8=X*+LgM*_vPd_aXsoTSa9X* zQGAT~ii5BVVH3-;NPe~n+{}S(}L+JQ&B%!l<2_&kTKB!OPF1+=@k~H4UH6hHnf3| zOx`d;jG^%z5A+nPqiU8-MqK-orbXp~`H;X?v$?_!->i0zB$&W)uAV4;pkwGYD~*5v zrWYbI8pN6OSq;e@OjO%47?d(Ix`NdTDm&yrxdAQn12*a`D%u?O8ZnnwCv%k-lW_b3 zf8-lTzPofD-aqp z%ITUNmO8?rQ7j2UosvASQKhB7AS&dOzyG=P5e=JUcsVXUw#NX%hV^pAo00P6-KSYFUemi`8c<@vmKl^E(j|^4?6ydS_l~`x4}( z@}vh<-Ocr3E-h}hHkTBn33tYAQT*=Pplo&jm%773*_cJU9%hhKWbg5bMXhi-1HwCv zcC{Y;q5AfZfsXM0;78oqcPn5t)0GC)N^YO@pfxB%kwBD(o-;@WgEQc>FE+xju}YDb z{y4Xl8+{^L1Nda9HP|5zw-rWL7bi5|rPs&$vL(i#SP>sCV!-rdtZw`NAeMU!nN6>w zKWZ_8UJmJRyk&zqMu<0a>Dar{<3o^rlsK0bkck~^BD3lLxsUMf$7vc}3dU{Ilbjqj zd^^!6<_9|t481GraNzvbO75V#ionFdfvo*3{jQ+@(4&M&Z_>rf1s)PQvP0~=2YPy~ zq4X7={`h^etcKwE@i8L#A8o1;LwkQ~+)U;ukwP>(eA?0}>_u>fW>bkkGx0_2gjK1TklK2$+3L`giQFtbn!iSuoph^WrqV$63Qt!Y37=3T za$Y5s%tIiKPwP$PzDZ73WzT?;?MO^xa+`f+nYyXim*z+n1wXA%HvPdwIFqvkM;)z_ zN-S#*b;Db>@B0Rx>d9W?=ngcXl+es zyB4-36dFW!2SOw+wl3y|cMFd1eGuIM|x@Z*<&vW!NF`fn~Jn9E67Ea(>xt z=D0D0wf)q^?j0nQdAq3p=W)yC$NT$NYx|33%Qt$x()?{JiJ9-!DXJRp3taoKH8D}z ze!L;&qBZ#?O9cS8S-=2f@pkmT$MwGs#TSr4TNl2jxhW-6W$J#e7ryxcbe~wwA$wBz z#}1v}m|4Jui4;@hGxXShV@1vp85??poX)>*M2ehD>RWSrtra#04&gVuUma{Dv$!2rU+c%Y#r#rJ3vL`?WG61=TH?VC0w(=G4 zHn;Q<$LfI-g4{;0tdNh^cfh_gKxB>Y_%N#FC-H)htF=%C?J701#5TH(zltx1y%L(e!Ex7Y+{Y zMJx*{!ht((cdHm-J#Wfk_>z6oEeaG1f3|XSE%eOJ&R!eV^G;}}36wY*SMx2J*#pv@ zy=$s`!QO?2nUNhm7-!eZWd2)r9;pD-wVJ{A%Z*N}xWgtRt3r=^nxYY2m6g6BRRW-#Z|}`oo5%Li5>63Gh>{PHJUU!>QkvuyXFA9|;`e|1jO9 zqsrXbaGnmFdcGJ{n9puNAhY~lQ*slqP)Z3cIq%g59qE$3&|+b^ut)E3Va~p?pgL|p z^7AzBbu(s=m)hq^A;_CdX-hFVYG$2zm{k@RNO)!&W zUOYW7x-1yQ;rw~Cphp}%j?QkXa9=`fPeDSj}4 z*9{AR>)OW0qd*vv(P_4~XKsKFyezqSR+R;POTtg~%UZ`RmP^}g|$p1 zLmDM6r^V9zCncwT--A*rdLf$Yetw(fo!YRrw~%&V7cUb2fp0bwsyan#PALS0odFlP zrmF9I6Abt3EDMI(tZ$fU7tkRj{qHT#p*6leOM27lNKPhPXXzNOAj_Hi;yUFIx^ zp=&d9gGWt?-onEqM271ad6^-)_P-N8l9e&i5j zkXiXM2`C7-4xwkGSSAFAd$+ex#|}AhVCj+Oo++db2BHx30C^cM%kBYm5MY?NoOZ_p zgHT$Hx?j^x%4}9Ep^7x1>$=g}u?97m-HO?&1i<}3?_2;9ZikYJCQOQpp#yWG>@ck|NMA(gmV) zfMhV#XSyGD9~PM0K73qR$@3(URWah8nXkD?1B&`>P+kB?3A-1Jth(UhwMi$eI&L@^ z4r+3Q59%+#syD#+d}meE+WH4LITdFtn~luqwO5~Lzy9|7P`c~R-2xURC$khabBJEz zGm&|9hmW_;#~z_7>1xw0EAc1nWCk6fMfL32X%5=Y1K61>V0$m!@c34L#Yt2<1DXUR z(Uixi`>?jm*>3~ODBeuAu!VK^70T&d#dJcM_Mf-k1biuIpHTJp+&RyqP^<@8G-92> z@Tp@jIPV@hnO}*`ue#gj`##fmgK)ZN-n*Duu##11Z0_gbZqE>M0^${fj;MN|uM=jt zipP)o8#GaU(dMjiPc}${11T!FRquM1{+gWC_AGL!naC%*!KG~|P-|AVG&u)Fb3<7U1QOPXVRg0J-FNwZS(Lw9Y z9OG27rD-*i7X|guJ-6%jh;V3}(t{)@vBG;G8p$lmvFSy0>`b+s51MKZTNtJP-V^>D zNPZqB#C(o1H0`3ge|bPd4H-a- z!V3$~>m6yTp`2qnUvabIe6cwLzzZVK%bx?t&C^A*z*uB>t=;#<0=I8)Fb^P5K{O4b zdSKivv}=DARx?woDPnF;3$UZ_fun9p%0cDt9#Fg@bURoDp4W0pO8)W%@42`TfLGYn zAvafZX+_2N7q&?tk!ONGA~q9{b^_#FlxQ}H25a7FD<}-Z5xMs*J27m3ha>z2y0de> z0015YC`D|6#jqvr^NQP`%U%IxA{$stfH&ple&_%Bh2#N-36elmqW1u+0VufE*UKTd z>w!-X7n3r8q7V*8=*`1P~6I0B$`h?1d$Skv`!fu&3r7(7X)a6~mV@!-94xY*zE zmCoA)hH}QZ02kX)s8p25eU0~%&MgVFxCVzv0EQ~ZrjCUO3ISJNu2gaYlK}!l^Tm50 zaszJNS;|F#K=KC=J{iC#;oG;90_iT0c47L~^%{8gB2RuT-TVLsJB=HVnA-h0eGh4Q z`;GDHZQn&gRgNP5YG=mr${$f%hRXL(w3v3cy$#rPRC=65OXn2L3kKav`p)$Vk56YY7iFx z@PWhr0NPC6jKg;+A5m?tuAqrSV|c}3--WmF{>~L5I8x4?i!`!$b@nuU^X`ZNB+qtz z3QmXzP73;bDZVQPRJTCu4WRC#cr5*HUeIucP*_mYZ|RJ@*G9r(o@sDLnqM5F^svNE zsN6GS+_n_i#t30NRy^q|r2Epiho>lr{R_t$_xDqcMa@hPLTEiVqhZ>fp(QO}a3KYD zQMX?`PtKn@5)&BoLUpL6l8;hb0?n;NHYhlpGiFWkDHNw)2jAyAVsXp@%xqC zQ|V96p|^h%iq0ebr6Ic!b*c;|6DK@hg%B286K`qBsY-Db8}zf}KKq>Bh?iHv+wK;P zdwN0bg&YfG@xUj_uqa!+Y2dZ`#&LFwdzs0OO+In5Ih;@5f}MDbR<8CjZOIR$hY#Nw zv9c>L**|%S+gU&cWNDL}hX~GiaS*o`(sf0iBHneTf16&I{j2z80gp8Cw`V1H3lQhI zySoD-z$h+{rW^3PHvs%2ko5Ei;daPQnj1=LX;faiRu9Oy87$S=0K;TprXi!G^cKJz z1t`o~OCEN|$w0E|%?*4x1WTJaFT0epud1tM z=)VP}2Jro;=;{BSHoI*AiOt4bg?_GNq9ovv0r?6Daif4v#=&8jGjSh~UqPxQ3gB*o z*789-yBbSIOIsYH{L72LW_F&PX70LV(WTJ|3}m2Msi=~kj8eYi>S_Fzm{mWrev_ky zNKBFAR(O+$;75{tI6r&51NVq_~>=SdQG^=uO0XG^b2bDy`f03eY+T8Mme^J>H~6_Kh!9!3TW_ zzY6Jh%)xjYw0)6zVO*fX~k|Hlz>!`)EQXynAuiD zX~s?Lfm=?SeYS5OZ}-*1<#wcPeK-qw9saL;G-d=^vVokxYSONyr3HjtRZ|C$;7m6F z8Q26#3c#WSD3mtfOa|DIpe#KH)Yl*nyrcK`GbLWcQAUaww6pX2D=El{_R!}Ox1L)| zgJFKGsBxN1!!VccZd&Of-_8%4E(d-(p7%E~81#kJGC3O~X%W)vP~}iuqZRD)>#S~P z*SeSvtuuy8RZ>iR_=V;} zxXL_?pxGYRz$J?_5aI?G|%z`78J z(dIpBmubHAa_{6j#Dnzq_7D@j_lbBLK@r064Xy~m2&%33(2F0WJ)AuPrM6o)4=YDS zhU=2zN?N4f&S!uu(N6f+K+k(-4oNq-%iX{+i$@vlvfZjaUvq*f=4Bf& z?E{f@h;$w)`?X?N?%ka$0DyJ_*HA`085kOnuMLWb07B+)P;I?%eG|F+L7J3e117;v zTGl1NPE3#RPlEv>y!C{Fo%;td?tzcgnxG#%sIHsqtcG9G5u5yb_8ZiX*Z$pp<;kmr zEy+;xC8QRfe#_6~m3c5=Jt$?`!M2A?!xJb?_H8^6x|gpfI8S-rC%cCXg~2P7HU}ZL z6Q|jkLMu*v{`a?cm&21L3S1sqW?c$Px2v~x89O&Iq^h-L5q#-sQ9KTpI-d)6R1GP( zO^2!QS)rZpnLJeqTJg)?*Di`-A`$L}am#9}$jB7(Q7^gUZoS$y?Kis-(hnqLDNREPCLDMu{QQ%`p*l#rJO3tV>0MR^iwpK3Tl^faZwGUV*C^fq zu@Y|qr;B+$%P(ttJy})gYps33KAGg(%rPwQl3}iad*m9+x~Df4L$Bo`B-mEn{JNS|>hF-Ti@G+ji1Zr`$l5ODcoiLo|gY555Fk1zPBpI2R zuViFoKyL{*0cDB-VJGf&-@Y-jx4i!Xd(ztOr>**THRRrPCHyY)1FoBOQGRbf8cB6!@gh`I~ zwAJhFc^>aTR~_`sVG$HU|7z2~PlCcRX6sYQrVkM@X(xYR6nt5(=LA-$KE_OTA9a*} zhk70Nj^k$Eswr0Yd83}Ih|8nZ=Y1gKpf;@STfUaGFAX#qeCZ61*yB%h*7^^AQ8(<5 zl36zP6z|6{oD^7-*$H$gm%`fw_K2g?H9k@N+uvvtR48WOf(QP8>Z9aXYF}UANKxNMuXq5RGCx4>?cD% zQR?A-T{~2>NIVI7=j&OXLLoFIu(LyVG2*W;(MNt%zke&(J--M^-tMzLCSqjKa=s2c zvyS)w6_J26vYz-=_6x8%JEwa`a^}Ci06CX8crpF@*Ll{2RGsi4sI~mLQrkBHtXpxZ zUw>xXPa${R__!RaKbQhb@-YP`V-=Bj$Tf}w>QXH>qSXQ9hl@GEY|I)>iPv(Ilo@RJ z`n?eaeM=A4<_m>j&zMC^re!>%U@gl>E=~BeAN-$7J_pOsnlOUw)eJck>UAlNr0iR+ZBMuG@&M)};^`s4WzX5jf-u^x{ z!*R{~OzRrVGW~A4VX34Pxw{DcwXlef24H{?;q9UvE#V!em48bJl_duS6U5z6!n}}l znb}yU`<2*IJfE{EpxCip?h|9=FY8a7DgDP*S(Tm@hE7KMZMYP?@B2Mt$}FAFk&HO) z692-)_5?7x59p^6$hNhl*iH<7=qnj>y5%F7tNUrj{)*|Xz;}`*YcUp7jpM%f)#J+1 z-_XC382Ii>a>Qb?e3|8-^y(ZQUZ=rZZ_Xd1I1qLngb(@4qW)@$?rh!@Ez_CWk~pmWkmXa^Xb6S38r8aDjOu-+Rf=TGtDS9XaB(@87l2R#y4FneA^i(Nw)ZYh69x<>{K_XS4Ru_}JO` z{zqtNd1`){&N-3WEk{;{FWq@b!sV7>-kCgWll!F3wzgJ(RPNz+s)=#&W?P2GRAb$_ zq&dzxsX}AHn+2F0^f3HZi z;uZR#zG#+eL)04iorC~dM#^EztbOlIfD!6u&`hMr?am(5QmrecO4lVDvD=mNB@j<( zBFTJ@FT(pMJ3Y1+kB*|%CE_~Xy6h|>EQQ}i#VY$%+*QWZW#Q6c>-DpKMkMol`9clcx#i?chMi4hldWVH$pj`J z_!2xuTtw!14S4a^cG_@<+(XIW+}Z4`ISYr9H<9a`D||~{H5cjb>=NnDJ~^n86gMf$ zLjPx9qWSSHep_wz@&ZP0AQn5S;hY3jlrP}YU1LnKiD(L^Ln{1y_$I*1oRo<#y2RYZ^bk>f*tZhI$Bmvf*_6<595Ra?wxe(7MMRTU^Pk@neH~4m ztc^~T3xLPw$r8ahXiR3EJ{GE&V ztB_U4yzb2&k1D)gGjE3mrVaCDZ)E2}iTS=kZH_mt+)w41_ww``Ot)Hyp1GRbRfJfodbFCohRj1wKyz@^8d*-vY~@Rl|dM&6EYHwFj6&UQcY@=*E5y&O_?xTJW~BO4W!T;@61D}HD$p8D_-*xUlzLCh zJD=-2a#?Bjb9W+=_SyTdA;%WF2DF}8loRSHw?&|+SdL)PQJvK zKFn`dB;Y(=X)mK)->4hJeaAcLSZ7QAHWfyc;WZXh1fdc0G5dLQcmM zH0@*Raw|2()Ile1{ZP~^lBv$9u}?BAXSt_|^$$(_zEBPXFi)}nmLm^2{hv$>-YjBN zs-`N6Mrr;Dg+*sO=(zk%(gk;A^x2;D*2UlbOo1i|Ud0iI*dMmW>LDy8=FJenhRhfJ z*PVZ4wG~8^7vwzq_WHSXNUmkyYr|>}__Sp#@fSx^qRca?hrPw+IX8fr+{mnFnF~Da zjH8l*Ei~O1l^W1D5+@{hy36JARq;}?S){$Ua6oOX$o7_+ ziatXPS_CFT1{W#d2=2vu`sIF-M-GpOSebU5%*DmU1U!L(>&XX|(u1m}U2rr3X&DLD z7xb?lp!B}DL}q4|zJu!4G+GTZT&+F4QcY(DwojlFQC8E#QcX8~{}x7I7g3J(ZcV6k zFVEn5u=f1y2$3C=;kB2;zs$y;%S)#JjKS+NE4Blv1feh6yli;Nywk+04<6YUncUhf{a%`v`_C)*p{c<7S3>=F z!+%>FML`$*uRm-Alf%pZ&-?v*)2_D?=-L1M1mG_}KKvvT_5WW_P@xrzMEGA%C{>Ln z{y!fXJVB#EaRlYle?GuSoOlkPspEpeDJJMyTUcC7_i9e&}AS>^FOcrB`@JG z1M^yte_j4k3c8T#IOQuciBjb+qpSK)lMo>l>cOR(;HT=Dz?)k>?o((Q8D@p{jT z^;jF@%gRE|!@7?8EXq@VlZ_GjIwh;p@z+5;bv##o$A90AQdC+Rb`2PxW>i&m^^d=N zoef(GczGM)t2W96-s3ku1Zs=rc!dSrb*atTP2DX}f24zt^7>*DnJJl+RJzjnmLz6y z@6GB>Iz%Y~7dTSlM;q`kAXxw8o};$Q4#XE-8bkVQ)>%b9-=-I-L-M$zO@QITu>)t`B%Q zIIa%71 zoVBWB$@A>Bf9zpJUP`z^>%523!+S!T@fbK}St;M-gqX|^ynVwq>v^F*i?&=TXTnBw zec-@nPi3c*a=>4%4I{#CkKQ=!IIBoBN{&R zus4H<{rBIjR>pPqvI$DQ#53Q0TJpG_ngH~%hf;$;CKQ9(YSn6h4XTio}OEaVPxk?7y~<$ zO`!AvH=|_G=nOLcz?yJ!Z0r*-a0ez*F9iZz+mq2Z~`{LR#0YLIJq38P_YN_!3uJbp|a_qcZ=?WXFoL8%c=L7ReS* z%e0ynFRSI@$<@@e?*bRdC?MUL1#YQ9#T@m;1CJHu}h&dPc z&)&le^S$4iPE6EdX;>AWFCfF-ip-xMirn}K#c*uHe!kCRdJe*^VoRl3kHCo?DgWD= z&EiH0qpqxHYT3q2721+T@rM6_tHpU+dQSrN(z(P2m9N(uev*3lDXOpo>c+np9e^sC z1q#pMb(R>?vkE^ZXC*FvoKjxj{wuX~VwQN9hpGxrrvCeN?m#<~l#i*+5){8y#`Bc62{TJn>!q9IF!GH^x7~D@6FRRx z3u0PBC38lDQ-2<&r6x>UIWFotHdbd+tyY&Iqf^@Goa`oAgq1Oi!j8LNV<76Sx=M_C z3udYp8hln6rQw_^){`aMw9x!=3m-yUa6y^7x6!B9IdGoP+!ue7B~{NNN1zKn=jirm z^R=_HBxN3&^)KEKn6lG7MV%tmU-CJ6-3JLqU+ZH~NNxe)Ae7EbvG&-EBP6MwEAju# zZWli#l8EW3sD6Q)L?cjTgM}lQPr?a#7v@W6_rI3wK$et*ClXs(Sy?vxr2yRrpLKOf zEG)21hDtcHW{MA|n8K}FA)4Aq1PaCKl8cTTL%MEW^YFAOYKzWqkIvnkel~6BPja|u zjp%xM<18zsxotZ0TvjE)FLbwhJ3Xi%Yvr2a)!GoPuy4S1ZS}h6u*U%U}6(Ldq<+cpzqiBr3wB>90qolgo4si!``Du zT8@bhTr*I&Q*AKi_ch96BrfHjbylvpxS^xs6(hnNy;1e*Xs*85Wic);iB+B|CuL3+ zLfKJ?VZ1dY3^}|PcrKT{ zZn+~2r*|nCG^o-Q!}Peqw{Resj!EJj+`SL+T4N^8lJJ?bTC0Y@S37y7+}UpzSoiDf z#BO&{-u2fxBHb$F?Aji-xWbY0!OV)3X@TZ4N0lDIho>h=BlY17o}MAk=!-dn|t1L0s1AT^@|cCs8@?Cyg1OjdiGj>mhS^ zS}H69`7^u4huXx;5p-dIPIlp^g_9;*we`9QA5L%j4$i!5uM=JhLDHfXXDsg@0-f+u zcuVst`|tX?D7R(Z$l}X9y@-C!V4(7Qh)AvV7_I2+T3r7&SmB4H8s?LuK50o7VcK`RVVhT!H58s+DC{#(}lbeQ6p0R;ibJ_f25hPKeRb!PQ*dg&EcGLVJ8` z^0W&wwm*7n-`ohF?xVsfau|i#rAo2K{WB+i**Rj{lIa0sO~|M}fI`t?A?8jt3IAKE z8EsNB!kH*4Vgh-MzLAk$WvZytS6VFEpQY4^xw#akW@hln$iR^^5Wu16J-Tw%8TDx) zy-PR(V~o7yQPVnk8DuEEO$Qw5*LBF9^FqmO2JkZ#?#}147!+(K)Qd!&eYl^lUbiQi z4zMw7=`??MqE@K;^PI?Wnf3KPZIn}%)Bob4;9|OzY?fqxPwc{B^W<03<7&ws8|NP5 zr8=R^Atj*+?T_&lovTaZKblSF6kAYh-$uYe zTkl+Z%_@OP$lbvlo0zqEQc^}yRu#qDqb%!!j)C1X)!$B5s@X||O6bK*yQP1$)p`qY zgd|NQ+Tg^T%(iX&>s+c@-k9UIgHVH=CdeMIzpR*|weQCpr;ZNaejM)b_Vq<)LzhG{ zF@H2{f03ruNH0*y+LKE@aig3HeUEHK%+W%#*c$FtOq%$GfM7pOi2g-H^erxh{L~dE>+< z-mxo&0x$1z7{vGiAr3FB5e3^nI=4_>Qka+Iv2^bgk0vaDF1_h*BtA?&Cs4^&=2ZLl z%#ilhXjo6XWXcvm=F{|1IL>j{dp_ap%Sd`oYD}MYm$Z~_&Q}(kbz#@vCE4;k+}m5C z)?Kkpm0BKX-r>@OanlS3z5OeJdXQVvEjm;LhNls6@k>1s{i}~EPnF(N0eKlse&*jnCUnb!+WXOz+ zOrX@;{B`~B`Z}<@Wyi(c1h%HSi#3PMj+QUWZH;~O1da2qXbjgQ9$$iAxD z+N@cp)`8l(*AMczmqV+J36NnQEZZN0_K3dk?b0YexUC0eOwkMCUKag@HZGih-oR8o z;CUjUjjdZ{&|lbXOmyzuaew%Gdd-~#iMlFNo}1XDl6!u5S}!>bg?qKVqtAg=?`?pc zxQ`&#Y6nd{>lfL0kuC7d7lV_s4HFmAzqDVxAV~C{zd!Yv5fdS_UcY7!(H^nSyo)|2Dyf@g}uXT{CLLDr*2^=RNaBE9|eme7;Jt z_`GbXzF3Fe-?QD4IU=1dSVCBERhyhS(`Twvn2J~9Li;gXIOr3ppA3ffNhqyZ+)%Az z=c$f7vwxv|PWkDU&H;fWa-E)G)O+FzMsJI-xT<8NaPC941yk`cVC=Pr?Ncyd^SZvi zopBvb$KvnJo=AaB=Zxz{yuRLwautb3P_qY$RDH4u^=MA@-D~A6JC)2L&JB*Fz6sOp zf(E4L6V)YN50mM1oB@984trQFeqZn1FPOa;ExoG4d1aQoP4|J!J?M;7VY-uqWGvKg z<9ezGJ*$)9Qdqd_st@O86RsSKu@Gls0>Tz)4HZi*Qx{1dxe5a)c~5r;%T|xx+4tbM zp{I=5JPE`YG8s<{5#F14JT^*2Dq|CLsXE=g_dQ#ZM7o?tN@9URZT%E}up;Rohr%ji zYf_u`^kEYD-Atu!=Uru8jNSQ!1OosJ!MDwnsNVuw=i>hCOXSoQ*ZUVO%^Q52Z+}3w7>g>x4upy-SKt!XWB9 z@USAIN7q1T{Wdrf!|xZTa5Ju=81Cs8S@rJpk)@T?VVgNA`>9m+mYiE!YZqAem%=RK z+}_*NZRXo_tHesXh3^K{ZdPA(E#)1l$dIZ*DeYr%48^%JCFkJ!X5hxvmkgdftc*(w zxwu5kK8x8RulIam&mUQDWO}!9MCm2UQcQ535pMo;YS~7baT-kTG$>ZKo-c0bCH}?dPa~b5g_gy9FXBwAlEP6ZyK`KBT#?Xz zf^=B!U6ohqcKq6`_1Y#awp0zGxQE$mFjLm)A-uZU{uy!9bniw*s(|xSo4@?)h-aVM z@`^!KE$%6SGaaO0-dbiI41}Hw-=Ct@+>-SPhEih_=5b3_Clf1fwuqboDa2m%>?}jx z_VR*j1@)BCp8B$J4b6bziPI*VM}@L1St_?CX$d`o8fG%tEQK<|0iu%Zf=bP*zp*Tnhpfo`larhU)As$wGEmdvpKa! zh&zd994;u-ft&RNwQwO;l;eiL`$<$g1Ot_C6G%)#fK z@v(9+Q;L2%aSE51g9*ipl|{9UaHiER;i+KIxtfSilvEQVd&+$$$1ez)P_N-k?U<+^}-WDR5BkQ74<^_;S=WZyIOtYZWF^N+N-1+JEIr9Jo2F^q)> z@>|TKi(E%v4@(VBV!yH||14ko+sL&DsS!(~;gFVq#4D5Zja$%x^wZst zcBU+q>dk|B;4L>~fYkG!ud50&;S4QP8k)i`(%UfUW&5|tsa}N3vvxjJlt$-x0wO*R z!|DvL)|M%K@=5eW({Ck&R~|Voa{{TCYVK0XJV+1_&Zw#SjDVE3>Hf$ok;x$Ve{xth z?I}sb)5a{I)6DT}%3no*uywx}7Xf9b7bjqFBsYPj2s3lc(9nw48m5t8M7=rh{j*xQ z*#i@k@bk|LKc(VPE5V%8&oDT{%Zfd!iyspqQOhvAZo{9Kq`a{8ke6qbr{r#yVI@s4 z#9DO8l2_(~dGC~AyL~NsRkmjA-6D6ts}%@9B}mvh+c}Ne1+%7c@wC9H&4w2e+9lW9 z4L}_4+H0lae=jQtmvXb~FE-EUhW(Z8rN$K_xbAb7l@|42>52!XShDr!&}du^N~)LU zYjp*bi+kj#%-RPMlCDuDGo?2WX>uxZtxoeM_X}#tv%Q`*6hXS= zo0U~wNy~N5`?(T|Q1W>kiQnVSBLeRhuyY#OYi2B?Lwk$JWD3#_=pg0bQ9cwEEju{F z`A;q^iJIAoSjIX|It?WZF{gmEOJP$?b>p zD-33PT1LU%G&`TEl@-PXf%S=V59PP|kZ9cIwEUizE4Og2C`pClbFJ=tVSl=Hp8Y%i z+Y7LCb=LR=3D2<~BfGb{rbbplK@hMP#B&f9VH7w2Wgj(CC|4_iel<|7B)7bLOxGqi z4J;QXr>44qk1>b)%}1dArQqPWLH|PI>gadYVMy%57eo-_uQoia3K`c^Y33C7!4hvx zl?Vc<*Yha1RTFzoPrArs)E!09=X!VXhjJsjdnfcOV~XR(IC)a%a9TFI-VIr0UQTkQ zgQNA<_m7Ezv%X2P+5`{=ti5?{V@wphue9-QUDsWonjb$VhvV~GAsf^nKL2{hPL&90 z$@ZJQbRBj7?5m3E3a(RoLC(Q;?&C!Biw56w?Q)Q10u<2A>1o&%30tbv=~Cm0^M2!S2h=s*1!#_4x-nhU z%%dz8C>#moj7QeG7#JnDLtHZ>yac>Zf|Lr^VYFthX`g`Y6YH-5S&4s=0pfc0!Tc)j% z)9ld1A13zDik|%|&A+W@`)S$U8GiC;cwXEuWhILhC>5FaB*8VjMiUN%n5wAV zx(TZC+lSC2xR-vU%|X()Ui&L;yq^(#qmS^aX&Hjo*y$6M#KF{2P49lb&p1UTz2?7mbSztGK^vVTfzDkHP}e~!i4y{R=o4w2 z@6}2&e|lsXII@52d-)P@_e4XfCKbx&Yo7j)65M?IX?Vn{LcK9POTo(+mG4m)!}HO~ zn5P_ezruwx8KFj(U3+fn_$M0%$)kJ%-;Uk@$^iv2Mbw<`=0}#P^7BEAki$7ziv#s1 zPG8E^;Z!Tn{)|I2Ae!%rNctopNY~S&7I@1y+M8y@Pg4AhX82%0$hjXsW;lfr$Mh%WnABBOmF_~Xhj1~OmY&11(LCc`u04rh5MH3qc)b>|5i@^&APBxTKe9al zS;}bVOJvEr)>)35$Jr_tC$bVmwz7^TS9e_o?!o6fOa<-7NHap0C{I1BUk_`9vQ+TF z67Rq1aJ{W}<1D{QK5q#u-y+et-+j)ay%#YJLHzhP`6MKi(({J3ij6(G`EH*uLaAWN z*~LK;dwpZWc7^d@c|ij~S|T#Q&ky)D3jza&h!Ez~aOqjOjNAi%66K8t>W*Ay+U~bh z8ML*V-Q({Jr zNHn|#ZJxpspW}1MY>Gg;V^&>EdWKHjU(ND^ky{XWsQ5X%_T4KWGnvNm1CqwLZ_vQP zsI(yrmK1GkROt!9mK$4Kp4s{WVnXJcLN6m@8g}=`6=Z{^b!{p|7R(75qatD$<;s-z z4W^;+#no{Tgz&?eXDPhAUjJRvEY{A&*{wfXJgLIr8-yKRskJd`=Po2+?3Hv!yAQcZ zq_Jf-8bduZ3tbtb>6FGdEIi)=e}&-x7}ozqZN;p#*wQs&e>dGdDm+~S<1Cz)i7fSH z*@>fujnu;7PptWEXpfJ@MeJ|Wp+!IOosd;;B%grMPZ{!1WAZ7P?tjZLg^bPwi6Jcno0Bt6Y8cdSvj{>mu`?I{`^t#D9>RgM#%jYxjc0GGC z$7QfT`|MWPAho!#DNDS&+hbyi_Yht|#b#qS`g%owMgQbi4k;+sbSFGzdBidsTWNK> zb8xp!8tQ=kbbax;sy2PN59?*v`oU}$6cSRIUax-qj^C39bRL?|m4ELHM0HxEq@h7* z){^mP-W*5=L~qH2kC4E)VxihhhTDt!)52jmxfwV1g=);)K4?KVHZ{$xI2|flc)}b- z)j@UlnLj5anbQy*-}bfV`PsO!jV+@3?99Vr!BXNL9PwoH&A8F^1mCckClx}9)gYN& zUKw@ekunuVm=2Y;`}RXF=c zRV?x6)?!23;1AZ`$k)pq;mouH`~S}r%{;t(`j?eDBjWYITASJ5Obw&Qrnm_>ZKt0l zG!^-e#4a+q7-EFFd$Ajgb-lFcG>y<442HIXcnC|f8?ya)<4RP$e|K^g7jgad^*4h6 z*_-Ho0lXn8hXcBjtOlu|h%!{D_YbE^N+-uoHRb)VXlVWfhy1M8VI;w1?7Y7E~# zyPqh1uiy!s{YgN4o&9aZyGyQ#j|4ikAd2^PI`(UvpMPM~-n67+B|nr;C@lc~xGWcw z9mjD5J5l(3Qh?e2T}WkB32A|e8K+?XfcF&C#HL5gSg4G$6Bn~=-bqQEFonY!C_#(# zlSa1qCfkX*M>w zK-~!%FZ^oZv&VeFWKhL4hYlE%&05$z)IYMoZ5HodV7He5fq=OP=vzbNp(7h=#T+F?lo;)!WI>wl8Zo6@214p{S zZTG>kt)@(C9wM&_%+D{Zv>THxZrn;HHGK z9mUQ_oWHYZHL}=kwt#s=I2RZ?PST5IXS%=xbe;4<`8UvFl&CA+7a@vA{@Mnh8E z>XA{&j_gX%u4nb`d6tk|%RRphRsktteBWTh=H)s~ z;m%Wx%+1bzk!}LE((P$4k=p?_CgvC5bppzt#?@+|7FwZJGBrIdCo9|b(qy*hDlc$n zw=JG7qWsZK98JiJU{GbhftnvPv(|rQXmzDN-uaww#dV8(Msz$FjbB|}V8JchNAZFU z6;&q9W!nTDgS&;!(!#>v>R^5ZS^Q;=@>YyYiyIn}1U#0}xw3|aBmlFLK#Qs~zm?Sg zA`CsnU^q)579K3o+4zk1{(B+o`5aZh9C%&_H4-c@L(9#3PtPYHvH2y>>G1gVD_mYWOwA5r|9RPQ9A2PkA5Vfzf;CUwU)yv?|NrzQoW^Wo6AoHo8`*8zS#fb=LgwE?qdl(|UAR~W zR0_TnyZv?@nBe|3HFUkD*S)x0I=R?Ku~4qW1!c=_H@5T5St6a{GDmrP?D&w+{Z=jW zA_f9jpkUQGzn+4yMBI( zffRx(Np(-<=xF@!@D#@pEe(U$7{7zzs#<+469R?7)3U`#-$;?xp0_phT?Q}4*mh@w6tq&zKc;wP*cQr2m6?- ziDHp-!uRFrbauD)Aj9>^_Q9$VD`JWalTgjvL28O&(c5!>W#q}m?)gWE{Cs`MYE498 zy|&{!x3)v}4Q5@koU)b>bq(m1%?Vi;XT1`OOwYfr7mG}d_*r8OoBWqtJOL=5GUW7V z=<_VwZC`oXAX>_0V6I$ud~J37cgF7Q|9^WaW(cpZ_h%!3OBh7C{a<-dV{v2c8BEK0 zlZAUS_KR1~=;ciRF&QFB0QJd1_XsAv$g77=<9=>%t{4lUrZ}@;gUV8?r7Jf~FlYQ^ zSv!s6@bpOzUh;ABzN&T+WJ4J88L0P`@@yS;YT{Q(Sxi2H61(k9Z&?0vRab7r&QI)B z!(}gR-REGK)W_MT%lG1O2pX7@4~O`8A0*~ZZx>VV=`6MhHxoYUzJJlfLR1<)`qZ#Z z-nNjT@Q9$~jzUeA&#-5#wxA}D`*F3wT|e14BOM(_60;h<)nTTEZqpNGYM6RrDPHoc z&;DH*QIMa#6GHvgkJpaKl;2A290iKLuG?=t4ebyVw_Uy7&?CsYx}blwoA|mMcua>| z7XbZjDL$}6%GYv^_>PBzK*EAF*N2pnt5DI8&w~i;-zt2nE=Ac;3Z8_qyrY~)mNI^g zrt5!gLn^tTR9jMd4=E41&`3YlNmD+r6T<)^q2*Y{?UOudqq1($D(ap@P z*W>?U?X9D-in{Jm5a|*SX;8XBxldG^_R?G-B(e9~F7bjzn|ei;;|B^Xe4z-7?EfNg2_b zH66#IHjb;z$nf;`E<-d2_;dmIoEBXoi*wCxW0+tBt_0AW2~eDIxjm>2Nz<6_OnR)J zkh(LyJ}&~D+6Idhj^_*1iM4OGxIq@2zZdBf#_pJ+gBBX(tgBe_wHhvM6QIW8S&GMrJ@;2BkdXMKC) zIHy_T22XI}oHF*p2b6J-!IvRD=gsmmGcySsnxDN#9aBPnjGy}q@63fSf74!|h@qDE zXxiep`P{J*-gwoCwqc@HT}saild)WoQn3T$bqX)ckW@cvK?5|9{;Q6HnAgzItlI!Dfy_(zgbUaJvU|>&R z&xgAQu@_17l6`nD%r6D4Mw8Jd$QY;dT+V4+-VqOV0Xh;B`l$<=meXYefb87>vtUCvBq z%BvK+Y>C>2Uo0w-_@CCblj={p?Dj~_h5lADGTlDZiVKlfFfv>}IDrnuhRbQqtEyH4 z)h{bsd!Wzd0KKR6kFBk(A`%k%K(PWH z&R+~;LBAjY=kc)dyop!bWlyCDO&<^_@~*7ReMCK`GJv~=fWst!Aj5sb?{$CQQ3Ts& zbx~&9wLbCipi)|Wy#gl^R=3vxLB}!~*=Je(4MlEqn<-x?+;}b-ezY(Y$r+9sfN3s- zf83u&b##BTi94#G>Drl`ruRU3f*DPa+J+uR+1U0MU|nUS1iZFi?*H z#OeHdd*4_gn^=9U^t4}H+IJ;}Pk-4R={`A8YR&ai+_s6-XYYpWUQW4P(%AogKLy3n z4^55BsJloAkyAB4^*-p@{#`sC8~$We>vB8DUx&e7^p*4JgE4CWq49AfN1OXT0Lb%c zxWv=^ejWt);n$@IyR`LtpwgtM0OISoWb|2X^8;`c@wV$D8Zk8V`EPP^;Y4VILAf7U zh`yYSYBa|!FFY5NiuIc0E}QVKk3X-X=_4M$pCxEMo%5hqhqH)#%B^keU=VN}tE=f$ zs&)NOKMV&vw%j;am_FF93%0o)GHN)vA^FMTkiRYI%bam%kPPWG<&P6f3qUz)uLO>B zgqb04(N=!P5cJb`qdQjh=FAOJMLCKv)E=`Gc1TAWJd3;b*^cdQT{Cm*Z;G~9ZVw2Z z%agY$BLK(+k|)#3dD)YoI&o%+PyS`sRwYE#3Lf^y`u@0^rb{1ZhO|c0owHYN4yK<< z7~7n+Hfe4>2~0WeiNc$YvVm`9;w_&&{s{|fadSf);5Gzk4t}SmN&xsn6#N!!KRV~X z(j25)#qBKvPmGImwdDyKX)~H{mnsGNj?ZRa-*k;h`?Te?RJWGpKzZJ+&)U@)*QDi$ zw`DJ0>XmEwPU~pTT|u71hd3{(SZ?0fxTK4nh?^n68gTh=vc0cFB%$H01{DvLSdPDgu!44Jyeh&F)>jx@Wf_YB7sKQ zBcTh;aK-J-BX|<`Bh00J$wUK=E8}z6h;J;~pN@}@&F)UI*Sd|;QtVghtU4L!aGiqA zc=r=j!@A*c_@2k{UHP(`Q<@8leC;A-ScfrpZAqcx{JF5V4|R@k&D5M~TQzyZCpR ziJqx5J^>X|Kx?N$ri6sx_AcMEBi5fKH}9zgb>Ze||J5yP(wY^07Yf>(XPN zZlO63&X_G@MS427Zf_{W8=YKcCT}p=+rel30#tK2xmw!tdlElol97nx6;NPvAtw#E&>7|M9!ak-`fS^K#fYc;pkNt`~$sjGyq zt;z@O_qfX${7VmlSy*wQtv&pz0#w(Ur9av!nin6G_LQv(FG@$xT8*)}X2W>ai$F6D zvMs4ec@JDRr;VaFuosp#39KU`06O&NOEvM`#IHRjxlh-K=jqNkxO|Wq$5;Y~>vVr# zZjk=8r${#E?gsoUoxuUAo?kjfS%6l%X5Nw9&UN8L$mIM-R_6#BiowcUb@QgOcq7`+*pU1EUH2jG=74EWZKN^(=Ws%y$5 z`}CB&eB!Z}832&I1Df_kL+P*cMB$Qero|BX|46?Sf92HROiE5()J;!icXU|9{q)Hb z;6(wLV5Vk7f0VlzHj+mx1|Wcd!NbdPzL{76Z;ylK=y+6GieTOpL-<+6F^TD#W4jaR zM=%Cr`hh4SGCEvyEb67`?l&P@YLbi*eVJIsugj``o&nTh%?ZbR%-{@dgG ze(KwIJnADb2U)?`Z)j+oSTW0Ry2L&BQhsWEo?lcX3Xm#01rfZT^`nV$$T@(CLaU*B zzStgg`JR;SLwe$ToW6uSUa4QU(Ceak#1_JPbDl%utTo~k;Z(&E{eF*zZcHW1JnL%% z;HA7hEk%l)QYBhzZi>QbOSeWChOPv7&vuw0E0{6D>5?PtsoK`w``rHfaaS1iaevg? zFF3_bo`oImZG^Yyew%xG7(>W6=j}hg`+ge1|NpBmK@zA#Vz;ZONGx0h0PO|(!?r`x z8{Dp_qu=>baf07&*{u&)HjsaJwEr+CMl0$sa$@l>*88(jOq-xj1dlp&43X9DWD4MrO;;fRym*S+jpybzMEP|H-hYy)_%~vLveO&o^k8Ec^qES zhK1vWn}*d4?e#>0QlS>XdidUn9Wf2Lq`(ZTzhCV|#8wcns*; z7c7yxQ=DCk(uX~)t7HdzEcb3aJRuZh;qgsds03%6G`?u-@g{BRvJ8ips*%eyaTHA7 z*Q=lg5<$M^)VLDYgEn=csr2*=qWr*%S#FL+C8_tRA^HCb*GG!1M&Wdu+I3OAN z=0nfL!h4=dY>xSUlm)ziBSlq1JTbXZ)bxX|9v@Cykdjvdtv$G45Sf=Y@nr%&IuO$h zPuI#1t3!FZv@5st!m$=VLb*Lj##mVFIT~al!1Kp1#s4NTwB4F#uBfj|3(S-PSs#5x zMpJ_KKYpa0Wyr#sieKwHVf$a<1(fx7wTX|$_V%OEj{vFUf8hJ^Zh+t^PBQ)9W7rZ5ZtjV4}52<*#QTM34234Aggs zDCu|fBAdjv)9{WJjsqkh1!~I}w`-Tm!{)9pTgUiE_agtr0-zs|gU&Ty$r-dhtJhcR zm8ske*lQ>n`$UxMGb}$yax0(_Qtc-Z|ZAmD)a~A#E`Pytq&^2 zSGsV|ewKi`DzIjjh8@)a6Y2K;Urz)Z1=Ji?_^i%D5wN>a3>I`jN>T^nzXdfIv6WIG zfwHX~u@GqJb?ug!vglvp?#+7~Wc_yUi(V~s4S_Jc;t(W_ z0CE%aOZRz_BAO#}jSq4q6NC0#dg}H5Wdtsw6MPu{ckn%L zX2|ug9qg(pdiQCn!R6DZ)Q;&}?%`6J_P*eDPQI5NRFJ!Xz7Nt0b`^uHKsSSSwK7y7 z+xOBa4}PJE+8rzR_?OxM+vXb38m1X*qh05R@D_yCF(b^s5g>2%LS?EiHq4aA=Ugjp zx69QHi?&k+dHR~vz#)$Raz^W~4r#=$7F^hX?NYoy)R#`Mxq=H|N0RKNK_OXamDE9>BAUY#<&qW zgV86T=x5mf`y0@=@|J!u*L*+8tk;K1Apm@Ah26;J+~Q*6!%IHw+ri8GHzFjwVciLrHG!{e)Dl{P{`z z6qQEA#B!MDJ_@wUj=RpwJ%<}^0)mBwA=e+)iYfco1r5^XVF<-Tvar4vj{W#@T_J#Y380y0V6=brEScO#r|Y(s%mw&00TMhhF|pYI zruQ!~&JL_92Br9Q6y%^08Yo>i`(2o8AYHkPyLqx7GQH&A+N!Jf`+g2ztPGb+{n6Rp zoc+XThbgIOaL;3S*zEae^=h;MW6#MtFQjZ(ylaDzfl|Y#lP{!Bld_FDyvJ4#=D4(U z%C)X!mfHS8M{-1q*(Dx8s0z75}_m zJ$L5z>hfVToz10o+VlEyy36u(nF@PGMLF1@O^ePs>9As^yuJirnPRWhMmAi*9XYTA z1~KKFt44)NLqlWFPCXzXohCLuJP-}9M@`YMu;8Pq8;U3%BF7|zHh_QAzR$yrVAR{$ zjC4nJ!%gyf3Bap7V2>*FSD#0#>4@G9j2TH^jwmHR#l_pF?JICs-Em59zZpbrxD6pb zTT!(>Mf1sR0$o;s&fu^O6EHJ_1H#k1#>PZMu3xV$x^I@yx8d{uj!z}~%($3nqBck> zM`GU1r2Z&3N1d&ob8?S&W@b_f{9wNtTLjR!h2S=baI_I(c#7|~)771)4^)@3%1gKU z%2y0`m28dclW-n(OEg0PynoF;;u!bl7jb_<1o!s9qE2j!hvnq_u*0(oNW$eS#nK$T$`@j_5mZ)XTa!?=}@DZ>!hK zkhT|B(E7{mz5M|>#|<}SC3o0#=u=B?N<#DN59FMuByb&of)6fnw8EI3YVkH$Q7{7q0>j3IMq^8!yYO&S<3IfEz_qp)O z?+!2rD-mzf@86z3GBYYF&VVOCMMK*>I0y##3xP@DEtH>FSPwecVvDRqAUt^NxUpMn&s{kC#S~7#5`}B^#`=DJrZq zH%KxzGa>h2G&hKzHquu#&^Hk^-ujWmUSL+$-&StJ+km!p3mI7A4Wlu<`|NyAK61Ze zn`V2$x|?>Ha*E$w+w~QCVs35@m$80ebd-d9l@{mxeF~wv?$@VD;BmZ-j57A3PvLRi zjSzo&^tZM5f4$pi-%qnt|D%Cj^?x+5*Z((|`*%Tu#ebvux0wRswdMa&sc!lo9rX5t z-D9BdpH(~j!Dp$pKfx^r09YLyn39>yH~J$9{1L?d4K)rX>+`<8H|PMKRRDtW2r47P zy>WazJdrC_SzF6!r~I~yfH)iXH|D>t{P@C}ni%zFhYwmhI-N)J^=pTRg8+B|4lCi^ z=6uR}`!-5M$-lul7(70Bozxl0i%uwVcTSvM!sEmNpBXO&_^m-GDJkKxgZ^^~2~b9E z&iZE4YqP^nd~v?OJXcC@#}VJJ!+^-i8S%a7N4WWNzyB3}uq-(|PVCzl1OP=Q2s$7_ z&w~6uC*Sy`)W$#V0~BlLx3}$DiCbHGHz&)B21x*+0t*W|K(kg-S_=4|8NmLJiTMl& zP0YuCgXKHJ6wiRMgPc7(C~})ZXTt@?+Q3iYT#Wh3$P`z$^6#xRd;x|w2Kd6_FH=%e zE9>frx!cX@O>Av#0f4DY@iYMC0LlThbab5y3rQ~k&x-ezV}JJqGEqip!SAgCVDe1E z6;;7K1$7PAg#WV!IIRUxa>&TYfV8z;f`yscP>a)LL1`%w1x4|2%Xi)048>wrn=L3n zTHVyR4noVsWMTKa=JOB+_qO^MrEy98K z^rxQ@wO>zi^QU*Is9BCtv>=9*7Qkgs?DrVzI_9TJf; z(EqZK|5#>7Co;?$x-ti$6wl*dATg(yMM7|oCJCPupxHsnP{=(_3~s{V355q)z}|ZT zCldbll=)Ih7l2ib&J~Nl0GNrvDh!4(>&zDo*8aIbzMoPX$&vr@bd9O4Oi!bFPEE;+ zOGuobopp3}dIOqSz>@-sL_??%*9Y18Uzzu&Fz z=pw6`LR4rP*ZjG9^%~obl**kfK)o(rb01`>8Wyj&!Qu4@wm^7sAX5YL^Iuu>5Sae5 zIEWiy!<2D8KVV#r@gV{X2XhVQF0!(cHV5+lneVg{z*O4(Sp$l#fV1o!v%@``mh zg=(dWU~fCBw0kuEWJrZfOb$@PZXF9Z&{ix{0p7W7nsk)?e) z-|sIgt}e9MPED+QU=Z1P2{`9LdyQ}~uv1K5<{JF0`FN&z7uumFFo z{?S}zOkA9-hQ`Wzb=IzpEh5t_&+$Uy(Q)@QoObBxNAGaG-(w)8LbL7)Cf{}URhi_)%D%s92;@(o{=$(y!5&*iX(ks`ryn?-E!M8}f$&f!fEJ$S%j82TtUFY=U zkx@0tDTASzT<7$0?N^u-Gp7Wwh#dTS1bk} zArVzAF1N(w>F@4dYyGIE@K7V;yls&cVn?cOK{#a2v3Z=qW=H}FP{uJj4Y2Nks5%C$ zs8;|_Yz+<=Jy5Hgqn}_x@5wvB9ftM+s-$XafW+MA&!6qkQ}$DUoHYnw@7Rar3gtln zV#-_f-?J&?oEkI1T*~ek?P(7C_$1@V^fqT4C?0&Q5?WbJPOTkPRS8cDX$v0(`0c z$^7WZ$Z@*hR>AB{AhQKL6b1VIbUFDo-wH!>2s;D>9haHbWWm|ixtq)>p|G*Ao|GiG z?$h*E-sy%s4W%q_=Y|=0ET&LE7Zk?m0AdeNBFX|7S2|>%|GhuwPN0DwV2*hJ9L4Q5 z@lt(5Lljihp5Nd207)4@nh?3Nk3>dVV?de}G}Xfpq<^YpWkftGyt#zVyZ|iV4QB_?F9RGYa!RviEj^~ zyvR9~m6gCYylHR+*Z>ymEl;}w`K1!sh3JM6?B?6git8d2qY}lFEZCUg5(k#Xblm?I zf^%3b@R zkojNW{Ju*bM7jC??-acM|46~x1JppXEC37Tlu2!7*S`(??w@QV{Wlx^@2z#eee(T( z{{09%j0@FyE4M*egW>{2+6cV=EZ=y*e_X9`zbkK1zJRX}b3e^1Gx`1v4M8k%%5UNYHHavIV-IL%lt^*>yj-mhKn z{^VFdWrcH&Q0TCAwRsidIJGq2lP<%9;Z9pQqmz*-eQCuCPtM#th{3rnd0>{2x&5>< z9Avmr|J!knE@xi{M6u+Vcy@d%$h8N&P&tz zyLJ-j%DtjcZ?6z;t<42}@w)b?%C~9XFaajq+Ub4OFhXKJ7dWZ#rvvV(bCO^neAw2nR>)67AxWn z<7nCd&D2EK+a9hO_v)X7XosfZ0{!YsSVdcN{-c4#`$aKn-PeaK!ceeiVR?fbMQ`t_ zjD4b8BTysXfF}d;_i(u5s-8q%=H@+T0l}tEkL!y9YQ8Nz&Y%EkknU_aixve*4BlC< zou)scbVcn}Rn>OZPlX-B7BypDi5_FVfC=3%KBxGUorva&6P-9=s_jsxfCsE8m-2ITV0ziLCeK|c9@mB zl|(->ye(xbKa?Ec@a?x~f8Hwqpcr{dqGJZ(c1BJFAb_Iym$K-tg1YlNdG4Lt5qFXEi}d zq2m*;AK-?y+fzH(S$eNZF*{0jq=#${OiU+|2}!(e0!#~ArCZ0#BZ*CQg9;L=d^}K} z%iWUb>IE9$vAq3M2Ihkq$Ztys>A9kNZ~iFzuF+~!BeZcP6v<1Mo2v*dFu^#SZi(~R zvSwqQy-coF(wkoY++|0TN1dW*A2jeZan0IK!oqr(1mZpC$A2VYS{)u;K$3~F1BrmT(`CC z<0ge-Hx!a5mpiDP|J-}BF}CpfJ7(O(k{mzryr=nN{XtR5xFvK*c3eujbY0pg8bE%h zSXpp7-^&O4q#_}rf7&%U7d<}xMO7Q?+>m&Q36w?(aj1Y#)yns3_*H*)r?qBz>yK~w zLtNzu`~0s_$OLNlq;c&(1q#xsP0?xunicEyW6Y`F>ARY;il+j_gXBYA5R#k)B#(^o7DfdabPq%}PbNOJVyI6@|Xj8t1 z!6GPrQBLBqSKulHj+W&}bje!opp?_?5C zWNLS@=+YB}E2?Q6U`X4xJX4&srZT8AVBIjcJxFI5rbKq4i2)b~Qw_W~{ zyLo}?;5&*pD)CL@S5v{5(U8nRQNO4N!A|k9t93@!=56lH&P|V8BF2t)byZr`kX_b` zW5#2{Q6H^SAhP-rE`ojJk+I#+AEnAU`+9h* zkKzP5JiZog%Z@@a!jvVkndq7e8*x zlcq0)ejcPDr&uC$Adn2?W5%Xr{X_WLyVQ#Ib;B@>+L!rOh7C0CBZ{P~e7pv1K$zW6 z@;z5wtr+#AKzL^&UEQh3(fl= z$VemtT3fZXwR-yc>NZZ}@t+g?TRdNDzL6ddj^&+XWy!;mBT~BMujxmL&-*^g$-5OPtTOM=A5gj6VLD8&@n>2o8i9QUs@8CHy zpx!jQ_R*_7>7HbPs&{$ut5y*+Klm053(IP{ zaPPtns@OtPea_&UlT|zY*UzSKj#%fPv~sxxkN&pXh#JHE)ecpmgMF+@eY)7ER>9q@ z6^W@`^iNv0tj;Yc#AAuTp!u}X2cDqgF>1Kf{1qL=oP1#1v~Y@b4V@|So5$0~a<7O= zXQ$8h$J}{#yZ-T9Ji|z`x=fLW9KoKMa)~WNF$a*ig!|-0-)y%VZFTqLe+&@Tk_O3} z6HU*p?a(DaXU8LNTyS|ra19yL2~$pgpI=1LL`^w5_&MLe?T(p&U&wl1*uiZ?J-JLV z&@V+m-R>J)4Ku~$<@=FptDL&61%qI#zWaq8wb z)pDW{o1nvG1EC?Bkr61$$5BAx_VdD-cB>Dil?)@-5M-U8%gNo7YVfrtd~dLDq6oKp zRdK{HMNsO`_^+(2T8TkC=E&WE`?Ga9yfX>G;*0REMnhiGq!K%19eP%2MObpxr%vym zXF4Ffr>$*Qd_6=wzm7mo?s^TNOoOu5rp7w}pmRjfw#I2xt3+Vpmx+jtyoTEbaP+OG&rfA&tD#rT9OrZ-0uiMV`==bxDb&{>(6ge36gl_ zz2m3Wf1&kgbALd!X*wW~VGPEKU+%WDhi=SAkjqihS@xjS=u)E%m&^i{_FWp>61EhL zj)=Cuf|}lD3&nXp$8cw_hr{b`Yo{S5F1_~Bi+E+R3_rRL^0%fxPr9b_Kv(*)@iQV3pJPAmB8UjES?ubZ+|B+-86Yx!mBOZ(&^|BsC5?v6#I^V{&L{@w?*1@ z{9VpcfFA{Akx27y6#15``4SWwYU>zj^4FlP$8$~f9Q&Lg2=c;6%~R8Q7skC!4FYXdwd93d!7m62H3QzLa;Y_~`@F--5yv$_ z(#e8OPdDKMRVx`4e}=z|?H87v)Y+}l!ss6n*j6fiu|C49o^x1Jqx*xpy4!9bdABT{ z`U-B!Wv(zQ_1!-(A8oyi9N+0)-7Iv(sFp{r#6PT~V0za5=1lDAbR_z-Qq6M6_zR8I zD!U{7MOh*CFKxL?t`P!~hr_%DzF@Ww@k5=NlwL6fwWU!oIQw*2fulw$?e0UizG_Cv zI41@NDO%z+?DH4>KHcdq7wYu>1D0-`fq{nTuU#}|5tgr|kD1iUe_u5grqrT)!Z%0F zHbw%+;c)bYWaUq%@JkCVie$_V%kr3$=2YQY`~nQX>!y@WqE1+n70p_^+fZTWA2#V- zWi)ydnI;)S(=R@Rv{-5<9c#Cd&qk*ugRi8))i4_---z#qRKs^Hek2c;9G{}o7#+wS zbh1%`&_AZ$mh^cU5!2pm7sTd_`;-LA^MzvBPs+e5+@l=s{7L~CY z17Eq;yIK+bE-p0@Ql*w+@U~WOPl*Z2mm5uxIwtX!yK?R~F}_^m2qlAEq|qn;Oe6lx zUurO*S~$FW&g8CqL25bFG}fU6(*p6B!7ny4VDUitv7$EXC|kf4HFkwVn+iKUcwRuP-goV<@*dQ`2)?RG@(DW|q%F=ct*BouO$zoQcI=jE(@ zsYxE&`Wp1EWVC++^G{n3%%1#3cZ&8q>g|u-S zgh>VaR`oW8TnZfvJI|N>Sl};wRyROs@m?92rEIbM} ztGBHfrG-aMhKG|22+q6;Sz^)&86T3V%TL3oZ4>X$&`T!T*Q!0*7V`v;Ph?&V*5%|9 z87v8m@p{xZxMbH{CqJje+UK-aH%vQDGDsPhuXj2|BoZ1Pb_@jYYE)31d;8G@iz@Uq z<#Vk~Mh`>wHR*D+Uf>cBC;cfo%$B$3gW7`862lCEu<_ve?sMH)*2T;>?lINHI+6ibcgB+Fn4 zmb`md8vn*mTA+=)H`W5w-(@8BWwEvcEl_g6@&eZKr);(Eo1X}pj_*qxq{nZ*4ESb- zoa%+ArzLEkp2^x3uMQyIT8$=0RIIHeCth9l@z;7JYoAJaLI_LXSNEZjb0!Y3(ti7t zuB8+h9sWiR9eB8`@ICk$0O5kNI8`0`C&tTZsBwj4%2hCc9;ekW5($9@7ydQ2*WLdV zUdoA%`o!Zdc&K!Qn(|UhCS#0br<){j_4C7Yne_^7JJskl;z_>4B7-ognr2xuaOM0%Y7f?qYm~Y+NML^r0RysIk-Qj6 zw`95X!8p{L}D)K7)>1~b@R(@YIb ze$#NH%=hme;s}WlsL9R6VZBg69~gi?W4qTQw>I@Kn;t5UIZ_uY?E73R^{NqaD*j}d zv)`e6@l1(+98lbf3EPuPBel-t4V^7S-_-1Z;=lfDz?4;jw|J|da}L{--n3-+U|@s> z^vJrJ9x|hZB}^x#fvuT2-a*H;d-W%iIn%ClR9)3&Hz*ESBgXEm^a?qviCK7KBIAs~ z%%0dp!ACWm<;KwEsoR*m1X9q0z2Cf3hE`3*28$;sP(cX-!rk(&&)DC|7W+ophxAp& zAJK%AL|Ml*(~T6GOVUE&+im0_lOlaE>A3$a% zL6w$tl6qhmJK3to*)Jv5i@sXcs7cshWP;nAN&YgOMT@2L91rW$3(#kx@CN-{()C7lDVd#h!(Kv@&~cO$PmsjMMJg-2D5 z2TV&oN{TU~YMjB+2hvNfPb-gI@(9s5fq|xZKRv2SGeX)6HBB4MRo@;I<|uzDxVb90 zh6;VPYbI-ICfZ+O-Ig{{7f=H-f4-SnmD1&m5m{LLmGl;RKGt5I`P*IB)@ z`+DQO3L;l;m*mlCO>sFx#c92G46m}3P8d(;zpx{o6EKd9@#2LHnbnpc8ClAUH&Mpl z162u1zS4)EhBGjvUhcm9G?{nIfQrEl#h9wJ5Xw$w$K+Acu#!tU-|v9ZguMNM-TS`OxqyW_1#4O+iAuL#jY}&ip zP);*I;@(1z!HYKmv@t-(S-E-!VfUw4B8x7$McNDw4KdrHWb~R_*JpN3#Efun-2t4P znH-V~eU>_0u7oN;HDKR{bi};52Yz94>H~2R>@-)iFp=v0EUZbIn=|fZ8oV~{@45%1 zICl@@Yj6t3C!cwCXPTBWQZqrT#lZcgwGBT$63qeuZg49I@@SF5-#g}i__$#(UddH5a#ti7@k0PE2pXW$qSE<8 zu8FMU5NXd5^d#5Esy=?5IEC(pSS|nt!(Q?bLA3Q^n0WVhmW8@KefT?u66MpECj2PL z+GNFODHSgy0#2NB>8^1xV}tU#zMtTFJJBm`B1K&3x`l%L{_`7~5T%PRY;drpZBBfM7Ke9WbrhwPMc(Rc@|30VvE0WouUbbtt z11*{u94|+U>CTa!QVFHE=1t@qjvZQU-iMO^X97ldk3qyR<^>Bwosr5?JH&RYOFS?o zu((;F@34HOX!*LnY`^|9&#F9LjfRUwwmrihi2h}`;@$c@o-~5Ngh!jMEE*C+LGy|~ ztlav-Dm=(*UwhVJCJUpoU8LrrJKp}lt34iSw86&f83`qNT}aNR5UHpH5jRD%(08T7 zq?>42W6;zq1m{ASDp)p3Dw0Ad9E4vGY#DQE^CBP0g6G`S8QU#4P7a~=2G|tmv^Dgd zarN)kj;?IwVtxsBL zi}tH?(6OiO&ZwJIPYvp3nTaYZ9|#-6ydd zI!UM3MiZPq^J~Z`*lt*VB}mioPDhp=t5j6S`>vSu0eDYr#uIAGF=zbxqH=|GO_<(! zN;JQNy@pijl0Qjc^wn9c?QRNu&P6BpTj49Rdg0Lh#@maUlVhnZC&`q5EumS^xQmU8 zy9d)d>{9s6r<)E(7yH9GVblGy*|5dD=P=cy z3>J2O8bqRKkGy+NnXv7XN&+idrn^yjW;&LeryrPKxcH6kjQnX5`mI0?3OLTbt7^Da zAGQ&LUggTCF7XeoiqSrvp$KwZ;_s83G+t!$9gf)96fuq2vC{Io6*`&ZqACs#p3ZFw zgR!OJ(watptc6Y=TpUFd$Q~we?vg~vRgx(+1qsD)-TkohF%=I6(NAR3u(o!O&5Q?3 zMZHfm>C$fad*Vbkn|D(Y!YoWSruig;*!I0|4*u^kkG9b;E@`JN5(jr{-w9E5x%LDE zxrB!fe(EXO#9ivdV!FP+)lPWI`q!C-QF{--^P&&RCI3<6vxJ63gykXO9 zll^jMuSx4JFeo$A%&pUOA=&h`aAq8uW z;c@~5%UoSuojK+vdg6fgAbxE=jLSSsslY=LG(AI!kAb@HCGy94=K0*x9MVO$ zBV!QuHHu;H07Nb{R+KG=hpN>0@A>StM0+)-7BcdH9wO0#I>r5L5nuc>iwRPdXP?1? z-72NDM~dak8iu`zbMt8FV$C#Mbk+%rZ&TRe*>H%Wz=e`W>PyGM?=|;*q-B1i#3v+YI?I zJ8N8Mr99}=ZGpf3?jLzZb%~grl;W#-=X=rE4+TFKk!z9$91-~Vs1I>HBBU0tShRv4 z>KtSaMj6}`js2^-U@>&%|H3{`$jfS!fl7*q%tY@$R3paP;B4c*SIE{9jE7MEfwJ-fzU#496*>Y+|E$X+ zpK_ZE!S1J*rdMt$QAT!4i=)t{%tF#+CZ5S)o?VIL>~!pp)nVdUW)i_sBGE-R<2c0v zkech%mV!Oio=08fHf{*oo8=?D2}pmb}!iFvonlDtYkZPUQ;1O)vB5@ z;a{xkYPyk|aI8xG7XCrS3@+b_)wE`KIe@k=KnV({6}vF}XZ+x`|LPN;l}Y9}Gn=o+CqTzKZdtV*q$D!! zr7x|Fc-xM{G$LVGd=8)wWW;I_q?58uW=-Ue*M;Nr^Clv{9XBu4TK$=AM5@u(b4;=> zu;hv#Zbrz@^8G-yw(&#ju?-HD8t&ZeqdMz8RhQo4W~Q-k6$e7Sl(Nb%l!IC7^+K9& z%^gtk;deFMT2s__4)ZOzJW_&^-!eK|A)m#Wnh-lPmrb|bHGC?-Fl}U2WHs^-91=it z&!KT_RO5mX{k(uGk@L9>zc~Fq)gt@$0n* z4Z)Q{wGR07%C>mSZGoaZ@?*4ckD8cknZ^vb4&4sFB!xwWTd8CLhf$&DeI!H8T?EFs zWiT9>4?p*N;-4OWM=O3LJ;UCZ(oU1epuo(aY|cSrhiy={|C}yvaQQdFNn4JUR2>?| z%pPbK5(q|!0rN(8uUu~1A&M>qOL5z~8=PXCeUT&`kBqh`XiI-De(CY0Pg>(c*hsbYxnez;A*X|=++~@sCN+hO zz8;pZ6A8gm!kiH;=+(6P6dsFec-t3gcI^cPvAV%LOHpYa8WK>K5z=kQ37Cv=O9Yh8 zBb8z6p3{@WIWTZYcO&}Fv-#)4KpK$ENGV#X&gNxgiAqeSJfe9M`A8o{$X<5>YvX4| z(jS0oZV4<2$U$+z%#ZB6Ld2<+tmW23Y@9iM4oRy+{-7T8-W4Wnlq!)$`-WS^Uy&o* z3U)Y)pqf#CabC3mrYz38Te@ay<5*|%(J7D{IID@8#O(97kVSPi+@=_=yFKsFg|!QR}LG$_Uw&w?SiUX#H~b zuuxl~{>c4;zA!zIO~if(x7OJ$Q%a}*Wo0PYI@8TW>`uKj+L8FzD8?WyQOq&--=LB3 zZ*I`@`ko;qKFw_V*BEBp(%^qVEL7KKh`(>KnIo@bj`j4NFW!GUBAdkY>WxKOF=qqS z-s?0DJ^cMdq3(j7{7cXx?Mmmr|6gOMV{A8zx#pVlo_AdLb*&E$yZe;H+e)4K+xat<_dvLd$I^&| zjIBeiP>-o*<8mzI&%mHS*%E#Z%O%aLbTe~1(rPh*=aP2>RD)wj}yn!p`>&|?)W%f!%@uT;rH%Xz8 zNG|X%*y;j*e?+_PE;A=JQJY8Gr7q$NRz3D`A9kzejey`-rR#$;v+uece=6WLCrHF>56Z?nx&L zd}5dy&p@`G#K6yQNNrx&Gi?~5JxCCvYozHYz?j*W+u&T5s)lxiiM8t9A0D~yn=9@QIMO+ z3~>u*E=5l?iyoZthOcqb5E^=Q<}3{QroOO=50OQJOQB!jYxF^q?g>oe4W`s_NFzIL z-7y$l_<{uyrJ^BM?^R@%gebkr8?t8>YaILcahc~7-9y-+7_=_9^QBmYfh27tqXH=! z+*}d2#V)u#w^e(QsY-G=RFkcvbjI+K#mS*5Lt622b{lnB=$EF#A2Itt&B(c)#S>>H zd0+mLuI2V-%O0e*B`kM?zY+{u#A+|qd$Kz4UI5m z9vz)+H+K-a6EbMRLz4V1nyd8v-JG+m!U0d^6AUcccO>m|8ZhoxKq`>ON58e;+;PGs zu606H_>|y7D_;O~i0b;0v|A$dV5O0u#+0h=Agt9&YELn|w_4>R5fsYnY*?qC;&<$g znUv}Cs+#j`PJ&w|0{v2JZpb+^Syno&QYk$_!~_;I6t&+<*78^m5s9&ypJ{wp28_%{ z0MYnh<~=e4w=XEiQrBC-&?N$HgR zM1Dpd*+RCD&#^<&&(1L17|P~O zD(;z|CC>Qzj6+GBZ*aQ)@>+P2FniDp8PtYdX3v)NQ2P>5oUKrGeuLMGeRQU8U?R}P z`|0>QTa&KIP&wu>5m&7H2@>_;KH7^RXB<9{4LoKXQ%%CY1aH~Cxfy$k^a6wa`VblI zYp6aSY4gU`xt!?62fd-I6&hcTCBbXcXL3WFr!uB9p~{3|0*0%27jF3Q_NkT7N!cj7 zBfD!#n@>=CeDQ3a3YcH0<)RZ}w6=`VQr~Y>=uFV@9j%{e(Xf&F?z9!z@Zfi)h(kViyO1M=IXy|U%5GZ9Dkz} zWfGHI@;(f46#6sbOHPr5%Ge0;C8x`-Pnf!u9T$ST;VEN%(3RY%DdL}y+2zua2zNup zl7`O<=H()r(2er&bGKexra`D9%0p`N?LJIT7vqcbWmJJ?VMZ zI9F1}Uj{DBv>fJV!(yhSq@=f!&LyXSv;A1C8awP>#gw9_e0vAdsKrp>$b#JN^E{__ zX!?j-!uHsdy)|PI>t_#Z&bS~UYS)|VAsd~w=qmvp`&h-MJ3S2a&=ADb853nfFlJKI ztYhQQgtg`P^Cc_p70UWHALI?Kax#@=onz%3dd^-^)b)Emy`~$VmrMbzcy@=)}FC* z1;`r9j2Gt(7$4GF$B|ec31tk(4_hQ4ICQ&qyiB$HX8s!dCLcM~>RE=6GUNG^yu{8^W$NrR5d5C4CP7igWkOLq zPQJ5)>yCmcv29tf{CG3s0fWbfl=OJ^V4W}OJp+StRK=zWnK5B03$EAQR1ov7$-5St zZMn5PXq5!}WN&xlgvSyb%;WXCSI9^NyhwGYdQd8P)0SZcGArGYWvlCUhXP*jI8WfLo%CAdLra(-(483zwn zF0nMU_*N|*{6Ot=1FjMA|CWsOL9i;h^B2|&Yq%Kl>YFju#egod!Cih2eZ4}gqc?%3 zi>c$(k)mioG1VEABwO~S{OvuqE!DC+MpvNbC(eZ80!-1erR6+~4-3hEumGHb_n(hE zHfSxd1pCK@l^aMiBLVE!WSd*ye!b%G-Pq1Gy2fZ>ocyWm9Y#1IS0d@x@6(o!150iG zHHVcr=N>em1Z}>yXk}X_qpRl!Tt3Iw>0LIR%CI#%lq$PNTkBj)A&1o`;}(^IUV$|6 zsJvEW*(Yg>1m{$P8k7>k@;zhnXZF1^Vrw4wf{+-vtjn*fDOIp39gkA9yHAcJEh_0e zUiduvlQ*K(UlVt%Z+u7`e-yB~k8Z)|R9-eNRS=fwMqoFpdhYAiX*0mKdJd0bpf0Cz zfT?27Way{9Z(%52^x9B7X!CI@q~h9#pQ%B{aoOV>|z5SF1{#go0~?dT%5 zF?vL8V{FtkFuG-O-d*qLOL;LlhC6bDeMJE-PovR>5cc^b8qO{fLS!v0Sb?8)yVj`2 zx@c=B3r8$)N7ZMt(r>Nojf=f%+i=W{sN|J4Hz2%Wo6V!oD@o$N%$IZgoWWr=*QjJ#=) z0B+xPDPzAU-j?ZTw6-n)zP0%g&P)Ih*nMwoOo@r<&8DXS$lz+d;E2`H>M|5jQg7R) zot2#X0ClQ$%Xl*EvN>+)dN$c=NhA5jXKz`p(gd+erJ|V`YftXjLjF7?bD71z#aLR=Zemw3EhtDkeb-0@CGP_gRa zcR*Vc*bq4g8gjqHA1J>Pgl&BZ?!vFq-^w5|l->O@*jTw95jR}5GWrswW$tqaJ7&0> z1BY)$W|rNduA7tU3H9i&P)*+r?&s%efX2<|>Hf;CJU5JiDL`K}`l}AYEz5l*B9c>$ zcuDR4MTdU3s)YV04eO}6_JL)dMd=Q3nftK19lflo`%&f{c=(5@ zNJEmjt0fIQT6#U3?(75#4g=!` zvQ3{PF&+eewK@EXTjn5Y*yuR0Xd=S<&CH}q%{5ne?vinafS>V^dJp;Q>!_ReREU#; zfDZAmNaxoFzkaFCi9h>=dmbiB#2g58Pc&&>ns zOM&iJEmfIi0JZc)e0E;|8Hk)4#X*fA45QwR z>Z614|G>`M4y}oaiQV4cqXTSQKzl2&Uqp[f;wV`5@}PBU-9T7V>ZNBKVErXVv_ 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 + + + + + + + + The Perspicacious Polyglot's Programming Language Plethora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ home.. +

The Perspicacious Polyglot's Programming Language Plethora

+

I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. +Here’s a way to get several of them installed into your unix user directory. +If things go wrong, or you get bored you can easily rm -rf the installation.

+ +

Initial Install

+

Let’s get ourselves a minimal debian environment. I’m using docker here, but you can use a native install, or a VM, or Windows Services for Linux with the ubuntu install.

+
john@BigBox:~/git/JohnCSimon.github.io$  sudo docker run -ti debian /bin/bash
+Unable to find image 'debian:latest' locally
+latest: Pulling from library/debian
+cd8eada9c7bb: Pull complete
+Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5
+Status: Downloaded newer image for debian:latest
+root@6d933dddbbcd:/#
+
+

Just to satisfy my OCD let’s get the latest updates.

+ +

apt update && apt upgrade -y

+ +

apt install gnupg2 curl procps -y + Installs gpg2, curl and ps

+ +

ruby

+

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

+ +

\curl -sSL https://get.rvm.io | bash -s stable

+ +

To start using RVM you need to run source /etc/profile.d/rvm.sh or re-login to re-load ~/.profile

+ +

From here you can run - rvm list known and you’ll see a list of ruby flavors and individual versions.

+ +
# MRI Rubies
+[ruby-]1.8.6[-p420]
+[ruby-]1.8.7[-head] # security released on head
+[ruby-]1.9.1[-p431]
+[ruby-]1.9.2[-p330]
+[ruby-]1.9.3[-p551]
+[ruby-]2.0.0[-p648]
+[ruby-]2.1[.10]
+[ruby-]2.2[.10]
+[ruby-]2.3[.8]
+[ruby-]2.4[.5]
+[ruby-]2.5[.3]
+[ruby-]2.6[.0]
+
+ +

MRI Ruby is the reference version of Ruby so let’s install the latest version.

+ +

rvm install ruby-2.6.0

+ +

I’m running debian and rvm might ask for your root password to install some prerequsites from apt before compiling a new version.

+ +

Congrats, you now have a ruby install

+ +
$ ruby -v
+ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
+
+ +

from here you can now do whatever since I’m blogging this using jekyll

+ +

gem install bundler jekyll

+ +

go

+

Go is a language that releases new versions on a regular basis. +There’s a similar tool to rvm called gvm. It’s a ā€œgo version managerā€ available from here https://github.com/moovweb/gvm that’ll let you install multiple versions and set $GOPATH and $GOROOT.

+ +

as a regular user:

+
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
+Cloning from https://github.com/moovweb/gvm.git to /root/.gvm
+No existing Go versions detected
+Installed GVM v1.0.22
+
+Please restart your terminal session or to get started right away run
+ `source /root/.gvm/scripts/gvm`
+
+ +

you should be able to run and see

+
$ gvm version
+Go Version Manager v1.0.22 installed at /home/john/.gvm
+
+ +

Run gvm listall +which will give you a list of all the available versions of go.

+ +
$gvm listall
+
+gvm gos (available)
+
+   go1
+   go1.0.1
+   ...
+   go1.11rc1
+   go1.11rc2
+   go1.11.1
+   go1.11.2
+   go1.11.3
+   go1.11.4
+   go1.12beta1
+   go1.12beta2
+
+

of which there are entirely too many.

+ +

From here, we can install go as our user via binary here:

+ +

gvm install go1.4 -B

+ +

try it out

+
$ go version
+go version go1.4 linux/amd64
+
+

We can see it gets installed here:

+
$ echo $GOROOT
+/home/john/.gvm/gos/go1.4
+
+ +

From the gvm link earlier, in order to compile a go build environment for versions 1.5 on we require another go build environment. +Go compiles itself! Neat huh?

+ +

As of now the latest version is go1.11.4

+
$ export GOROOT_BOOTSTRAP=$GOROOT
+$ gvm install go1.11.4
+
+ +
$ go version
+go version go1.4 linux/amd64
+
+

you can run +gvm use - select a go version to use (--default to set permanently)

+ +
$ gvm use go1.11.4 --default
+Now using version go1.11.4
+$ go version
+go version go1.11.4 linux/amd64
+$ echo $GOROOT
+/home/john/.gvm/gos/go1.11.4
+$ echo $GOPATH
+/home/john/.gvm/pkgsets/go1.11.4/global
+$ ls /home/john/.gvm/gos/go1.11.4
+AUTHORS  CONTRIBUTING.md  CONTRIBUTORS  LICENSE  PATENTS  README.md  VERSION  api  bin  doc  favicon.ico  lib  manifest  misc  pkg  robots.txt  src  test
+ls $GOPATH
+overlay  pkg  src
+
+ +

Be sure to set –default so you keep the same version when you relaunch the shell, so that whatever you install stays where you expect it.

+ +

node js

+

node.js, the server side javascript framework

+ +

nvm is Node Version Manager. Install it like this: +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

+ +

Since there are major revisions to the javascript language between node 4, 6, 8 I’ve found I’ve had to switch more often between these versions according to project than I did with other languages.

+ +

You can run nvm ls-remote and get a list of all the node versions available

+ +
$ nvm
+Example:
+  nvm install 8.0.0                     Install a specific version number
+  nvm use 8.0                           Use the latest available 8.0.x release
+  nvm run 6.10.3 app.js                 Run app.js using node 6.10.3
+  nvm exec 4.8.3 node app.js            Run `node app.js` with the PATH pointing to node 4.8.3
+  nvm alias default 8.1.0               Set default node version on a shell
+  nvm alias default node                Always default to the latest available node version on a shell
+
+ +

so if you run

+ +
$ nvm install 10
+Downloading and installing node v10.15.0...
+Downloading https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.gz...
+######################################################################## 100.0%
+Computing checksum with sha256sum
+Checksums matched!
+Now using node v10.15.0 (npm v6.4.1)
+Creating default alias: default -> 10 (-> v10.15.0)
+
+$ whereis node
+node: /home/john/.nvm/versions/node/v10.15.0/bin/node
+
+ +

and you can set it to be the default so the setting persists between sessions

+
nvm alias default 10
+
+ +

So now you can run:

+
$ node -v
+v10.15.0
+$ npm -v
+6.4.1
+
+ +

rust

+

Rust is another language that sees regular updates. You’ll just have to check which is the version for the 2015 and 2018 edition.

+ +
curl https://sh.rustup.rs -sSf | sh
+
+
+
+Current installation options:
+
+   default host triple: x86_64-unknown-linux-gnu
+     default toolchain: stable
+  modify PATH variable: yes
+
+1) Proceed with installation (default)
+2) Customize installation
+3) Cancel installation
+>
+
+select 1 
+
+To configure your current shell run source $HOME/.cargo/env
+
+ +

add $HOME/.cargo/env to your path in .bashrc

+ +
$ whereis cargo
+cargo: /home/john/.cargo/bin/cargo
+$ whereis rustc
+cargo: /home/john/.cargo/bin/rustc
+
+ + + + + +
+
+ + + + + diff --git a/docs/utilities/2025/02/08/blah.html b/docs/utilities/2025/02/08/blah.html new file mode 100644 index 0000000..fe15d85 --- /dev/null +++ b/docs/utilities/2025/02/08/blah.html @@ -0,0 +1,89 @@ + + + + + + + + + Hope this works + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ home.. +

Hope this works

+

Blah blah blah blah okay okay !!

+ + + + +
+
+ + + + + From 3181ff5410eb010d39c186110b69adb22158900f Mon Sep 17 00:00:00 2001 From: John Simon Date: Sun, 9 Feb 2025 13:07:28 -0800 Subject: [PATCH 12/14] clean up docs for build --- buildrelease.sh | 1 + docs/feed.xml | 4 +++- docs/utilities/2025/02/08/blah.html | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/buildrelease.sh b/buildrelease.sh index 58f3c67..7984e8b 100755 --- a/buildrelease.sh +++ b/buildrelease.sh @@ -1,3 +1,4 @@ +rm -rf ./docs docker build -t github-pages-local . docker create --name temp-container github-pages-local docker cp temp-container:/output ./docs diff --git a/docs/feed.xml b/docs/feed.xml index 127c407..fb0533d 100644 --- a/docs/feed.xml +++ b/docs/feed.xml @@ -1,4 +1,6 @@ -Jekyll2025-02-09T20:42:05+00:00https://www.abhinavsaxena.com/moonwalk/feed.xml🌲 johncsimon.github.io 🐦got some downtime so how's about we starts ourselves a blog ...Abhinav SaxenaHope this works2025-02-08T18:04:18+00:002025-02-08T18:04:18+00:00https://www.abhinavsaxena.com/moonwalk/utilities/2025/02/08/blah<p>Blah blah blah blah okay okay !!</p>Abhinav SaxenaBlah blah blah blah okay okay !!The Perspicacious Polyglot’s Programming Language Plethora2019-01-17T19:40:43+00:002019-01-17T19:40:43+00:00https://www.abhinavsaxena.com/moonwalk/polyglot/2019/01/17/polyglot-setup<p>I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. +Jekyll2025-02-09T20:55:37+00:00https://www.abhinavsaxena.com/moonwalk/feed.xml🌲 johncsimon.github.io 🐦got some downtime so how's about we starts ourselves a blog ...Abhinav SaxenaHope this works2025-02-08T18:04:18+00:002025-02-08T18:04:18+00:00https://www.abhinavsaxena.com/moonwalk/utilities/2025/02/08/blah<p>Blah blah blah blah okay okay !!</p> + +<p>Try again</p>Abhinav SaxenaBlah blah blah blah okay okay !!The Perspicacious Polyglot’s Programming Language Plethora2019-01-17T19:40:43+00:002019-01-17T19:40:43+00:00https://www.abhinavsaxena.com/moonwalk/polyglot/2019/01/17/polyglot-setup<p>I like to play around with lots of different programming languages, but install too many and they pollute your working environment, so it’s better to have them installed as a user instead of root. Here’s a way to get several of them installed into your unix user directory. If things go wrong, or you get bored you can easily <code class="language-plaintext highlighter-rouge">rm -rf</code> the installation.</p> diff --git a/docs/utilities/2025/02/08/blah.html b/docs/utilities/2025/02/08/blah.html index fe15d85..841b6cd 100644 --- a/docs/utilities/2025/02/08/blah.html +++ b/docs/utilities/2025/02/08/blah.html @@ -68,6 +68,8 @@

Hope this works

Blah blah blah blah okay okay !!

+

Try again

+ + + + + + + + + diff --git a/docs/utilities/2025/02/08/blah.html b/docs/utilities/2025/02/08/blah.html deleted file mode 100644 index 841b6cd..0000000 --- a/docs/utilities/2025/02/08/blah.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - Hope this works - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- home.. -

Hope this works

-

Blah blah blah blah okay okay !!

- -

Try again

- - - - -
-
- - - - - From a8e601f5ad351db23697491fba1b1ae9edba3f89 Mon Sep 17 00:00:00 2001 From: John Simon Date: Mon, 10 Feb 2025 00:53:55 -0800 Subject: [PATCH 14/14] readme --- readme.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 readme.md diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..853f8ba --- /dev/null +++ b/readme.md @@ -0,0 +1,6 @@ +# I got a blog + +``` +buildlocal.sh - builds and runs jekyll in docker +buildrelease.sh - builds and runs jekyll in docker +```