Осталась всего-лишь одна причина не покупать AMD Threadripper 399X😆
https://bobweb.co/article/threadripper-meets-rustc
https://bobweb.co/article/threadripper-meets-rustc
bobweb.co
Threadripper meets rustc
Bobweb is an independent software developer and a technology consultancy.
Линус о спецификациях
A "spec" is close to useless. I have _never_ seen a spec that was both big enough to be useful _and_ accurate.
And I have seen _lots_ of total crap work that was based on specs. It's _the_ single worst way to write software, because it by definition means that the software was written to match theory, not reality.
https://yarchive.net/comp/linux/specs.html
A "spec" is close to useless. I have _never_ seen a spec that was both big enough to be useful _and_ accurate.
And I have seen _lots_ of total crap work that was based on specs. It's _the_ single worst way to write software, because it by definition means that the software was written to match theory, not reality.
https://yarchive.net/comp/linux/specs.html
Forwarded from мне не нравится реальность (вафель 🧇💛)
тем временем на канал подписался 128 подписчик.... всем привет и спасибо 👉👈
Уже завтра, в (пока ещё) обычном онлайн формате.
Обещает быть (в некоторых местах) хардкорным.
https://www.meetup.com/Rust-%D0%B2-%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5/events/272798484/
Обещает быть (в некоторых местах) хардкорным.
https://www.meetup.com/Rust-%D0%B2-%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5/events/272798484/
Meetup
Russian Rust Online
Fri, Sep 11, 2020, 7:00 PM: Всем привет!Данное мероприятие мы решили провести в формате онлайн трансляции.Доклады будут транслироваться через YouTube на нашем канале.Темы:1. Иерархическое распределени
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.