Aspiring Data Science – Telegram
Aspiring Data Science
386 subscribers
465 photos
12 videos
12 files
2.15K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
#biology #neurons #brain #conciousness #ethics

"Некоторые люди в коме находятся в сознании и ученым даже удалось установить контакт, задавая вопросы и получая ответы "да-нет". Это пугающее открытие ставит новые этические дилеммы - что, если человек в коме испытывает постоянную боль, может ли он принимать решение об отключении систем жизнеобеспечения?"

https://www.youtube.com/watch?v=K7czo-edP2w
🌚1
Жутковатая статья [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
🌚1
#wisdom #fun

Синтаксический сахар вызывает рак точек с запятой.
– Алан Перлис
#hardware #google #tpu

"В этом году у Google выйдет шестое поколение TPU Trillium; кроме того, в минувшем апреле компания анонсировала и Axion — свой первый центральный процессор, который появится в конце года. И здесь Google уже не первая: Amazon выпустила свой Graviton в 2018 году, китайская Alibaba последовала её примеру в 2021 году, а Microsoft представила чип Cobalt 100 в ноябре прошлого года. Все они основаны на архитектуре Arm, более гибкой и энергоэффективной, чем x86, которой привержены Intel и AMD."

https://3dnews.ru/1109922/modeli-ii-gemini-i-apple-intelligence-obuchayutsya-na-sobstvennih-tenzornih-protsessorah-google
#python #codegems #typing #cleancode

Пример применения всратых средств типизации Питон.

Предположим, что требуется создать функцию top(it, n), которая возвращает n наибольших элементов из итерируемого объекта it:

>>> top([4, 1, 5, 2, 6, 7, 3], 3)
[7, 6, 5]
>>> l = 'mango pear apple kiwi banana'.split()
>>> top(l, 3)
['pear', 'mango', 'kiwi']
>>>
>>> l2 = [(len(s), s) for s in l]
>>> l2
[(5, 'mango'), (4, 'pear'), (5, 'apple'), (4, 'kiwi'), (6,
'banana')]
>>> top(l2, 3)
[(6, 'banana'), (5, 'mango'), (5, 'apple')]

как же такую функцию "правильно" аннотировать?

Казалось бы, можно сделать через TypeVar так:
from typing import TypeVar
T = TypeVar('T')

def top(series: Iterable[T], length: int) -> list[T]:
ordered = sorted(series, reverse=True)
return ordered[:length]

Вопрос в том, как ограничить T. Это не может быть Any или object, потому что series должен работать с функцией sorted.
Правильное, типа, решение - объявить протокол, поддерживающий операцию сравнения (для сортировки):

from typing import Protocol, Any
class SupportsLessThan(Protocol):
def __lt__(self, other: Any) -> bool: ...


и уже потом ограничить TypeVar этим протоколом:

LT = TypeVar('LT', bound=SupportsLessThan)
def top(series: Iterable[LT], length: int) -> list[LT]:
ordered = sorted(series, reverse=True)
return ordered[:length]

Ну и типа сидишь такой, думаешь: а стоит ли прохождение проверок типов mypy этих усилий, дополнительного кода, введённых несовместимостей? Я, честно, ХЗ.
#python #books #typing #cleancode

В книжке Fluent Python пишут:

"Лица, отвечающие за сопровождение больших корпоративных кодовых баз, говорят, что многие ошибки проще обнаружить и исправить с помощью программ статической проверки типов, до запуска системы в эксплуатацию. Однако следует отметить, что в известных мне компаниях автоматизированное тестирование стало стандартной практикой и получило широкое распространение задолго до внедрения статической типизации.

Даже в тех контекстах, где статическая типизация наиболее полезна, на нее нельзя полагаться как на единственный критерий правильности. Вполне можно столкнуться с:
Ложноположительными результатами
Инструмент сообщает об ошибке, когда ее нет.

Ложноотрицательными результатами
Инструмент не сообщает об ошибке в заведомо неправильном коде.

Кроме того, требуя проверять типы всего на свете, мы утрачиваем часть выразительности Python:

некоторые удобные возможности нельзя проверить статически, например распаковку аргументов вида config(**settings);

программы проверки типов в общем случае плохо поддерживают или вообще не понимают таких продвинутых возможностей, как свойства, дескрипторы, метаклассы и метапрограммирование;

программы проверки типов не поспевают за выходом новых версий Python, отвергают код, содержащий новые возможности, или даже «падают» – и иногда это продолжается больше года.

Самые простые ограничения на данные невозможно выразить в системе типов. Например, аннотации типов не могут гарантировать, что «величина должна быть целым числом > 0» или что «метка должна быть строкой длиной от 6 до 12 символов ASCII». Вообще, аннотации слабо помогают отлавливать ошибки в прикладной логике.

С учетом всех этих подводных камней аннотации типов не могут считаться оплотом качества программного обеспечения, а требовать их задания во всех случаях без исключения значило бы усугубить их недостатки.

Рассматривайте программы статической проверки типов как один из инструментов в современном конвейере непрерывной интеграции (CI) наряду с автоматизированными тестами, линтерами и т. д. Цель конвейера CI – уменьшить количество программных ошибок, а автоматизированные тесты находят многие ошибки, выходящие за рамки возможного для аннотаций типов. Любой код, который можно написать на Python, можно на Python и протестировать – с аннотациями типов или без них."

"Я сам большой поклонник тестирования, но при этом часто занимаюсь исследовательским кодированием. Во время экспериментов тесты и аннотации типов не особенно полезны. Они только тормозят работу."

"Если кодинг – не ваша профессия, а лишь полезный инструмент, применяемый в профессиональных занятиях, или нечто такое, что вы изучаете ради удовольствия, то, пожалуй, аннотации типов нужны вам не больше, чем жесткие ботинки и металлические набойки большинству велосипедистов.
Просто кодируйте."

"Я согласен, что пользователи большинства API выигрывают от наличия аннотаций типов. Но Python привлекал меня – среди многих других причин – тем, что предоставляет чрезвычайно мощные функции, способные заменить целые API, и, более того, мы сами можем писать такие функции.

Рассмотрим встроенную функцию max(). Она мощная, но понять ее легко. Однако, как будет показано в разделе «Перегрузка max», чтобы ее правильно аннотировать, нужно 14 строчек аннотаций типов, и это не считая typing.Protocol и нескольких определений TypeVar, необходимых для поддержки этих аннотаций.

Я боюсь, что если библиотеки будут строго требовать аннотирования типов, то программисты раз и навсегда зарекутся писать такие функции."
#python #typing #cleancode

Ну и вдогонку.

"У аннотаций типов есть достоинства, но есть и цена. Во-первых, нужно потратить усилия, чтобы понять, как работает система типов. Но это одноразовые затраты.
А есть еще и постоянные, которые придется нести всегда.

Настаивая на вставке аннотаций везде и всюду, мы теряем часть выразительности Python. Такие замечательные средства, как распаковка аргументов - например, config(**settings), – выходят за пределы возможностей программ проверки типов.

Если вы хотите подвергнуть вызов вида config(**settings) проверке типов, то должны будете выписать каждый аргумент. Это наводит меня на воспоминания о Turbo Pascal, на котором я писал 35 лет назад.

Библиотеки, в которых используется метапрограммирование, трудно или даже невозможно анотировать. Конечно, метапрограммирование можно употребить во вред, но одновременно это вещь, благодаря которой со многими Python-пакетами так приятно работать.

Спасибо Гвидо за факультативную типизацию. Давайте будем использовать ее так, как она задумана, и не пытаться аннотировать все вокруг в строгом соответствии со стилем кодирования, напоминающим Java 1.5."

В общем, нужно найти баланс между всратостью и разумностью )
#music #rock #chyop

