Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
930 links
ЛаМПовое с Бобровским
Download Telegram
А какой может быть правильный условный "DDD"? Если вы много пишете, например, на F#, то в достаточно крупном проекте наступает момент, когда вы начинаете "рефакторить" функции, написанные ранее для реализации начальных фич, в хорошо "гранулированный" и многократно используемый DSL.

Теперь вы добавляете и перекомбинируете функции для создания новых возможностей: ваши функции становятся "словами", которыми вы просто записываете новые фичи-"предложения". И чем дальше погружаетесь в проект, тем таких языков предметных областей появляется больше -- на каждый логический уровень -- получаем то самое метапрограммирование по Алану Кэю (тысячекратная компактность кода).
🤔349🔥7💯21
Rust прекрасный язык, но... его экосистема тотально заражена async-ами.

Если сразу перепрыгивать через ступеньку, то, возможно, с Си/С++ лучше переходить на Zig (хорошие заметки по нему на хабре).
🤔238👍4🐳4
Вопрос от курсанта:

На задании «Решение проблемы таксономии» на ООАП-2 кажется я словил озарение. Мне вдруг теперь кажется что ООП действительно про классы и методы(интерфейсы взаимодействия) и про грамотное их проектирование в том смысле, что вся эта императивщина типа условных операторов и т.п. в правильно спроектированной ООП системе в принципе не должна существовать. Так ли это или меня понесло куда то не туда? Просто выполняя задания я вдруг осознал что полиморфизм может спокойно заменить ветвления, при этом у нас исключаются ошибки и т.д. Вообще, в мейнстриме кто-то так пишет?

Конечно, в СильныхИдеях на эту тему немало материалов, кстати как раз следующий курс "Быстрая прокачка в ООП" об этом, ну и главное третий прикладной курс по ООАП.
Внутри методов конечно от условных операторов во внутренней логике никуда не деться, но на системном уровне полиморфизм прежде всего и другие механизмы из ФП (про error free code как раз сейчас пишу несколько материалов в СИ). В мэйнстриме так никто не пишет, в мэйнстриме пишут, как на картинке )

А вот выпускники и PhD Лиги Плюща, MIT, Оксфорд пишут по-взрослому (отсюда и тысячекратная компактность кода).

Я стараюсь учить именно этим подходам (третье правило Школы), и они конечно далеко не всем подойдут (а кому не подойдут, с 18 марта начну массово расстреливать отчислять).
🫡297🤔4🔥3🐳1
Более часа с начала в 10:00 обещанного тестового предвыборного голосования (защитить химкинский лес несчастные деревца от распила) на elec.mos.ru
сервер успешно лежал. Веб-клиент отваливался по таймауту; ну можно было наверное на фронтенде впилить простое сообщение про "подождать"? (upd: после 11 добавили), с мобильного пишется такое ^^^

"огромный интерес" "беспрецедентное количество" бла бла бла

А заранее, что, не известно было, сколько народу максимально придёт?

Или проектировщики не изучали мой материал "Формализуем понятие надёжности системы" из СильныхИдей? :)
"...мы хотим создавать системы, которые гарантированно будут правильно функционировать при наличии сбоев, перегрузок и т. п."

Ещё в середине 2000-х, помню, я едва не схантился на какой-то ММО (пиратские войны :), где заказчик выкатил требование 15 тысяч rps. Да без проблем (не помню, вроде ещё Core2 даже не вышел). Берём буст на плюсах, и фигачим свой сетевой сервер. Не пошёл к ним, потому что они давали 55 тысяч, а в другом месте 90 предложили (надо было переделывать движок торк3d , тоже конечно на c++, тогда не было никаких альтернатив, под постапокалиптическую ММОРПГ ); тогда это было очень круто, ну а сегодня, аналог примерно 300k, кстати, уже и не очень.

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

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

P.S. Нам конечно расскажут потом сказки про хакеров, но в любом случае причина подобного всегда ровно одна: кривая архитектура.

