TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #721 · 26.12

Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev

Hashtags

Резултати

Намерени 6 подобни публикации

Търсене: #subsurface

当前筛选 #subsurface清除筛选
Earth&Climate Tech

@earth_climate_tech · Post #318 · 14.06.2023 г., 21:58

​​Комплексное глубокое обучение для моделей месторождений. Нажал на кнопочку - готово! Руслан Мифтахов выпустил очередное видео, на этот раз про комплексное (end-to-end) глубокое обучение для моделирования месторождений. Посмотрите, будет интересно тем кто этим занимается. Видео основано на статье специалистов SLB "Deep learning for end-to-end subsurface modeling and interpretation: An example from the Groningen gas field". Как и рассказывает Руслан, идея end-to-end глубокого обучения для моделирования месторождений довольно крутая и у нее есть прекрасная аналогия в мире беспилотных автомобилей - собираем все возможные алгоритмы прогнозы обстановки на дороге и автоматизации в одну систему. Что если сделать подобное и для дорогостоящего и длительного процесса моделирования подземных месторождений чего угодно, хоть нефти, хоть минералов 🤔? Например, есть несколько видов данных (со скважин и сейсмические данные). Их нужно обработать, интерпретировать каждый вид данных особым способом, закартировать и наконец сделать 3D модель свойств горных пород и флюидов - типа, бурить сюда! Интересно, что модели машинного обучения уже представлены для каждого процесса в отдельности. Есть модели машинного обучения для обработки скважинных данных, есть модели машинного обучения для автоматического выделения тектонических разломов на сейсмике и так далее. Авторы статьи, делают один, на мой взгляд пока небольшой, шаг к полной автоматизации процесса интерпретации и моделирования. Они говорят, давайте соберем все эти модели и придумаем автоматический процесс, чтобы собрать данные, нажать на кнопочку и на выходе получить модель свойств всея Земли (на картинке). Это может быть модель пористости или плотности пород, да чего угодно. Я лично знаком с авторами, коллеги все-таки. Действительно, у них есть работающие компоненты, которые они собрали в статье под одним зонтиком. Это в основном сверточные нейронные сети для различных задач. Идея крутая, но даже для частичной ее реализации, на мой взгляд, нужно пройти большой путь. Ведь то, что у нас под ногами скрыто от наших глаз, в отличие от того, что видит камера беспилотного автомобиля. Подземного сканера с супер-разрешением все еще нет, где ты Илон Маск? Поэтому в игру вступают неопределенность и сдвиг данных. Неопределенность геологических моделей будет всегда, потому что этих моделей бескочнечность, ведь мы точно никогда не узнаем что там под землей, а можем лишь догадываться по обрывкам данных. Если эту неопределенность не учитывать - будет финансово больно, даже при наличии самых красивых моделей и самых глубоких обучателей. Сдвиг данных, возникает тогда, когда модель обученная на одних данных, попадает в новые условия. И в геонауках это серьезная проблема. Не смотря на аналогии, нет двух одинаковых месторождений, и даже если модель обучить на 1000 месторждениях, 1001-е будет другое и производительность модели будет значительно ниже и вероятно не понравится, людям принимающим решение о бурении скважины стоимостью стопицот миллионов . Умные геоинженеры и обучатели машин сейчас работают над тем, чтобы побороть эти две проблемы для моделирования месторождений, но с переменным успехом (на мой взгляд опять же). Пост может показатья кому-то скептическим, но на самом деле я полон оптимизма. Каких-то пять лет назад даже 10-я часть предложенных алгоритмов была невозможна по разным причинам, а сегодня уже идут разговоры о полной автоматизации моделирования с помощью машинного обучения. Повсеместная адаптация займет еще много лет, но все равно впереди блестящее будущее! 📖статья #ML#AI#geo#subsurface

Earth&Climate Tech

@earth_climate_tech · Post #353 · 25.07.2023 г., 16:00

Breakthrough Energy Билла Гейтца вкладывается в геологический водород Вышла новость, что Breakthrough Energy Билла Гейтца вложилась в стартап (91 мульён долларов), который работал в секретном режиме буквально до прошлой недели. Называется Koloma, состоит сплошь из выходцев из нефтянки. Koloma собирается добывать геологический водород на среднем западе США. Ну и конечно, планирует подать заявку на получение субсидий в соответствии с Законом о снижении инфляции (IRA) 😁. Билл Гейтц считает водород "швейцарским ножом" в энергетике (кстати, почитайте его книжку How to Avoid a Climate Disaster, даже если не согласны с повесточкой - она интересная!) #hydrogen#decarbonization#subsurface

