diff options
Diffstat (limited to 'presentations/unnormal2.md')
| -rw-r--r-- | presentations/unnormal2.md | 318 |
1 files changed, 318 insertions, 0 deletions
diff --git a/presentations/unnormal2.md b/presentations/unnormal2.md new file mode 100644 index 0000000..95df8ec --- /dev/null +++ b/presentations/unnormal2.md @@ -0,0 +1,318 @@ +# Ненормальное программирование + +--- + +# Машина Тьюринга + +- Лента, состоящая из ячеек <!-- .element: class="fragment" data-fragment-index="0" --> +- Управляющее устройство <!-- .element: class="fragment" data-fragment-index="1" --> +- Хранилище состояния <!-- .element: class="fragment" data-fragment-index="2" --> +- Правила перехода <!-- .element: class="fragment" data-fragment-index="3" --> + +--- + +# Эзотерические ЯП + + + +--- + +# Surprisingly turing-complete + +- https://gwern.net/turing-complete + + + +--- + +# Ненормальное программирование + +--- +<!-- .slide: data-auto-animate --> + + + +--- +<!-- .slide: data-auto-animate --> + + + +--- +<!-- .slide: data-auto-animate --> + + + +--- +<!-- .slide: data-auto-animate --> + + + +--- +<!-- .slide: data-auto-animate --> + + + +--- +<!-- .slide: data-auto-animate --> + + + +--- +<!-- .slide: data-auto-animate --> + + + +--- +<!-- .slide: data-auto-animate --> + + + +--- + +# PHP + + + +--- + +# PHP + + + +--- + +# Bash + +--- + +```sh [] +check_curl_for_retry_support +_retry="$RETVAL" +get_ciphersuites_for_curl +_ciphersuites="$RETVAL" +if [ -n "$_ciphersuites" ]; then + _err=$(curl $_retry --proto '=https' --tlsv1.2 --ciphers "$_ciphersuites" --silent --show-error --fail --location "$1" --output "$2" 2>&1) + _status=$? +else + echo "Warning: Not enforcing strong cipher suites for TLS, this is potentially less secure" + if ! check_help_for "$3" curl --proto --tlsv1.2; then + echo "Warning: Not enforcing TLS v1.2, this is potentially less secure" + _err=$(curl $_retry --silent --show-error --fail --location "$1" --output "$2" 2>&1) + _status=$? + else + _err=$(curl $_retry --proto '=https' --tlsv1.2 --silent --show-error --fail --location "$1" --output "$2" 2>&1) + _status=$? + fi +fi +if [ -n "$_err" ]; then + echo "$_err" >&2 + if echo "$_err" | grep -q 404$; then + err "installer for platform '$3' not found, this may be unsupported" + fi +fi +return $_status +``` + +--- + +# JavaScript + +--- +<!-- .slide: data-auto-animate --> + +```js [] +> [] + [] +``` +<!-- .element: data-id="code-animation" --> + +--- +<!-- .slide: data-auto-animate --> + +```js [] +> [] + [] +"" +``` +<!-- .element: data-id="code-animation" --> + +--- +<!-- .slide: data-auto-animate --> + +```js [] +> [] + [] +"" +> [] + {} +``` +<!-- .element: data-id="code-animation" --> +--- +<!-- .slide: data-auto-animate --> + +```js [] +> [] + [] +"" +> [] + {} +"[object Object]" +``` +<!-- .element: data-id="code-animation" --> + +--- +<!-- .slide: data-auto-animate --> + +```js [] +> [] + [] +"" +> [] + {} +"[object Object]" +> {} + [] +``` +<!-- .element: data-id="code-animation" --> +--- +<!-- .slide: data-auto-animate --> + +```js [] +> [] + [] +"" +> [] + {} +"[object Object]" +> {} + [] +0 +``` +<!-- .element: data-id="code-animation" --> + +--- +<!-- .slide: data-auto-animate --> + +```js [] +> [] + [] +"" +> [] + {} +"[object Object]" +> {} + [] +0 +> {} + {} +``` +<!-- .element: data-id="code-animation" --> + +--- +<!-- .slide: data-auto-animate --> + +```js [] +> [] + [] +"" +> [] + {} +"[object Object]" +> {} + [] +0 +> {} + {} +NaN +``` +<!-- .element: data-id="code-animation" --> + +--- + +# Web + +--- + + + +--- + + + +--- +<!-- .slide: data-auto-animate --> + +# YAML-программирование + +--- +<!-- .slide: data-auto-animate --> + +# YAML-программирование + +- docker-compose <!-- .element: class="fragment" data-fragment-index="0" --> +- GitHub Actions/GitLab Runners <!-- .element: class="fragment" data-fragment-index="1" --> +- Terraform <!-- .element: class="fragment" data-fragment-index="2" --> +- Kubernetes <!-- .element: class="fragment" data-fragment-index="3" --> +- Ansible <!-- .element: class="fragment" data-fragment-index="4" --> +- Jenkins <!-- .element: class="fragment" data-fragment-index="5" --> + +--- + +# C++ + +--- + +# Структура простого проекта на C++ + +- CMakeLists.txt -> Makefile +- main.cpp + +--- + +<https://github.com/Cheukyin/TemplatedPL> + +```cpp [] +cout<< Eval< Call< Lib::Sum, Call< Lib::Filter, + Call< Lib::Range, Int<1>, Int<10> >, + Lambda< ParamList< Var<0> >, + IsEqual< Mod< Var<0>, Int<2> >, + Int<0> > > > > >::value::value; +``` + +--- +<!-- .slide: data-auto-animate --> + +```cpp [] +int i(int(j)); +``` +<!-- .element: data-id="code-animation" --> + +--- +<!-- .slide: data-auto-animate --> + +```cpp [] +int i(int(j)); +int i(int(j)) { + return j * j; +} +``` +<!-- .element: data-id="code-animation" --> + +--- +<!-- .slide: data-auto-animate --> + +```cpp +int i(int(j)); +int i(int(j)) { + return j * j; +} +``` + +```cpp +%:include <iostream> +%:define HELLO "HELLO" +%:define WORLD "WORLD" + +main(int argc, char *argv<::>) +<% + if (argc > 1) <% + std::cout<<argv<:1:><<std::endl; + %> else <% + std::cout << HELLO WORLD << std::endl; + %> +%> +``` + +--- + +> There are only two kinds of languages: the ones people complain about and the ones nobody uses. + +- Bjarne Stroustrup + +--- + +# Этот слайд захвачен ржавчиной + +<https://rustup.rs/> + + |