Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
930 links
ЛаМПовое с Бобровским
Download Telegram
Из отчёта курсанта:

Почти 2 недели не возвращатся к проекту по ETL процессам, т.к. были срочные рабочие задачи. Всегда сложно после перерыва вникать обратно в проект, даже если бОльшую его часть написал ты сам. Это больше моя психологическая проблема. Решение наверное уделять проекту постоянно хотя бы 15 минут в день, чтобы контекст не пропадал.

Да, у многих так; вы придерживаетесь рекомендаций по скоростному ведению заметок с трека "Элитный программист"? Я там третий материал добавил недавно в подборку "Технологии поддержки мгновенной перефокусировки".

Ну и документировать проект конечно очень желательно , на третьем логическом уровне, где что зачем. За 15 минут , просто что-то ковыряя в коде , вы скорее всего ещё больше запутаетесь. Лучше за эти 15 минут пишите документацию и комментарии (мышление письмом).
👍3113113🤔2
Обновлённый список наших блогеров.

В этом месяце безусловные победители: Новиков и Доронин! 💥🤘🚀

Конечно, 80% со временем сливаются, ну штош...

Единственная причина, по которой на сотни ваших резюме поступает ноль откликов -- это вы сами. Вы скучные, вы ленивые, вы не хотите учиться, вы не хотите развиваться, ваш гитхаб уныл и шаблонен, вы не ведёте блог, ваши личные странички в соцсетях стандартны, ваш нетворк нулевой, или в лучшем случае в него вошли три с половиной придурка...
3323👍11💯52
Такое мы забираем:
Marten (.NET Transactional Document DB and Event Store on PostgreSQL)
Use proven PostgreSQL database engine, its fantastic JSON support and ACID compliance as the underlying data store.
🤔46👍22🤝2
Пост ВКонтакте:
Почему подходы мейнстрима, где кодовые базы — сплошные big balls of mud, почему весь этот "детский сад штаны на лямках", так популярны, и какую алгебру (с учётом тотального детского сада) вам надо изучать прежде всего.

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

...В одном нагрузочном (как предполагается:) проекте посоветовал пацанам выбрать эрланг 🙈

Почему Erlang? Ну потому что с учётом всех его технических плюсов, оказывается также очень удобно интегрировать семантику бизнес-процессов и его семантику. Почему удобно? :) Потому что он прозрачно маппится в алгебру процессов (π--calculus), но это уже совсем другая темка...
👍4714🤔113
/rtfm Обычно люди, которые покупают книги по программированию, никогда их не читают. Между прочим, /rtfm читается также, как read the fine manual
42🤔17👍9💯5🐳1
В честь дня математики написал пост в вк.

Я бы мог на эти темы писать бесконечно , но... слишком много ресурсов требуется , а прочитает потом два с половиной человека, и сразу забудут. Тут моя миссия скорее не обучить, а увлечь, и затем дать простой и короткий роадмап.

Я не забросил кстати игру для обучения программированию (которую обещал к 1 декабря :). На самом деле 80% времени ушло на UI. Я перебрал с десяток самых разных 2D-движков - ни одного и близко нету , чтобы отвечал моим достаточно простым требованиям. Поэтому как обычно пришлось всё делать самому :) графика , анимация, переопределение кучи стандартных контролов UI...
Возможно к 1 января сделаю какой-то альфа-прототип с начальными уровнями, если снова не возникнет засад с UI (не забывая, что всем абсолютно пофиг:) .

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

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

После чего достаточно естественно мы приходим к языкам наподобие Erlang, где модель акторов прекрасно формализуется с помощью activity semigroups (фундаментальная часть математической семантики эрланга), ну и т.д.
Загадывать ничего не буду конечно, ведь надо ещё и что-то кушать...

=

"Не учишь матан -- превратишься в метан." (с)
(матан на самом деле наименее востребован в cs, а что надо - в закрепе основного паблика)
🔥58👍223🏆2🥰1
В продолжение вчерашнего ↑↑↑
Чем раньше начинающий начнёт въезжать в эти темки, тем лучше, потому что если человек, претендуя на звание Программиста, по жизни потенциально годится лишь клепать CRUD и рисовать формочки мышкой, то его надо поскорее отправить в биореактор на курсы "как быстро войти в ит с гарантией трудоустройства".

