nitpicker_mode(|| {
Если заглянуть в nomicon, то там есть такой код, как на левой картинке, только чувак в джинсках монтирует высоковольтный кабель под напряжением, балансируя на канате, соединяющим два подвешенных электрокара...
});
Дядя Боб разразился новым кейноутом "The Last Programming Language"
Вам не стоит его смотреть, вместо вас его посмотрел я😊 По мне, этот видос просто растекание мыслью по древу. Так вот, моё TLDW == несколько мыслей оттуда, мои придирки наклонным шрифтом после тире:
21:11 functional is the discipline upon assignment — это ошибка так думать про ФП, главное там это вынесение побочных эффектов как значений
28:40 there's probably something about programming and text. That is so well aligned because when you're proaramming, time is linear in a program and so we think of our code as being linear in an algiorithm, time goes in one direction so that's one dimensional: text. — ну бред же, не? (об этом в конце)
25:51 algorithms occur as a sequence of events, the execution of an one-dimensional time runs in a single dimension so it is probably natural model it as a sequence of statements in a text — смотря какой алгоритм
32:08 Lisp is the language that will not die
39:03 C++ what about that that's all the same problems that C has and, boy, is its syntax heavy Wow learning all that syntax is just horrible and now I mean the Standards Committee has just gone completely ape, they're just adding syntax lots of little fiddly stuff in there I think I'd rather not learn all that stuff
46:49 and another thing we've learned is that we want our languages to be garbage collected yeah we've learned our lesson on this what we don't want to be doing manual memory control anymore my god how many times have we been rebooting it midnight because of horrible memory leaks and stuff like that — вот тут большая ошибка, отсутствие сборщика мусора НЕ влечёт ручного управления памяти
50:25 another language attribute that I think we want is homo iconicity
52:02 Сlosure it's the only one that meets all the criteria I've outlined I think it's a good language
Особенно меня подожгло от того, что якобы текст линейный и алгоритмы линейные, что офигенно далеко от правды, например, программа на ленивом Хаскеле может прыгать по множеству редукций и даже одновременно, поэтому так и важна чистота, чтобы этот хаос был под контролем, а как выглядят и записаны вычисления это уже дело вкуса и стиля.
Время может прыгать как угодно, особенно в асинхронном и многопоточном коде, это нам легче выстраивать вещи одну за другой и не думать о когерентности кэшей, видимости значений и переупорядочивании инструкций.
Ах да, и ни слова о Rust!
Этот Дядя Боб сломался, несите другого.
Вам не стоит его смотреть, вместо вас его посмотрел я😊 По мне, этот видос просто растекание мыслью по древу. Так вот, моё TLDW == несколько мыслей оттуда, мои придирки наклонным шрифтом после тире:
21:11 functional is the discipline upon assignment — это ошибка так думать про ФП, главное там это вынесение побочных эффектов как значений
28:40 there's probably something about programming and text. That is so well aligned because when you're proaramming, time is linear in a program and so we think of our code as being linear in an algiorithm, time goes in one direction so that's one dimensional: text. — ну бред же, не? (об этом в конце)
25:51 algorithms occur as a sequence of events, the execution of an one-dimensional time runs in a single dimension so it is probably natural model it as a sequence of statements in a text — смотря какой алгоритм
32:08 Lisp is the language that will not die
39:03 C++ what about that that's all the same problems that C has and, boy, is its syntax heavy Wow learning all that syntax is just horrible and now I mean the Standards Committee has just gone completely ape, they're just adding syntax lots of little fiddly stuff in there I think I'd rather not learn all that stuff
46:49 and another thing we've learned is that we want our languages to be garbage collected yeah we've learned our lesson on this what we don't want to be doing manual memory control anymore my god how many times have we been rebooting it midnight because of horrible memory leaks and stuff like that — вот тут большая ошибка, отсутствие сборщика мусора НЕ влечёт ручного управления памяти
50:25 another language attribute that I think we want is homo iconicity
52:02 Сlosure it's the only one that meets all the criteria I've outlined I think it's a good language
Особенно меня подожгло от того, что якобы текст линейный и алгоритмы линейные, что офигенно далеко от правды, например, программа на ленивом Хаскеле может прыгать по множеству редукций и даже одновременно, поэтому так и важна чистота, чтобы этот хаос был под контролем, а как выглядят и записаны вычисления это уже дело вкуса и стиля.
Время может прыгать как угодно, особенно в асинхронном и многопоточном коде, это нам легче выстраивать вещи одну за другой и не думать о когерентности кэшей, видимости значений и переупорядочивании инструкций.
Ах да, и ни слова о Rust!
Этот Дядя Боб сломался, несите другого.
YouTube
The Last Programming Language
This is the keynote Uncle Bob gave remotely at ACCU 2011.
To see more about Clean Coders: https://cleancoders.com/
Over the last 50 years we've seen a lot of computer languages, from procedural languages, to structured languages, to OO languages, stack…
To see more about Clean Coders: https://cleancoders.com/
Over the last 50 years we've seen a lot of computer languages, from procedural languages, to structured languages, to OO languages, stack…
Начался опрос о состоянии Rust в 2020 году: https://blog.rust-lang.org/2020/09/10/survey-launch.html
Не рефлексируйте, даже если вы просто слышали о Rust краем уха и запускали только "Hello, world", там будет что рассказать разработчикам и поделиться вашими впечатлениями.
А тем временем я покажу такую картинку😉
Не рефлексируйте, даже если вы просто слышали о Rust краем уха и запускали только "Hello, world", там будет что рассказать разработчикам и поделиться вашими впечатлениями.
А тем временем я покажу такую картинку😉
Новый пейпер, Dependent Type Systems as Macros
Переведённая аннотация:
Мы представляем Turnstile+, высокоуровневый, основанный на макросах мета-DSL для построения языков с зависимыми типами. С помощью него разработчики языков могут быстро запрототипировать и развить фичи, связанные с зависимыми типами. Или же они могут создать совершенно новый DSL, мощь зависимых типов которого органично сочетаются с какой-то предметной областью. Поддержка языко-ориентированного программирования со стороны нашего фреймворка также делает его подходящим для экспериментов с формальными системами и компонентами, например proof assistant и соответствующие DSL-и.
Довольно интересно, хотя до продакшена такие инструменты дойдут очень не скоро
https://www.ccs.neu.edu/home/stchang/pubs/cbtb-popl2020.pdf
Переведённая аннотация:
Мы представляем Turnstile+, высокоуровневый, основанный на макросах мета-DSL для построения языков с зависимыми типами. С помощью него разработчики языков могут быстро запрототипировать и развить фичи, связанные с зависимыми типами. Или же они могут создать совершенно новый DSL, мощь зависимых типов которого органично сочетаются с какой-то предметной областью. Поддержка языко-ориентированного программирования со стороны нашего фреймворка также делает его подходящим для экспериментов с формальными системами и компонентами, например proof assistant и соответствующие DSL-и.
Довольно интересно, хотя до продакшена такие инструменты дойдут очень не скоро
https://www.ccs.neu.edu/home/stchang/pubs/cbtb-popl2020.pdf
Пейпер далеко уже не новость, но тем не менее хочется его положить сюда:
Unsupervised Translation of Programming Languages
Транскомпилятор, также известный как транслятор исходного кода в другой исходный код, это система, которая переводит исходники из одного высокоуровневого языка (такого как C++ или Python) в другой.
https://arxiv.org/pdf/2006.03511.pdf
Разумеется работает пока через пень-колоду, но похоже через годиков 5 будет Boost на Питоне (как результат конвертации) или Django на Rust (я очень надеюсь, что через 5 лет Rust проникнет в индустрию).
Unsupervised Translation of Programming Languages
Транскомпилятор, также известный как транслятор исходного кода в другой исходный код, это система, которая переводит исходники из одного высокоуровневого языка (такого как C++ или Python) в другой.
https://arxiv.org/pdf/2006.03511.pdf
Разумеется работает пока через пень-колоду, но похоже через годиков 5 будет Boost на Питоне (как результат конвертации) или Django на Rust (я очень надеюсь, что через 5 лет Rust проникнет в индустрию).
Тут народ подсказывает, что в Котлине есть нехилая такая дыра в типобезопасности:
https://twitter.com/kotlin/status/1276083456854941697
https://twitter.com/kotlin/status/1276083456854941697
Twitter
Kotlin
Avoid using destructuring declarations together with non-trivial custom data classes: it will be too easy to break your code if you add new properties to such classes later. #KotlinTips
Несмотря на то, что я чаще использую Intellij Rust плагин, тем не менее важные новости в
https://rust-analyzer.github.io/thisweek/2020/09/14/changelog-42.html
rust-analyzer
завезли, много подсказок и самое главное (!) ошибки в макросах:https://rust-analyzer.github.io/thisweek/2020/09/14/changelog-42.html
rust-analyzer.github.io
Changelog #42
Commit: 0d03fe6Release: 2020-09-14
Forwarded from Блог*
#prog #math
Визуализатор преобразований комплексной плоскости. Даже если не нужно, можно просто делать рандомные формулы и залипать на анимацию. На телефоне, к сожалению, пашет не очень, чуть лучше в режиме версии для десктопа.
dynamicmath.xyz/complex-mapping
Визуализатор в действии: twitter.com/PonceCampuzano/status/1304683933779415041
Визуализатор преобразований комплексной плоскости. Даже если не нужно, можно просто делать рандомные формулы и залипать на анимацию. На телефоне, к сожалению, пашет не очень, чуть лучше в режиме версии для десктопа.
dynamicmath.xyz/complex-mapping
Визуализатор в действии: twitter.com/PonceCampuzano/status/1304683933779415041
Forwarded from Senior Sigan blog (Ilya Siganov)
Float
Оказывается у float типов есть ДВА разных NaN: Signalling NaN и Quiet NaN. Для представления обоих типов вся секция exp забита единицами. Отличаются они только тем, как забита секция fraction.
Зачем?
Написано QNaN - результат неопределенных вычислений. Примеры:
SNaN - результат неверных вычислений. Я не смогу найти правда, как получить такой результат в с/с++. Видимо это ошибки железа, рантайма....
Стандарт IEEE-754 хорошо описан тут https://steve.hollasch.net/cgindex/coding/ieeefloat.html
Большой разбор: https://softelectro.ru/ieee754_en.html
Интерактивная тулза, чтобы играть с битами: https://evanw.github.io/float-toy/
Оказывается у float типов есть ДВА разных NaN: Signalling NaN и Quiet NaN. Для представления обоих типов вся секция exp забита единицами. Отличаются они только тем, как забита секция fraction.
Зачем?
Написано QNaN - результат неопределенных вычислений. Примеры:
0/0
, sqrt(0)
.SNaN - результат неверных вычислений. Я не смогу найти правда, как получить такой результат в с/с++. Видимо это ошибки железа, рантайма....
Стандарт IEEE-754 хорошо описан тут https://steve.hollasch.net/cgindex/coding/ieeefloat.html
Большой разбор: https://softelectro.ru/ieee754_en.html
Интерактивная тулза, чтобы играть с битами: https://evanw.github.io/float-toy/
steve.hollasch.net
IEEE Standard 754 Floating-Point
An overview of IEEE Standard 754 floating-point representation.
Начал смотреть курс по теории распределённых систем. Пока очень нравится. Надеюсь я доберусь до конца 😊
https://www.youtube.com/watch?v=3yjy19cUWIM&list=PL4_hYwCyhAvYwYRYQB1QwwwrqDrIgSMou
https://www.youtube.com/watch?v=3yjy19cUWIM&list=PL4_hYwCyhAvYwYRYQB1QwwwrqDrIgSMou
YouTube
TFTDS 1. Модель распределенной системы
0:00:42 Рассказ о курсе
0:08:32 Из чего состоит распределенная система
0:20:02 Сеть
0:29:22 Partition
0:33:52 Часы
0:56:32 Объяснение синхронизации часов на примере геолокации
1:16:02 Резюме
Лекция от 07.09.2019
Лектор: Роман Липовский
Снимал: Дмитрий…
0:08:32 Из чего состоит распределенная система
0:20:02 Сеть
0:29:22 Partition
0:33:52 Часы
0:56:32 Объяснение синхронизации часов на примере геолокации
1:16:02 Резюме
Лекция от 07.09.2019
Лектор: Роман Липовский
Снимал: Дмитрий…
Просто
———
Artem Shpynov, [23.08.20 01:12]
Я первый вопрос претенденту на мидла по си++ задаю - удалить из заданного
M B, [23.08.20 01:14]
[In reply to Artem Shpynov]
Что их ставит в тупик?
Artem Shpynov, [23.08.20 01:15]
[In reply to M B]
Всё. Реально не умеют люди даже столь примитивные вещи делать. И у всех 3+ лет стажа именно програмистами на с++
https://t.iss.one/TeamLeadTalks/142796
😬
.into_iter().filter(|x| *x % 2 == 1).collect()
. И всё! ———
Artem Shpynov, [23.08.20 01:12]
Я первый вопрос претенденту на мидла по си++ задаю - удалить из заданного
std::list<int>
элементы с четными значениями... Процентов 80 на этом этапе заканчиваютM B, [23.08.20 01:14]
[In reply to Artem Shpynov]
Что их ставит в тупик?
Artem Shpynov, [23.08.20 01:15]
[In reply to M B]
Всё. Реально не умеют люди даже столь примитивные вещи делать. И у всех 3+ лет стажа именно програмистами на с++
https://t.iss.one/TeamLeadTalks/142796
😬
Telegram
Artem Shpynov in Боль Тимлида
Я первый вопрос претенденту на мидла по си++ задаю - удалить из заданного std::list<int> элементы с четными значениями... Процентов 80 на этом этапе заканчивают
Тут Вафель даёт ещё более красивый рецепт:
.drain_filter(|x| *x % 2 == 1).for_each(drop)
Правда это (пока) unstable.Telegram
мне не нравится реальность
Мне не нравится реальность
N.B. waffle is unhinged
- кормить назад: @meowaffle
- кормить вперёд: github.com/sponsors/WaffleLapkin
- чят: https://t.iss.one/+5Dtuan4dVE5kYTcy
- блог: blog.ihatereality.space
N.B. waffle is unhinged
- кормить назад: @meowaffle
- кормить вперёд: github.com/sponsors/WaffleLapkin
- чят: https://t.iss.one/+5Dtuan4dVE5kYTcy
- блог: blog.ihatereality.space
Наконец, разработчики языка Rust собираются, чтобы выработать практики и инструменты для обработки ошибок.
https://blog.rust-lang.org/inside-rust/2020/09/18/error-handling-wg-announcement.html
Отличная новость, я думаю уже давно пора покончить со всем этим зоопарком. Ещё лет 5 назад🤔
На картинке виден огромный зелёный горб
https://blog.rust-lang.org/inside-rust/2020/09/18/error-handling-wg-announcement.html
Отличная новость, я думаю уже давно пора покончить со всем этим зоопарком. Ещё лет 5 назад🤔
На картинке виден огромный зелёный горб
failure
, и в последнее время взрыв популярности thiserror
и anyhow
.Forwarded from Маjко
В C++ больше всего бесит что любое мало мальское удобство приходится писать себе самому. И каждый сука считает удобными разные вещи.