Год тому познакомился с парнишкой в поезде. пишет сегодня, мол, Анатолий, зацени, новую песню выпустил. Как вам?

https://www.youtube.com/shorts/XfY2vntaaTI

https://lnkfi.re/Clouds_
#astronomy #dangers

«DART дал нам представление о сложной гравитационной физике, которую невозможно изучить в лаборатории, и все эти исследования помогают нам узнать больше для защиты Земли в случае возникновения реальной угрозы. Существует ненулевая вероятность того, что астероид или комета приблизится и подвергнет планету опасности. Теперь у нас есть дополнительная линия защиты от такого рода внешних угроз», — считает Ричардсон.

https://3dnews.ru/1109977/missiya-nasa-dart-pomogla-uchyonim-uznat-bolshe-o-geofizike-legashchey-v-osnove-formirovaniya-i-evolyutsii-asteroidov
#python #vb #with #contextmanagers

"Не исключено, что контекстные менеджеры окажутся почти такими же важными, как сами подпрограммы. Мы затронули лишь самую верхушку айсберга […].

В языке Basic есть предложение with, как и во многих других языках. Но все они делают совсем не то – они лишь экономят время на повторяющемся поиске атрибутов с точкой, не производя ни инициализации, ни очистки. Не нужно думать, что раз названия одинаковы, то одинаковы и функции. Предложение with – очень мощная штука.