P.P.S. смс-ка на голосование кстати пришла с кодом 6662 — вот она, бесовщина, где сидит! )
😁36👍13🤔4🫡2🐳1
С одной стороны, система голосования -- светская. С другой стороны, если некоторые социальные символы явно задевают религиозные чувства десятков миллионов человек в РФ (что явно прописано в формальных "пророчествах", официально признанных "святыми" в соответствующих конфессиях), как было с 666 в ИНН например, ну наверное стоит это учитывать.
А что если такой код присылается намеренно? "в целях оскорбления религиозных чувств верующих"?

Например, в хорошо известном банке я недавно менял карточку, и в новой оказался издевательский срок 2/34, а номер заканчивается на 6313. То есть это фактически "три шестёрки + 13"! Сотонисты! )))

Пофиксить эту проблему (как, кстати, в ФНС сделали), не выдавать в коде некоторые числовые комбинации, работа на 1 месяц 1 час. До 15 марта можно ещё успеть!

P.S. А знаете, почему сделали срок 2/34, а не 3/45? Потому что в 2038-м закончится юникстайм, и на этом всё )
🤔39👍8🤯6😁3🫡2
Почему сегодня уже не стоит начинать новые проекты на плюсах:
вверху C++11, внизу условный C++32.
("C++ and The Next 30 Years")
😁19👍15🤔10🤓2🔥1
"Любая достаточно развитая некомпетентность неотличима от злого умысла"
— закон Грея
👍32🤔13😁7🫡4🔥2
Распределённые системы сложны прежде всего потому, что:
1. Состояние "размазано" между узлами.
2. Сами узлы ненадёжны.

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

Для минимально взрослого понимания вам необходимо пройти оба трека: по параллельным вычислительным моделям, и теорию по highload-системам.

Потому что распределённое программирование сложнее параллельного по следующим причинам:
-- Каждый процесс имеет своё собственное адресное пространство.
-- Сеть имеет ограниченную производительность.
-- Некоторые ресурсы доступны лишь локально.
-- Распределённая система может давать частичный сбой.
-- Распределённая система считается открытой: в ней сосуществуют независимые пользователи и вычисления, что усложняет тему безопасности.

Применяем к данной теме фундаментальный принцип: разделяем проблему на идеальный случай и ряд неидеальных расширений; даю на курсе решение для идеального случая, и как модифицировать это решение для продуктивной обработки неидеальных расширений.
👍38🔥95🫡2🐳1
Ажиотаж "программирование всё", резко вспыхнувший с явлением ChatGPT в конце 2022-го, быстро слился почти до нуля, потому что 98% профессиональных программистов фишку распробовали, и оказалось, ну, да, в рабочем процессе мелкие джуниорские задачки решает (но надо очень внимательно перепроверять и тестировать), + как хорошее поисково-справочное дополнение к SO, но не более того. А GPT-4 вообще зашкварился, поэтому рекомендация тут простая:

Используйте AI-ассистанты только для вещей, которые трудно реализовать, но легко проверить и легко исправить.

Да, это например задачки с чётко формализованным условием и набором тестов, как на литкоде, но вы когда-нибудь видали такое в рабочих тикетах?

P.S. На днях Дженсен Хуанг (СЕО компании Nvidia) выдал эпическое послание ко всему миру ))) в котором заявил, что учёба на программиста это дескать пустая трата времени, разработчиков вот-вот "с лёгкостью" заменит искусственный интеллект, поэтому учиться информатике сегодня -- это тратить время впустую.

Мои же 2 копейки такие, что наоборот тащите себя и детей максимально в математику и computer science. Потому что разрыв между джуниорским уровнем и даже уже миддлами крепкими будет продолжатьстремительно расти (ежели по мэйнстримовски, одни учат spring boot, а другие spring core).

btw, в NVIDIA сегодня вливаются многие миллиарды долларов инвесторов не потому, что прямо такой ажиотажный спрос на "gpu for ai/ml", а прежде всего потому, что особо их больше и некуда сегодня вкладывать в ИТ.
По факту же, NVIDIA -- это пузырь на откровенном ai-хайпе, который раздувается покруче пузыря доткомов.
38👍205🫡2😁1
"требования заказчика" всегда лучше понимать как "фантастические представления заказчика о требованиях"
👍37😁241🐳1💯1
Есть такой классный программист Альберто Брандолини, который прославился принципом асимметричности чуши: количество энергии, необходимой для опровержения чуши, на порядок больше, чем требуется для её производства.

