Совершенно не удивлён: когда ты монополист, можно откровенно плевать на своих самых благонадёжных клиентов.
И что это за служба безопасности, которая даже не может сама отследить, откуда мне донаты приходят? :)
Даже в банках, когда вам блокируют карту, безопасник просит пояснить за конкретный платёж ("а чё это вы впн оплачиваете?"), хотя бы ясно, в чём претензии.
Понятно, что сейчас положено активнее "бдеть", а как отчитаться о своей активности? Только числом заблокированных "подозрительных".
Ну ок, уйду на бусти например.
И что это за служба безопасности, которая даже не может сама отследить, откуда мне донаты приходят? :)
Даже в банках, когда вам блокируют карту, безопасник просит пояснить за конкретный платёж ("а чё это вы впн оплачиваете?"), хотя бы ясно, в чём претензии.
Понятно, что сейчас положено активнее "бдеть", а как отчитаться о своей активности? Только числом заблокированных "подозрительных".
Ну ок, уйду на бусти например.
✍34🤯24👍13🫡10😁3
А чего так на "Смуту" набросились? Рассматривают под микроскопом, придираются к каждой детали.
"Текстурки разъехались... Сценка не проработана... Графика на максималках всё равно не топ..."
Ну игра и игра. Мне не нравится только, что бегать надо многовато по локациям (наверное, коня дадут?), а так норм.
Не знаю, это анрил наверное просит установить Visual C++ 2015 Redistributable? :)
"Текстурки разъехались... Сценка не проработана... Графика на максималках всё равно не топ..."
Ну игра и игра. Мне не нравится только, что бегать надо многовато по локациям (наверное, коня дадут?), а так норм.
Не знаю, это анрил наверное просит установить Visual C++ 2015 Redistributable? :)
😁62🤔8👍7🎉4🐳3
Выложил на курс карьеры 82-й материал "Стоит ли работать в МОСЯ/FAANG?".
Одна из серьёзных загвоздок в начале карьеры -- это отсутствие правильных ответов на многие ваши вопросы. Почему так, а не иначе? А как сделано вот это? А как хорошо сделать вот такое?
Если вы начинали свою карьеру программиста в небольших компаниях или стартапах, от вас требовалось ровно одно: заставить это работать. И если это работало хотя бы на троечку с минусом, то считалось, что дело сделано. При этом, конечно вы не писали никаких тестов, не имели никакого представления о паттернах проектирования, не говоря уж о software design, не уделяли никакого внимания вопросам масштабируемости или возможности долгосрочной модификации.
Люди писали, и всё также же активно пишут говнокод, постоянно изобретая велосипеды программной инженерии на ходу. И хотя мы можем целую вечность спорить о том, правильный ли выбор сделали организаторы стартапов, и мне, и большинству серьёзно настроенных ребят со временем становилось ясно, что это неправильно...
Одна из серьёзных загвоздок в начале карьеры -- это отсутствие правильных ответов на многие ваши вопросы. Почему так, а не иначе? А как сделано вот это? А как хорошо сделать вот такое?
Если вы начинали свою карьеру программиста в небольших компаниях или стартапах, от вас требовалось ровно одно: заставить это работать. И если это работало хотя бы на троечку с минусом, то считалось, что дело сделано. При этом, конечно вы не писали никаких тестов, не имели никакого представления о паттернах проектирования, не говоря уж о software design, не уделяли никакого внимания вопросам масштабируемости или возможности долгосрочной модификации.
Люди писали, и всё также же активно пишут говнокод, постоянно изобретая велосипеды программной инженерии на ходу. И хотя мы можем целую вечность спорить о том, правильный ли выбор сделали организаторы стартапов, и мне, и большинству серьёзно настроенных ребят со временем становилось ясно, что это неправильно...
👍61✍7🔥4❤3🫡1
Прекрасное от создателя кложа, очень рекомендую =>
"Hammock Driven Development"
Как говорил Алан Кэй,
"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP."
Как они так мыслят? Точнее, как они доходят до такого мышления? изучаю, разбираюсь в этом постоянно, понемногу взламываю и моделирую ) мой формат hard work в помощь.
Это ведь не просто фраза, сгенерированная нейросеткой мозга, а мета-скилл, умение создавать в такой парадигме качественные проекты на миллионы строк кода.
"Hammock Driven Development"
Как говорил Алан Кэй,
"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP."
Как они так мыслят? Точнее, как они доходят до такого мышления? изучаю, разбираюсь в этом постоянно, понемногу взламываю и моделирую ) мой формат hard work в помощь.
Это ведь не просто фраза, сгенерированная нейросеткой мозга, а мета-скилл, умение создавать в такой парадигме качественные проекты на миллионы строк кода.
YouTube
Hammock Driven Development - Rich Hickey
Rich Hickey's second, "philosophical" talk at the first Clojure Conj, in Durham, North Carolina on October 23rd, 2010.
Many thanks to Matt Courtney, who graciously provided the equipment and expertise that made this recording possible.
Many thanks to Matt Courtney, who graciously provided the equipment and expertise that made this recording possible.
👍42❤5⚡3🔥2🤔1
Что проще/легче рефакторить?
Anonymous Quiz
60%
Сильно связанную (coupled), но и сильно типизированную модель
40%
Полиморфную модель с низкой, но ненулевой связанностью
🤔66👍4✍2🐳1
К предыдущему: те, кто выбрал неверный вариант, полагаю, ещё не знают, как больно отлаживать длинную цепочку наследования, которая ведет себя неправильно, и никто не знает, почему :)
Чем больше у вас в проекте полиморфизма (который не надо путать с генериками), тем больше у вас будет glue code(это тёмная материя программного обеспечения, которая в значительной степени невидима, и мы знаем о ней очень мало :) .
Вообще, сила системы типов абсолютна: порядок всегда бьёт класс.
Забудьте про любые "вычисления" на уровне значений, пока не сформируете формальную унифицированную схему предметной области (как в ООП это делать например, поясняю на треке по ООАП). Другое дело, что хорошо бы добавлять на уровне типов семантические аннотации и разумное количество полиморфизма/наследования, но только для уточнения такой схемы.
Итак, идите и пишите правильный код, и да пребудет с вами Сила Куба Барендрехта! :)
P.S. Лет шесть назад кстати я писал об этом, вот думаю, не вернуться ли к тем планам? Все остальные курсы для Школы, которые хотел, уже сделаны.
...Вы сможете предлагать уникальный сервис, где вообще нету конкурентов -- разработку мощных языков программирования (верифицированных!) под конкретные ниши ML, с доказательством корректности кода. ...Совсем прозаическое -- что-то хотя бы на уровне System F для 1C :)
...Вы встанете вровень с Джеймсом Гослингом и Ван Россумом, Аланом Кэем и Андерсом Хейлсбергом, Юкихиро Мацумото и Грейдоном Хоаром. Это проект саморазвития даже не на одну жизнь, а на многие жизни вперёд.
...Ну и в любом случае, вы научитесь мыслить в программировании так, как никто больше практически, ну может несколько сотен человек во всём мире. Это объективно самый программистский топ.
Чем больше у вас в проекте полиморфизма (который не надо путать с генериками), тем больше у вас будет glue code
Вообще, сила системы типов абсолютна: порядок всегда бьёт класс.
Забудьте про любые "вычисления" на уровне значений, пока не сформируете формальную унифицированную схему предметной области (как в ООП это делать например, поясняю на треке по ООАП). Другое дело, что хорошо бы добавлять на уровне типов семантические аннотации и разумное количество полиморфизма/наследования, но только для уточнения такой схемы.
Итак, идите и пишите правильный код, и да пребудет с вами Сила Куба Барендрехта! :)
P.S. Лет шесть назад кстати я писал об этом, вот думаю, не вернуться ли к тем планам? Все остальные курсы для Школы, которые хотел, уже сделаны.
...Вы сможете предлагать уникальный сервис, где вообще нету конкурентов -- разработку мощных языков программирования (верифицированных!) под конкретные ниши ML, с доказательством корректности кода. ...Совсем прозаическое -- что-то хотя бы на уровне System F для 1C :)
...Вы встанете вровень с Джеймсом Гослингом и Ван Россумом, Аланом Кэем и Андерсом Хейлсбергом, Юкихиро Мацумото и Грейдоном Хоаром. Это проект саморазвития даже не на одну жизнь, а на многие жизни вперёд.
...Ну и в любом случае, вы научитесь мыслить в программировании так, как никто больше практически, ну может несколько сотен человек во всём мире. Это объективно самый программистский топ.
👍40❤11🤔7⚡5✍1
"В правоохранительных органах ТАСС сообщили, что сбой в базах ГИБДД произошел по стране в связи с переходом на новое программное обеспечение..."
Совершенно не удивлён, и дальше, по мере роста объёмов кода, будет только хуже.
Азы программной инженерии? PMBoK? SMBoK?
Хотя бы CI/CD на студенческом уровне?
Нет, не слышали.
Я не зря сделал это девизом Школы :)
"Why the fuck do we let people that have no computer science backgrounds write code? Unacceptable!"
В США нельзя получить достаточно серьёзный гос- или оборонный ИТ-заказ, если подрядчик не сертифицирован хотя бы по 3-му (из 5) уровню модели зрелости программных процессов CMM Карнеги-Меллона, много об этом писал.
В конце 90-х одна московская контора (сотни программистов работали по оффшорным подрядам) прошла эту сертификацию на 4 (из Америки к ним приезжал CMM-гуру), я тогда большой материал об этом писал. Ну и ISO 9001 где-то рядом. Они действительно серьёзно работали над рабочими процессами, покупали например аналитические отчёты Cutter -- 2-3 странички стоили 300-400 долларов, мне их босс по дружески сканировал, и я потом классные статьи писал по эксклюзивной инфе 😎
=
Но для подобной сертификации нужна действительно независимая организация, с гарантированно неангажированными экспертами, а где же таковых в России найти? )))
Совершенно не удивлён, и дальше, по мере роста объёмов кода, будет только хуже.
Азы программной инженерии? PMBoK? SMBoK?
Хотя бы CI/CD на студенческом уровне?
Нет, не слышали.
Я не зря сделал это девизом Школы :)
"Why the fuck do we let people that have no computer science backgrounds write code? Unacceptable!"
В США нельзя получить достаточно серьёзный гос- или оборонный ИТ-заказ, если подрядчик не сертифицирован хотя бы по 3-му (из 5) уровню модели зрелости программных процессов CMM Карнеги-Меллона, много об этом писал.
В конце 90-х одна московская контора (сотни программистов работали по оффшорным подрядам) прошла эту сертификацию на 4 (из Америки к ним приезжал CMM-гуру), я тогда большой материал об этом писал. Ну и ISO 9001 где-то рядом. Они действительно серьёзно работали над рабочими процессами, покупали например аналитические отчёты Cutter -- 2-3 странички стоили 300-400 долларов, мне их босс по дружески сканировал, и я потом классные статьи писал по эксклюзивной инфе 😎
=
Но для подобной сертификации нужна действительно независимая организация, с гарантированно неангажированными экспертами, а где же таковых в России найти? )))
❤30🔥16👍11🤔10😁2
Эта мания с тёмным режимом в вашей IDE и ваших редакторах должна наконец прекратиться! :)
Скажу больше, это выглядит просто ужасно, так что я склонен быть классиком и минималистом в этой теме. Когда вы в последний раз писали что-то на чёрной бумаге? Вы просто не делали этого никогда, так что я предпочитаю светлый режим с очень минимальной подсветкой синтаксиса. Это в основном чёрный текст на белом фоне, малиновый для ключевых слов, серый для комментариев, и тёмно-синий для значений, вот и всё, что вам нужно. И если вы попробуете так хотя бы 1-2 недели, вы наверняка скажете, что вашим глазам стало лучше, и это действительно приятно.
Тёмный режим может быть очень полезен для визуализации и тому подобных вещей, но для среды программирования это явно не то.
Я давно ещё писал, почему подсветка синтаксиса -- вообще зло.
...любой нормальный человек, увидев невероятную палитру текста программы в иных современных фреймворках, просто из здравомыслия признает, что так работать неудобно. Представьте, что в чёрно-белом книжном тексте разные слова подсвечены совершенно разными цветами, и вдобавок иногда выделены жирным или наклонным. А если, например, так распестрить математическую статью? Она станет на порядок более непонятной!
Скажу больше, это выглядит просто ужасно, так что я склонен быть классиком и минималистом в этой теме. Когда вы в последний раз писали что-то на чёрной бумаге? Вы просто не делали этого никогда, так что я предпочитаю светлый режим с очень минимальной подсветкой синтаксиса. Это в основном чёрный текст на белом фоне, малиновый для ключевых слов, серый для комментариев, и тёмно-синий для значений, вот и всё, что вам нужно. И если вы попробуете так хотя бы 1-2 недели, вы наверняка скажете, что вашим глазам стало лучше, и это действительно приятно.
Тёмный режим может быть очень полезен для визуализации и тому подобных вещей, но для среды программирования это явно не то.
Я давно ещё писал, почему подсветка синтаксиса -- вообще зло.
...любой нормальный человек, увидев невероятную палитру текста программы в иных современных фреймворках, просто из здравомыслия признает, что так работать неудобно. Представьте, что в чёрно-белом книжном тексте разные слова подсвечены совершенно разными цветами, и вдобавок иногда выделены жирным или наклонным. А если, например, так распестрить математическую статью? Она станет на порядок более непонятной!
🤔50👍22🤓16🤯10❤3
Лучшие книги и курсы для программистов -- это не те, которые вы читаете/проходите в начале своей карьеры. Это те, которые вы начинаете ценить лет через пять.
Проблема большинства учебных материалов в том, что они учат вас, как выполнить конкретную задачу с помощью определённого набора инструментов. Они предназначены для новичков или для разработчиков, переходящих в новый стек. Это отличные материалы, на основе которых вы довольно быстро вырастете до определенного уровня.
Однако потребуется время, чтобы понять и оценить более глубокие идеи. Вам нужно сперва как следует поработать над реальными проектами-вызовами. И вам нужно продержаться в них достаточно долго для того, чтобы почувствовать последствия своих действий и понять и оценить, насколько важны фундаментальные академические знания computer science.
Лучшее, что вам может дать книга или прикладной курс "в заключение делаеммм реальный проэкт" -- это дать вам вводящий в заблуждение игрушечный пример -- или наоборот, такой глубокий и сложный, что вы пропустите его целиком. Постоянно это вижу на дипломном проекте: ребята проходят весьма дорогие "технические" курсы коллег, изучают параллельно учебники, а потом не могут самостоятельно собрать оригинальный проект из 5-7 тесно связанных моделек.
Как правильно? Объяснять фундаментальные принципы, универсальные базовые строительные блоки, и позволить вам самостоятельно разбираться в деталях.
Проблема большинства учебных материалов в том, что они учат вас, как выполнить конкретную задачу с помощью определённого набора инструментов. Они предназначены для новичков или для разработчиков, переходящих в новый стек. Это отличные материалы, на основе которых вы довольно быстро вырастете до определенного уровня.
Однако потребуется время, чтобы понять и оценить более глубокие идеи. Вам нужно сперва как следует поработать над реальными проектами-вызовами. И вам нужно продержаться в них достаточно долго для того, чтобы почувствовать последствия своих действий и понять и оценить, насколько важны фундаментальные академические знания computer science.
Лучшее, что вам может дать книга или прикладной курс "в заключение делаеммм реальный проэкт" -- это дать вам вводящий в заблуждение игрушечный пример -- или наоборот, такой глубокий и сложный, что вы пропустите его целиком. Постоянно это вижу на дипломном проекте: ребята проходят весьма дорогие "технические" курсы коллег, изучают параллельно учебники, а потом не могут самостоятельно собрать оригинальный проект из 5-7 тесно связанных моделек.
Как правильно? Объяснять фундаментальные принципы, универсальные базовые строительные блоки, и позволить вам самостоятельно разбираться в деталях.
👍58🔥10❤5🫡5🤔3
Дам пацанам бесплатные советы :)
Посоздавайте на столбцах, которые используются в операторах с регулярными выражениями, индексы типа regexp.
Пооптимизируйте как следует сами регулярки, сделайте попроще.
Агрегируйте предварительно данные под сложные операторы.
Почитать эту статью, обратиться к автору,
ну и действительно, попробовать самим написать на плюсах Clickhouse UDF/UDAF.
Можно также поэкспериментировать с Presto или Spark, они тоже с регэкспами работают. Druid, Kylin...
Да, но даже 3rps не тянет :) Когда архитектурная ошибка была сделана исходно стратегически, поздняк метаться :)
P.S.1. Как тут не вспомнить разработку IBM IMS/DB в 1970-х, когда программисты говорили: "Мы ненавидим сложность, она почти всегда ненужная. Мы можем легко и просто хранить данные в плоских файлах, организованных в иерархию. Просто скажите нам ваши запросы, прежде чем мы начнём работать над дизайном схемы БД".
P.S.2. Ну и вообще-то любая аналитическая БД по дефолту подразумевает быстрое чтение и тормоза на запись. Тут уж либо OLAP, либо OLTP :)
Посоздавайте на столбцах, которые используются в операторах с регулярными выражениями, индексы типа regexp.
Пооптимизируйте как следует сами регулярки, сделайте попроще.
Агрегируйте предварительно данные под сложные операторы.
Почитать эту статью, обратиться к автору,
ну и действительно, попробовать самим написать на плюсах Clickhouse UDF/UDAF.
Можно также поэкспериментировать с Presto или Spark, они тоже с регэкспами работают. Druid, Kylin...
P.S.1. Как тут не вспомнить разработку IBM IMS/DB в 1970-х, когда программисты говорили: "Мы ненавидим сложность, она почти всегда ненужная. Мы можем легко и просто хранить данные в плоских файлах, организованных в иерархию. Просто скажите нам ваши запросы, прежде чем мы начнём работать над дизайном схемы БД".
P.S.2. Ну и вообще-то любая аналитическая БД по дефолту подразумевает быстрое чтение и тормоза на запись. Тут уж либо OLAP, либо OLTP :)
✍50👍11❤4😁2🏆2
Однажды я проработал ~12 часов, причём за это время я:
1. Не написал ни одной строчки кода.
2. Не набрал (и не написал) ни одного символа, связанного с работой.
3. Не читал и не слушал ничего связанного с работой.
4. Ни с кем не разговаривал ни о чём, связанном с работой.
Тем не менее я упорно трудился и добился немалых успехов.
1. Не написал ни одной строчки кода.
2. Не набрал (и не написал) ни одного символа, связанного с работой.
3. Не читал и не слушал ничего связанного с работой.
4. Ни с кем не разговаривал ни о чём, связанном с работой.
Тем не менее я упорно трудился и добился немалых успехов.
👍43😁18🤔10💯5❤4
Прежде чем ныть, что очередной ютубер "неправильно прочитал документацию" по вашему любимому языку/библиотеке (например, вот так :), попробуйте сами написать сотни строк проекта с нуля в прямом эфире перед сотнями зрителей, развлекая их (а некоторые целенаправленно пытаются отвлечь вас в чате:). Да, и всё это бесплатно.
YouTube
Programando um sistema com Java + jQuery - AO VIVO - LIVE CODING
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
🤔36✍8👍8🏆6❤2
Написал сегодня пост в вк, насколько (абсолютно!) важно качество кода/дизайна/архитектуры, и почему компании-разработчики софта не несут (пока) никакой юридической ответственности за забагованный софт? ИТ -- единственная в мире инженерная отрасль, где считается чуть ли не нормой продавать бракованные продукты.
Понятно, что компании прикрываются лицензиями: типа, мы не несём никакой ответственности за любые ваши проблемы при использовании наших программных продуктов. А если не принимаете такую лицензию, тогда и ПО не купить.
Но дело в том, что, например, вы можете нотариально заверить всё своё личное имущество, нажитое за долгие годы непосильным трудом, и заставить потом подругу подписать брачный договор, в котором (как в лицензии) говорится, что ни при каких условиях при разводе она не сможет претендовать на ваше всё, и она такая подписывает, нежно улыбаясь... А через год ставит вам рога, разводится, и -- сюрприз! -- суду совершенно пофиг навашу лицензию ваш брачный договор, и 50% всего вашего имущества уходит ей.
Поэтому, предлагаю посоздавать побольше прецедентных случаев.
Понятно, что компании прикрываются лицензиями: типа, мы не несём никакой ответственности за любые ваши проблемы при использовании наших программных продуктов. А если не принимаете такую лицензию, тогда и ПО не купить.
Но дело в том, что, например, вы можете нотариально заверить всё своё личное имущество, нажитое за долгие годы непосильным трудом, и заставить потом подругу подписать брачный договор, в котором (как в лицензии) говорится, что ни при каких условиях при разводе она не сможет претендовать на ваше всё, и она такая подписывает, нежно улыбаясь... А через год ставит вам рога, разводится, и -- сюрприз! -- суду совершенно пофиг на
Поэтому, предлагаю посоздавать побольше прецедентных случаев.
🤔57👍13🐳4🫡4🤓3
Сегодня в Москве несколько часов не работал мтс-овский петушеринг:
"У нас прилег сервис, мы видим проблему и стараемся решить её как можно быстрее."
(раз используете "ё", так уж будьте последовательны, ставьте везде)
Причин три:
1) либо условный "джун" задеплоил что-то не то: виноват сеньор, не сделавший code review;
2) либо накосячили dev/sys - админы: что-то не то сконфигурировали, что-то "само" апдейтнулось криво, сервак сгорел, забыли хостинг оплатить... -- виноват тимлид, не настроивший рабочие процессы;
3) либо хакеры -- виноват безопасник (а если такого нету, то CTO).
"Совершенно не удивлён, и дальше, по мере роста объёмов кода, будет только хуже."
В вк скоро выложу продолжение -- много советов, как писать безумно качественный код, что даёт существенное ускорение сроков разработки.
"У нас прилег сервис, мы видим проблему и стараемся решить её как можно быстрее."
(раз используете "ё", так уж будьте последовательны, ставьте везде)
Причин три:
1) либо условный "джун" задеплоил что-то не то: виноват сеньор, не сделавший code review;
2) либо накосячили dev/sys - админы: что-то не то сконфигурировали, что-то "само" апдейтнулось криво, сервак сгорел, забыли хостинг оплатить... -- виноват тимлид, не настроивший рабочие процессы;
3) либо хакеры -- виноват безопасник (а если такого нету, то CTO).
"Совершенно не удивлён, и дальше, по мере роста объёмов кода, будет только хуже."
В вк скоро выложу продолжение -- много советов, как писать безумно качественный код, что даёт существенное ускорение сроков разработки.
❤39👍20🔥6⚡4🤔3
Важнейший навык в разработке качественного программного обеспечения -- глубокое понимание домена (предметной области). Если вы плохо понимаете задачу, ваша система, скорее всего, будет представлять собой хаотичный набор всяческих use cases, связанных условными операторами, выполненный в архитектуре "говнокод".
👍69✍12😁6❤5🫡4