Этот пост (чёрный) сразу завирусился, под него куча мемов появилась.
👍36😁23🐳2🔥1
Новость этой недели:
"в России вырос спрос на лицензионные версии Windows и Office 365".
Знаете, почему? Потому что если у российского юрлица сегодня обнаружат нелицензионную Windows американской корпорации Microsoft (глава которой в 2022-м заявил, что "Microsoft постепенно будет сворачивать свой бизнес в России до тех пор, пока в регионе ничего не останется", да и ещё немало плохого о любимой Российской Федерации говорил), то вам могут влепить такой штраф (фактически в пользу самой недружественной для нас страны), что от самого юрлица ничего не останется.
"в России вырос спрос на лицензионные версии Windows и Office 365".
Знаете, почему? Потому что если у российского юрлица сегодня обнаружат нелицензионную Windows американской корпорации Microsoft (глава которой в 2022-м заявил, что "Microsoft постепенно будет сворачивать свой бизнес в России до тех пор, пока в регионе ничего не останется", да и ещё немало плохого о любимой Российской Федерации говорил), то вам могут влепить такой штраф (фактически в пользу самой недружественной для нас страны), что от самого юрлица ничего не останется.
✍24🤯12🤔7👍4😁1
"Надо вложить 300 миллиардов, чтобы «допилить» ОС «Аврора» до iOS и Android"
Почему-то мне кажется, что речь всё же только об андроиде, ну наверное ошибаюсь, и Аврора будет поддерживать сразу (или раздельно) и iOS, и Android.
"VK и «Яндекс» при участии Сбербанка и «Ростелекома» создадут пользовательскую мобильную ОС с поддержкой Android-приложений. Ее соберут на базе открытой платформы AOSP."
а как же iOS? :)
Я могу, в принципе, и за один миллион рублей "создать" русифицированную пользовательскую мобильную ОС с поддержкой Android-приложений на базе открытой платформы AOSP )))
Собирается она на среднем железе, насколько помню, за единичные часы. Ну оперативки лучше 64 Гб.
Или "это другое", "надо предустановить пакет российских программ", и всё такое?
Почему-то мне кажется, что речь всё же только об андроиде, ну наверное ошибаюсь, и Аврора будет поддерживать сразу (или раздельно) и iOS, и Android.
"VK и «Яндекс» при участии Сбербанка и «Ростелекома» создадут пользовательскую мобильную ОС с поддержкой Android-приложений. Ее соберут на базе открытой платформы AOSP."
Я могу, в принципе, и за один миллион рублей "создать" русифицированную пользовательскую мобильную ОС с поддержкой Android-приложений на базе открытой платформы AOSP )))
Собирается она на среднем железе, насколько помню, за единичные часы. Ну оперативки лучше 64 Гб.
Или "это другое", "надо предустановить пакет российских программ", и всё такое?
🤔37😁10👍4🐳3❤1
Что изменится на моих курсах с 18 марта? Добавятся новые морковки спереди и сзади, но стратегически сделаю акцент прежде всего на том, что заниматься буду только с теми, у кого действительно достаточно свободного времени.
А не то что приходится вымучивать один час утром спросонья или усталым вечером после работы, и пару часов в выходные(после того, как поработал для семьи водителем, грузчиком, нянькой, курьером и аниматором :) , отказываться от дополнительных форматов занятий, еле-еле отправлять раз в неделю очередное решение...
Зачем вам у меня учиться, если времени совсем не хватает? Ну даже если станете "элитным программистом мирового уровня", и что с того?
Лучше изучите быстренько один язык, один стек, один веб-фреймворк, и ищите прозаическую работу на галерах. Вот как докачаетесь до крепкого миддла/сеньора на удалёнке, который делает рабочие задачки на день за 2-3 часа, тогда и приходите.
И обратно больше точно брать не буду: месяц в год на отпуск, пару недель поболеть, и всё.
А не то что приходится вымучивать один час утром спросонья или усталым вечером после работы, и пару часов в выходные
Зачем вам у меня учиться, если времени совсем не хватает? Ну даже если станете "элитным программистом мирового уровня", и что с того?
Лучше изучите быстренько один язык, один стек, один веб-фреймворк, и ищите прозаическую работу на галерах. Вот как докачаетесь до крепкого миддла/сеньора на удалёнке, который делает рабочие задачки на день за 2-3 часа, тогда и приходите.
И обратно больше точно брать не буду: месяц в год на отпуск, пару недель поболеть, и всё.
🫡53🤔5🤯3👌3🏆3
Когда вы услышите, что кто-то говорит "Гексагональная архитектура" и все эти другие "многослойные", просто убегайте как можно быстрее.
Потому что эти подходы не просто сложны и трудны для понимания, это и целая философия, и большой набор правил. А главное, если вы попытаетесь понять гексагональщину, DDD и т.д. как программист, вам придётся крайне нелегко. Для этого вам надо учиться мыслить как постановщик, аналитик, пытающийся понять и смоделировать предметную область, тогда всё станет предельно ясно.
Курсант сегодня написал:
"Тимлид сказал, что ему понравилось и что я использовал фабрику. А я не использовал фабрику, я просто придерживался принципов из ООАП-1, ООАП-2 и Быстрой прокачки в ООП" )))
Потому что эти подходы не просто сложны и трудны для понимания, это и целая философия, и большой набор правил. А главное, если вы попытаетесь понять гексагональщину, DDD и т.д. как программист, вам придётся крайне нелегко. Для этого вам надо учиться мыслить как постановщик, аналитик, пытающийся понять и смоделировать предметную область, тогда всё станет предельно ясно.
Курсант сегодня написал:
"Тимлид сказал, что ему понравилось и что я использовал фабрику. А я не использовал фабрику, я просто придерживался принципов из ООАП-1, ООАП-2 и Быстрой прокачки в ООП" )))
👍36❤6🤔5✍3💯2
То, что сейчас происходит, глобальные сбои самых разных систем по всему миру -- классический пример плохо продуманной архитектуры. Например, телеграм работал только под vpn, то есть дело не напрямую в РКН "хуситах, перекусивших кабель", а скорее всего админы тг отключили РФ, регулируя нагрузку.
Товарищи курсанты, помните серию материалов из СильныхИдей про 9 видов зависимостей?
Недопустимо смешивать в проекте разные вычислительные модели (семантика):
"мой проект включает PostgreSQL в качестве зависимости, но он не зависит от него, если эта база данных не используется, и фактически он и не зависит от него, потому что мой проект не зависит от базы данных"
Обязательно надо классифицировать зависимости определённых характеристик нашей системы:
Зависит ли условный планировщик телеграма от отдельных задач? Очевидно, что да -- по многим характеристикам времени выполнения. Но относительно корректности планировщика в целом это не должно быть так.
...если только это не вытесняющий планировщик и некоторая задача зависла и не формирует аппаратные прерывания, и отнимает всё время планировщика. Так что да, возможно.
И наконец, пространство допустимых изменений:
"если A не зависит от B, то никакое изменение B не может повлиять на A... если только это изменение само не вносит зависимость"
откуда мы попадаем в тему мета-спецификаций.
Но найдётся ли хотя бы 0,007% понимающих и применяющих эти моменты в своей работе?
Сбои становятся всё эпичнее, и думаю, это только начало. А ведь множество инфраструктур в РФ завязаны по работе на мессенджеры (и самое ужасное, что может произойти -- это заставлять всех принудительно переходить на какой-нибудь национальный мессенджер, жутко написанный по определению ).
Что делать? А выхода уже нет :) Несколько десятков ребят, что у меня занимаются, надеюсь, хотя бы немного научились или научатся делать проекты по-взрослому, но в целом ИТ уже не спасти.
Товарищи курсанты, помните серию материалов из СильныхИдей про 9 видов зависимостей?
Недопустимо смешивать в проекте разные вычислительные модели (семантика):
"мой проект включает PostgreSQL в качестве зависимости, но он не зависит от него, если эта база данных не используется, и фактически он и не зависит от него, потому что мой проект не зависит от базы данных"
Обязательно надо классифицировать зависимости определённых характеристик нашей системы:
Зависит ли условный планировщик телеграма от отдельных задач? Очевидно, что да -- по многим характеристикам времени выполнения. Но относительно корректности планировщика в целом это не должно быть так.
...если только это не вытесняющий планировщик и некоторая задача зависла и не формирует аппаратные прерывания, и отнимает всё время планировщика. Так что да, возможно.
И наконец, пространство допустимых изменений:
"если A не зависит от B, то никакое изменение B не может повлиять на A... если только это изменение само не вносит зависимость"
откуда мы попадаем в тему мета-спецификаций.
Но найдётся ли хотя бы 0,007% понимающих и применяющих эти моменты в своей работе?
Сбои становятся всё эпичнее, и думаю, это только начало. А ведь множество инфраструктур в РФ завязаны по работе на мессенджеры (
Что делать? А выхода уже нет :) Несколько десятков ребят, что у меня занимаются, надеюсь, хотя бы немного научились или научатся делать проекты по-взрослому, но в целом ИТ уже не спасти.
🤔31✍10🙏8🔥5🐳3
А какой может быть правильный условный "DDD"? Если вы много пишете, например, на F#, то в достаточно крупном проекте наступает момент, когда вы начинаете "рефакторить" функции, написанные ранее для реализации начальных фич, в хорошо "гранулированный" и многократно используемый DSL.
Теперь вы добавляете и перекомбинируете функции для создания новых возможностей: ваши функции становятся "словами", которыми вы просто записываете новые фичи-"предложения". И чем дальше погружаетесь в проект, тем таких языков предметных областей появляется больше -- на каждый логический уровень -- получаем то самое метапрограммирование по Алану Кэю (тысячекратная компактность кода).
Теперь вы добавляете и перекомбинируете функции для создания новых возможностей: ваши функции становятся "словами", которыми вы просто записываете новые фичи-"предложения". И чем дальше погружаетесь в проект, тем таких языков предметных областей появляется больше -- на каждый логический уровень -- получаем то самое метапрограммирование по Алану Кэю (тысячекратная компактность кода).
🤔34⚡9🔥7💯2✍1
🤔23✍8👍4🐳4
Вопрос от курсанта:
На задании «Решение проблемы таксономии» на ООАП-2 кажется я словил озарение. Мне вдруг теперь кажется что ООП действительно про классы и методы(интерфейсы взаимодействия) и про грамотное их проектирование в том смысле, что вся эта императивщина типа условных операторов и т.п. в правильно спроектированной ООП системе в принципе не должна существовать. Так ли это или меня понесло куда то не туда? Просто выполняя задания я вдруг осознал что полиморфизм может спокойно заменить ветвления, при этом у нас исключаются ошибки и т.д. Вообще, в мейнстриме кто-то так пишет?
Конечно, в СильныхИдеях на эту тему немало материалов, кстати как раз следующий курс "Быстрая прокачка в ООП" об этом, ну и главное третий прикладной курс по ООАП.
Внутри методов конечно от условных операторов во внутренней логике никуда не деться, но на системном уровне полиморфизм прежде всего и другие механизмы из ФП (про error free code как раз сейчас пишу несколько материалов в СИ). В мэйнстриме так никто не пишет, в мэйнстриме пишут, как на картинке )
А вот выпускники и PhD Лиги Плюща, MIT, Оксфорд пишут по-взрослому (отсюда и тысячекратная компактность кода).
Я стараюсь учить именно этим подходам (третье правило Школы), и они конечно далеко не всем подойдут (а кому не подойдут, с 18 марта начну массоворасстреливать отчислять).
На задании «Решение проблемы таксономии» на ООАП-2 кажется я словил озарение. Мне вдруг теперь кажется что ООП действительно про классы и методы(интерфейсы взаимодействия) и про грамотное их проектирование в том смысле, что вся эта императивщина типа условных операторов и т.п. в правильно спроектированной ООП системе в принципе не должна существовать. Так ли это или меня понесло куда то не туда? Просто выполняя задания я вдруг осознал что полиморфизм может спокойно заменить ветвления, при этом у нас исключаются ошибки и т.д. Вообще, в мейнстриме кто-то так пишет?
Конечно, в СильныхИдеях на эту тему немало материалов, кстати как раз следующий курс "Быстрая прокачка в ООП" об этом, ну и главное третий прикладной курс по ООАП.
Внутри методов конечно от условных операторов во внутренней логике никуда не деться, но на системном уровне полиморфизм прежде всего и другие механизмы из ФП (про error free code как раз сейчас пишу несколько материалов в СИ). В мэйнстриме так никто не пишет, в мэйнстриме пишут, как на картинке )
А вот выпускники и PhD Лиги Плюща, MIT, Оксфорд пишут по-взрослому (отсюда и тысячекратная компактность кода).
Я стараюсь учить именно этим подходам (третье правило Школы), и они конечно далеко не всем подойдут (а кому не подойдут, с 18 марта начну массово
🫡29❤7🤔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 — вот она, бесовщина, где сидит! )
сервер успешно лежал. Веб-клиент отваливался по таймауту; ну можно было наверное на фронтенде впилить простое сообщение про "подождать"? (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-м закончится юникстайм, и на этом всё )
А что если такой код присылается намеренно? "в целях оскорбления религиозных чувств верующих"?
Например, в хорошо известном банке я недавно менял карточку, и в новой оказался издевательский срок 2/34, а номер заканчивается на 6313. То есть это фактически "три шестёрки + 13"! Сотонисты! )))
Пофиксить эту проблему (как, кстати, в ФНС сделали), не выдавать в коде некоторые числовые комбинации, работа на
P.S. А знаете, почему сделали срок 2/34, а не 3/45? Потому что в 2038-м закончится юникстайм, и на этом всё )
🤔39👍8🤯6😁3🫡2
Почему сегодня уже не стоит начинать новые проекты на плюсах:
вверху C++11, внизу условный C++32.
("C++ and The Next 30 Years")
вверху C++11, внизу условный C++32.
("C++ and The Next 30 Years")
😁19👍15🤔10🤓2🔥1
Распределённые системы сложны прежде всего потому, что:
1. Состояние "размазано" между узлами.
2. Сами узлы ненадёжны.
Если удалить любой из этих пунктов, проблема становится легко решаемой, что мы и видим тотально в мэйнстриме: сложная система реализуется с учётом только одного пункта.
Для минимально взрослого понимания вам необходимо пройти оба трека: по параллельным вычислительным моделям, и теорию по highload-системам.
Потому что распределённое программирование сложнее параллельного по следующим причинам:
-- Каждый процесс имеет своё собственное адресное пространство.
-- Сеть имеет ограниченную производительность.
-- Некоторые ресурсы доступны лишь локально.
-- Распределённая система может давать частичный сбой.
-- Распределённая система считается открытой: в ней сосуществуют независимые пользователи и вычисления, что усложняет тему безопасности.
Применяем к данной теме фундаментальный принцип: разделяем проблему на идеальный случай и ряд неидеальных расширений; даю на курсе решение для идеального случая, и как модифицировать это решение для продуктивной обработки неидеальных расширений.
1. Состояние "размазано" между узлами.
2. Сами узлы ненадёжны.
Если удалить любой из этих пунктов, проблема становится легко решаемой, что мы и видим тотально в мэйнстриме: сложная система реализуется с учётом только одного пункта.
Для минимально взрослого понимания вам необходимо пройти оба трека: по параллельным вычислительным моделям, и теорию по highload-системам.
Потому что распределённое программирование сложнее параллельного по следующим причинам:
-- Каждый процесс имеет своё собственное адресное пространство.
-- Сеть имеет ограниченную производительность.
-- Некоторые ресурсы доступны лишь локально.
-- Распределённая система может давать частичный сбой.
-- Распределённая система считается открытой: в ней сосуществуют независимые пользователи и вычисления, что усложняет тему безопасности.
Применяем к данной теме фундаментальный принцип: разделяем проблему на идеальный случай и ряд неидеальных расширений; даю на курсе решение для идеального случая, и как модифицировать это решение для продуктивной обработки неидеальных расширений.
👍38🔥9❤5🫡2🐳1