Однако менее известно другое его высказывание: разработка программного обеспечения -- это процесс обучения; рабочий код -- это побочный эффект.

Превращайте работу прежде всего в процесс самообучения, и пусть вам за это платят.
🔥6413🫡8👍31
ИИ поздравляет всех женщин-программисток! 💝💝💝

Между прочим, первым программистом была женщина -- Ада Лавлейс (откопал свою заметку 1996-го года :) =>
"Клянусь Дьяволом, что не пройдет и 10 лет, как я высосу некоторое количество жизненной крови из загадок Вселенной, причем так, как этого не смогли бы сделать обычные смертные умы и губы. Никто не знает, какие ужасающие энергия и сила лежат еще неиспользованными в моем маленьком гибком существе..."

В честь Ады в частности был назван язык Ада =>
"Удивительный путь удивительного языка, на котором успешно и безошибочно работают космические станции и военные комплексы, скоростные поезда, подземки и самолёты, и про MetaLanguage-семейство как логический финал развития любых технологий, нацеленных на топовый уровень сложности."

Вот с тех пор вся эта чертовщина по сей день и тянется )))

Вы кстати знаете, что сегодня ООН объявила новый девиз Международного женского дня на 2024-й год?

Invest in Women, Accelerate Progress
Инвестируйте в женщин, ускоряйте прогресс


Пацаны, усвоили? Выворачивайте карманы! ))))

P.S. В тему, хорошая песенка сегодня вышла "Последняя Любовь" от талантливого russian rapper and singer, слушаю без перерыва; но за одну ссылку на м**********а теперь могут отправить в ссылку. Я лайк поставил ей на ютубе, значит всё теперь, штраф полмиллиона рублей?
🎉41🤔6👍5🤯2🫡1
Вчера делал КТ мозга в клинике хорошо известной коммерческой сети, и на терминале регистрации всплыло вот такое прекрасное.

Насколько помню, по этому багу помогает лишь апгрейд винды до самой последней версии :) И не спасут тут никакие локальные обновления библиотек...

К OneDrive.exe тоже есть большие вопросы: это как понимать, выходит, что вся медицинская инфа поциентов московских клиник сливается на американские облачные серверы SkyDrive?

=

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

Ну вот только хорошо бы правильные слова сразу подтверждать законодательно. Например, ввести юридическую ответственность за оплату лицензий на софт откровенно недружественных корпораций вроде Apple Microsoft, SAP и всех других подобных, которые ушли из России, причём официально заявив, что делают это "в знак солидарности" с нашими врагами. Как вообще понимать любое их финансирование через покупку лицензий?

Однако всё останется конечно как и было (в лучшем случае) -- ради сохранения какого-то странного "международного лица", в которое откровенно плюют.
И если вы попробуете сегодня поставить свободную винду, то, как говорил, вам легко могут влепить такой штраф, что останетесь в буквальном смысле без штанов.

P.S. Админу клиники зачот за ник "T-1000" :)

P.P.S. Windows в России — это полностью вражеская экосистема (что не значит, что ей не надо пользоваться :) надо, просто её надо "чебурнетизировать").
👍38🤔10🤯7🫡3🔥1
Ну вот и всё: трёхсоттысячелетняя история homo sapiens как самого умного вида на планете, закончена. Это было славное время.

Ещё свежий позитивчик:
..."Godfather of AI" Geoffrey Hinton now thinks there is a 1 in 10 chance everyone will be dead from AI in 5-20 years.
...Weeks ago, we learned that Yoshua Bengio, another Turing Award winner, thinks there's a 1 in 5 chance we all die."
🐳31🔥10💯52🤯2
мем такой на днях завирусился:

"Ceiling is being raised. Cursor's copilot helped us write "superhuman code" for a critical feature. We can read this code, but VERY few engineers out there could write it from scratch." (оригинал на ts)

btw, chatgpt реально стал злопамятным: он теперь всё помнит!
24🤔19🫡2