Где-то с уровня рекурсии пропадает классическая схема составления кода из последовательности инструкций, "оно" какой-то магией начинает работать само, но как правильно составлять подходящие сложные заклинания, совершенно непонятно, а вся предыдущая муть императивщина и 100500 решённых задачек на литкоде/с собесов с этим вообще никаким боком не стыкуется.
1👍56🔥10🤔4
"Ну и что полезненького мне даст вся эта ваша математика??"

Например, вот как писать код по-взрослому:
Dependently-typed HTTP headers in Idris
(моделирование HTTP-заголовков строго по RFC )

Дана сермяга с достаточно подробным разбором: завтипы, correctness by construction, making illegal state unpresentable etc.

Для повседневных задач получается конечно накладно, но такой (абсолютный) уровень качества обычно и не требуется. А вот для критически важных систем критически важно.

Хотя... если вы оцените, сколько часов/дней/недель... подчас тратите на отладку небольших кусочков кода, возможно даже такой формальный подход окажется стратегически куда выгоднее.
👍5997👏2🤝1
Вдогонку-2. На самом деле практически в любом функциональном языке вы можете легко и просто реализовать парадигму MISU (marking illegal states unrepresentable)! Потому что по большому счёту ФП именно MISU и подразумевает автоматически.

Вам остаётся лишь make representable states valid. Для этого вам прежде всего понадобятся sum types: если вы с их помощью определите набор допустимых состояний, то все эти состояния должны быть корректными и иметь определённую семантику. Другими словами, если ваш тип описывает все возможные состояния, то каждое из этих состояний должно иметь осмысленное значение в контексте вашей программы. Нельзя оставлять "дырки" в определении типа (когда некоторые состояния не имеют смысла).

Далее вам надо задействовать exhaustive pattern matching, чтобы не забывать обрабатывать все возможные состояния в функциях, использующих соответствующий тип. Если вы упустите какое-либо валидное состояние, компилятор выдаст ошибку.

И поскольку типы строго определены, а все возможные состояния перечислены, невозможно будет создать или вернуть "нелегальные" состояния: сам компилятор не позволит вам сделать это.
👍6065🤔4💯3
AI изобрёл ветряк, который в 7 раз эффективнее традиционной версии, настраивается на турбулентность окружающих зданий, эффективно работает при скорости ветра 3,6 м/с (номинал большинства турбин -- 10 м/с) и т.п.
(отсюда)

Белковый инженер до таких конструкций (справа вверху) скорее всего не додумался бы в принципе :)

Подозрение, что и будущие ИТ-архитектуры, которые станет создавать AI с нуля, тоже смогут работать значительно продуктивнее современных, но... внутри будут так невероятно "запутанны" для человеческого понимания, что кожаным станут совершенно недоступны.

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

Вместо значений — "волновые функции", вместо ИЛИ -- их "суперпозиция", вместо И -- их "коллапс" и т.п. Такие "калкулусы" могут быть представлены многомерными тензорными вычислениями, где каждое измерение соответствует отдельной "оси" параллельных операций etc.
🤔44👍21🔥7🐳75
Если вы сеньор или тимлид, при устранении всяческих багов и неполадок (не ваших :) придерживайтесь дублирования: лучше, чтобы этими правками занималось сразу несколько человек (достаточно автономно, но и достаточно синхронно).

А по-взрослому, донам сегодня выложил очередной материал "Отладка как наука". Существует ли теория отладки в целом? В основе теории отладки лежит универсальный метод: вы можете её ускорить так [...]
👍51😁14🤔2
Думаю вот, а тем ли я вообще занимаюсь? ↑↑↑

Программист приходит к гадалке, она ему:
-- Я вижу в вашем будущем много кофе и бессонных ночей...
-- Да это не будущее, это мой обычный спринт!
😁637🤯4🤔3🐳3
ит-работодатели: я открыл вакансию джуниора, и мне за день насыпалось 100500 резюме гы гы гы

