summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dist/dsc.css4
-rw-r--r--images/Frame1.pngbin0 -> 20237 bytes
-rw-r--r--images/Frame2.pngbin0 -> 111769 bytes
-rw-r--r--images/Frame3.pngbin0 -> 49716 bytes
-rw-r--r--images/Frame4.pngbin0 -> 79908 bytes
-rw-r--r--images/Frame5.pngbin0 -> 100264 bytes
-rw-r--r--images/Frame6.pngbin0 -> 111316 bytes
-rw-r--r--images/Frame7.pngbin0 -> 124663 bytes
-rw-r--r--images/Frame8.pngbin0 -> 139754 bytes
-rw-r--r--images/gwern.gifbin0 -> 4271 bytes
-rw-r--r--images/php1.pngbin0 -> 150824 bytes
-rw-r--r--images/php2.pngbin0 -> 100676 bytes
-rw-r--r--images/rustup.pngbin0 -> 1248 bytes
-rw-r--r--images/unnormal.pngbin0 -> 4887557 bytes
-rw-r--r--images/web1.pngbin0 -> 62213 bytes
-rw-r--r--images/web2.pngbin0 -> 33317 bytes
-rw-r--r--presentations/unnormal.md62
-rw-r--r--presentations/unnormal2.md318
18 files changed, 382 insertions, 2 deletions
diff --git a/dist/dsc.css b/dist/dsc.css
index f2f88ac..8ba4135 100644
--- a/dist/dsc.css
+++ b/dist/dsc.css
@@ -12,8 +12,8 @@
.reveal img,
.reveal video,
.reveal iframe {
- max-width: 95%;
- max-height: 95%;
+ max-width: 65%;
+ max-height: 65%;
}
.reveal a {
diff --git a/images/Frame1.png b/images/Frame1.png
new file mode 100644
index 0000000..4c05171
--- /dev/null
+++ b/images/Frame1.png
Binary files differ
diff --git a/images/Frame2.png b/images/Frame2.png
new file mode 100644
index 0000000..c652488
--- /dev/null
+++ b/images/Frame2.png
Binary files differ
diff --git a/images/Frame3.png b/images/Frame3.png
new file mode 100644
index 0000000..ecf15ef
--- /dev/null
+++ b/images/Frame3.png
Binary files differ
diff --git a/images/Frame4.png b/images/Frame4.png
new file mode 100644
index 0000000..44c6ff3
--- /dev/null
+++ b/images/Frame4.png
Binary files differ
diff --git a/images/Frame5.png b/images/Frame5.png
new file mode 100644
index 0000000..1b393db
--- /dev/null
+++ b/images/Frame5.png
Binary files differ
diff --git a/images/Frame6.png b/images/Frame6.png
new file mode 100644
index 0000000..b3a26b8
--- /dev/null
+++ b/images/Frame6.png
Binary files differ
diff --git a/images/Frame7.png b/images/Frame7.png
new file mode 100644
index 0000000..6fbd448
--- /dev/null
+++ b/images/Frame7.png
Binary files differ
diff --git a/images/Frame8.png b/images/Frame8.png
new file mode 100644
index 0000000..57e3b39
--- /dev/null
+++ b/images/Frame8.png
Binary files differ
diff --git a/images/gwern.gif b/images/gwern.gif
new file mode 100644
index 0000000..59a7aa2
--- /dev/null
+++ b/images/gwern.gif
Binary files differ
diff --git a/images/php1.png b/images/php1.png
new file mode 100644
index 0000000..160d497
--- /dev/null
+++ b/images/php1.png
Binary files differ
diff --git a/images/php2.png b/images/php2.png
new file mode 100644
index 0000000..ba4fed3
--- /dev/null
+++ b/images/php2.png
Binary files differ
diff --git a/images/rustup.png b/images/rustup.png
new file mode 100644
index 0000000..ebfb814
--- /dev/null
+++ b/images/rustup.png
Binary files differ
diff --git a/images/unnormal.png b/images/unnormal.png
new file mode 100644
index 0000000..042bdda
--- /dev/null
+++ b/images/unnormal.png
Binary files differ
diff --git a/images/web1.png b/images/web1.png
new file mode 100644
index 0000000..975a608
--- /dev/null
+++ b/images/web1.png
Binary files differ
diff --git a/images/web2.png b/images/web2.png
new file mode 100644
index 0000000..8fde9e1
--- /dev/null
+++ b/images/web2.png
Binary files differ
diff --git a/presentations/unnormal.md b/presentations/unnormal.md
new file mode 100644
index 0000000..f112fa0
--- /dev/null
+++ b/presentations/unnormal.md
@@ -0,0 +1,62 @@
+# Ненормальное программирование
+
+---
+
+# Машина Тьюринга
+
+- Лента, состоящая из ячеек <!-- .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" -->
+
+---
+
+# Эзотерические ЯП
+
+![](images/unnormal.png)
+
+---
+
+# Полные по Тьюрингу языки
+
+- C++
+- Rust
+- Haskell
+- Lisp
+
+---
+<!-- .slide: data-auto-animate -->
+
+> Любая достаточно сложная программа на Си или Фортране содержит заново
+> написанную, неспецифицированную, глючную и медленную реализацию половины языка
+> Common Lisp.
+
+- Филипп Гринспен
+
+---
+<!-- .slide: data-auto-animate -->
+
+> Любая достаточно сложная программа на Си или Фортране содержит заново
+> написанную, неспецифицированную, глючную и медленную реализацию половины языка
+> Common Lisp.
+
+- Филипп Гринспен
+
+> ...в том числе и сам Common Lisp.
+
+- Роберт Моррис
+
+---
+
+# Структура простого проекта на C++
+
+- CMakeLists.txt -> Makefile
+- main.cpp
+
+---
+
+# Surprisingly turing-complete
+
+- https://gwern.net/turing-complete
+
+![](images/gwern.gif)
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" -->
+
+---
+
+# Эзотерические ЯП
+
+![](images/unnormal.png)
+
+---
+
+# Surprisingly turing-complete
+
+- https://gwern.net/turing-complete
+
+![](images/gwern.gif)
+
+---
+
+# Ненормальное программирование
+
+---
+<!-- .slide: data-auto-animate -->
+
+![](images/Frame1.png)
+
+---
+<!-- .slide: data-auto-animate -->
+
+![](images/Frame2.png)
+
+---
+<!-- .slide: data-auto-animate -->
+
+![](images/Frame3.png)
+
+---
+<!-- .slide: data-auto-animate -->
+
+![](images/Frame4.png)
+
+---
+<!-- .slide: data-auto-animate -->
+
+![](images/Frame5.png)
+
+---
+<!-- .slide: data-auto-animate -->
+
+![](images/Frame6.png)
+
+---
+<!-- .slide: data-auto-animate -->
+
+![](images/Frame7.png)
+
+---
+<!-- .slide: data-auto-animate -->
+
+![](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
+
+---
+<!-- .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
+
+---
+
+![](images/web1.png)
+
+---
+
+![](images/web2.png)
+
+---
+<!-- .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/>
+
+![](images/rustup.png)