# Ненормальное программирование --- # Машина Тьюринга - Лента, состоящая из ячеек - Управляющее устройство - Хранилище состояния - Правила перехода --- # Эзотерические ЯП ![](images/unnormal.png) --- # Surprisingly turing-complete - https://gwern.net/turing-complete ![](images/gwern.gif) --- # Ненормальное программирование --- ![](images/Frame1.png) --- ![](images/Frame2.png) --- ![](images/Frame3.png) --- ![](images/Frame4.png) --- ![](images/Frame5.png) --- ![](images/Frame6.png) --- ![](images/Frame7.png) --- ![](images/Frame8.png) --- # PHP ![](images/php1.png) --- # PHP ![](images/php2.png) --- # 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 --- ```js [] > [] + [] ``` --- ```js [] > [] + [] "" ``` --- ```js [] > [] + [] "" > [] + {} ``` --- ```js [] > [] + [] "" > [] + {} "[object Object]" ``` --- ```js [] > [] + [] "" > [] + {} "[object Object]" > {} + [] ``` --- ```js [] > [] + [] "" > [] + {} "[object Object]" > {} + [] 0 ``` --- ```js [] > [] + [] "" > [] + {} "[object Object]" > {} + [] 0 > {} + {} ``` --- ```js [] > [] + [] "" > [] + {} "[object Object]" > {} + [] 0 > {} + {} NaN ``` --- # Web --- ![](images/web1.png) --- ![](images/web2.png) --- # YAML-программирование --- # YAML-программирование - docker-compose - GitHub Actions/GitLab Runners - Terraform - Kubernetes - Ansible - Jenkins --- # C++ --- # Структура простого проекта на C++ - CMakeLists.txt -> Makefile - main.cpp --- ```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; ``` --- ```cpp [] int i(int(j)); ``` --- ```cpp [] int i(int(j)); int i(int(j)) { return j * j; } ``` --- ```cpp int i(int(j)); int i(int(j)) { return j * j; } ``` ```cpp %:include %:define HELLO "HELLO" %:define WORLD "WORLD" main(int argc, char *argv<::>) <% if (argc > 1) <% std::cout<< 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 --- # Этот слайд захвачен ржавчиной ![](images/rustup.png)