Universe Mysteries 🪐

@cosmomyst · Post #144 · 17.08.2025 г., 00:11

🪐 Scientists are exploring the possibility that life could exist deep below the surface of Mars, where underground water reservoirs may still provide a stable environment protected from harsh surface radiation and extreme cold. Evidence from orbiting spacecraft suggests networks of ancient, buried rivers and salty brines—which could help microbes survive in the Martian subsurface even today. ✨ #Mars⚡#life⚡#subsurface⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space 👉subscribe Universe Mysteries

Earth&Climate Tech

@earth_climate_tech · Post #381 · 04.09.2023 г., 21:57

​​IMAGE'23 и генерация моделей по подсказке Всем привет! Пропал-пропал, был на конференции IMAGE'23. Это такая огромная, на тысяч 6-7 человек, геотехническая конференция в Хьюстоне для специалистов в области геонаук, полезных ископаемых и (уже) декарбонизации. Самые большие секции были посвящены машинному обучению в геонауках. На одной из них я показал наши эксперименты в области Генеративного ИИ (Generative AI), а именно первые наброски того как можно генерировать реалистичные геологические\сейсмические модели с помощью семантически понятного текста. Типа говоришь "йоу, модель, сделай мне низкочастотный сейсмический разрез с двумя сбросовыми разломами в восточной части и добавь немного шума". И на выходе получаешь реалистичный сейсмический разрез удовлетворяющий твоему описанию, или получаешь сразу несколько разных разрезов, ведь генерация стохастическая. Использовали мы немного модифицированную версию знаменитой нейронки Dalle-E2 от Open AI, которую обучили с нуля. Точнее три ее компонента: ✅CLIP - для семантической связи между текстом и изображением(моделью) и преобразования последнего в векторное представление; ✅ Diffusion Prior - для стохастической генерации текстовых векторных представлений в текстовые представления изображения(модели) и ✅ Decoder - для стохастической генерации самих изображений(моделей) из их векторного представления. Последняя нейроночка использует диффузионную модель. Получилось неплохо! На второй картинке пример моделей, которые сгенерировались по соответствующей подсказке. Конечно отправлять в продакшн еще рановато, но идея, кажется, работает не только на кошечках и собачках. #Image23#conference#ML#AI#subsurface

Earth&Climate Tech

@earth_climate_tech · Post #387 · 11.09.2023 г., 18:54

RockPhyPy - рок-физика 🤘 в Питоне 🐍 Рок-физика - занимательная часть наук по исследованию недр, а не то что вы подумали. Правильный перевод конечно "физика горных пород", но на пост-советском пространстве это название заразервировала немного другая дисциплина. Рок-физика изучает взаимоотношения между физическими свойствами пород и геофизическими наблюдениями в разных условиях. Например, как количественно оценить изменение свойств горных пород на основе поведения сейсмических волн, распространяющихся через них. В рок-физике особое внимание уделяют и эффекту наличия того или иного флюида в порах горных пород и как в связи с этим изменится геофизический сигнал. Это важно для УВ, захоронения СО2 и геотермалки. Такое вступление, чтобы представить вам RockPhyPy - набор инструментов в Питоне для моделирования в этой области. Вся научная основа взята из Справочника рок-физика (Rock Physics Handbook). И в догонку статья с описанием API и всего инструментария. #subsurface#geo#programming#rockphysics

Earth&Climate Tech

@earth_climate_tech · Post #302 · 26.05.2023 г., 16:00

Вся геология Нидерланд в одном проекте в Petrel Petrel - это наверное самый популярный софт для геолого-геофизического моделирования, интерпретации и визуализации. Как Автокад для проектировщиков. Университет в Утрехте опубликовал всю геологическую базу данных Нидерланд в едином проекте в Petrel 🤯: 10,599 2D сейсмики, 280 3D сейсмики, 6,590 скважин and 4,752 измерений в скважинах. Может для обучения пригодится! #seismic#database#geo#subsurface