#текучка #отдых
Я на январские праздники буду, как и все, отдыхать. Поеду кататься на лошадках на Алтай.
В таких местах очень хорошо думается. Подбросьте мне интересных задачек из вашей работы, чтобы было о чем подумать в отпуске.
Завтра открываю созвон с 17 до 19. Приходите познакомиться и поболтать. Чат открытый, я буду вести запись и может потом выложу интересные моменты. Ссылку пришлю перед началом (яндекс телемост).
UPD. Если кто-то хочет поговорить не публично, то просто напрямую можно договориться.
Я на январские праздники буду, как и все, отдыхать. Поеду кататься на лошадках на Алтай.
В таких местах очень хорошо думается. Подбросьте мне интересных задачек из вашей работы, чтобы было о чем подумать в отпуске.
Завтра открываю созвон с 17 до 19. Приходите познакомиться и поболтать. Чат открытый, я буду вести запись и может потом выложу интересные моменты. Ссылку пришлю перед началом (яндекс телемост).
UPD. Если кто-то хочет поговорить не публично, то просто напрямую можно договориться.
🔥13👍10❤6🤔6
Вот ссылка, заходите, кто на связи.
https://telemost.yandex.ru/j/41892891358201
https://telemost.yandex.ru/j/41892891358201
telemost.yandex.ru
Яндекс.Телемост
Видеовстречи по ссылке. Собирайте в Телемосте рабочие конференции или встречайтесь с друзьями. Встречи не ограничены по времени. Можно скачать Телемост для Windows или macOS.
🐳13❤5🔥4❤🔥2
#новый_год
Подведу личные итоги 2023 года. Лично у меня он получился очень мощный.
• закрыл стартап
• записался на воллейбол, сначала классику, потом пляжку.
• Похудел на 10 килограмм, думаю это не предел.
• пошел в найм, не понравилось
• реанимировал свою частную практику, 2 месяца полет нормальный
• развелся (с детьми продолжаю заниматься часов по 15 в неделю)
В 2024 буду продолжать делать бизнес практику, по плану будет определенный спад заказов в первой половине года, но думаю пробьюсь.
А как прошел год у вас ?
Подведу личные итоги 2023 года. Лично у меня он получился очень мощный.
• закрыл стартап
• записался на воллейбол, сначала классику, потом пляжку.
• Похудел на 10 килограмм, думаю это не предел.
• пошел в найм, не понравилось
• реанимировал свою частную практику, 2 месяца полет нормальный
• развелся (с детьми продолжаю заниматься часов по 15 в неделю)
В 2024 буду продолжать делать бизнес практику, по плану будет определенный спад заказов в первой половине года, но думаю пробьюсь.
А как прошел год у вас ?
🤔17👍7🔥5❤2😢1
Трагедия общин.
#математика #теория_игр #парадокс
Трагедия общин очень важный парадокс теории игр, который на мой взгляд должен знать каждый.
Имеется деревня, рядом с которой есть пастбище, где каждый может пасти свой скот.
Каждый член общины может увеличить число своего скота, увеличив свой доход. При этом плодородие пастбища сократится незначительно. Однако, если так сделают все жители деревни, то пастбище станет намного хуже. Уменьшать личный выпас будет при этом все равно невыгодно, так как его личный выигрыш будет меньше потерянного дохода.
Получается, что каждому члену общины выгодно только увеличивать использование пастбища, что приводит в итоге к перевыпасу и порче пастбища.
В теории игр это называется следующими словами равновесие по Нэшу может не совпадать с парето-оптимальным состоянием.
Этот парадокс является фундаментальной проблемой человечества и имеет массу проявлений. Он прямо как черепаха лежит в основе цивилизации.
По сути, речь идет о конфликте частных и общественных интересов.
Большое количество детей в средние века было ровно по этой причине, наделы давали в пропорции людей в семье. Рожать детей было способом увеличивать свой надел и количество работников. Вечный переизбыток населения приводил к регулярному голоду и войнам.
Сейчас пенсии создают противоположную проблему, наличие пенсий делает воспитание детей экономически невыгодным. При этом, однако пенсионный фонд держится не столько на деньгах сколько на рабочей силе, и если детей будет слишком мало, то некому будет обеспечивать стариков.
В Советском Союзе этот парадокс не был особо известен, так как из него довольно очевидно следовала неэффективность социалистического строя.
При этом теория игр, даже именно этот конфликт частного и общего используется как кирпичик для строительства социальных институтов. Например, для обеспечения дисциплины в армии.
Я буду в будущем описывать различные примеры того, как эти парадоксы проявляются в реальной жизни и где можно эффективно применять эти парадоксы и теорию игр в целом.
В заключение процитирую Гомера Симпсона: «За здравствует пиво, источник и решение всех наших проблем!»
#математика #теория_игр #парадокс
Трагедия общин очень важный парадокс теории игр, который на мой взгляд должен знать каждый.
Имеется деревня, рядом с которой есть пастбище, где каждый может пасти свой скот.
Каждый член общины может увеличить число своего скота, увеличив свой доход. При этом плодородие пастбища сократится незначительно. Однако, если так сделают все жители деревни, то пастбище станет намного хуже. Уменьшать личный выпас будет при этом все равно невыгодно, так как его личный выигрыш будет меньше потерянного дохода.
Получается, что каждому члену общины выгодно только увеличивать использование пастбища, что приводит в итоге к перевыпасу и порче пастбища.
В теории игр это называется следующими словами равновесие по Нэшу может не совпадать с парето-оптимальным состоянием.
Этот парадокс является фундаментальной проблемой человечества и имеет массу проявлений. Он прямо как черепаха лежит в основе цивилизации.
По сути, речь идет о конфликте частных и общественных интересов.
Большое количество детей в средние века было ровно по этой причине, наделы давали в пропорции людей в семье. Рожать детей было способом увеличивать свой надел и количество работников. Вечный переизбыток населения приводил к регулярному голоду и войнам.
Сейчас пенсии создают противоположную проблему, наличие пенсий делает воспитание детей экономически невыгодным. При этом, однако пенсионный фонд держится не столько на деньгах сколько на рабочей силе, и если детей будет слишком мало, то некому будет обеспечивать стариков.
В Советском Союзе этот парадокс не был особо известен, так как из него довольно очевидно следовала неэффективность социалистического строя.
При этом теория игр, даже именно этот конфликт частного и общего используется как кирпичик для строительства социальных институтов. Например, для обеспечения дисциплины в армии.
Я буду в будущем описывать различные примеры того, как эти парадоксы проявляются в реальной жизни и где можно эффективно применять эти парадоксы и теорию игр в целом.
В заключение процитирую Гомера Симпсона: «За здравствует пиво, источник и решение всех наших проблем!»
👍18😍8🔥7❤6
#новости #невозможное
Люблю решать невозможные вещи. Как говорил мой учитель физики, самые интересные задачи те, которые невозможно решить.
Иногда можно углядеть какие-то нюансы, которые позволяют реализовать даже очевидно невозможную вещь. Одна из таких известных невозможностей - невозможно выиграть в тетрис. Там же просто не предусмотрена победа.
Однако тетрис это программа, а значит в ней есть ошибки. И 21 декабря 2023 года человек таки доиграл до такого момента, когда тетрис сломался.
При этом после 29 уровня фигурки падают с максимальной скоростью, где на кнопки физически невозможно нажимать. А еще там глючный генератор цветов фигурок, из-за чего там есть уровень, в котором все фигурки практически черные.
Но если долго повозиться и придумать разноообразные трюки, то оказывается можно победить даже тетрис.
https://www.youtube.com/watch?v=GuJ5UuknsHU
Люблю решать невозможные вещи. Как говорил мой учитель физики, самые интересные задачи те, которые невозможно решить.
Иногда можно углядеть какие-то нюансы, которые позволяют реализовать даже очевидно невозможную вещь. Одна из таких известных невозможностей - невозможно выиграть в тетрис. Там же просто не предусмотрена победа.
Однако тетрис это программа, а значит в ней есть ошибки. И 21 декабря 2023 года человек таки доиграл до такого момента, когда тетрис сломался.
При этом после 29 уровня фигурки падают с максимальной скоростью, где на кнопки физически невозможно нажимать. А еще там глючный генератор цветов фигурок, из-за чего там есть уровень, в котором все фигурки практически черные.
Но если долго повозиться и придумать разноообразные трюки, то оказывается можно победить даже тетрис.
https://www.youtube.com/watch?v=GuJ5UuknsHU
YouTube
After 34 Years, Someone Finally Beat Tetris
The first ever "True" Killscreen was just reached in NES Tetris. Can this record ever be broken?
For more info about the Classic Tetris scene: https://www.nestetris.com
Blue Scuti's full WR VOD: https://www.youtube.com/watch?v=uh5hRtEFwQI
Blue Scuti's Youtube…
For more info about the Classic Tetris scene: https://www.nestetris.com
Blue Scuti's full WR VOD: https://www.youtube.com/watch?v=uh5hRtEFwQI
Blue Scuti's Youtube…
❤16👍4🔥3👎1🤩1
P=NP как форсмажор.
Я и мои коллеги с математической точки зрения занимаемся задачами дискретной оптимизации.
В этой области есть классическая проблема, так называемый класс NP-полных математических задач, про который неизвестно можно ли решать эти задачи быстро (время решения. это какая-то степень от длины входа). Это одна из проблем тысячелетия.
Можно придумать достаточно простые примеры уже на 100 переменных, которые на практике никто не умеет решать. Есть пример Финкельштейна для задачи о ранце.
В бизнесе нам приходится решать задачи, в которых переменных обычно намного больше, миллионы. При этом достаточно часто задачи формально NP-полные. Однако на практике это не приводит к проблемам, так как реальная жизнь проще фундаментальной науки.
И наконец случилось. У моих коллег у клиента оказалась задача, которая реально не может решиться и которая очень похожа на пример Финкельштейна. А контракт уже подписан. По сути получается, что в рамках контракта исполнитель должен решить одну из задач тысячелетия 😂
Попробую помочь выкрутиться из затруднительной ситуации, а в будущем предложил им писать необходимость решения P=NP как форсмажорным обстоятельствам. 😀
Я и мои коллеги с математической точки зрения занимаемся задачами дискретной оптимизации.
В этой области есть классическая проблема, так называемый класс NP-полных математических задач, про который неизвестно можно ли решать эти задачи быстро (время решения. это какая-то степень от длины входа). Это одна из проблем тысячелетия.
Можно придумать достаточно простые примеры уже на 100 переменных, которые на практике никто не умеет решать. Есть пример Финкельштейна для задачи о ранце.
В бизнесе нам приходится решать задачи, в которых переменных обычно намного больше, миллионы. При этом достаточно часто задачи формально NP-полные. Однако на практике это не приводит к проблемам, так как реальная жизнь проще фундаментальной науки.
И наконец случилось. У моих коллег у клиента оказалась задача, которая реально не может решиться и которая очень похожа на пример Финкельштейна. А контракт уже подписан. По сути получается, что в рамках контракта исполнитель должен решить одну из задач тысячелетия 😂
Попробую помочь выкрутиться из затруднительной ситуации, а в будущем предложил им писать необходимость решения P=NP как форсмажорным обстоятельствам. 😀
😁13❤7👍4⚡1
Парадокс заключенного.
#математика #теория_игр #парадокс
Еще один парадокс теории игр, похожий на трагедию общин. В СССР более известный.
В один небольшой городок заехали воры-гастролеры и сразу же произошла кража.
Шериф успел поймать обоих воров до того, как они покинули город, посадил их по отдельным камерам и сделал следующее предложение (каждому по отдельности).
Я знаю, что вы специально приехали сюда чтобы совершить ограбление, больше некому, да и вы не приехали бы сюда просто так. Потому я предлагаю вам следующий вариант: напишите чистосердечное признание. Если вы напишете оба, по закону вы получите 1 год тюрьмы. Если один напишет, а другой нет, то написавшего я освобожу за сделку со следствием, а второго упеку на 5 лет. Если же вы оба не напишете признание, то вам придется отсидеть по 15 суток за бродяжничество, а потом мне придется вас отпустить за отсутствием улик.
Каждый из воров думает. Если напарник напишет признание, то мне выгодней будет написать и сидеть всего 1 год, чем не писать и сидеть целых 5. Если же он не напишет признание, то мне все равно выгодно написать и ничего не сидеть, чем сидеть 15 суток. И пишет чистосердечное признание.
В результате они оба сидят по году, вместо того чтобы отсидеть по 15 суток.
Реальные воры придумывают свои законы (понятия), которые мешают эгоистичному поведению отдельных членов. И это пример социальных институтов (правда внутри специфического сообщества) для борьбы с нежелательными равновесиями по Нэшу.
#математика #теория_игр #парадокс
Еще один парадокс теории игр, похожий на трагедию общин. В СССР более известный.
В один небольшой городок заехали воры-гастролеры и сразу же произошла кража.
Шериф успел поймать обоих воров до того, как они покинули город, посадил их по отдельным камерам и сделал следующее предложение (каждому по отдельности).
Я знаю, что вы специально приехали сюда чтобы совершить ограбление, больше некому, да и вы не приехали бы сюда просто так. Потому я предлагаю вам следующий вариант: напишите чистосердечное признание. Если вы напишете оба, по закону вы получите 1 год тюрьмы. Если один напишет, а другой нет, то написавшего я освобожу за сделку со следствием, а второго упеку на 5 лет. Если же вы оба не напишете признание, то вам придется отсидеть по 15 суток за бродяжничество, а потом мне придется вас отпустить за отсутствием улик.
Каждый из воров думает. Если напарник напишет признание, то мне выгодней будет написать и сидеть всего 1 год, чем не писать и сидеть целых 5. Если же он не напишет признание, то мне все равно выгодно написать и ничего не сидеть, чем сидеть 15 суток. И пишет чистосердечное признание.
В результате они оба сидят по году, вместо того чтобы отсидеть по 15 суток.
Реальные воры придумывают свои законы (понятия), которые мешают эгоистичному поведению отдельных членов. И это пример социальных институтов (правда внутри специфического сообщества) для борьбы с нежелательными равновесиями по Нэшу.
🔥7❤5👍3👏2
Channel name was changed to «Блог о математике и бизнесе Алексея Тарасова»
#текучка
Я учился в СУНЦ МГУ, бывшая ФМШ-18. Это грубо говоря Хогвартс для математиков. Время от времени встречаю среди коллег и партнёров выпускников той же школы. Очень приятно. Сегодня снова встретил.
Я учился в СУНЦ МГУ, бывшая ФМШ-18. Это грубо говоря Хогвартс для математиков. Время от времени встречаю среди коллег и партнёров выпускников той же школы. Очень приятно. Сегодня снова встретил.
👍10🔥5👏3
Где в жизни эти возникают парадоксы заключенного?
#парадокс
Да везде. Накидаю примеров.
Есть военный вариант парадокса – ловушка Фукидида или дилемма безопасности. Мы в нем прямо сейчас живем.
Если есть вопрос сколько вы стоите – то ответ простой, ровно столько сколько стоит самый дешевый сотрудник, который умеет то же самое. Даже если вы собственник, скажем владелец кафе, вы не сможете вынимать из бизнеса больше, чем зарплата наемного директора в аналогичном кафе.
Отсюда привычка считать стоимость услуг «по Марксу» от затрат. Это имеет смысл только если есть еще куча народа которые могут делать тоже, самое и снижать цену. Ниже себестоимости просто не снизишь.
Иногда кстати снижают и ниже себестоимости. Есть эффект Волмарта, у которого все подрядчики в итоге разоряются. Потому что на аукционе каждый раз кто-то умудряется опустить цену ниже себестоимости.
Поэтому Яндекс всегда идет в первую очередь в «красные океаны», рынок такси например. Потому что там всегда найдутся те, кто будет сотрудничать и Яндекс сможет подмять индустрию под себя.
Как приструнить пиратов? Берем на службу одного из главных пиратов, он зная все секреты и слабые места пиратов быстро их всех ловит. Классический принцип разделяй и властвуй.
Из-за парадокса заключенного/общин малоэтажная застройка крутая вещь. Вообще зонирование пространства это в первую очередь борьба с этими парадоксами. В квартире должно быть не слишком много людей, в подъезде должно быть не слишком много квартир, в доме должно быть не слишком много подъездов. На частной территории не слишком много домов. Лучше, чтобы было больше уровней, но на каждом уровне меньше участников. Тогда вся территория будет в достаточной степени чья-то, что качественно все преображает. Людям выгодно вкладываться в уют, люди начинают дружить с соседями, ставить беседки и мангалы и жить гораздо более счастливо.
#парадокс
Да везде. Накидаю примеров.
Есть военный вариант парадокса – ловушка Фукидида или дилемма безопасности. Мы в нем прямо сейчас живем.
Если есть вопрос сколько вы стоите – то ответ простой, ровно столько сколько стоит самый дешевый сотрудник, который умеет то же самое. Даже если вы собственник, скажем владелец кафе, вы не сможете вынимать из бизнеса больше, чем зарплата наемного директора в аналогичном кафе.
Отсюда привычка считать стоимость услуг «по Марксу» от затрат. Это имеет смысл только если есть еще куча народа которые могут делать тоже, самое и снижать цену. Ниже себестоимости просто не снизишь.
Иногда кстати снижают и ниже себестоимости. Есть эффект Волмарта, у которого все подрядчики в итоге разоряются. Потому что на аукционе каждый раз кто-то умудряется опустить цену ниже себестоимости.
Поэтому Яндекс всегда идет в первую очередь в «красные океаны», рынок такси например. Потому что там всегда найдутся те, кто будет сотрудничать и Яндекс сможет подмять индустрию под себя.
Как приструнить пиратов? Берем на службу одного из главных пиратов, он зная все секреты и слабые места пиратов быстро их всех ловит. Классический принцип разделяй и властвуй.
Из-за парадокса заключенного/общин малоэтажная застройка крутая вещь. Вообще зонирование пространства это в первую очередь борьба с этими парадоксами. В квартире должно быть не слишком много людей, в подъезде должно быть не слишком много квартир, в доме должно быть не слишком много подъездов. На частной территории не слишком много домов. Лучше, чтобы было больше уровней, но на каждом уровне меньше участников. Тогда вся территория будет в достаточной степени чья-то, что качественно все преображает. Людям выгодно вкладываться в уют, люди начинают дружить с соседями, ставить беседки и мангалы и жить гораздо более счастливо.
Wikipedia
Ловушка Фукидида
понятие в политологии и конфликтологии
👍16❤8
#выступление
В эту субботу в 12 часов по Москве, у меня будет эфир с Ксений Кузнецовой о стартапах, эффективном программирования и другом. Приходите послушать и подписывайтесь на блог Ксюши.
Еще хочу добавить, что мир удивительно тесен временами. Я в 1999 году сделал игру мафия в интернете, как раз 25 лет назад на январских праздниках прогал.
Внутри получившейся тусовки были свадьбы и дети, и Ксения одна из таких. Так что я в некотором роде её крестный отец 😄. Её папа Евгений Кузнецов из СУНЦа, победитель олимпиад по информатике. И еще он написал лучший железный алгоритм для обработки jpeg, за который директор Интела ему жал руку и который до сих пор в интелловских процессорах и сидит, как я понимаю.
Ксения уже сама жжет, вместо того чтобы становиться чемпионкой по виндсерфингу пошла таки в ВУЗ, а там будучи студенткой уже несколько лет работает во ФРИИ, помогает продвигать на запад крутые проекты. Я для себя несколько лет назад пришел к выводу, что век программирования проходит и надо заниматься стартапами и бизнесом. И тут я вижу, что юное поколение знает все лучше нас. Причем если для меня понимание того, как устроен бизнес давалось кучей потраченных сил, времени и денег, и все равно это понимание на уровне иностранного языка. А для Ксении эти понятия просто родные. Короче я уверен, что дочка вполне может обогнать папу. Все для этого есть.
В общем подписывайтесь к ней на канал, и давайте вместе перевернем мир.
В эту субботу в 12 часов по Москве, у меня будет эфир с Ксений Кузнецовой о стартапах, эффективном программирования и другом. Приходите послушать и подписывайтесь на блог Ксюши.
Еще хочу добавить, что мир удивительно тесен временами. Я в 1999 году сделал игру мафия в интернете, как раз 25 лет назад на январских праздниках прогал.
Внутри получившейся тусовки были свадьбы и дети, и Ксения одна из таких. Так что я в некотором роде её крестный отец 😄. Её папа Евгений Кузнецов из СУНЦа, победитель олимпиад по информатике. И еще он написал лучший железный алгоритм для обработки jpeg, за который директор Интела ему жал руку и который до сих пор в интелловских процессорах и сидит, как я понимаю.
Ксения уже сама жжет, вместо того чтобы становиться чемпионкой по виндсерфингу пошла таки в ВУЗ, а там будучи студенткой уже несколько лет работает во ФРИИ, помогает продвигать на запад крутые проекты. Я для себя несколько лет назад пришел к выводу, что век программирования проходит и надо заниматься стартапами и бизнесом. И тут я вижу, что юное поколение знает все лучше нас. Причем если для меня понимание того, как устроен бизнес давалось кучей потраченных сил, времени и денег, и все равно это понимание на уровне иностранного языка. А для Ксении эти понятия просто родные. Короче я уверен, что дочка вполне может обогнать папу. Все для этого есть.
В общем подписывайтесь к ней на канал, и давайте вместе перевернем мир.
Telegram
Ксюша говорит | IT x PRODUCTS
Работала со стартапами в Акселераторе ФРИИ, а теперь сама работаю в стартапе 🦄 Пишу про ИТ-рынок, продажи и продукты. Веду авторский подкаст от предпринимателей для предпринимателей.
Про мой бэкграунд читай в посте-закрепе.
Для связи: @x_kuznetsova
Про мой бэкграунд читай в посте-закрепе.
Для связи: @x_kuznetsova
👍16🔥4❤3
Почему часы тикают тик-так?
#физика #программирование #ооп #мысль
В их механизме есть деталька под названием анкерная вилка, которая управляется мятником и тормозит шестеренку, чтобы часы шли медленно и равномерно. У этой вилки два зубца, один тормозит по ходу движения шестеренки, а другой против хода. В результате хотя они симметричны, звук получается чуть-чуть разный.
Таким образом мы можем кое-что узнать про устройство часов даже не разбирая их.
В программировании это называется протечка абстракций. Это важное понятие, которое сформулировал в своем эссе Джоель Спольский.
Я со своей колокольни скажу, что по этому причине на этапе написания прототипа кода никогда не пользуюсь объектно-ориентированным программированием. Любой код начинается с прототипа, а в стартапе код – это, по сути, очень большой прототип.
Потому что, когда пишешь прототип ты не знаешь, какое в нем место ключевое – что будет скажем тормозить и что надо будет переписывать и ускорять. Легко может оказаться, что весь код надо будет переписать ради эффективной работы одной важной части. Никогда заранее не знаешь, какая фича выстрелит у клиента, и в какую сторону будет развиваться и обобщаться код. То есть по сути дело даже не в ООП, а в том, что заранее неизвестна архитектура кода. В результате любые уровни абстракции навешивать оказывается рано. Все равно протекут и будут только мешаться.
Когда код долго уже работает можно начинать его рефакторить и создавать для часто встречающихся штук классы. Но все равно потом прилетает неожиданно новое требование, из-за которого весь код приходится перелопачивать.
В общем на мой взгляд ООП не дружит со стартапами и прототипами.
Завтра напишу, какой подход к архитектуре кода сложился у нас в команде.
#физика #программирование #ооп #мысль
В их механизме есть деталька под названием анкерная вилка, которая управляется мятником и тормозит шестеренку, чтобы часы шли медленно и равномерно. У этой вилки два зубца, один тормозит по ходу движения шестеренки, а другой против хода. В результате хотя они симметричны, звук получается чуть-чуть разный.
Таким образом мы можем кое-что узнать про устройство часов даже не разбирая их.
В программировании это называется протечка абстракций. Это важное понятие, которое сформулировал в своем эссе Джоель Спольский.
Я со своей колокольни скажу, что по этому причине на этапе написания прототипа кода никогда не пользуюсь объектно-ориентированным программированием. Любой код начинается с прототипа, а в стартапе код – это, по сути, очень большой прототип.
Потому что, когда пишешь прототип ты не знаешь, какое в нем место ключевое – что будет скажем тормозить и что надо будет переписывать и ускорять. Легко может оказаться, что весь код надо будет переписать ради эффективной работы одной важной части. Никогда заранее не знаешь, какая фича выстрелит у клиента, и в какую сторону будет развиваться и обобщаться код. То есть по сути дело даже не в ООП, а в том, что заранее неизвестна архитектура кода. В результате любые уровни абстракции навешивать оказывается рано. Все равно протекут и будут только мешаться.
Когда код долго уже работает можно начинать его рефакторить и создавать для часто встречающихся штук классы. Но все равно потом прилетает неожиданно новое требование, из-за которого весь код приходится перелопачивать.
В общем на мой взгляд ООП не дружит со стартапами и прототипами.
Завтра напишу, какой подход к архитектуре кода сложился у нас в команде.
Хабр
Закон дырявых абстракций
Текст, который установил «закон дырявых абстракций», был написан в 2002 году. Почему я перевожу его спустя почти 20 лет? Он до сих пор не потерял своей актуальности и достоин прочтения. Протокол TCP...
👍11❤3🔥3✍2
Фиче-ориентированное программирование.
#программирование #архитектура
В нашей практике сложился следующий подход, который мы назвали фиче-ориентированным.
У нас есть своя специфика, так как мы в основном мы пишем модели для так называемого солвера целочисленного программирования.
Есть громадный конфиг на сотни фич. Каждый кусок работы представляет собой отдельную фичу, которую можно выключить, и мы получим предыдущую версию кода. Основная часть кода представляет собой большую функцию, в которой идут подряд if-ы, то есть проверки включения тех или иных фич. Понятно, что мы делим функцию на части, но суть от этого не меняется, есть одна большая модель, которая по-разному работает при разных параметрах. Большинство фич независимы друг от друга, как бусы на ожерелье.
Но некоторые фичи оказываются зависимы и приходится разбираться со всевозможными подслучаями, я это называю гиперкуб (10 разных флагов ~ 1024 комбинаций этих флагов). С гиперкубом мы боремся следующими способами. Там, где можно рефакторим фичи, чтобы из нескольких получилась одна. Если это невозможно, а получается куча нетривиальных случаев, то важные делаем, а на неважные пишем сообщение об ошибке Not implemented yet и останавливаем программу.
Такой подход хорошо, работает если вы делаете математическую модель и работаете с солверами. Достаточно гибок и менее громоздок по сравнению с другими вариантами. Хотя хочется его сделать еще менее громоздким.
Бывает, нам надо решать похожие, но разные задачи. Например, планирование расписание работы конкретных людей на месяц, и одновременно стратегическое планирование на год вперед, где нет конкретных людей. Эти задачи как сиамские близнецы, с одной стороны существенно отличаются, с другой стороны куча общего.
1. Отдельно делать модели плохо - получается копипейст код, который потом провоцирует ошибки и который невозможно поддерживать.
2. Делать ООП модель с наследованием тоже совершенно неудобно, по причинам, описанным в предыдущем посте.
3. В результате ничего лучше, как сделать if-ы которые включают ту или иную голову мы не придумали. А с if-ами в целом все норм. Функция получается главная большая, но в целом читабельная, а сам код по общему числу строчек вполне компактный.
Могу еще добавить, что каждая фича имеет свой номер, делается в отдельной ветке гита с тем же номером, так что разработка становится достаточно удобной.
До нас я такой подход видел только в солвере SCIP.
Я не претендую на его универсальность, но для создания моделей и запуска их в солвере лучше мы ничего не нашли. Эта модель если что, у нас формировалась с 2009 года. ООП и функциональщину мы хорошо знаем. Я бы еще хотел поиграться с Julia и на макросах сделать DSL, но в целом это мелочи.
#программирование #архитектура
В нашей практике сложился следующий подход, который мы назвали фиче-ориентированным.
У нас есть своя специфика, так как мы в основном мы пишем модели для так называемого солвера целочисленного программирования.
Есть громадный конфиг на сотни фич. Каждый кусок работы представляет собой отдельную фичу, которую можно выключить, и мы получим предыдущую версию кода. Основная часть кода представляет собой большую функцию, в которой идут подряд if-ы, то есть проверки включения тех или иных фич. Понятно, что мы делим функцию на части, но суть от этого не меняется, есть одна большая модель, которая по-разному работает при разных параметрах. Большинство фич независимы друг от друга, как бусы на ожерелье.
Но некоторые фичи оказываются зависимы и приходится разбираться со всевозможными подслучаями, я это называю гиперкуб (10 разных флагов ~ 1024 комбинаций этих флагов). С гиперкубом мы боремся следующими способами. Там, где можно рефакторим фичи, чтобы из нескольких получилась одна. Если это невозможно, а получается куча нетривиальных случаев, то важные делаем, а на неважные пишем сообщение об ошибке Not implemented yet и останавливаем программу.
Такой подход хорошо, работает если вы делаете математическую модель и работаете с солверами. Достаточно гибок и менее громоздок по сравнению с другими вариантами. Хотя хочется его сделать еще менее громоздким.
Бывает, нам надо решать похожие, но разные задачи. Например, планирование расписание работы конкретных людей на месяц, и одновременно стратегическое планирование на год вперед, где нет конкретных людей. Эти задачи как сиамские близнецы, с одной стороны существенно отличаются, с другой стороны куча общего.
1. Отдельно делать модели плохо - получается копипейст код, который потом провоцирует ошибки и который невозможно поддерживать.
2. Делать ООП модель с наследованием тоже совершенно неудобно, по причинам, описанным в предыдущем посте.
3. В результате ничего лучше, как сделать if-ы которые включают ту или иную голову мы не придумали. А с if-ами в целом все норм. Функция получается главная большая, но в целом читабельная, а сам код по общему числу строчек вполне компактный.
Могу еще добавить, что каждая фича имеет свой номер, делается в отдельной ветке гита с тем же номером, так что разработка становится достаточно удобной.
До нас я такой подход видел только в солвере SCIP.
Я не претендую на его универсальность, но для создания моделей и запуска их в солвере лучше мы ничего не нашли. Эта модель если что, у нас формировалась с 2009 года. ООП и функциональщину мы хорошо знаем. Я бы еще хотел поиграться с Julia и на макросах сделать DSL, но в целом это мелочи.
🔥7👍4
DeepMind AI решил 25 из 30 геометрических задач международных школьных олимпиад.
#новости #ии
Многие говорили, что математика будет последним бастионом для искусственного интеллекта. А на практике оказывается одним из первых. А я наоборот всегда понимал, что эти задачи решаются хоть и сложно, но в некоторой степени алгоритмом экономного перебора идей.
Так что все поломано. Я на сам этих задачках всегда и сыпался, не любил в школе геометрию, не знаю как меня потом в геометрию и занесло.
Впрочем олимпиадные задачки обладают важным свойством роднящим их с шахматами и Go. Там очень четко все сформулировано и каждая конкретная ситуация очень компактно описывается. Пространство поиска очень большое, а со всем остальным все легко. Так что DeepMind научился пока решать только задачи в стиле "пойди туда не знаю куда, найди конкретную штуку".
В математике куча задач, где непонятно как их вообще формализовать. Интересно, когда ИИ до таких задач доберется.
https://www.nature.com/articles/s41586-023-06747-5#MOESM1
#новости #ии
Многие говорили, что математика будет последним бастионом для искусственного интеллекта. А на практике оказывается одним из первых. А я наоборот всегда понимал, что эти задачи решаются хоть и сложно, но в некоторой степени алгоритмом экономного перебора идей.
Так что все поломано. Я на сам этих задачках всегда и сыпался, не любил в школе геометрию, не знаю как меня потом в геометрию и занесло.
Впрочем олимпиадные задачки обладают важным свойством роднящим их с шахматами и Go. Там очень четко все сформулировано и каждая конкретная ситуация очень компактно описывается. Пространство поиска очень большое, а со всем остальным все легко. Так что DeepMind научился пока решать только задачи в стиле "пойди туда не знаю куда, найди конкретную штуку".
В математике куча задач, где непонятно как их вообще формализовать. Интересно, когда ИИ до таких задач доберется.
https://www.nature.com/articles/s41586-023-06747-5#MOESM1
Nature
Solving olympiad geometry without human demonstrations
Nature - A new neuro-symbolic theorem prover for Euclidean plane geometry trained from scratch on millions of synthesized theorems and proofs outperforms the previous best method and reaches the...
👍13
Могучие лапищи 2.
#текучка #воронка_продаж
Писал в конце декабря пост про могучие лапищи и накаркал. Прямо на следующий день, 28 декабря с тем же заказчиком закрыли первый этап проекта, стали обсуждать второй этап, где как раз много визуализации и фронтенда. И обнаружилось что вместо пары месяцев сдавать надо 15 января! 🤯 То есть мало того, что у нас фактически две недели вместо 6-8, да еще это новогодние праздники.
Это наш косяк, мы могли заранее уточнить дедлайн второго этапа и спокойненько начать делать еще в начале декабря, но мы дождались окончания первого.
Ну что, сделали и сдали.🍾
На этот раз я поступил по-другому. Я там тоже сидел прогал какое-то время, но главное нашел крутого фронта (фронтенд разработчика), который нам за 4 дня сделал самые важные компоненты (визуализация данных на карте и всякие диаграммы). При этом хоть и берет довольно конский ценник, но в итоге это оказалось даже не дорого, так как нормальный фронт до этого закладывал на эту работу не меньше 10 дней. Спасибо, Коля.
Помимо работ с фронтендом было еще куча сложных, но со всем разобрались. Удобно работать от ограничений, просто определяли, что реально важно успеть к 15 января, а на что можно забить. Сразу у всех глаза горят.
Подводя итог, в прошлый раз получилось закрыть все самому, теперь как менеджеру. Даже на Алтай скатался на январские праздники 🐴. Следующий уровень не допускать авралов, но так чтобы все-таки глаза у людей горели и работа спорилась.
#текучка #воронка_продаж
Писал в конце декабря пост про могучие лапищи и накаркал. Прямо на следующий день, 28 декабря с тем же заказчиком закрыли первый этап проекта, стали обсуждать второй этап, где как раз много визуализации и фронтенда. И обнаружилось что вместо пары месяцев сдавать надо 15 января! 🤯 То есть мало того, что у нас фактически две недели вместо 6-8, да еще это новогодние праздники.
Это наш косяк, мы могли заранее уточнить дедлайн второго этапа и спокойненько начать делать еще в начале декабря, но мы дождались окончания первого.
Ну что, сделали и сдали.
На этот раз я поступил по-другому. Я там тоже сидел прогал какое-то время, но главное нашел крутого фронта (фронтенд разработчика), который нам за 4 дня сделал самые важные компоненты (визуализация данных на карте и всякие диаграммы). При этом хоть и берет довольно конский ценник, но в итоге это оказалось даже не дорого, так как нормальный фронт до этого закладывал на эту работу не меньше 10 дней. Спасибо, Коля.
Помимо работ с фронтендом было еще куча сложных, но со всем разобрались. Удобно работать от ограничений, просто определяли, что реально важно успеть к 15 января, а на что можно забить. Сразу у всех глаза горят.
Подводя итог, в прошлый раз получилось закрыть все самому, теперь как менеджеру. Даже на Алтай скатался на январские праздники 🐴. Следующий уровень не допускать авралов, но так чтобы все-таки глаза у людей горели и работа спорилась.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5👏1
Продолжение про P=NP
#кейс #касдев #моделирование
На этой неделе поучаствовал вместе с заказчиком как эксперт в разговоре с уже их заказчиком. И продемонстрировал чудеса касдева и бизнес-аналитики. 😂
Задал напрямую вопрос:
“Господа. Вам на вход приходят прогнозные данные, которые явно ппп (пол/палец/потолок), особенно на год вперед. На кой ляд вам тогда абсолютная точность решения?”
И мне было четко сказано: если разрешить хотя бы небольшой геп (зазор между найденным решением и оптимальным), то он может сконцентрироваться в каком-то месте или по какой-то конкретной позиции товара и там будет кривой результат, которым нельзя будет воспользоваться. А еще у нас несколько видов штрафов, и хотя их важность выверена, нельзя чтобы был только один вид штрафа, а остальные нулевые. Такие решения получаются кривые.
Спрашиваю, а если решение не будет содержать такой кривизны, небольшой гэп не страшен?
Да говорят, вообще без проблем.
Занавес.
То есть на практике можно было просто доработать модель так, чтобы она не давала «некрасивые» результаты с точки зрения клиента. Например сделать, чтобы штрафы за день не превышали определенной величины, а не просто минимизировать сумму штрафов. Как показывает опыт, убирание таких кривостей это не только довольно простая задача, но еще иногда сильно сужает пространство поиска и значительно ускоряет работу (а иногда нет).
Как раз убираются схоластические решения, которые не нужны на практике, но из-за которых и вылазит P=NP.
Путем, впрочем, таким мы скорее всего не пойдем. Нашлись еще проще и более надежные варианты. Но этот если успеем тоже попробуем.
Напоминание.
Завтра в 12.00 в будет эфир с Ксенией, приходите!
#кейс #касдев #моделирование
На этой неделе поучаствовал вместе с заказчиком как эксперт в разговоре с уже их заказчиком. И продемонстрировал чудеса касдева и бизнес-аналитики. 😂
Задал напрямую вопрос:
“Господа. Вам на вход приходят прогнозные данные, которые явно ппп (пол/палец/потолок), особенно на год вперед. На кой ляд вам тогда абсолютная точность решения?”
И мне было четко сказано: если разрешить хотя бы небольшой геп (зазор между найденным решением и оптимальным), то он может сконцентрироваться в каком-то месте или по какой-то конкретной позиции товара и там будет кривой результат, которым нельзя будет воспользоваться. А еще у нас несколько видов штрафов, и хотя их важность выверена, нельзя чтобы был только один вид штрафа, а остальные нулевые. Такие решения получаются кривые.
Спрашиваю, а если решение не будет содержать такой кривизны, небольшой гэп не страшен?
Да говорят, вообще без проблем.
Занавес.
То есть на практике можно было просто доработать модель так, чтобы она не давала «некрасивые» результаты с точки зрения клиента. Например сделать, чтобы штрафы за день не превышали определенной величины, а не просто минимизировать сумму штрафов. Как показывает опыт, убирание таких кривостей это не только довольно простая задача, но еще иногда сильно сужает пространство поиска и значительно ускоряет работу (а иногда нет).
Как раз убираются схоластические решения, которые не нужны на практике, но из-за которых и вылазит P=NP.
Путем, впрочем, таким мы скорее всего не пойдем. Нашлись еще проще и более надежные варианты. Но этот если успеем тоже попробуем.
Напоминание.
Завтра в 12.00 в будет эфир с Ксенией, приходите!
Telegram
Ксюша говорит | IT x PRODUCTS
Работала со стартапами в Акселераторе ФРИИ, а теперь сама работаю в стартапе 🦄 Пишу про ИТ-рынок, продажи и продукты. Веду авторский подкаст от предпринимателей для предпринимателей.
Про мой бэкграунд читай в посте-закрепе.
Для связи: @x_kuznetsova
Про мой бэкграунд читай в посте-закрепе.
Для связи: @x_kuznetsova
👍6❤2🔥2👏2
Добавлю, что эфир будет на канале у Ксюши в 12.00
👍6
Forwarded from Ксюша говорит | IT x PRODUCTS
Друзья, всем доброе утро! Всем, кто проснулся, напоминаю про эфир) уже через час обсуждаем решение оптимизационных задач в бизнесе
🔥8😍2
Вот запись эфира. Скоро также будет ссылка на видео.
👍5
Решение оптимизационных задач в бизнесе
Ксюша говорит | IT x PRODUCTS
Друзья, ловите запись эфира с Алексеем!
00:00 — здороваемся и знакомимся!
4:17 — почему мы решили, что будет полезно сделать совместный прямой эфир
5:49 — кейс про создание ценообразования для логистической компании через решение оптимизационной задачи
8:57 — как Алексей превращает бизнес задачи в математические и решает их
20:07 — кейс про изменение модели продаж в производственной компании через решение оптимизационной задачи
22:52 — как HADI циклы помогают решать задачи и отлаживать математические модели
25:16 — как решать задачи в математике, бизнесе и жизни через методы разрыва
29:29 — кейс про изменение подхода к разработке в ИТ стартапах
35:36 — как Алексей решил знаменитую задачу про алмазы и принес бизнесу 400 миллионов $ добавленной стоимости
40:46 — пожелание от Алексея слушателям
41:54 — follow up прямого эфира от меня
🟥 скоро тут будет ссылка на запись на ютубе)
00:00 — здороваемся и знакомимся!
4:17 — почему мы решили, что будет полезно сделать совместный прямой эфир
5:49 — кейс про создание ценообразования для логистической компании через решение оптимизационной задачи
8:57 — как Алексей превращает бизнес задачи в математические и решает их
20:07 — кейс про изменение модели продаж в производственной компании через решение оптимизационной задачи
22:52 — как HADI циклы помогают решать задачи и отлаживать математические модели
25:16 — как решать задачи в математике, бизнесе и жизни через методы разрыва
29:29 — кейс про изменение подхода к разработке в ИТ стартапах
35:36 — как Алексей решил знаменитую задачу про алмазы и принес бизнесу 400 миллионов $ добавленной стоимости
40:46 — пожелание от Алексея слушателям
41:54 — follow up прямого эфира от меня
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥3👍2