– Рэймонд Хэттингер"

Капец. Так вот откуда Рэй взял идею конструкций with. А какого хрена тогда было не сделать так же, как в Visual Basic, вложенные with с сокращённой нотацией?! Это ж очень удобно. Для доступа к полю A.B.C в VB можно написать
with A.B
.C=...

Кстати, до сих пор не пойму, почему в Python переменная, объявленная в контекстном менеджере, доступна ПОСЛЕ выхода из контекста. Это выглядит крайне нелогично:
import pymc as pm

# Define a model using a context manager
with pm.Model() as model:
# Define random variables within the model
mu = pm.Normal('mu', mu=0, sigma=1)
sigma = pm.HalfNormal('sigma', sigma=1)
observed_data = pm.Normal('observed_data', mu=mu, sigma=sigma, observed=[1.2, 1.8, 2.4])

# Outside the context, you can still access the 'model' and the variables
model.do_something()
1
#fun #jobs

- Человек, пой снова, мне понравилось!
- Позабыты хлопоты, остановлен бег, вкалывают роботы, счастлив человек...

- Громче!!!
#law #security

"Было установлено, что Uber нарушала Общий регламент ЕС по защите персональных данных (GDPR), передавая и храня информацию о европейских таксистах на серверах в США в течение более двух лет. Речь идёт о разнообразной конфиденциальной информации, включая учётные записи водителей Uber, лицензии на работу в такси, данные о местоположении, фотографии, платёжные реквизиты, удостоверяющие личность документы и др.

DPA уже дважды штрафовала Uber. Первый штраф в размере €600 тыс. был наложен в 2018 году после того, как компания не сообщила об утечке данных, произошедшей двумя годами ранее. В 2023 году Uber была оштрафована на €10 млн за неполную детализацию периодов хранения данных о европейских таксистах. Нынешний штраф стал самым крупным, но Uber собирается его обжаловать."

Закон о хранении данных на серверах определённой страны, если честно, тупейший, и нарушает права людей. На мой взгляд, он не связан с безопасностью клиентских данных НИКАК. От того, расположен сервер в Брюсселе или Атланте, его безопасность не зависит (при условии нахождений в дата-центре с нужным сертификатом защиты). Единственное желание, которое прослеживается - это желание правительств иметь доступ ко всем данным своих граждан. А я ХОЧУ хранить свои личные данные в любой стране, где мне надо, и подите все нахер со своими указаниями, где можно хранить мои данные.

https://3dnews.ru/1110020/uber-oshtrafovali-v-niderlandah-na-290-mln-za-nebezopasnuyu-peredachu-dannih