Technologique
Микроархитектуры Zen/Zen 2/Zen 3 и K12 от AMD и будущий выход AMD на рынок мобильных процессоров. На самых ранних порах существования канала в начале 2016 года я писал про будущие архитектуры мобильных процессоров, которые сейчас стали уже текущими, но у…
YouTube
The Making of “Zen”
Behind-the-scenes with AMD’s Engineers as they reflect on the road to “Zen” *** Subscribe: http://bit.ly/Subscribe_to_AMD Like us on Facebook: http://bit.ly/...
Technologique
Микроархитектуры Zen/Zen 2/Zen 3 и K12 от AMD и будущий выход AMD на рынок мобильных процессоров. На самых ранних порах существования канала в начале 2016 года я писал про будущие архитектуры мобильных процессоров, которые сейчас стали уже текущими, но у…
YouTube
How the AMD “Zen” Core is Made
An exclusive, behind-the-scenes look into how AMD’s “Zen” core based products are getting made in the fabs around the world.
www.amd.com
***
Subscribe: http://bit.ly/Subscribe_to_AMD
Like us on Facebook: http://bit.ly/AMD_on_Facebook
Follow us on Twitter:…
www.amd.com
***
Subscribe: http://bit.ly/Subscribe_to_AMD
Like us on Facebook: http://bit.ly/AMD_on_Facebook
Follow us on Twitter:…
Занимаюсь Rust вплотную уже практически три года и понял, что не знаю и никогда не видел его автора, Грэйдона Хоара, в лицо.
Решил поискать - интересно ведь какой он, как выглядит, сколько лет человеку.
В социальных сетях (в Twitter) его фото нет, на GitHub и KeyBase фото нет, на конференциях не выступал (например на Lang Next часто авторы новых языков программирования выступают с докладами и с обсуждениями), записей видео на YouTube с ним нет.
Человек оказался довольно скрытным и в сети его фотографий крайне мало - всего-то две.
Оказалось он далеко не бородатый хакер, типа Кена Томпсона или Дэниса Ричи, как он мне представлялся ранее. 😄
http://venge.net/frances/frances_raftis.html - фото с супругой
https://adainitiative.org/2012/10/13/graydon-hoare-i-donated-because-id-like-to-see-the-culture-change/
https://www.infoq.com/news/2012/08/Interview-Rust
https://keybase.io/graydon
https://github.com/graydon
https://twitter.com/graydon_pub
Его блог:
http://graydon2.dreamwidth.org
http://graydon.livejournal.com
Но то, что я нашёл помимо фото, на его сайте (http://venge.net), позволило мне лучше понять какой он человек, какие базовые концепции были заложены в фундамент Rust и укрепить мою веру в большое будущее Rust.
А нашёл я две презентации - первая от 2010 года, когда проект Rust был официально анонсирован и получил публичную огласку, была непублично выпущена первая версия его компилятора, написанного на OCaml, с применением синтаксических расширений/макросов и рефлексии этого замечательного языка, а вторая от 2012 года, когда была уже публично выпущена первая версия бутстрап компилятора, переписанного на самом Rust.
Даже по духу презентаций, по тому как они написаны, хорошо ощущается какой Грэйдон человек и конечно какой он инженер - он эксперт по концепциям ЯП и инженер очень высокого ранга.
Он очень грамотно и прагматично сочетал в Rust концепции, пришедшие из очень многих языков, чтобы достигнуть цели создания безопасного и удобного в использовании языка для системного программирования и его использования в более широком круге задач. Первоначальные цели были поставлены очень амбициозные - изменить отрасль кардинально, сделать программирование крупномасштабных систем более безопасным - безопасность начинается на уровне ЯП (https://en.wikipedia.org/wiki/Language-based_security).
Боюсь представить чем он сейчас занимается в команде Swift в Apple - скорее всего в Swift 5 в 2018 году мы увидим модель многопоточности и безопасности памяти, модель владений и заимствований (borrow and ownership) для работы с указателями, подобную Rust.
Я остался под большим и очень хорошим впечатлением - очень советую их посмотреть:
http://venge.net/graydon/talks/intro-talk-2.pdf [2010]
http://venge.net/graydon/talks/rust-2012.pdf [2012]
В первой презентации очень хорошо ощущается как прагматично он мыслит, как автор языка и инженер.
Критика существующих языков и решений очень точная - могу подписаться под каждым словом!
#Rust
Решил поискать - интересно ведь какой он, как выглядит, сколько лет человеку.
В социальных сетях (в Twitter) его фото нет, на GitHub и KeyBase фото нет, на конференциях не выступал (например на Lang Next часто авторы новых языков программирования выступают с докладами и с обсуждениями), записей видео на YouTube с ним нет.
Человек оказался довольно скрытным и в сети его фотографий крайне мало - всего-то две.
Оказалось он далеко не бородатый хакер, типа Кена Томпсона или Дэниса Ричи, как он мне представлялся ранее. 😄
http://venge.net/frances/frances_raftis.html - фото с супругой
https://adainitiative.org/2012/10/13/graydon-hoare-i-donated-because-id-like-to-see-the-culture-change/
https://www.infoq.com/news/2012/08/Interview-Rust
https://keybase.io/graydon
https://github.com/graydon
https://twitter.com/graydon_pub
Его блог:
http://graydon2.dreamwidth.org
http://graydon.livejournal.com
Но то, что я нашёл помимо фото, на его сайте (http://venge.net), позволило мне лучше понять какой он человек, какие базовые концепции были заложены в фундамент Rust и укрепить мою веру в большое будущее Rust.
А нашёл я две презентации - первая от 2010 года, когда проект Rust был официально анонсирован и получил публичную огласку, была непублично выпущена первая версия его компилятора, написанного на OCaml, с применением синтаксических расширений/макросов и рефлексии этого замечательного языка, а вторая от 2012 года, когда была уже публично выпущена первая версия бутстрап компилятора, переписанного на самом Rust.
Даже по духу презентаций, по тому как они написаны, хорошо ощущается какой Грэйдон человек и конечно какой он инженер - он эксперт по концепциям ЯП и инженер очень высокого ранга.
Он очень грамотно и прагматично сочетал в Rust концепции, пришедшие из очень многих языков, чтобы достигнуть цели создания безопасного и удобного в использовании языка для системного программирования и его использования в более широком круге задач. Первоначальные цели были поставлены очень амбициозные - изменить отрасль кардинально, сделать программирование крупномасштабных систем более безопасным - безопасность начинается на уровне ЯП (https://en.wikipedia.org/wiki/Language-based_security).
Боюсь представить чем он сейчас занимается в команде Swift в Apple - скорее всего в Swift 5 в 2018 году мы увидим модель многопоточности и безопасности памяти, модель владений и заимствований (borrow and ownership) для работы с указателями, подобную Rust.
Я остался под большим и очень хорошим впечатлением - очень советую их посмотреть:
http://venge.net/graydon/talks/intro-talk-2.pdf [2010]
http://venge.net/graydon/talks/rust-2012.pdf [2012]
В первой презентации очень хорошо ощущается как прагматично он мыслит, как автор языка и инженер.
Критика существующих языков и решений очень точная - могу подписаться под каждым словом!
Go seems to be barking up a different tree?
–Has coroutines, but kept shared mutable state.
–Has memory safety, but kept null pointers.
–Has unwinding, but no destructors or RAII.
–Has message passing, but no immutability.
–Has some built-in generics, but not in user code.
C++ is well past expiration date:
–Wildly unsafe in almost every way
⦁ Memory unsafe, no ownership policies, no concurrency control at all, can't even keep const values constant.
–Heavily burdened with legacy issues
⦁ Absurd compilation model, weak linkage and module system, nigh-impossible to write tools for.
–Spend more time fighting its weaknesses than seems reasonable.
#Rust
Ada Initiative
Graydon Hoare: "I donated because I'd like to see the culture change."
Q. Tell us about yourself I’m a tools and language engineer, currently at Mozilla and working on the Rust language. I was at Red Hat before, and a few other places. I’ve worked primaril…
Technologique
Занимаюсь Rust вплотную уже практически три года и понял, что не знаю и никогда не видел его автора, Грэйдона Хоара, в лицо. Решил поискать - интересно ведь какой он, как выглядит, сколько лет человеку. В социальных сетях (в Twitter) его фото нет, на GitHub…
https://habrahabr.ru/post/271789/
В своей первой презентации от 2010 года по первому публичному релизу Rust (http://venge.net/graydon/talks/intro-talk-2.pdf) Грейдон Хоар очень верно отметил:
Go
Есть нулевые указатели и они никак не проверяются - в Kotlin например есть проверка nullable types, т.е. обнуляемых типов благодаря flow-sensitive type system.
Нет деструкторной техники освобождения ресурсов (RAII).
Есть GC, но нет динамики вывода типов во время исполнения (в run-time) и дженериков (обобщённых типов).
Сообщения хоть и передаются синхронно через каналы, но мутабельны.
https://habrahabr.ru/post/338718/
В этом и вся проблема в Go - авторы сделали горутины по образу CSP Чарльза Энтони Хоара, чтобы исключить доступ к общей памяти потоков (shared mutable memory), её повреждение при одновременной записи (shared mutable state), состояние гонки или взаимоблокировки потоков за счёт синхронных сообщений, передаваемых через каналы, а теперь выходит что нужно пользоваться мьютексами для предотвращения повреждения данных в общей памяти потоков при одновременной записи (shared mutable state), потому что параллельные коллекции не предусмотрели.
Rust имеет более широкий спектр применения и скомпилированный им код более безопасен при работе с памятью и вводом-выводом, чем Go - Go более узкоспециализированный язык программирования.
Всё что можно сделать на Go можно сделать и на Rust, но ещё более эффективно, например писать веб-приложения с помощью фреймворка Rocket или веб-серверы на Hyper+Finchers или Tokio.
Но не наоборот - Go не системный язык и например на нём невозможно разрабатывать драйверы или модули ядра, или даже само ядро, когда Rust и это позволяет (проект Redox OS).
При том, что Rust, так же как и Go, и Python, не ограничивает программиста в производительности и скорости написания программ.
#Rust vs. #Go
#Golang
В своей первой презентации от 2010 года по первому публичному релизу Rust (http://venge.net/graydon/talks/intro-talk-2.pdf) Грейдон Хоар очень верно отметил:
Go
has coroutines, but kept shared mutable state - thread safety и безопасность общей памяти потоков нарушаются.Есть нулевые указатели и они никак не проверяются - в Kotlin например есть проверка nullable types, т.е. обнуляемых типов благодаря flow-sensitive type system.
Нет деструкторной техники освобождения ресурсов (RAII).
Есть GC, но нет динамики вывода типов во время исполнения (в run-time) и дженериков (обобщённых типов).
Сообщения хоть и передаются синхронно через каналы, но мутабельны.
https://habrahabr.ru/post/338718/
В этом и вся проблема в Go - авторы сделали горутины по образу CSP Чарльза Энтони Хоара, чтобы исключить доступ к общей памяти потоков (shared mutable memory), её повреждение при одновременной записи (shared mutable state), состояние гонки или взаимоблокировки потоков за счёт синхронных сообщений, передаваемых через каналы, а теперь выходит что нужно пользоваться мьютексами для предотвращения повреждения данных в общей памяти потоков при одновременной записи (shared mutable state), потому что параллельные коллекции не предусмотрели.
Rust имеет более широкий спектр применения и скомпилированный им код более безопасен при работе с памятью и вводом-выводом, чем Go - Go более узкоспециализированный язык программирования.
Всё что можно сделать на Go можно сделать и на Rust, но ещё более эффективно, например писать веб-приложения с помощью фреймворка Rocket или веб-серверы на Hyper+Finchers или Tokio.
Но не наоборот - Go не системный язык и например на нём невозможно разрабатывать драйверы или модули ядра, или даже само ядро, когда Rust и это позволяет (проект Redox OS).
При том, что Rust, так же как и Go, и Python, не ограничивает программиста в производительности и скорости написания программ.
#Rust vs. #Go
#Golang
Habr
Танцы с мьютексами в Go
Перевод обучающей статьи разработчика из SendGrid о том, когда и зачем можно и нужно использовать «традиционные» методы синхронизации данных в Go. Уровень чтения: средний (intermediate) — эта...
Код серверной части (server-side back-end) мессенджера Wire теперь открыт полностью!
https://medium.com/@wireapp/wire-server-code-now-100-open-source-the-journey-continues-88e24164309c
Это означает, что теперь доступно self-hosted развёртывание серверной части Wire для индивидуальных команд и бизнес клиентов на своих серверных площадках и сетях.
Wire поддерживает практически всё, что должно быть в современном клиенте для обмена информацией - передача сообщений, самоуничтожаемые по таймеру клиентом сообщения, аудио-видео звонки (испольуется WebRTC - DTLS для обмена ключами и аутентификации, SRTP для передачи зашифрованного медиа контента), screen sharing. Все эти возможности поддерживаются как для индивидуальных бесед, так и для групповых, при этом весь контент (текст, аудио, видео, файлы) между участниками передаётся клиентами с их устройств всегда в зашифрованном виде, в любом случае и без исключений.
https://wire.com/en/privacy/
https://wire.com/en/teams/
Качество связи потрясающее и не сравнимо ни с одним другим средством связи через TCP/IP сети - звук кристально чистый, для аудио-видео конференций протокол поддерживает 3D аудио (с использованием гарнитур) и шумоподавление эха в помещении.
https://github.com/wireapp/wire-server - серверная часть, relay анонсер, хранилище DHT таблиц, хранилище аккаунтов и их контента, написаны на Haskell
В мессенджере используется p2p протокол обмена сообщениями Proteus - протокол реализован на Rust, на базе протокола Axolotl (который в свою очередь разработан на базе подобного протокола, используемого в мессенджере Signal):
https://github.com/wireapp/proteus
https://github.com/trevp/double_ratchet/wiki
Все процессы шифрования контента (используется библиотека криптофункций libsodium) происходят строго в хранилище cryptobox на устройстве и далее зашифрованные хранилища могут синхронизироваться клиентами между разными устройствами, в т.ч. с задействованием серверной части:
https://github.com/wireapp/cryptobox
https://github.com/wireapp/sodiumoxide
https://github.com/wireapp/libsodium
https://github.com/wireapp/libsodium-native
Есть мобильные, веб и десктоп приложения (весь исходный код открыт):
https://app.wire.com
https://github.com/wireapp/wire-webapp
https://github.com/wireapp/wire-desktop
https://play.google.com/store/apps/details?id=com.wire
https://wire.com/en/download/
https://get.wire.com
Links:
https://xn--r1a.website/technologique/939
Must read:
https://medium.com/@wireapp/wire-server-code-now-100-open-source-the-journey-continues-88e24164309c
https://medium.com/@wireapp/open-sourcing-wire-server-code-ef7866a731d5
https://medium.com/@wireapp/speeding-up-crypto-on-wire-desktop-apps-3ff37fc98c3f
https://medium.com/@wireapp/axolotl-and-proteus-788519b186a7
https://medium.com/@wireapp/a-step-forward-for-wire-for-linux-52f0538cac15
https://medium.com/@wireapp/get-your-linux-on-999403a1a4fe
https://medium.com/@wireapp/call-security-constant-bit-rate-encoding-and-improving-webrtc-a85be6caa43a
https://medium.com/@wireapp/wire-and-webrtc-2553c01bbd0a
https://medium.com/@wireapp/hello-hd-group-calls-now-in-stereo-978ac2c8e21b
https://medium.com/@wireapp/its-all-in-wire-now-with-screen-sharing-e26805c17f8f
https://medium.com/@wireapp/hello-video-calls-hello-privacy-61a189aec23d
https://medium.com/@wireapp/wire-server-code-now-100-open-source-the-journey-continues-88e24164309c
Это означает, что теперь доступно self-hosted развёртывание серверной части Wire для индивидуальных команд и бизнес клиентов на своих серверных площадках и сетях.
Wire поддерживает практически всё, что должно быть в современном клиенте для обмена информацией - передача сообщений, самоуничтожаемые по таймеру клиентом сообщения, аудио-видео звонки (испольуется WebRTC - DTLS для обмена ключами и аутентификации, SRTP для передачи зашифрованного медиа контента), screen sharing. Все эти возможности поддерживаются как для индивидуальных бесед, так и для групповых, при этом весь контент (текст, аудио, видео, файлы) между участниками передаётся клиентами с их устройств всегда в зашифрованном виде, в любом случае и без исключений.
https://wire.com/en/privacy/
https://wire.com/en/teams/
Качество связи потрясающее и не сравнимо ни с одним другим средством связи через TCP/IP сети - звук кристально чистый, для аудио-видео конференций протокол поддерживает 3D аудио (с использованием гарнитур) и шумоподавление эха в помещении.
https://github.com/wireapp/wire-server - серверная часть, relay анонсер, хранилище DHT таблиц, хранилище аккаунтов и их контента, написаны на Haskell
В мессенджере используется p2p протокол обмена сообщениями Proteus - протокол реализован на Rust, на базе протокола Axolotl (который в свою очередь разработан на базе подобного протокола, используемого в мессенджере Signal):
https://github.com/wireapp/proteus
https://github.com/trevp/double_ratchet/wiki
Все процессы шифрования контента (используется библиотека криптофункций libsodium) происходят строго в хранилище cryptobox на устройстве и далее зашифрованные хранилища могут синхронизироваться клиентами между разными устройствами, в т.ч. с задействованием серверной части:
https://github.com/wireapp/cryptobox
https://github.com/wireapp/sodiumoxide
https://github.com/wireapp/libsodium
https://github.com/wireapp/libsodium-native
Есть мобильные, веб и десктоп приложения (весь исходный код открыт):
https://app.wire.com
https://github.com/wireapp/wire-webapp
https://github.com/wireapp/wire-desktop
https://play.google.com/store/apps/details?id=com.wire
https://wire.com/en/download/
https://get.wire.com
Links:
https://xn--r1a.website/technologique/939
Must read:
https://medium.com/@wireapp/wire-server-code-now-100-open-source-the-journey-continues-88e24164309c
https://medium.com/@wireapp/open-sourcing-wire-server-code-ef7866a731d5
https://medium.com/@wireapp/speeding-up-crypto-on-wire-desktop-apps-3ff37fc98c3f
https://medium.com/@wireapp/axolotl-and-proteus-788519b186a7
https://medium.com/@wireapp/a-step-forward-for-wire-for-linux-52f0538cac15
https://medium.com/@wireapp/get-your-linux-on-999403a1a4fe
https://medium.com/@wireapp/call-security-constant-bit-rate-encoding-and-improving-webrtc-a85be6caa43a
https://medium.com/@wireapp/wire-and-webrtc-2553c01bbd0a
https://medium.com/@wireapp/hello-hd-group-calls-now-in-stereo-978ac2c8e21b
https://medium.com/@wireapp/its-all-in-wire-now-with-screen-sharing-e26805c17f8f
https://medium.com/@wireapp/hello-video-calls-hello-privacy-61a189aec23d
Medium
Wire server code now 100% open source — the journey continues
Earlier this year, we started open sourcing Wire server code under the AGPL license. Today, the code necessary to run Wire servers is…
Вся суть логических моделей многопоточности и асинхронного кода на уровне языков программирования.
Пожалуй одно из лучших и наиболее полных современных руководств по сопрограммам, многопоточному и асинхронному коду, из всех найденных за весьма долгое время, на примере Kotlin и в сравнении с другими языками программирования.
https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md
https://github.com/Kotlin/kotlin-coroutines/blob/master/kotlin-coroutines-informal.md
Пожалуй одно из лучших и наиболее полных современных руководств по сопрограммам, многопоточному и асинхронному коду, из всех найденных за весьма долгое время, на примере Kotlin и в сравнении с другими языками программирования.
https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md
https://github.com/Kotlin/kotlin-coroutines/blob/master/kotlin-coroutines-informal.md
GitHub
kotlinx.coroutines/coroutines-guide.md at master · Kotlin/kotlinx.coroutines
Library support for Kotlin coroutines . Contribute to Kotlin/kotlinx.coroutines development by creating an account on GitHub.
Про Flame Graph анализ узких мест приложений в продакшене на примере опыта Uber.
https://youtu.be/aAhNDgEZj_U
https://github.com/uber/go-torch
Links:
https://xn--r1a.website/technologique/1087
https://xn--r1a.website/technologique/1022
https://xn--r1a.website/technologique/1021
https://youtu.be/aAhNDgEZj_U
https://github.com/uber/go-torch
Links:
https://xn--r1a.website/technologique/1087
https://xn--r1a.website/technologique/1022
https://xn--r1a.website/technologique/1021
YouTube
Release Party | Analyzing production using Flamegraphs with Prashant Varanasi
Prashant Varanasi is a tech lead on the Software Networking team at Uber, working on service discovery and routing infrastructure. He started writing Go while at Google three years ago and it's been his go-to language ever since.
Go 1.9 Release Party Playlist…
Go 1.9 Release Party Playlist…
Technologique
Новый рекламный ролик Lenovo к 25-летию серии Thinkpad о самом лучшем топовом бизнес лэптопе всех времён - ThinkPad X1 Carbon. Показанное в этом году на CES2017 пятое поколение модели стало ещё лучше, мощнее, удобнее в использовании и главное - работа от одного…
Серии лэптопов ThinkPad - 25 лет!
5 октября 1992 года IBM выпустила первый лэптоп ThinkPad, но он стал лишь самым первым, положив начало огромной серии моделей, выпускающихся на протяжении 25 лет и поныне компаниями IBM и ныне подразделением Lenovo.
В связи с данным событием Lenovo выпустили юбилейную модель, очень похожую на первый ThinkPad, в особенности раскладкой клавиатуры и классическим логотипом:
https://www.youtube.com/watch?v=4CgoI76_cfg
Unboxing юбилейной модели ThinkPad от Lenovo:
https://www.youtube.com/watch?v=EvDhuXaoL6c
"Future years - future users":
https://www.youtube.com/watch?v=pX9ZKwA-WBA
Links:
https://xn--r1a.website/technologique/1060
https://xn--r1a.website/technologique/914
https://xn--r1a.website/technologique/913
https://xn--r1a.website/technologique/274
https://xn--r1a.website/technologique/244
5 октября 1992 года IBM выпустила первый лэптоп ThinkPad, но он стал лишь самым первым, положив начало огромной серии моделей, выпускающихся на протяжении 25 лет и поныне компаниями IBM и ныне подразделением Lenovo.
В связи с данным событием Lenovo выпустили юбилейную модель, очень похожую на первый ThinkPad, в особенности раскладкой клавиатуры и классическим логотипом:
https://www.youtube.com/watch?v=4CgoI76_cfg
Unboxing юбилейной модели ThinkPad от Lenovo:
https://www.youtube.com/watch?v=EvDhuXaoL6c
"Future years - future users":
https://www.youtube.com/watch?v=pX9ZKwA-WBA
Links:
https://xn--r1a.website/technologique/1060
https://xn--r1a.website/technologique/914
https://xn--r1a.website/technologique/913
https://xn--r1a.website/technologique/274
https://xn--r1a.website/technologique/244
YouTube
Lenovo ThinkPad Anniversary Edition 25 First Look
Lisa Gade gives you an exclusive first look at the Lenovo ThinkPad Anniversary Edition 25 laptop from Yokohama Japan (home of the ThinkPad development lab). ...
Сегодня мировая премьера фильма "Blade Runner 2049".
https://www.youtube.com/watch?v=zvFp9v_InWM
http://www.kinopoisk.ru/film/589290/
Продолжение истории снятой сэром Ридли Скоттом ещё в 1982 году (http://www.kinopoisk.ru/film/403/).
"Бегущий по лезвию" давно стал классикой мировой научной фантастики и жанра киберпанк.
Обязательно перед просмотром фильма "Blade Runner 2049" найдите и посмотрите оригинальный фильм Ридли Скотта "Blade Runner" 1982-го года.
Сценарий (и соответственно сюжет) нового фильма полон экзистенциальной философии, вопросов существования человеческого вида в условиях технократического общества, а также библейских мотивов, без которых не обходится ни один фильм с участием Ридли Скотта.
Это определённо один из лучших научно-фантастических фильмов нашего времени и на мой взгляд это один из лучших фильмов, которые я когда либо видел! Действительно стоящий фильм за долгое время и просто нереальная драма!
Очень советую - смотреть обязательно!
Предыдущие материалы по теме:
https://xn--r1a.website/technologique/1039
https://xn--r1a.website/technologique/1011
https://xn--r1a.website/technologique/1062
https://xn--r1a.website/technologique/968
https://xn--r1a.website/technologique/653
#киберпанк
#cyberpunk
https://www.youtube.com/watch?v=zvFp9v_InWM
http://www.kinopoisk.ru/film/589290/
Продолжение истории снятой сэром Ридли Скоттом ещё в 1982 году (http://www.kinopoisk.ru/film/403/).
"Бегущий по лезвию" давно стал классикой мировой научной фантастики и жанра киберпанк.
Обязательно перед просмотром фильма "Blade Runner 2049" найдите и посмотрите оригинальный фильм Ридли Скотта "Blade Runner" 1982-го года.
Сценарий (и соответственно сюжет) нового фильма полон экзистенциальной философии, вопросов существования человеческого вида в условиях технократического общества, а также библейских мотивов, без которых не обходится ни один фильм с участием Ридли Скотта.
Это определённо один из лучших научно-фантастических фильмов нашего времени и на мой взгляд это один из лучших фильмов, которые я когда либо видел! Действительно стоящий фильм за долгое время и просто нереальная драма!
Очень советую - смотреть обязательно!
Предыдущие материалы по теме:
https://xn--r1a.website/technologique/1039
https://xn--r1a.website/technologique/1011
https://xn--r1a.website/technologique/1062
https://xn--r1a.website/technologique/968
https://xn--r1a.website/technologique/653
#киберпанк
#cyberpunk
YouTube
Blade Runner 2049 - Final U.S. TV Trailer [HD]
https://www.trailer-track.com/2017/10/03/a-surprise-cameo-rave-reviews-in-final-u-s-tv-trailer-for-blade-runner-2049/
Thirty years after the events of the first film, a new blade runner, LAPD Officer K, unearths a long-buried secret that has the potential…
Thirty years after the events of the first film, a new blade runner, LAPD Officer K, unearths a long-buried secret that has the potential…
Technologique
Сегодня мировая премьера фильма "Blade Runner 2049". https://www.youtube.com/watch?v=zvFp9v_InWM http://www.kinopoisk.ru/film/589290/ Продолжение истории снятой сэром Ридли Скоттом ещё в 1982 году (http://www.kinopoisk.ru/film/403/). "Бегущий по лезвию"…
Все опубликованные материалы по фильму:
https://www.youtube.com/watch?v=7tCeft9dbNE
Сразу скажу - трейлеры и тизеры вообще имеют мало отношения к сюжету самого фильма и обыгрывают абсолютно иную альтернативную версию фильма, придуманную Дени Вильнёвом для возбуждения интереса к картине. Поэтому - готовьтесь быть удивлёнными в кино!
https://www.youtube.com/watch?v=7tCeft9dbNE
Сразу скажу - трейлеры и тизеры вообще имеют мало отношения к сюжету самого фильма и обыгрывают абсолютно иную альтернативную версию фильма, придуманную Дени Вильнёвом для возбуждения интереса к картине. Поэтому - готовьтесь быть удивлёнными в кино!
YouTube
BLADE RUNNER 2049 All NEW Movie Clips + Trailer (2017)
NEW Blade Runner 2049 All Trailer + Movie Clips 2017 | Watch the official trailer & clip compilation for "Blade Runner 2049", a science fiction movie starring Ryan Gosling, Robin Wright & Harrison Ford, arriving October 6, 2017 !
Subscribe NOW ➨ http://goo.gl/KKBrix…
Subscribe NOW ➨ http://goo.gl/KKBrix…
Релиз PostgreSQL 10.
https://www.postgresql.org/about/press/presskit10/ru/
Возможности шардинга (партиционирования) и репликации, для распределённого хранения и бэкапов данных, теперь полностью встроены в движок СУБД.
Логическая репликация построена по модели publish–subscribe и позволяет выборочно реплицировать заданные таблицы.
Шардинг производится по интервальной (диапазонам значений) или списочной схемам партиционирования таблиц при помощи нового декларативного синтаксиса, выражений "PARTITION BY" и "PARTITION OF", в директиве "CREATE TABLE".
Наследование таблиц и контроль записи в них через правила, заданные в триггерах, теперь упразднены!
Новый синтаксис это только начало, первый шаг для поддержки базовых возможностей партиционирования и в дальнейшем разработчики PostgreSQL будут развивать возможности и фреймворк партиционирования для распределённого хранения данных с использованием СУБД PostgreSQL.
https://www.postgresql.org/about/press/presskit10/ru/
Возможности шардинга (партиционирования) и репликации, для распределённого хранения и бэкапов данных, теперь полностью встроены в движок СУБД.
Логическая репликация построена по модели publish–subscribe и позволяет выборочно реплицировать заданные таблицы.
Шардинг производится по интервальной (диапазонам значений) или списочной схемам партиционирования таблиц при помощи нового декларативного синтаксиса, выражений "PARTITION BY" и "PARTITION OF", в директиве "CREATE TABLE".
Наследование таблиц и контроль записи в них через правила, заданные в триггерах, теперь упразднены!
Новый синтаксис это только начало, первый шаг для поддержки базовых возможностей партиционирования и в дальнейшем разработчики PostgreSQL будут развивать возможности и фреймворк партиционирования для распределённого хранения данных с использованием СУБД PostgreSQL.
Technologique
Первый трейлер третьего сезона сериала "Мистер Робот". https://www.youtube.com/watch?v=EMK5e-FSro0 https://www.youtube.com/channel/UCX5R2xqZWND8nJqGTvel3nw Осень обещает быть весьма интересной и богатой на премьеры! Links: https://xn--r1a.website/technologique/1038
Вышел третий сезон сериала "Мистер Робот".
http://coldfilm.ru/news/mister_robot_3_sezon_smotret_onlajn/1-0-804
https://www.kinopoisk.ru/film/mister-robot-2015-859908/episodes/#s3
Links:
https://xn--r1a.website/technologique/1038
https://xn--r1a.website/technologique/1064
https://xn--r1a.website/technologique/1065
https://xn--r1a.website/technologique/1066
https://xn--r1a.website/technologique/553
https://xn--r1a.website/technologique/613
https://xn--r1a.website/technologique/439
https://xn--r1a.website/technologique/440
https://xn--r1a.website/technologique/441
https://xn--r1a.website/technologique/495
http://coldfilm.ru/news/mister_robot_3_sezon_smotret_onlajn/1-0-804
https://www.kinopoisk.ru/film/mister-robot-2015-859908/episodes/#s3
Links:
https://xn--r1a.website/technologique/1038
https://xn--r1a.website/technologique/1064
https://xn--r1a.website/technologique/1065
https://xn--r1a.website/technologique/1066
https://xn--r1a.website/technologique/553
https://xn--r1a.website/technologique/613
https://xn--r1a.website/technologique/439
https://xn--r1a.website/technologique/440
https://xn--r1a.website/technologique/441
https://xn--r1a.website/technologique/495
КиноПоиск
Мистер Робот (2015, сериал, 4 сезона) — все сезоны и эпизоды сериала — КиноПоиск
Мистер Робот (2015). Список всех сезонов и эпизодов сериала с названиями и датами выхода. Вся информация о сериале Мистер Робот на КиноПоиске.
Technologique
Релиз Rust 1.20 https://blog.rust-lang.org/2017/08/31/Rust-1.20.html #Rust
Релиз Rust 1.21.
https://blog.rust-lang.org/2017/10/12/Rust-1.21.html
https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1210-2017-10-12
#Rust
https://blog.rust-lang.org/2017/10/12/Rust-1.21.html
https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1210-2017-10-12
#Rust
blog.rust-lang.org
Announcing Rust 1.21 | Rust Blog
Empowering everyone to build reliable and efficient software.
Устранение множественных критических уязвимостей авторизации и обмена ключами (handshake) в протоколе WPA2 стэка протоколов беспроводной передачи данных командой безопасности дистрибутива Debian.
https://www.youtube.com/watch?v=Oh4WURZoR98
https://www.debian.org/security/2017/dsa-3999
https://forum.openwrt.org/viewtopic.php?id=72340
https://community.ubnt.com/t5/UniFi-Updates-Blog/FIRMWARE-3-9-3-7537-for-UAP-USW-has-been-released/ba-p/2099365
Уязвимость KRACK attack (https://en.wikipedia.org/wiki/KRACK, https://www.krackattacks.com) не зависит от применяемых асимметричных шифров (WPA-TKIP, GCMP, AES-CCMP), позволяет перехватить и дешифровть трафик (даже используя пустой ключ при наличии компонента
Описание принципа атаки:
https://papers.mathyvanhoef.com/ccs2017.pdf
https://www.youtube.com/watch?v=Oh4WURZoR98
https://www.debian.org/security/2017/dsa-3999
https://forum.openwrt.org/viewtopic.php?id=72340
https://community.ubnt.com/t5/UniFi-Updates-Blog/FIRMWARE-3-9-3-7537-for-UAP-USW-has-been-released/ba-p/2099365
Уязвимость KRACK attack (https://en.wikipedia.org/wiki/KRACK, https://www.krackattacks.com) не зависит от применяемых асимметричных шифров (WPA-TKIP, GCMP, AES-CCMP), позволяет перехватить и дешифровть трафик (даже используя пустой ключ при наличии компонента
wpa_supplicant реализующего протоколы авторизации WPA/WPA2), и касается точек доступа и роутеров с демоном hostapd на борту (дистрибутивы OpenWRT, LEDE, оборудование Ubiquiti Networks и других вендоров), реализующим авторизацию клиентов по протоколам WPA/WPA2, и клиентов с установленным по умолчанию пакетом wpa_supplicant дистрибутива, содержащим соответствующий компонент системы, реализующий протоколы авторизации WPA/WPA2.Описание принципа атаки:
https://papers.mathyvanhoef.com/ccs2017.pdf
YouTube
KRACK Attacks: Bypassing WPA2 against Android and Linux
This video explains some of the academic research performed in the ACM CCS 2017 paper "Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2". It's not a guide or tutorial on how to hack people. Instead, the video was made to make people aware of potential…
Инфраструктура IT каналов в Telegram.
Мы с ребятами, авторами каналов, решили, что пора уже перестать сидеть в тени и нужно объединяться! Коллективный интеллект решает и консолидация рулит!
Предлагаем Вам в качестве рекомендации список интересных и дружественных нам каналов по смежной IT тематике, которые мы сами читаем и рекомендуем Вам.
#channels
Sea++ - Интересные материалы из мира C/C++, Python, Go, Linux и не только.
L'homme qui pleure - Авторский канал про ужасы IT индустрии и инфраструктуры в Санкт-Петербурге. Автор верует в единорогов и пытается стать гиперполиглотом.
Котики Кодят - официальный канал дайджест-подкаста "Котики Кодят". Новости из мира веб-разработки, программирования, фронтэнда и бэкенда, DevOps, операционных систем, машинного обучения и информационной безопасности.
Spalmalo Tech Talks - Полезные ссылки для разработчиков, DevOps инженеров, аналитиков данных (Data Scientists). Автор постит то, что хочет донести коллегам с примерно таким же стэком и интересами: Linux, Ruby, macOS/OSX, Python, ML, психология.
MicrosoftRus - ITpro News & Reviews - Авторские заметки о Microsoft, Windows Server, System Center, Azure, Office 365, OMS и не только, для IT профессионалов, разработчиков и всех, кто интересуется новыми технологиями.
The After Times - Несерьезный дайджест IT. Ежедневно. Цитаты, паста, картинки.
IT Broadcast - Канал для тех, кто хочет быть в теме и познавать новое в области IT. Входит в топ каналов Telegram о технологиях.
Linkmeup - Самый официальный канал единственного и неповторимого подкаста для связистов LinkMeUp. Ребята постят новости со своего сайта, группы ВКонтакте и просто интересные вещи из отрасли связи.
ЗаТелеком - Авторский канал про сферу Телеком отрасли. Новости, тренды и истории. Много фото со всего мира и мнение о происходящем.
Microsoft Developer - Официальный канал сообщества Microsoft Developer для разработчиков и всех, кто интересуется новыми технологиями.
IoT Space - Канал о бизнесе эры Интернета Вещей, цифровой трансформации нашей реальности и о формирующемся рынке и экосистеме IoT.
Robotics Channel - Канал о робототехнике, нейросетях, автоматизации, научных исследованиях и разработках в смежных областях.
Channels Lists:
https://github.com/goq/telegram-list
https://geektimes.ru/post/285704/
https://github.com/A-gambit/awesome-telegram-chats/
Links:
https://xn--r1a.website/technologique/1070
Мы с ребятами, авторами каналов, решили, что пора уже перестать сидеть в тени и нужно объединяться! Коллективный интеллект решает и консолидация рулит!
Предлагаем Вам в качестве рекомендации список интересных и дружественных нам каналов по смежной IT тематике, которые мы сами читаем и рекомендуем Вам.
#channels
Sea++ - Интересные материалы из мира C/C++, Python, Go, Linux и не только.
L'homme qui pleure - Авторский канал про ужасы IT индустрии и инфраструктуры в Санкт-Петербурге. Автор верует в единорогов и пытается стать гиперполиглотом.
Котики Кодят - официальный канал дайджест-подкаста "Котики Кодят". Новости из мира веб-разработки, программирования, фронтэнда и бэкенда, DevOps, операционных систем, машинного обучения и информационной безопасности.
Spalmalo Tech Talks - Полезные ссылки для разработчиков, DevOps инженеров, аналитиков данных (Data Scientists). Автор постит то, что хочет донести коллегам с примерно таким же стэком и интересами: Linux, Ruby, macOS/OSX, Python, ML, психология.
MicrosoftRus - ITpro News & Reviews - Авторские заметки о Microsoft, Windows Server, System Center, Azure, Office 365, OMS и не только, для IT профессионалов, разработчиков и всех, кто интересуется новыми технологиями.
The After Times - Несерьезный дайджест IT. Ежедневно. Цитаты, паста, картинки.
IT Broadcast - Канал для тех, кто хочет быть в теме и познавать новое в области IT. Входит в топ каналов Telegram о технологиях.
Linkmeup - Самый официальный канал единственного и неповторимого подкаста для связистов LinkMeUp. Ребята постят новости со своего сайта, группы ВКонтакте и просто интересные вещи из отрасли связи.
ЗаТелеком - Авторский канал про сферу Телеком отрасли. Новости, тренды и истории. Много фото со всего мира и мнение о происходящем.
Microsoft Developer - Официальный канал сообщества Microsoft Developer для разработчиков и всех, кто интересуется новыми технологиями.
IoT Space - Канал о бизнесе эры Интернета Вещей, цифровой трансформации нашей реальности и о формирующемся рынке и экосистеме IoT.
Robotics Channel - Канал о робототехнике, нейросетях, автоматизации, научных исследованиях и разработках в смежных областях.
Channels Lists:
https://github.com/goq/telegram-list
https://geektimes.ru/post/285704/
https://github.com/A-gambit/awesome-telegram-chats/
Links:
https://xn--r1a.website/technologique/1070
CEO и основатель Nvidia Дженсен Хуанг на открытии конференции GPUTechConf Europe 2017, прошедшей в Мюнхене 10-12 Октября.
https://www.youtube.com/watch?v=1Te9PL46oIE
Дженсен (Jen-Hsun "Jensen" Huang) говорит про
Но главный анонс конференции - это первый серийный бортовой суперкомпьютер Nvidia PEGASUS для обслуживания машинного зрения, анализа дорожной ситуации, роботизированного AI пилотирования и оснащения им систем беспилотных автомобилей (driver-less cars) для логистической индустрии, car-sharing сервсов и служб беспилотных такси - https://www.youtube.com/watch?v=1Te9PL46oIE&t=1h33m57s
Links:
Обязательно посмотрите предыдущие выступления на GTC:
https://xn--r1a.website/technologique/987
https://xn--r1a.website/technologique/988
CPU&GPU Tech:
https://xn--r1a.website/technologique/1102
https://xn--r1a.website/technologique/772
https://xn--r1a.website/technologique/28
https://www.youtube.com/watch?v=1Te9PL46oIE
Дженсен (Jen-Hsun "Jensen" Huang) говорит про
cutting edge of computational technologies, про текущие и грядущие определяющие для индустрии вычислительных систем вещи - о применении приложений дополненной и виртуальной реальности (Nvidia HoloDeck VR/AR), о замедлении закона Мура и переходе от алгоритмических методов решения задач к неалгоритмическим, но математическим методам параллельных вычислений на базе приложений линейной тензорной алгебры Ли, благодаря анализу и выявлению шаблонов в данных нейросетевыми методами глубокого машинного обучения, параллельным вычислениям в применении к искусственным нейросетям (технологии Tensor Core и набор инструкций CUDA TensorOp) и новым архитектурам параллельных процессоров для ускорения машинного обучения (дискретный процессор Nvidia Tesla Volta V100 построенный по архитектуре Tensor Core и использующий новый набор инструкций для глубокого машинного обучения CUDA TensorOp), производительность и эффективность которых будет определяться уже не только количеством операций с плавающей точкой за единицу времени (FLOPS), но в большей степени эффективностью и количеством операций машинного обучения за единицу времени, Tensor OPS - количество выработанных шабонов тензорных полей в процессе обучения на основе обработанных наборов данных, связей между ними, с закреплением и последующим выводом шаблонов для применения и создания приложений на базе многослойных перцептронов, фреймворков Convolutional Neural Networks (ConvNet), Recurrent Neural Networks (RNN) и других моделей искусственных нейросетей.Но главный анонс конференции - это первый серийный бортовой суперкомпьютер Nvidia PEGASUS для обслуживания машинного зрения, анализа дорожной ситуации, роботизированного AI пилотирования и оснащения им систем беспилотных автомобилей (driver-less cars) для логистической индустрии, car-sharing сервсов и служб беспилотных такси - https://www.youtube.com/watch?v=1Te9PL46oIE&t=1h33m57s
Links:
Обязательно посмотрите предыдущие выступления на GTC:
https://xn--r1a.website/technologique/987
https://xn--r1a.website/technologique/988
CPU&GPU Tech:
https://xn--r1a.website/technologique/1102
https://xn--r1a.website/technologique/772
https://xn--r1a.website/technologique/28
YouTube
GTC Europe 2017 - Opening Keynote
GTC Europe 2017 keynote NVIDIA CEO & Founder Jensen Huang on the future of AI and autonomous vehicles. More information: More info: https://www.gputechconf.e...
Популярность языков программирования с начала 2017 года по уровню контрибуции (вклада) разработчиков на разных языках в кодовую базу репозиториев проектов на GitHub.
Визуальное представление данных
Полная диаграмма
На мой взгляд самый эффективный и корректный рейтинг популярности языков - на основе данных по замерам контрибуции Krihelimeter
Уровень вклада участников в репозитории трансляторов различных языков программирования.
Визуальное представление данных
Полная диаграмма
На мой взгляд самый эффективный и корректный рейтинг популярности языков - на основе данных по замерам контрибуции Krihelimeter
Уровень вклада участников в репозитории трансляторов различных языков программирования.
Embedding Rust in Python.
Статья годичной давности, но при этом не менее актуальная, об интересном опыте процесса оптимизации проекта Sentry на Rust.
Критические части Python приложений можно переписывать на Си и С++ - но это давно всем известно, со времён введения ctypes в Python.
Но я давно задавался вопросом - если заменить Си и C++ на Rust и взаимодействовать со скомпилированным кодом через CFFI, это будет безопасно и с практически нулевым оверхэдом!
Ребята из Sentry продемонстрировали эту концепцию на практике!
https://blog.sentry.io/2016/10/19/fixing-python-performance-with-rust.html
Армин Ронахер, автор фреймворка Flask, контрибьютор проекта Sentry, платформы мониторинга, логирования и агрегации ошибок, рассказал о том как происходила оптимизация критических по времени исполнения и памяти, а также чувствительных к задержкам частей кода на Python в проекте Sentry при помощи библиотечного модуля (парсера отладочных Source Map файлов из дампов логов Sentry), написанного на Rust и вызываемого через СFFI из обёртки (wrapper) на языке Python.
Также интересна и очень показательная на практике совместимость скомпилированного кода Rust с C ABI через rust-ffi интерфейс (https://doc.rust-lang.org/book/first-edition/ffi.html).
https://github.com/getsentry/libsourcemap - production парсер обёрнутый в Python
https://github.com/getsentry/rust-sourcemap - изначальная библиотека парсера на на Rust от Армина
Так же есть две библиотеки, позволяющие вызывать скомпилированный код написаный на Rust из Python и наоборот, пользоваться возможностями Python (например высокоуровневыми структурами данных, библиотеками машинного обучения и математики) в программах на языке Rust.
https://github.com/PyO3/pyo3
https://github.com/dgrunwald/rust-cpython
Статья годичной давности, но при этом не менее актуальная, об интересном опыте процесса оптимизации проекта Sentry на Rust.
Критические части Python приложений можно переписывать на Си и С++ - но это давно всем известно, со времён введения ctypes в Python.
Но я давно задавался вопросом - если заменить Си и C++ на Rust и взаимодействовать со скомпилированным кодом через CFFI, это будет безопасно и с практически нулевым оверхэдом!
Ребята из Sentry продемонстрировали эту концепцию на практике!
https://blog.sentry.io/2016/10/19/fixing-python-performance-with-rust.html
Армин Ронахер, автор фреймворка Flask, контрибьютор проекта Sentry, платформы мониторинга, логирования и агрегации ошибок, рассказал о том как происходила оптимизация критических по времени исполнения и памяти, а также чувствительных к задержкам частей кода на Python в проекте Sentry при помощи библиотечного модуля (парсера отладочных Source Map файлов из дампов логов Sentry), написанного на Rust и вызываемого через СFFI из обёртки (wrapper) на языке Python.
Также интересна и очень показательная на практике совместимость скомпилированного кода Rust с C ABI через rust-ffi интерфейс (https://doc.rust-lang.org/book/first-edition/ffi.html).
https://github.com/getsentry/libsourcemap - production парсер обёрнутый в Python
https://github.com/getsentry/rust-sourcemap - изначальная библиотека парсера на на Rust от Армина
Так же есть две библиотеки, позволяющие вызывать скомпилированный код написаный на Rust из Python и наоборот, пользоваться возможностями Python (например высокоуровневыми структурами данных, библиотеками машинного обучения и математики) в программах на языке Rust.
https://github.com/PyO3/pyo3
https://github.com/dgrunwald/rust-cpython
Product Blog • Sentry
Fixing Python Performance with Rust
Sentry processes billions of errors every month. We've been able to scale most of our systems, but in the last few months, one component has stood out as a comp...
Об отладке при помощи Source Map, постепенной типизации (gradual typing) и типизации контекста испонения (flow typing).
Чистый JavaScript сейчас используется всё чаще как слаботипизированный промежуточный язык (как ассемблер, Си или
Есть более высокоуровневые языки (а также статические анализаторы и типизаторы, транс-компиляторы для JS) с более строгой динамической типизацией (flow sensitive typing - Dart2JS, TypeScript, Elm, Facebook Flow, Babel), которые транс-компилируются через трансформации абстрактных синтаксических деревьев в JS. Такой исходный код похож на жутко обфусцированный и минифицированный обычный JS код. Но он включает необходимые проверки типов (gradual typing) для run-time фазы исполнения кода и хорошо оптимизирован для стадии JIT компиляции браузерным движком, JS компилятором.
Всё движется к строгой статической типизации с CTTI и RTTI трюками выводов типов в compile-time и run-time соответственно:
https://webcache.googleusercontent.com/search?q=cache:https://blog.jooq.org/2014/12/11/the-inconvenient-truth-about-dynamic-vs-static-typing/
http://sitr.us/2014/11/21/flow-is-the-javascript-type-checker-i-have-been-waiting-for.html
Конечно, даже типизация контекста испонения (flow typing), которая используется ещё на этапе разработки в статических анализаторах кода в IDE (проверки типов параметров в WebStorm, Atom IDE, Visual Studio Code) и постепенная типипзация (gradual typing, типизация с включением проверок типов в исходный код промежуточных слабо типизированных языков или динамических языков с нестрогим контролем типов, типизированный байт-код для динамических языков, например mypy в СPython, либо наоборот директива динамической диспетчеризации типов в байткоде для виртуальной машины, например invoke-dynamic в JVM, dynamic тип в байт-коде DartVM и DLR .Net для C# - это всё вариации постепенной типизации) не защищают полностью от исключительных ситуаций и ошибок времени исполнения в run-time (не говоря о языках CoffeeScript, LiveScript в которых нет flow sensitive системы типов, как и в обычном JavaScript), а директива динамической диспетчеризации типов dynamic в байткоде только повышает риск исключений в типах при слабой нестрогой системе типов в run-time.
Поэтому подобным транс-компилированным JS приложениям необходима отладка. Файл source map подобен debug symbols для JS приложений. Он содержит реверс отображение, которое при помощи отладчика позволяет найти по транс-компилированному JS коду часть исходного кода на первоначальном языке в которой возникло исключение или ошибка типов. Библиотека парсера source map файлов позволяет этот процесс автоматизировать и выделять отладочную информацию из бинарных дампов в лог базы данных Sentry.
https://blog.sentry.io/2015/10/29/debuggable-javascript-with-source-maps.html
https://docs.sentry.io/clients/javascript/sourcemaps/
PS: Тема современных систем типов и контроля целостности памяти в многопоточных приложениях интересная, живая и горячая - thus of, stay tuned and don't switch channel. =)
Чистый JavaScript сейчас используется всё чаще как слаботипизированный промежуточный язык (как ассемблер, Си или
C--) для браузерного движка, компилятора JS, например V8 для Chromium или Spider/Jaeger Monkey для Firefox.Есть более высокоуровневые языки (а также статические анализаторы и типизаторы, транс-компиляторы для JS) с более строгой динамической типизацией (flow sensitive typing - Dart2JS, TypeScript, Elm, Facebook Flow, Babel), которые транс-компилируются через трансформации абстрактных синтаксических деревьев в JS. Такой исходный код похож на жутко обфусцированный и минифицированный обычный JS код. Но он включает необходимые проверки типов (gradual typing) для run-time фазы исполнения кода и хорошо оптимизирован для стадии JIT компиляции браузерным движком, JS компилятором.
Всё движется к строгой статической типизации с CTTI и RTTI трюками выводов типов в compile-time и run-time соответственно:
https://webcache.googleusercontent.com/search?q=cache:https://blog.jooq.org/2014/12/11/the-inconvenient-truth-about-dynamic-vs-static-typing/
http://sitr.us/2014/11/21/flow-is-the-javascript-type-checker-i-have-been-waiting-for.html
Конечно, даже типизация контекста испонения (flow typing), которая используется ещё на этапе разработки в статических анализаторах кода в IDE (проверки типов параметров в WebStorm, Atom IDE, Visual Studio Code) и постепенная типипзация (gradual typing, типизация с включением проверок типов в исходный код промежуточных слабо типизированных языков или динамических языков с нестрогим контролем типов, типизированный байт-код для динамических языков, например mypy в СPython, либо наоборот директива динамической диспетчеризации типов в байткоде для виртуальной машины, например invoke-dynamic в JVM, dynamic тип в байт-коде DartVM и DLR .Net для C# - это всё вариации постепенной типизации) не защищают полностью от исключительных ситуаций и ошибок времени исполнения в run-time (не говоря о языках CoffeeScript, LiveScript в которых нет flow sensitive системы типов, как и в обычном JavaScript), а директива динамической диспетчеризации типов dynamic в байткоде только повышает риск исключений в типах при слабой нестрогой системе типов в run-time.
Поэтому подобным транс-компилированным JS приложениям необходима отладка. Файл source map подобен debug symbols для JS приложений. Он содержит реверс отображение, которое при помощи отладчика позволяет найти по транс-компилированному JS коду часть исходного кода на первоначальном языке в которой возникло исключение или ошибка типов. Библиотека парсера source map файлов позволяет этот процесс автоматизировать и выделять отладочную информацию из бинарных дампов в лог базы данных Sentry.
https://blog.sentry.io/2015/10/29/debuggable-javascript-with-source-maps.html
https://docs.sentry.io/clients/javascript/sourcemaps/
PS: Тема современных систем типов и контроля целостности памяти в многопоточных приложениях интересная, живая и горячая - thus of, stay tuned and don't switch channel. =)
Java, SQL and jOOQ.
The Inconvenient Truth About Dynamic vs. Static Typing
Sometimes there are these moments of truth. They happen completely unexpectedly, such as when I read this tweet: David is the author of the lesser-known but not at all lesser-interesting Whiley pro…
Technologique
Об отладке при помощи Source Map, постепенной типизации (gradual typing) и типизации контекста испонения (flow typing). Чистый JavaScript сейчас используется всё чаще как слаботипизированный промежуточный язык (как ассемблер, Си или C--) для браузерного движка…
Полезные ссылки к статье:
https://en.wikipedia.org/wiki/Gradual_typing
https://en.wikipedia.org/wiki/Flow-sensitive_typing
CPython+Mypy:
https://xn--r1a.website/technologique/155
https://www.python.org/dev/peps/pep-0484/
https://github.com/python/mypy
Facebook Flow:
https://flow.org
https://github.com/facebook/flow
https://github.com/flowtype/flow-typed
О возможностях разных редакторов кода:
https://xn--r1a.website/technologique/887
https://xn--r1a.website/technologique/888
https://xn--r1a.website/technologique/889
Собственно вот так flow-sensitive typing работает в режиме реального времени при парсинге исходников и проверке типов параметров в Atom IDE (и в VSCode это тоже есть) - посмотрите по ссылкам, там много gif screen capture анимаций и конечно советую попробовать Atom IDE и VSCode на практике:
https://xn--r1a.website/technologique/1086
https://xn--r1a.website/technologique/1061
https://nuclide.io
https://github.com/facebook/nuclide
https://ide.atom.io
https://atom.io/packages/atom-ide-ui
https://github.com/flowtype/ide-flowtype
https://github.com/atom/atom-languageclient
https://github.com/flowtype/flow-language-server
https://en.wikipedia.org/wiki/Gradual_typing
https://en.wikipedia.org/wiki/Flow-sensitive_typing
CPython+Mypy:
https://xn--r1a.website/technologique/155
https://www.python.org/dev/peps/pep-0484/
https://github.com/python/mypy
Facebook Flow:
https://flow.org
https://github.com/facebook/flow
https://github.com/flowtype/flow-typed
О возможностях разных редакторов кода:
https://xn--r1a.website/technologique/887
https://xn--r1a.website/technologique/888
https://xn--r1a.website/technologique/889
Собственно вот так flow-sensitive typing работает в режиме реального времени при парсинге исходников и проверке типов параметров в Atom IDE (и в VSCode это тоже есть) - посмотрите по ссылкам, там много gif screen capture анимаций и конечно советую попробовать Atom IDE и VSCode на практике:
https://xn--r1a.website/technologique/1086
https://xn--r1a.website/technologique/1061
https://nuclide.io
https://github.com/facebook/nuclide
https://ide.atom.io
https://atom.io/packages/atom-ide-ui
https://github.com/flowtype/ide-flowtype
https://github.com/atom/atom-languageclient
https://github.com/flowtype/flow-language-server