Настала пора важных социологических опросов. С какой стороны вы открываете бананы?
Anonymous Poll
46%
С той стороны, где ветка
39%
С противоположной стороны
8%
Как когда/зависит от фазы Луны
1%
Никак не открываю, а режу на ломтики
3%
Не ем бананы
3%
🐳
Forwarded from dev optozorax
ААААААААА, ЭТО ОФИГЕННО!!!! 🤩 Клеточный автомат «Игра Жизнь» симулируется на самом себе бесконечно в обе стороны!!! Просто откройте!
https://oimo.io/works/life/
https://oimo.io/works/life/
oimo.io
Life Universe
🔥5👍1
И еще в тему бесконечно-рекурсивных изображений:
https://xkcd.com/1416/
Впечатляет не так сильно, как рекурсивная игра «Жизнь», но тоже довольно залипательно. Можно поисследовать и отыскать всякие разные картинки. Увы, при слишком большом приближении все начинает лагать :(
https://xkcd.com/1416/
Впечатляет не так сильно, как рекурсивная игра «Жизнь», но тоже довольно залипательно. Можно поисследовать и отыскать всякие разные картинки. Увы, при слишком большом приближении все начинает лагать :(
Forwarded from Информация опасносте
Предположения о том, насколько плохо все со взломом LastPass
“Despite having her master password set to an astonishing 19 characters, our source claims to have experienced a wave of successful attacks against her through the sites and services she uses. These have included messing with her home thermostat to change the temperature to a sweltering 87F (About 30C for those who use sensible measurements).
As fun a prank as that sounds, our contact also reports the attackers used her Apple ID and ATT credentials to change the PIN on her phone, successfully simjacked her, and added a whole bunch of authorized devices to her LastPass account to bypass MFA.”
https://thecrow.uk/lastpass-data-breach-is-starting-to-look-truly-horrendous/
“Despite having her master password set to an astonishing 19 characters, our source claims to have experienced a wave of successful attacks against her through the sites and services she uses. These have included messing with her home thermostat to change the temperature to a sweltering 87F (About 30C for those who use sensible measurements).
As fun a prank as that sounds, our contact also reports the attackers used her Apple ID and ATT credentials to change the PIN on her phone, successfully simjacked her, and added a whole bunch of authorized devices to her LastPass account to bypass MFA.”
https://thecrow.uk/lastpass-data-breach-is-starting-to-look-truly-horrendous/
The Crow
The 2022 LastPass data breach is starting to look truly horrendous
Despite having her LastPass master password set to an astonishing 19 characters, a cybersecurity compliance professional claims to have experienced a wave of successful attacks against her through the sites and services she uses.
👍1
Немного комментариев по поводу предыдущего поста.
1) Подробности пугают, если здесь есть пользователи LastPass, то лучше срочно менять пароли, сбрасывать открытые сессии и смотреть, правда ли злоумышленник не успел зайти :)
2) Пока не очень понятно, как именно все описанное произошло, учитывая, что по заявлениям LastPass они шифруют все локально и не передают мастер-пароль на сервер (хотя я здесь не очень знаю их механику). Если описанное выше — правда, то будет интересно дождаться подробностей и почитать :)
3) Не стоит все же доверять облачным или несвободным менеджерам паролей, особенно учитывая, что их исходный код закрыт, а процессы внутри непрозрачны. Но я все еще считаю менеджер паролей хорошей идеей — лучше хранить все секреты вместо того, чтобы вспоминать: а какой же пароль стоит на этом конкретном сайте?
Гораздо лучше те менеджеры паролей, которые позволяют хранить все локально и не делают никаких дополнительных удобств по синхронизации: если нужно синхронизировать пароли, то просто берешь и как-то копируешь зашифрованный файлик :) Если пароль для шифрования этого файлика достаточно надежный, и если мы верим в современную криптографию, то на подбор пароля могут уйти тысячи лет, а то и больше.
Например, рассмотрим пароль из 12 случайных маленьких латинских букв — всего 26^12 = 9.54 × 10^12 вариантов. На проверку каждого пароля уходит примерно секунда: дело в том, что для шифрования используется не сам пароль, а его специальный хэш. Этот хэш специально спроектирован так, чтобы для его вычисления потребовалось много времени и памяти (типично порядка секунды времени и гигабайта памяти, но зависит от настроек хэша). Таким образом, на подбор пароля потребуется примерно 3 × 10^9 лет :) Этот процесс можно распараллелить, но из-за лимита по объему памяти на одном сервере можно считать порядка сотен хэшей одновременно, а распараллеливание на GPU не поможет.
Конечно же, наличие уязвимостей в коде (если они есть) сильно упрощает процесс взлома.
Из примеров таких локальных менеджеров паролей могу привести
4) Из пунктов выше следует, что история в посте очень странная, и стоит ждать подробностей. Но в любом случае лучше поменять пароли, если история со взломом LastPass вас как-либо затронула.
1) Подробности пугают, если здесь есть пользователи LastPass, то лучше срочно менять пароли, сбрасывать открытые сессии и смотреть, правда ли злоумышленник не успел зайти :)
2) Пока не очень понятно, как именно все описанное произошло, учитывая, что по заявлениям LastPass они шифруют все локально и не передают мастер-пароль на сервер (хотя я здесь не очень знаю их механику). Если описанное выше — правда, то будет интересно дождаться подробностей и почитать :)
3) Не стоит все же доверять облачным или несвободным менеджерам паролей, особенно учитывая, что их исходный код закрыт, а процессы внутри непрозрачны. Но я все еще считаю менеджер паролей хорошей идеей — лучше хранить все секреты вместо того, чтобы вспоминать: а какой же пароль стоит на этом конкретном сайте?
Гораздо лучше те менеджеры паролей, которые позволяют хранить все локально и не делают никаких дополнительных удобств по синхронизации: если нужно синхронизировать пароли, то просто берешь и как-то копируешь зашифрованный файлик :) Если пароль для шифрования этого файлика достаточно надежный, и если мы верим в современную криптографию, то на подбор пароля могут уйти тысячи лет, а то и больше.
Например, рассмотрим пароль из 12 случайных маленьких латинских букв — всего 26^12 = 9.54 × 10^12 вариантов. На проверку каждого пароля уходит примерно секунда: дело в том, что для шифрования используется не сам пароль, а его специальный хэш. Этот хэш специально спроектирован так, чтобы для его вычисления потребовалось много времени и памяти (типично порядка секунды времени и гигабайта памяти, но зависит от настроек хэша). Таким образом, на подбор пароля потребуется примерно 3 × 10^9 лет :) Этот процесс можно распараллелить, но из-за лимита по объему памяти на одном сервере можно считать порядка сотен хэшей одновременно, а распараллеливание на GPU не поможет.
Конечно же, наличие уязвимостей в коде (если они есть) сильно упрощает процесс взлома.
Из примеров таких локальных менеджеров паролей могу привести
pass и KeePassXC.4) Из пунктов выше следует, что история в посте очень странная, и стоит ждать подробностей. Но в любом случае лучше поменять пароли, если история со взломом LastPass вас как-либо затронула.
👍3
Про будущее канала
Сегодня последний день года, а это значит, что пора поговорить о будущем :) К тому же, каналу уже почти два месяца.
Как вы могли заметить, в последнее время посты здесь стали появляться сильно реже, чем в начале существования Гнезда. Дело в том, что на первых порах было довольно много материала из моих старых архивов, а архивы, даже большие, имеют свойство заканчиваться :(
Тем не менее, я писать не прекращаю и постараюсь приносить что-то интересное раз в 2-4 дня. Делать каждый день по посту уже, вероятно, не получится. К тому же, все мы страдаем от информационного перенасыщения, и лучше чуть уменьшить объем информации, чтобы и успеть сделать все дела, и успеть внимательно прочитать все посты :) Но главная причина скорее в том, что генерить или даже репостить интересный контент каждый день сложно.
Скоро будет опрос, в котором можно будет указать, с какой частотой вам бы хотелось видеть здесь посты. Его результаты, конечно же, напрямую ни на что не повлияют 😈, но мнение по этому поводу узнать интересно.
Stay tuned!
Сегодня последний день года, а это значит, что пора поговорить о будущем :) К тому же, каналу уже почти два месяца.
Как вы могли заметить, в последнее время посты здесь стали появляться сильно реже, чем в начале существования Гнезда. Дело в том, что на первых порах было довольно много материала из моих старых архивов, а архивы, даже большие, имеют свойство заканчиваться :(
Тем не менее, я писать не прекращаю и постараюсь приносить что-то интересное раз в 2-4 дня. Делать каждый день по посту уже, вероятно, не получится. К тому же, все мы страдаем от информационного перенасыщения, и лучше чуть уменьшить объем информации, чтобы и успеть сделать все дела, и успеть внимательно прочитать все посты :) Но главная причина скорее в том, что генерить или даже репостить интересный контент каждый день сложно.
Скоро будет опрос, в котором можно будет указать, с какой частотой вам бы хотелось видеть здесь посты. Его результаты, конечно же, напрямую ни на что не повлияют 😈, но мнение по этому поводу узнать интересно.
Stay tuned!
👍6
С какой частотой вы бы хотели видеть посты на этом канале? (Считаем, что контент по объему и тематике остается тем же.)
В опросе можно выбирать несколько вариантов!
В опросе можно выбирать несколько вариантов!
Final Results
3%
Семь и более постов в день
0%
Два-три поста в день
9%
Один пост в день
41%
Один пост в два-три дня
50%
Один пост в неделю
24%
Один пост в две недели
15%
Один пост в месяц
3%
Один пост в два месяца и более
3%
Не хочу больше видеть здесь постов 😈
26%
🐳
2023 не будет простым
Потому что, как известно, 2023 = 7 × 17 × 17.
Надеемся на то, что 2023 год не доставит нам всем неожиданных неприятностей и неприятных неожиданностей, как 2022 :)
Желаю всем подписчикам канала поменьше багов в коде и побольше достижения своих целей :) И конечно же, чтобы никакие внешние и внутренние обстоятельства достижению целей не мешали :)
Всех с Новым годом! 🎉🎄
Потому что, как известно, 2023 = 7 × 17 × 17.
Надеемся на то, что 2023 год не доставит нам всем неожиданных неприятностей и неприятных неожиданностей, как 2022 :)
Желаю всем подписчикам канала поменьше багов в коде и побольше достижения своих целей :) И конечно же, чтобы никакие внешние и внутренние обстоятельства достижению целей не мешали :)
Всех с Новым годом! 🎉🎄
👍9🔥2🤯1🕊1
Трудности перевода с 🇹🇷
(спойлер: Google и Deepl здесь правы, а Яндекс дезинформирует)
(спойлер: Google и Deepl здесь правы, а Яндекс дезинформирует)
Снова забавный Юникод
1) Пусть в Python верно одновременно
1) Пусть в Python верно одновременно
>>> assert x != y2) Пусть в Python верно одновременно
>>> assert len(x) == 1 and len(y) == 1
>>> assert x.upper().lower() == y.upper().lower()
>>> assert x.lower().upper() == y.lower().upper()
>>> assert x.upper().lower() == x
>>> assert y.upper().lower() != y
>>> assert x != yУгадайте, какими могут быть
>>> assert len(x) == 1 and len(y) == 1
>>> assert x.upper().lower() != y.upper().lower()
>>> assert x.upper().lower()[0] == y.upper().lower()[0]
>>> assert x.lower().upper() != y.lower().upper()
>>> assert x.lower().upper()[0] == y.lower().upper()[0]
>>> assert x.lower().upper() != x
>>> assert y.lower().upper() == y
x и y в обоих случаяхForwarded from commit -m "better"
https://quick-lint-js.com/blog/cpp-vs-rust-build-times/
Текст про сравнение скорости сборки Rust vs. C++.
От кучи подобных текстов отличает монументальность подхода - коллега переписал 17 тыщ строк с С++ на Rust, для корректности сравнения.
Измеряется вообще ВСЕ - инкрементальные vs полные сборки, различные трюки для ускорения сборки как С++, так и для Rust, в том числе, (за это отдельный респект и уважуха) - попытка собрать тулчейны с #BOLT.
Короче, автор явно одержим скоростью, почитайте.
Выводы? Все сложно!
Текст про сравнение скорости сборки Rust vs. C++.
От кучи подобных текстов отличает монументальность подхода - коллега переписал 17 тыщ строк с С++ на Rust, для корректности сравнения.
Измеряется вообще ВСЕ - инкрементальные vs полные сборки, различные трюки для ускорения сборки как С++, так и для Rust, в том числе, (за это отдельный респект и уважуха) - попытка собрать тулчейны с #BOLT.
Короче, автор явно одержим скоростью, почитайте.
Выводы? Все сложно!
Quick-Lint-Js
Is coding in Rust as bad as in C++?
A practical comparison of build and test speed between C++ and Rust.
🔥2😢1
≥ 100
Ура, в Гнезде уже более 100 подписчиков :) Приветствую всех, кто присоединился недавно и надеюсь, что вам понравится контент здесь :)
Эх, теперь мне придется писать еще более годные посты :\ Ну ладно
Ура, в Гнезде уже более 100 подписчиков :) Приветствую всех, кто присоединился недавно и надеюсь, что вам понравится контент здесь :)
Эх, теперь мне придется писать еще более годные посты :\ Ну ладно
🔥12👍3
Снова забавный Юникод: ответы
Пора посмотреть, что за строки
Воспользуемся буквами турецкого алфавита.
1)
2)
А вообще, алгоритмы Юникода здесь не очень совместимы с турецким языком, потому что для
Пора посмотреть, что за строки
x и y были в https://t.me/gepardchan/78.Воспользуемся буквами турецкого алфавита.
1)
>>> x = 'i'
>>> y = 'ı'
Легко видеть, что вызов .upper() приводит оба символа к 'I', после чего они неожиданным образом оказываются равны.2)
>>> x = 'İ'
>>> y = 'I'
Здесь все чуть интереснее. .lower() на 'I' ожидаемо приводит к 'i', а вот применение .lower() на 'İ' почему-то дает два символа: сначала 'i', а затем ' ' (т.е. точку как диакритический знак). Получается 'i', что неотличимо от обычного 'i', но по факту у нас две точки, слившиеся в одну.А вообще, алгоритмы Юникода здесь не очень совместимы с турецким языком, потому что для
ı заглавная — это I, а для i заглавная — İ. А применение обычных .lower() и .upper() приводит к другим результатамTelegram
Гепардово гнездо
Снова забавный Юникод
1) Пусть в Python верно одновременно
>>> assert x != y
>>> assert len(x) == 1 and len(y) == 1
>>> assert x.upper().lower() == y.upper().lower()
>>> assert x.lower().upper() == y.lower().upper()
>>> assert x.upper().lower() == x
>>>…
1) Пусть в Python верно одновременно
>>> assert x != y
>>> assert len(x) == 1 and len(y) == 1
>>> assert x.upper().lower() == y.upper().lower()
>>> assert x.lower().upper() == y.lower().upper()
>>> assert x.upper().lower() == x
>>>…
🤯3🔥2
Как повесить компилятор Rust
(продолжение к http://t.me/gepardchan/10, но тогда было про Go, а сейчас про Rust!)
Скормите ему вот такой вот код:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=4c9d40ee85823a6574df8b57075380c0
Тогда компилятору придется выписать оооочень (экспоненциально!) длинный тип, и он просто будет компилировать код оооочень долго. А даже если скомпилирует, то займет гигабайты места на диске для получившегося бинарника.
Еще одно соображение: понятно, что Rust — язык богатый, и наверняка существует куда больше способов добиться экспоненциально длинного типа, или как-нибудь еще повесить компилятор. Это лишь один из способов, да и то самый близкий к оригинальному посту про Go.
С Go было интереснее, потому что язык куда более примитивный :)
(продолжение к http://t.me/gepardchan/10, но тогда было про Go, а сейчас про Rust!)
Скормите ему вот такой вот код:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=4c9d40ee85823a6574df8b57075380c0
Тогда компилятору придется выписать оооочень (экспоненциально!) длинный тип, и он просто будет компилировать код оооочень долго. А даже если скомпилирует, то займет гигабайты места на диске для получившегося бинарника.
Еще одно соображение: понятно, что Rust — язык богатый, и наверняка существует куда больше способов добиться экспоненциально длинного типа, или как-нибудь еще повесить компилятор. Это лишь один из способов, да и то самый близкий к оригинальному посту про Go.
С Go было интереснее, потому что язык куда более примитивный :)
👍3
Поговорим об абстрактном
Как вы интерпретируете реакцию 🐳?
Я, например, использую эту реакцию достаточно часто (и «кит» в числе тех немногих реакций, которые разрешены в этом канале!). Для меня 🐳 значит что-то среднее между 😁 и 🤡, т.е. когда одновременно кто-то сотворил фигню, и это немного смешно и (или) странно. Хотя описание выше лишь примерное, а точные ситуации, когда я ставлю «кита», определяются интуитивно и не поддаются точному описанию.
Как вы интерпретируете реакцию 🐳?
Я, например, использую эту реакцию достаточно часто (и «кит» в числе тех немногих реакций, которые разрешены в этом канале!). Для меня 🐳 значит что-то среднее между 😁 и 🤡, т.е. когда одновременно кто-то сотворил фигню, и это немного смешно и (или) странно. Хотя описание выше лишь примерное, а точные ситуации, когда я ставлю «кита», определяются интуитивно и не поддаются точному описанию.
🐳27🤔1
https://codeforces.com/blog/entry/111449
Немного написал про участников, которые сдают на контесты Codeforces сгенеренный компилятором ассемблер вместо исходного кода
Немного написал про участников, которые сдают на контесты Codeforces сгенеренный компилятором ассемблер вместо исходного кода
Codeforces
Writing Contests in Assembly Language?
Do you believe this is impossible? It's really not, because some people do it. See yourself:
🤯1
Животные делятся на:
а) принадлежащих Императору,
б) набальзамированных,
в) прирученных,
г) молочных поросят,
д) сирен,
е) сказочных,
ж) бродячих собак,
з) включённых в эту классификацию,
и) бегающих как сумасшедшие,
к) бесчисленных,
л) нарисованных тончайшей кистью из верблюжьей шерсти,
м) прочих,
н) разбивших цветочную вазу,
о) похожих издали на мух.
(оригинал)
а) принадлежащих Императору,
б) набальзамированных,
в) прирученных,
г) молочных поросят,
д) сирен,
е) сказочных,
ж) бродячих собак,
з) включённых в эту классификацию,
и) бегающих как сумасшедшие,
к) бесчисленных,
л) нарисованных тончайшей кистью из верблюжьей шерсти,
м) прочих,
н) разбивших цветочную вазу,
о) похожих издали на мух.
(оригинал)
👍3🤨2✍1👎1🔥1😱1