Наступило первое сентября и часть моих папищеков пошла в школу. Я знаю, каково это, так что вот вам мои слова напутствия:
АХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХА ВАМ НАДО В ШКОЛУ, А МНЕ НЕТ
😁35🖕8🔥6🍌3💩2❤1👏1🤡1
Forwarded from 🥦 (M)
You have ~22 more chances of a new yorker biting you than a shark anywhere in the ocean
https://www.floridamuseum.ufl.edu/shark-attacks/odds/compare-risk/nyc-biting-injuries/
https://www.floridamuseum.ufl.edu/shark-attacks/odds/compare-risk/nyc-biting-injuries/
🌚6😢1💯1
Forwarded from Neural Machine
Друзья, оказалось, вы успешные и счастливые люди. Я решил вас забанить.
😁18🤯6👍5❤🔥1
Forwarded from linkmeup
Lidl (магаз типа пятёрочки, или даже дикси, только немецкий) в погоне за соблюдением законов (да, свободная Европа обязывает хранить данные внутри страны) как-то неожиданно для себя обнаружили, что развили айтишное направление настолько, что отгрохали своё облако и продают его другим уважаемым немецким компаниям. Так что по деньгам получилось, что за прошлый год оно принесло два лярда евро оборотов. А так-то они сосиски да капусту продают, вы не подумайте.
https://www.irishtimes.com/business/2024/08/23/how-lidl-accidentally-took-on-the-big-guns-of-cloud-computing/
https://www.irishtimes.com/business/2024/08/23/how-lidl-accidentally-took-on-the-big-guns-of-cloud-computing/
😁24🤯4🤔3
Папищеки, расскажите, а почему вы до сих пор на меня подписаны и читаете посты?
👎14🍌9💩6🤡4🤔3❤1
#prog #python #article #abnormalprogramming
Python's Preprocessor
Python позволяет иметь в первой строке комментарий, который говорит о том, какая кодировка используется для текста файла. Имя кодировщика ищется в специальном месте, и механизм для предоставления этого кодировщика позволяет исполнять произвольный код на Python. Как следствие, это позволяет интерпретировать дальнейший текст как угодно — с синтаксисом, произвольно далёким от Python.
(thanks @itpgchannel)
Python's Preprocessor
Python позволяет иметь в первой строке комментарий, который говорит о том, какая кодировка используется для текста файла. Имя кодировщика ищется в специальном месте, и механизм для предоставления этого кодировщика позволяет исполнять произвольный код на Python. Как следствие, это позволяет интерпретировать дальнейший текст как угодно — с синтаксисом, произвольно далёким от Python.
(thanks @itpgchannel)
Pydong
Python’s Preprocessor
Every now and then you hear outrageous claims such as “Python has no preprocessor”.
🔥10
Forwarded from Безвольные каменщики
Жутковатая статья [1] вышла в последнем номере The New England Journal of Medicine. Большая группа медиков сразу в нескольких крупных медицинских центрах выяснила, что значительно больший процент пациентов в коме, которые, как кажется, не реагируют на внешние раздражители, на самом деле находятся в сознании. Настоящее, блин, «Черное зеркало».
Используя функциональную магнитно-резонансную томографию и электроэнцефалографию, ученые обнаружили, что минимум четверть (25%) пациентов в так называемом вегетативном состоянии демонстрируют отчетливую мозговую активность в ответ на просьбы представить, как они играют в теннис или открывают и закрывают ладонь. Причем активность эта наблюдалась ровно в тех зонах мозга, в которых она должна наблюдаться, если вы действительно делаете это или представляете, что делаете. Иными словами, результаты означают, что пациенты не только поняли, чего от них хотели врачи, но и выполнили просьбу.
И от этого, конечно, всё немножко холодеет внутри. Представьте: у вас случается инсульт или вы попадаете в аварию, где получаете травму головы, и следующие несколько лет находитесь в коме. Все думают, что вы овощ, не обращают на вас внимания, держат в комнате с постоянно включенным светом или, наоборот, выключенным, разговаривают при вас обо всем, в том числе и о вас, так, будто вас здесь нет. Ну и, конечно, скука. Даже представить страшно: годы лежать, не получая релевантных внешних стимулов, не в состоянии реализовать свои желания — почесать там, где чешется, унять боль и так далее.
Это настоящий кошмар наяву. И даже удивительно, что до сих пор было так мало исследований, изучающих, что на самом деле происходит в голове у людей в коме. Нельзя сказать, что их совсем не было, были, но очень мало. И нынешняя работа показывает, что существенно больший процент людей, чем мы полагали раньше, в таком состоянии на самом деле сохраняют сознание.
Но хорошо, что такие исследования в принципе существуют. Может быть, когда-нибудь с их помощью удастся наладить коммуникацию с такими людьми или, как минимум, изменить отношение к ним. Если станет ясно, что значительная часть пациентов в вегетативном состоянии слышат и понимают происходящее, родственники будут иначе принимать решения об отключении систем жизнеобеспечения (хотя тут, конечно, большой вопрос, благо это будет для пациентов в коме или вред. Возможно, они мечтают, чтобы их мучения прекратились), а в больницах будет иначе устроен уход за такими людьми. Раз они воспринимают происходящее, то можно, например, включать им телевизор или радио, ставить любимые подкасты, аудиокниги и так далее. Понятно, что мы не сможем полностью удовлетворить их желания и стремления, но все-таки, как мне кажется, так этим людям будет легче переживать годы в тюрьме собственного мозга.
PS Для полноты впечатлений, вот ссылки [2], [3] на автобиографические произведения, описывающие ровно это состояние [3] и похожее на него [2].
Ссылки:
[1] - https://www.nejm.org/doi/abs/10.1056/NEJMoa2400645
[2] - https://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%B0%D1%84%D0%B0%D0%BD%D0%B4%D1%80_%D0%B8_%D0%B1%D0%B0%D0%B1%D0%BE%D1%87%D0%BA%D0%B0_(%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0)
[3] - https://www.livelib.ru/author/405339-anzhel-libi
Используя функциональную магнитно-резонансную томографию и электроэнцефалографию, ученые обнаружили, что минимум четверть (25%) пациентов в так называемом вегетативном состоянии демонстрируют отчетливую мозговую активность в ответ на просьбы представить, как они играют в теннис или открывают и закрывают ладонь. Причем активность эта наблюдалась ровно в тех зонах мозга, в которых она должна наблюдаться, если вы действительно делаете это или представляете, что делаете. Иными словами, результаты означают, что пациенты не только поняли, чего от них хотели врачи, но и выполнили просьбу.
И от этого, конечно, всё немножко холодеет внутри. Представьте: у вас случается инсульт или вы попадаете в аварию, где получаете травму головы, и следующие несколько лет находитесь в коме. Все думают, что вы овощ, не обращают на вас внимания, держат в комнате с постоянно включенным светом или, наоборот, выключенным, разговаривают при вас обо всем, в том числе и о вас, так, будто вас здесь нет. Ну и, конечно, скука. Даже представить страшно: годы лежать, не получая релевантных внешних стимулов, не в состоянии реализовать свои желания — почесать там, где чешется, унять боль и так далее.
Это настоящий кошмар наяву. И даже удивительно, что до сих пор было так мало исследований, изучающих, что на самом деле происходит в голове у людей в коме. Нельзя сказать, что их совсем не было, были, но очень мало. И нынешняя работа показывает, что существенно больший процент людей, чем мы полагали раньше, в таком состоянии на самом деле сохраняют сознание.
Но хорошо, что такие исследования в принципе существуют. Может быть, когда-нибудь с их помощью удастся наладить коммуникацию с такими людьми или, как минимум, изменить отношение к ним. Если станет ясно, что значительная часть пациентов в вегетативном состоянии слышат и понимают происходящее, родственники будут иначе принимать решения об отключении систем жизнеобеспечения (хотя тут, конечно, большой вопрос, благо это будет для пациентов в коме или вред. Возможно, они мечтают, чтобы их мучения прекратились), а в больницах будет иначе устроен уход за такими людьми. Раз они воспринимают происходящее, то можно, например, включать им телевизор или радио, ставить любимые подкасты, аудиокниги и так далее. Понятно, что мы не сможем полностью удовлетворить их желания и стремления, но все-таки, как мне кажется, так этим людям будет легче переживать годы в тюрьме собственного мозга.
PS Для полноты впечатлений, вот ссылки [2], [3] на автобиографические произведения, описывающие ровно это состояние [3] и похожее на него [2].
Ссылки:
[1] - https://www.nejm.org/doi/abs/10.1056/NEJMoa2400645
[2] - https://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%B0%D1%84%D0%B0%D0%BD%D0%B4%D1%80_%D0%B8_%D0%B1%D0%B0%D0%B1%D0%BE%D1%87%D0%BA%D0%B0_(%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0)
[3] - https://www.livelib.ru/author/405339-anzhel-libi
The New England Journal of Medicine
Cognitive Motor Dissociation in Disorders of Consciousness | NEJM
Patients with brain injury who are unresponsive to commands may perform cognitive
tasks that are detected on functional magnetic resonance imaging (fMRI) and electroencephalography
(EEG). This phen...
tasks that are detected on functional magnetic resonance imaging (fMRI) and electroencephalography
(EEG). This phen...
😢16😱10🤔3🤯2👍1
#prog #python #article
Проблемы вызова Python кода из C кода
Или про то, как немного странный (но легальный) код на Python может привести к сегфолту интепретатора.
Проблемы вызова Python кода из C кода
Или про то, как немного странный (но легальный) код на Python может привести к сегфолту интепретатора.
Хабр
Проблемы вызова Python кода из C кода
Привет, Хабр! Меня зовут Никита Соболев, я опенсорс разработчик и core-разработчик CPython. Давайте поговорим про одну из самых сложных частей интерпретатора CPython – вызов Python кода из C кода....
👍2
👍3😐1
Forwarded from /g/‘s Tech Memes (Gianmarco Gargiulo)
uBlock filter to filter AI slop from search engines: https://github.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist
GitHub
GitHub - laylavish/uBlockOrigin-HUGE-AI-Blocklist: A huge blocklist of manually curated sites that contain AI generated imagery…
A huge blocklist of manually curated sites that contain AI generated imagery for uBlock Origin & uBlacklist. - laylavish/uBlockOrigin-HUGE-AI-Blocklist
👍16❤1
#cpp #article #performancetrap
Производительность неупорядоченных контейнеров зависит, понятное дело, от структуры данных, используемой для реализации. Однако требования к API могут существенно ограничить возможные варианты реализации и, соответственно, потенциал для производительности.
Пожалуй, наиболее показательный пример применительно к C++ — это std::unordered_map. В отличие от std::map, к этому контейнеру нет требования, что элементы должны храниться в отсортированном порядке. По идее, это должно развязывать руки тем, кто пишет контейнеры. Однако стандарт C++ также накладывает серьёзные ограничения на стабильность итераторов для unordered_map. Именно, стандарт предписывает, что операции мапы инвалидируют ссылки на ключи и элементы только в том случае, если элементы удаляют — все остальные операции, включая всё то, что вызывает пересчёт хешей, ссылки сохраняют. На практике это означает, что любая конформная реализация обязана класть хранимые элементы в отдельный узел — с указателями на следующий и предыдущий элемент — память под который выделяется в куче. Мало того, что это требует +2 * sizeof(ptr) на каждый элемент — из-за использования аллокатора память под элементы выделяется в относительно произвольном порядке, что не позволяет нормально задействовать кеш процессора. Альтернативные реализации, такие, как abseil::flat_hash_map, могут иметь на порядок более высокую производительность за счёт использования структур данных, лучше использующих кеш процессора — ценой гарантий стабильности ссылок, разумеется.
Но есть и более тонкие ловушки. У std::multiset — упорядоченного контейнера, поддерживающего более чем однократное вхождение элементов — есть методы lower_bound, upper_bound и equal_range. Первые два метода возвращают первое и последнее вхождение указанного элемента в упорядоченной последовательности, а третий возвращает два итератора, между которыми находятся все элементы, равные предоставленному. В C++11 был добавлен неупорядоченный аналог этого контейнера — std::unordered_multiset. lower_bound и upper_bound по понятным причинам не имеют смысла для этого контейнера, а вот equal_range есть — видимо, для облегчения миграции с std::multiset. Но есть небольшая проблема: этот метод возвращает пару обычных итераторов. А это подразумевает, что все равные элементы хранятся в контейнере подряд. Соответственно, insert должен делать дополнительную работу по поиску места для вставки, и становится всё медленнее по мере увеличения числа элементов. В статье unordered_multiset’s API affects its big-O автор модифицировал реализацию unordered_multiset из libc++, убрав метод equal_range. Замеры показали, что это позволяет изменить код, чтобы существенно ускорить метод insert.
Производительность неупорядоченных контейнеров зависит, понятное дело, от структуры данных, используемой для реализации. Однако требования к API могут существенно ограничить возможные варианты реализации и, соответственно, потенциал для производительности.
Пожалуй, наиболее показательный пример применительно к C++ — это std::unordered_map. В отличие от std::map, к этому контейнеру нет требования, что элементы должны храниться в отсортированном порядке. По идее, это должно развязывать руки тем, кто пишет контейнеры. Однако стандарт C++ также накладывает серьёзные ограничения на стабильность итераторов для unordered_map. Именно, стандарт предписывает, что операции мапы инвалидируют ссылки на ключи и элементы только в том случае, если элементы удаляют — все остальные операции, включая всё то, что вызывает пересчёт хешей, ссылки сохраняют. На практике это означает, что любая конформная реализация обязана класть хранимые элементы в отдельный узел — с указателями на следующий и предыдущий элемент — память под который выделяется в куче. Мало того, что это требует +2 * sizeof(ptr) на каждый элемент — из-за использования аллокатора память под элементы выделяется в относительно произвольном порядке, что не позволяет нормально задействовать кеш процессора. Альтернативные реализации, такие, как abseil::flat_hash_map, могут иметь на порядок более высокую производительность за счёт использования структур данных, лучше использующих кеш процессора — ценой гарантий стабильности ссылок, разумеется.
Но есть и более тонкие ловушки. У std::multiset — упорядоченного контейнера, поддерживающего более чем однократное вхождение элементов — есть методы lower_bound, upper_bound и equal_range. Первые два метода возвращают первое и последнее вхождение указанного элемента в упорядоченной последовательности, а третий возвращает два итератора, между которыми находятся все элементы, равные предоставленному. В C++11 был добавлен неупорядоченный аналог этого контейнера — std::unordered_multiset. lower_bound и upper_bound по понятным причинам не имеют смысла для этого контейнера, а вот equal_range есть — видимо, для облегчения миграции с std::multiset. Но есть небольшая проблема: этот метод возвращает пару обычных итераторов. А это подразумевает, что все равные элементы хранятся в контейнере подряд. Соответственно, insert должен делать дополнительную работу по поиску места для вставки, и становится всё медленнее по мере увеличения числа элементов. В статье unordered_multiset’s API affects its big-O автор модифицировал реализацию unordered_multiset из libc++, убрав метод equal_range. Замеры показали, что это позволяет изменить код, чтобы существенно ускорить метод insert.
abseil.io
abseil / Abseil Containers
An open-source collection of core C++ library code
👍18❤1🤣1