ит-сеньоры: я открыл своё резюме, и мне за день насыпалось 100500 вакансий гы гы гы

Хвастанье, что толпа ломится на джуниора -- это просто от безысходности (хотя конечно щёки приходится надувать: дескать у нас такая крутая команда супер-пупер-спецов, просто вот в помощь им набираем; ага ага).

Попробуйте найти даже не сеньора, а хотя бы одного крепкого мидла с норм опытом. Ну или продолжайте пилить проэкты пионерскими дружинами, постепенно раща их в комсомольцы. Их уже ждут в других, более адекватных местах :)
👍52💯133❤‍🔥3🏆1
Сегодня связываться с hr-юшами и рекрутерами становится буквально физически опасно. Они успешо сломали цивилизованный найм более чем полностью, а дальше активно переходят на откровенный скам.

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

=

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

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

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

Будьте осторожны и всегда оставляйте за собой немного свободы действий. Возможно, вы действительно не прошли собеседование (и хорошо ещё, что вас при этом ушлые эйчары не развели на деньги).

Но, с другой стороны, всё более вероятно, что на этой вакансии вообще никто не получил и не получит работу…

Будь осторожен. Следи за собой. (с)
46🤔25💯10🙏6🔥4
Такое мы сразу ставим: qutebrowser is a keyboard-focused browser with a minimal GUI. It’s based on Python and Qt and free software.

Однако ключевая его фишка даже не столько клавиатурное управление, сколько "VIM-like browser".

Ньюбы могут предварительно геймифицироваться в теме тут:
vim-adventures.com
47👍7😁7❤‍🔥4🤔2
Я сперва подумал, это прикол такой типа "альтушки для скуфа".
Оказалось, нет.

"C 1 декабря любой гражданин РФ может получить сертификат на бесплатное IT-обучение.
Минцифры приводили статистику о нехватке порядка 700 000 человек в области инновационных технологий. В интересах страны сократить кадровый голод и пополнить резерв новыми специалистами до конца года."

Для этого достаточно пройти вышеупомянутый тест про бабочек в животе например тут:
дефицит-профессий.рф

По поводу тестов для вайтишников на уровне "у кого хобот длиннее", ну тут как бы и комментировать нечего. Я отправлял кстати совершенно абсурдные ответы, стараясь максимально не подойти, но мне выдалось в итоге классическое инфоцыганское:
"Поздравляем! Вы можете начать бесплатное трехмесячное обучение!
Заполните форму и вы узнаете свою идеальную IT профессию"

и попросили обязательно указать свой телефончик для круглосуточного спама получения результатов теста...

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

Сама по себе эта активность безусловно полезная, но... не менее странен и её фокус на борьбе с нехваткой 700 тысяч айтишников. Сегодня 1024 резюме приходит на одну вакансию для джуниора, а через полгода такого "бесплатного IT-обучения для всех желающих" на одну вакансию для джуниора просто будет приходить 8192 резюме. Ну и?

Как правильно: вкладывать ресурсы не в неработающую с самого начала госинфоцыганщину, а в трудоустройство. Не в помощь в трудоустройстве! а конкретно в реальное трудоустройство, в создание рабочих мест для начинающих программистов.

=

Но главное: зачем сегодня вообще такие курсы??

Попросите AI (модельки надо брать уровня жпт4o или клода 3.5, окно ставьте 32+)

- написать детальный мета-промпт для создания роадмапа с нуля по обучению в интересующей вас теме в айтишке (например, стать тестировщиком),

- затем скормите ему же этот промпт, получите трек развития,

- попросите его помогать вам на каждом шаге трека, придумывать задачки, проверять ваши решения, подсказывать/помогать итд

-- и он будет (относительно) бесплатно это делать 24/7, причём индивидуально под вас.

(Только надо помнить конечно про окно контекста: просить сразу в мета-промпте, чтобы кусочки роадмапа были достаточно автономные, чтобы каждый из них можно было в отдельном новом чате полноценно проходить.)

