В закладки. Очень подробная, хоть и несколько субъективная статья Optozorax-а о разных клавиатурных компромиссах, костылях и решениях.
Forwarded from dev optozorax (илья шепрут)
Как известно, я очень упорот по клавиатурам.
И в этой области я развиваюсь уже много лет, поэтому мне есть что сказать. И вот думал что неплохо было бы написать статью о своей раскладке (а она довольно уникальна). Получилась, конечно, статья о раскладке, но случайно я параллельно рассказал про десятипальцевый метод, про неверность стандартных клавиатур и историю своего развития. Получилась огромная статья на 200к символов, которую читать, наверное, 2 часа.
Так что приятного чтения! 🍿
#клавиатуры
И в этой области я развиваюсь уже много лет, поэтому мне есть что сказать. И вот думал что неплохо было бы написать статью о своей раскладке (а она довольно уникальна). Получилась, конечно, статья о раскладке, но случайно я параллельно рассказал про десятипальцевый метод, про неверность стандартных клавиатур и историю своего развития. Получилась огромная статья на 200к символов, которую читать, наверное, 2 часа.
Так что приятного чтения! 🍿
#клавиатуры
optozorax.github.io
Раскладка Ильи Шепрута — Блог optozorax'а
Моя раскладка, история прихода к ней и объяснение каждого дизайнерского решения.
Sandy Maguire (известный в хаскельных кругах товарищ) дописал книгу, которая раньше имела рабочее название "Structure and Interpretation of Haskell Programs" (отсылка к знаменитой SICP). Можно сейчас уже скачать pdf.
https://reasonablypolymorphic.com/blog/algebra-driven-design/
https://reasonablypolymorphic.com/blog/algebra-driven-design/
Энтузиаст начал переводить эту красоту на русский. Вообще, 3b1b иногда просто приятно смотреть из-за классных анимаций, даже не пытаясь вдумываться в содержание.
https://youtu.be/aCvnUuYaRH8
https://youtu.be/aCvnUuYaRH8
YouTube
Теория групп и 196883-мерный монстр
Оригинальная запись: https://www.youtube.com/watch?v=mH0oCDa74tE
Интервью одного человека, с которым я когда-то работал и которого я уважаю. Сам он говорит, что его застали врасплох и получилось не очень, а по мне так получилось очень хорошо. История с Боингом как будто бы типичная, но ребятам могло на самом деле повезти, мне в аналогичной ситуации повезло и дефектов не случилось.😊
https://www.saratovit.ru/interview/andrej-gusev/
https://www.saratovit.ru/interview/andrej-gusev/
И мы видим, что менеджера в айти все больше и больше воспринимают как ничего не понимающего человека, раздающего малоосмысленные указания и действующего по шаблону в ущерб здравому смыслу.
О недостатках Rust на сегодняшний день
Doge Shibu:
Такая возможность была бы полезна практически везде.
Простейший пример - мы хотим из метода трейта возвращать итератор (абсолютно разумная и естественная идея):
Ок, пишем реализацию:
И теперь выходит, что мы не можем назвать тип, который должен идти в
У нас остаются два варианта - бокс
И вот кажется, что раз уж разрабы выбрали такой дизайн для лямбд, то возможность как-то дать название типу замыкания должна была быть с самого начала.
И, кстати, вот эта проблема - это то из-за чего я почти во всех своих проектах сижу на найтли и считаю, что раст без найтли - не сказать, чтобы сильно удобен.
Doge Shibu:
Такая возможность была бы полезна практически везде.
Простейший пример - мы хотим из метода трейта возвращать итератор (абсолютно разумная и естественная идея):
trait MyTrait<'a> {
type MyIter: Iterator<Item = &'a MyType>;
fn get_iter(&'a self) -> Self::MyIter;
}Ок, пишем реализацию:
impl<'a> MyTrait<'a> for MyTraitImpl {
type MyIter = ???;
fn get_iter(&'a self) -> Self::MyIter {
let some_value = self.some_method(...);
self.something.iter().map(|x| some_value.wtf(x))
}
}И теперь выходит, что мы не можем назвать тип, который должен идти в
MyIter, из-за того, что у нас там будет Map<???, ...>, в котором надо будет указать имя типа замыкания, чего мы сделать не сможем. И соответственно так реализовать трейт тоже не сможем. У нас остаются два варианта - бокс
+ dyn, что в случае итераторов смешно, или переходить на найтли и давать имя MyIter через type MyIter = impl Iterator<...>; И вот кажется, что раз уж разрабы выбрали такой дизайн для лямбд, то возможность как-то дать название типу замыкания должна была быть с самого начала.
И, кстати, вот эта проблема - это то из-за чего я почти во всех своих проектах сижу на найтли и считаю, что раст без найтли - не сказать, чтобы сильно удобен.
Возможно, боян. Представляю, через лет 10 будут искать Senior Functional Excel Developer.
https://habr.com/ru/news/t/540308/
https://habr.com/ru/news/t/540308/
Хабр
С добавлением лямбда-функций язык программирования Excel стал полным по Тьюрингу
Microsoft теперь называет электронные таблицы Excel языком программирования, а с добавлением лямбд он стал полным по Тьюрингу . Язык программирования считается полным по Тьюрингу, если на нём можно...
Одна из моих любимых песен с тех пор, как её один супермозг визуализировал на 64 ядрах (128 аппаратных потоках) процессора AMD Threadripper 3990x.👇
Forwarded from Блог*
YouTube
Bad Apple!! but it's made of YouTube captions
Recommended: Mac, Android, Linux
Windows is fine, but spaces look off because the font has a wrong width for braille space.
iPhone/iPad app can only play captions at about 5 fps, but it works with browser version of YouTube.
Original: https://youtu.be/FtutLA63Cp8…
Windows is fine, but spaces look off because the font has a wrong width for braille space.
iPhone/iPad app can only play captions at about 5 fps, but it works with browser version of YouTube.
Original: https://youtu.be/FtutLA63Cp8…
Дженерики для го приняли тоже. Хороший пример фичи системы типов, которую нужно планировать заранее с самого начала, иначе вкорячивать придётся не самым красивым образом.
С другой стороны отличная демонстрация, что "вода камень точит".
С другой стороны отличная демонстрация, что "вода камень точит".
GitHub
spec: add generic programming using type parameters · Issue #43651 · golang/go
We propose adding support for type parameters to Go. This will change the Go language to support a form of generic programming. A detailed proposal document has been published, with input from many...
Гугл спонсирует переписывание разных штук на Rust. Представьте, сначала тулзы, потом и сам POSIX, а потом появится и safe-слой для сисколлов :-P (ага, размечтался..)
https://security.googleblog.com/2021/02/mitigating-memory-safety-issues-in-open.html
https://security.googleblog.com/2021/02/mitigating-memory-safety-issues-in-open.html
Google Online Security Blog
Mitigating Memory Safety Issues in Open Source Software
Posted by Dan Lorenc, Infrastructure Security Team Memory-safety vulnerabilities have dominated the security field for years and often lead ...
Модель трёх тел хоть и сложна и аналитически не решается, но её всё равно нужно усложнить ещё дальше, чтобы она стала реалистичной. Например, добавить радиус планеты в параметры и столкновения между планетами, с образованием отлетающих кусков, которые становятся новыми планетами. Есть теория, что наша Луна — это отколовшийся когда-то кусок Земли в результате столкновения с каким-то шальным астероидом.
Forwarded from Random three body problem
This media is not supported in your browser
VIEW IN TELEGRAM
Initial states:
m: 0.950 x: 0.841 y: -2.945 vx: 0.055 vy: 0.867
m: 7.171 x: -1.359 y: 2.404 vx: 0.573 vy: -0.282
m: 1.920 x: -2.252 y: -4.907 vx: -0.063 vy: 0.047
Interest-ness score: 61
m: 0.950 x: 0.841 y: -2.945 vx: 0.055 vy: 0.867
m: 7.171 x: -1.359 y: 2.404 vx: 0.573 vy: -0.282
m: 1.920 x: -2.252 y: -4.907 vx: -0.063 vy: 0.047
Interest-ness score: 61
https://www.opennet.ru/opennews/art.shtml?num=54516
Критическая ошибка в Chrome, позволяющая обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения. ...она вызвана обращением к уже освобождённому блоку памяти
Очень специфическая проблема, редчайший случай в софте на C++🤔
Критическая ошибка в Chrome, позволяющая обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения. ...она вызвана обращением к уже освобождённому блоку памяти
Очень специфическая проблема, редчайший случай в софте на C++🤔
www.opennet.ru
Обновление Chrome 88.0.4324.146 с устранением критической уязвимости
Опубликовано обновление браузера Chrome 88.0.4324.146 в котором устранена уязвимость, имеющая статус критической проблемы, позволяющей обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения. Детали об уязвимости (CVE-2021…
Одно из самых интересных траекторий планет задачи трёх тел, маленькую планету колбасит просто!