И в принципе всё.
2😁4329👍182🐳1
Для программиста среда -- это новая пятница!
1😁59👍12💯4
Вот вы говорите "геймдев всё" (регулярно это слышу лет 25 :), огромная конкуренция, даже сеньору устроиться сложнее чем джуну на бэк патамушта каждый школьник мечтает разрабатывать игры, полным полно готовых гейммейкеров без программирования, денех там мало, и вообще невероятно сложно сегодня заработать...

Этой осенью мне предлагали тысячу долларов (но просили чтобы именно я сам делал) за скрипт(!) для хака мобильной игры (нет, не хомяк:): чтобы лут золото бриллианты из сундуков побольше вываливался, чтобы бустить фастпуш и врагов на фраги, чтобы когда с 5лв зашёл такой в кооп, то вышел уже с 25м )))

А главная цель конечно чтобы в итоге всех выносить в pvp и войти в топ рейтинга.

Ну, когда киты донатят сотни тысяч руб в месяц на любовниц свою гильдию, на навороченные скины, на вип-доступ, совершенно не удивлён...

За недельку наверное сделал бы, поюзал anrc , xposed etc, но совсем маловато денежек за такой срок работы дают.
1🤔51👍126🤯2
Вечерние размышления "письмом" )))

Ну блин на дворе третье десятилетие 21 века, но на протяжении 40 лет по-прежнему лучше всего работает дедов принцип

хочешь сделать хорошо -- делай всё сам


Как святые computer science того времени писали САПР-ы с нуля на стековом форте (а это на минуточку посложнее ассемблера будет), так и сегодня приходится им следовать фактически.

1. Сейчас глубоко копаю в learning distillation. Это настолько сложная аналитическая задача, что современные ллм-ки + векторные базки даже и близко темку не вытягивают. Так вот мне под это нужен совсем простой но эээ достаточно специализированный конструктор курсов с максимально простым UI, а те, что я уже сделал для Школы, под эту специфическую задачу не очень подходят.

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

Я пересмотрел несколько десятков доступных конструкторов курсов, ну да, есть 3-4 с минимально удовлетворительными возможностями и rest api. Но до чего же они громоздкие, неудобны и человеконенавистнически в плане UI. Я сам на них регулярно разные курсы прохожу, и в лучшем случае на троечку они тянут.
Поэтому ёлки но опять придётся всё делать самому!..

Контент для одного такого курса у меня в сыром виде на 30% готов -- на тему одного из продуктивных и достаточно известных, но не очень распространённых аджайлов.
Нет, не скрам :) методика достаточно простая, но конкретно заточена на формализацию требований, что классно сегодня ложится на взаимодействие с AI.
1343👍203🔥2🤔1
2. И классическая тема оплаты: хочу сделать эти курсы уже для всех доступными и относительно недорогими, но для этого нужна прозаическая автоматизация приёма оплаты с молниеносный выдачей новых логина пароля к курсу. Да, существующие сервисы по созданию курсов подобное предлагают, ну там во-первых надо полностью завязываться только на них, а во-вторых у них такая мутная интеграция с кассами/эквайрингами, вот реально проще сделать самому. Можно также ставить себе или интегрироваться со всевозможными срм-ками, но всё это возня получается вообще как ужасающий-3.

Ведь так-то я хочу совсем простой мета-сервис: вы принимаете деньги за чей-то курс на свой счёт, сами выдаёте чеки, и переводите на р/с автора например за 10-15% комиссии. И сразу при поступлении оплаты дёргаете пых-скрипт на сайте автора, уведомляя об оплате, сразу получаете от него логин-пароль, показывайте клиенту и шлёте на почту и всё,

Но ничего подобного (в России) ВООБЩЕ нету, Карл!

Да, знакомые предлагали такое у них захостить легко и просто, они всё сами что надо сделают и настроят, но...

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

Вот если бы это был чисто автономный сторонний продукт...

=

Однако хорошая новость: я джва дня плотно общался с техподдержкой т-банка (нереклама, блин! искренне пишу), как бы мне такое запилить -- и они прям реально чётко помогли, респект от души, всё получилось!

Но ведь опять такое приходится делать самому...

"Нет школы лучше, чем старая школа" (с) Рок-н-рольщик
2🔥64👍183👏1