Forwarded from Novikov on Soapbox
Психология IT-дедов
Дедами в IT, бухтящими на молодняк, движет вовсе не "нежелание учиться новому". Просто деды помнят с какими задачами они в жизни изрядно потрахались и желают знать как же эти задачи решаются на новомодных технологиях. Но новые технологии ответов на старые вопросы не дают. Зато новых вопросов рождают до чёрта.
Например, транзакционная запись в БД. Я узнал что на go многие пишут CRUD-ы. Шут с ним что это просто полная чушь, но любому деду очевидно, что если ты раздеплоишь 100500 микросервисов на каждую сущность в БД, то при попытке сохранить что-то мало мальским сложное понадобится координатор распределённых транзакций. Ну чтобы при ошибке откатывать всю цепочку изменений автоматически. На уровне базы для этого есть встроенные механизмы (которые ещё и с репликацией дружат). Go-шники же при словах "координатор распределённых транзакций" смотрят ошалелыми холодными глазами и всем видом дают понять, что ты сказал щас что-то такое, что к их вселенной не относится.
Деды в курсе как масштабировать приложение на старых технологиях/baremetal и искренне не понимают на кой городить огород с контейнеризацией, когда достаточно грамотного билд-деплой пайплайна. А ещё диды помнят как в 2006м у них свой стартап крутился на паре бесхозных 360х "пентиумов" с винтами по 40 гигибайт. И стоило это примерно нихера и луку мешок. Счета за услуги облачных провайдеров ставят дедов в тупик. Они понимают, что им никогда не платили столько, сколько компания спускает в месяц на облака.
UI деды тоже делали. Хорошие деды даже понимают чем JS-подход к UI удобнее классики (абстракцией работы с UI-тредом), в остальном же MVC у них в крови ещё со времён Microsoft Foundation Classes. Ивент-луп и отрисовка изменений в данных. Ничего похожего на Redux дедам и в голову бы не пришло просто потому что а зачем. Максимум — MVVM (MVC с активной моделью, уведомляющей UI об изменениях). При виде современного веба, деды с тоской вспоминают RAD Studio — как тогда всё было просто, быстро, а главное — работало ведь! Никакого CSS, никакой групповухи с флексбоксами: куда кнопку поставил — там она и стоит. По меркам RAD Studio/WinForms/WPF современная веб-разработка чудовищно усложнена и до жути бестолкова (в смысле что результат неадекватен затраченным усилиям).
По поводу использования системных ресурсов деды пребывают в постоянном когнитивном диссонансе. Когда молодняк с криками "оборудование — ничто, понятность — всё" лихо разбрасывается огромными кусками оперативы, деды вспоминают, как в юношестве байтики экономил чтобы программа скачивалась два часа, а не три. Или чтобы отчёт обсчитывался за 4 часа, а не за 10 дней. Деды понимают, что весь софт сейчас работает херово и с ужасающим оверхедом. Вывозит только за счёт мощного и недорогого (относительно 80х-90х) железа. Это в их понимании означает "не работает".
В конце-то концов просто по-человечески больно осознавать, что ты писал очередь сообщений через файловую систему или базу данных. А современный школьник с улюлюканием берёт docker-образ NATS и втыкает его в свой проект. Ты бы и сам смог сделать NATS, но просто не успел. Кто-то оказался проворнее и удачливее. И сейчас вместо файн-тюнинга своего решения ты вынужден разбираться с нуля в чужом. И зачастую — донельзя говёном.
Бесит. Ну а кого б не бесило?
В любом случае помните, что деды могут делать как молодняк, просто не хотят. А вот молодняк делать как деды не умеет.
Такие дела
Дедами в IT, бухтящими на молодняк, движет вовсе не "нежелание учиться новому". Просто деды помнят с какими задачами они в жизни изрядно потрахались и желают знать как же эти задачи решаются на новомодных технологиях. Но новые технологии ответов на старые вопросы не дают. Зато новых вопросов рождают до чёрта.
Например, транзакционная запись в БД. Я узнал что на go многие пишут CRUD-ы. Шут с ним что это просто полная чушь, но любому деду очевидно, что если ты раздеплоишь 100500 микросервисов на каждую сущность в БД, то при попытке сохранить что-то мало мальским сложное понадобится координатор распределённых транзакций. Ну чтобы при ошибке откатывать всю цепочку изменений автоматически. На уровне базы для этого есть встроенные механизмы (которые ещё и с репликацией дружат). Go-шники же при словах "координатор распределённых транзакций" смотрят ошалелыми холодными глазами и всем видом дают понять, что ты сказал щас что-то такое, что к их вселенной не относится.
Деды в курсе как масштабировать приложение на старых технологиях/baremetal и искренне не понимают на кой городить огород с контейнеризацией, когда достаточно грамотного билд-деплой пайплайна. А ещё диды помнят как в 2006м у них свой стартап крутился на паре бесхозных 360х "пентиумов" с винтами по 40 гигибайт. И стоило это примерно нихера и луку мешок. Счета за услуги облачных провайдеров ставят дедов в тупик. Они понимают, что им никогда не платили столько, сколько компания спускает в месяц на облака.
UI деды тоже делали. Хорошие деды даже понимают чем JS-подход к UI удобнее классики (абстракцией работы с UI-тредом), в остальном же MVC у них в крови ещё со времён Microsoft Foundation Classes. Ивент-луп и отрисовка изменений в данных. Ничего похожего на Redux дедам и в голову бы не пришло просто потому что а зачем. Максимум — MVVM (MVC с активной моделью, уведомляющей UI об изменениях). При виде современного веба, деды с тоской вспоминают RAD Studio — как тогда всё было просто, быстро, а главное — работало ведь! Никакого CSS, никакой групповухи с флексбоксами: куда кнопку поставил — там она и стоит. По меркам RAD Studio/WinForms/WPF современная веб-разработка чудовищно усложнена и до жути бестолкова (в смысле что результат неадекватен затраченным усилиям).
По поводу использования системных ресурсов деды пребывают в постоянном когнитивном диссонансе. Когда молодняк с криками "оборудование — ничто, понятность — всё" лихо разбрасывается огромными кусками оперативы, деды вспоминают, как в юношестве байтики экономил чтобы программа скачивалась два часа, а не три. Или чтобы отчёт обсчитывался за 4 часа, а не за 10 дней. Деды понимают, что весь софт сейчас работает херово и с ужасающим оверхедом. Вывозит только за счёт мощного и недорогого (относительно 80х-90х) железа. Это в их понимании означает "не работает".
В конце-то концов просто по-человечески больно осознавать, что ты писал очередь сообщений через файловую систему или базу данных. А современный школьник с улюлюканием берёт docker-образ NATS и втыкает его в свой проект. Ты бы и сам смог сделать NATS, но просто не успел. Кто-то оказался проворнее и удачливее. И сейчас вместо файн-тюнинга своего решения ты вынужден разбираться с нуля в чужом. И зачастую — донельзя говёном.
Бесит. Ну а кого б не бесило?
В любом случае помните, что деды могут делать как молодняк, просто не хотят. А вот молодняк делать как деды не умеет.
Такие дела
Forwarded from Господин Архитектор
Телеграфом об Го
Если вы когда-нибудь задумывались, почему язык GO получил такое название, и не знали, я вам принес ответ - GO это аббревиатура от Google Oberon. Совпадает с Обероном-2 (наследник Паскаля, тоже господин Вирт делал) с точностью до семантики.
А вы думали, почему в Го для выражения в if не нужны круглые скобки? Потому что их в Алголе/Паскале можно не писать.
Единственное, в Го подлит синтаксис из Си, а также идеи CSP (communicating sequential processes) Тони Хоара добавлены. А именно -- примитивы общения, известные в Го как "каналы", которыми общаются активные объекты Оберона, известные в Го как "горутины".
А вот концепция интерфейсов и полиморфизм на основе подтипов я не знаю, откуда взят, мне кажется, что из COM и GObject 🙂
В общем, пока все бежали от Паскаля, он нанес ответный удар.
Если вы когда-нибудь задумывались, почему язык GO получил такое название, и не знали, я вам принес ответ - GO это аббревиатура от Google Oberon. Совпадает с Обероном-2 (наследник Паскаля, тоже господин Вирт делал) с точностью до семантики.
А вы думали, почему в Го для выражения в if не нужны круглые скобки? Потому что их в Алголе/Паскале можно не писать.
Единственное, в Го подлит синтаксис из Си, а также идеи CSP (communicating sequential processes) Тони Хоара добавлены. А именно -- примитивы общения, известные в Го как "каналы", которыми общаются активные объекты Оберона, известные в Го как "горутины".
А вот концепция интерфейсов и полиморфизм на основе подтипов я не знаю, откуда взят, мне кажется, что из COM и GObject 🙂
В общем, пока все бежали от Паскаля, он нанес ответный удар.
Forwarded from PythonDigest
#python #pydigest
Сборник Python новостей уже перед вами.
В выпуске Python Дайджест вы найдете:
- Расставляем ударения с помощью Natasha и Spacy
- Пишем генератор API тестов и данных для них
- Принимаем на работу брокера для Celery: подбор, аджаст и выкатка
- Как автоматизировать сбор статистики из Яндекс.Дзен при помощи кода
- Python: конфигурация проекта без боли
- Создание приложения для анализа данных машинного обучения
- Построение тепловой карты именованных сущностей
- PyCharm 2021.2.1
Заходите в гости - https://pythondigest.ru/issue/401/
Присылайте интересные новости через форму на сайте.
Сборник Python новостей уже перед вами.
В выпуске Python Дайджест вы найдете:
- Расставляем ударения с помощью Natasha и Spacy
- Пишем генератор API тестов и данных для них
- Принимаем на работу брокера для Celery: подбор, аджаст и выкатка
- Как автоматизировать сбор статистики из Яндекс.Дзен при помощи кода
- Python: конфигурация проекта без боли
- Создание приложения для анализа данных машинного обучения
- Построение тепловой карты именованных сущностей
- PyCharm 2021.2.1
Заходите в гости - https://pythondigest.ru/issue/401/
Присылайте интересные новости через форму на сайте.
Python Digest
Выпуск 401
Новый выпуск еженедельного дайджеста новостей о #python уже в эфире!
Luxoft TechFest #5 — бесплатный онлайн митап для тех, кому близок DevOps
9 сентября, 18:00 (Мск, GMT+3) пройдет бесплатный онлайн митап от команды Luxoft при поддержке JUG Ru Group.
Говорить будем об инструментах, практиках, проблемах и их решениях. А если чуть конкретнее, то о:
✔ Развертывании приложений и конфигураций в виде кода с помощью GitOps для Kubernetes с поддержкой Azure Arc;
✔ Облачной платформе: vendor lock и можно ли его избежать;
✔ Jenkins Jobs as Code, или как жить с одним пайплайном на всех.
Все доклады можно будет обсудить со спикерам в дискуссионных Zoom-комнатах, а также у вас будет возможность выиграть билетик на DevOops 2021🔥
Подробно почитать программу митапа и зарегистрироваться можно на https://bit.ly/3yzBFpe
9 сентября, 18:00 (Мск, GMT+3) пройдет бесплатный онлайн митап от команды Luxoft при поддержке JUG Ru Group.
Говорить будем об инструментах, практиках, проблемах и их решениях. А если чуть конкретнее, то о:
✔ Развертывании приложений и конфигураций в виде кода с помощью GitOps для Kubernetes с поддержкой Azure Arc;
✔ Облачной платформе: vendor lock и можно ли его избежать;
✔ Jenkins Jobs as Code, или как жить с одним пайплайном на всех.
Все доклады можно будет обсудить со спикерам в дискуссионных Zoom-комнатах, а также у вас будет возможность выиграть билетик на DevOops 2021🔥
Подробно почитать программу митапа и зарегистрироваться можно на https://bit.ly/3yzBFpe
Forwarded from ДевОпс Інженер 🇺🇦 (Oleg Mykolaichenko)
Terraform Best Practices
https://www.terraform-best-practices.com/
+ стрим и обсуждение бест практик с Антоном Бабенко:
https://www.youtube.com/watch?v=TCEuRujsbrE
https://www.terraform-best-practices.com/
+ стрим и обсуждение бест практик с Антоном Бабенко:
https://www.youtube.com/watch?v=TCEuRujsbrE
Terraform-Best-Practices
Welcome | Terraform Best Practices
This document is an attempt to systematically describe best practices using Terraform and provide recommendations for the most frequent problems Terraform users experience.
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Практический минимум от Computer Science Center
Запись курса об инструментах и технологиях, которые вокруг нас и которыми нужно уметь пользоваться.
https://proglib.io/w/f868fa8d
Запись курса об инструментах и технологиях, которые вокруг нас и которыми нужно уметь пользоваться.
https://proglib.io/w/f868fa8d
YouTube
Лекция 1. Введение в Linux
https://compscicenter.ru
Лекция №1 курса «Практический минимум» (осень 2020).
Преподаватель — Равиль Харисович Галеев
Страница лекции на сайте CSC: https://bit.ly/34K1hUg
Лекция №1 курса «Практический минимум» (осень 2020).
Преподаватель — Равиль Харисович Галеев
Страница лекции на сайте CSC: https://bit.ly/34K1hUg
Купоны на скидку на сертификации по Kubernetes
https://www.reddit.com/r/kubernetes/comments/pmovh2/50_discount_cka_ckad_cks_with_free_participation/?utm_source=share&utm_medium=web2x&context=3
https://www.reddit.com/r/kubernetes/comments/pmovh2/50_discount_cka_ckad_cks_with_free_participation/?utm_source=share&utm_medium=web2x&context=3
reddit
50% discount CKA CKAD CKS with free participation to kubecon
Attend to kubecon + CloudNativeCon North America 2021 (All Access virtual pass) for free with the code **KCNA21TR100**, and get **CKA/CKAD/CKS...
Короткий обзор основных сервисов AWS
https://www.youtube.com/watch?v=JIbIYCM48to&ab_channel=Fireship
https://www.youtube.com/watch?v=JIbIYCM48to&ab_channel=Fireship
YouTube
Top 50+ AWS Services Explained in 10 Minutes
Amazon Web Services (AWS) is the world's largest and most complex cloud with over 200 unique services. Learn about the top 50 cloud products in just ten minutes. https://fireship.io/pro
#aws #cloud #top50
🔗 Resources
AWS Products https://aws.amazon.com/products/…
#aws #cloud #top50
🔗 Resources
AWS Products https://aws.amazon.com/products/…
23 сентября в 21:00 команда BellSoft вместе с JUG Ru Group проведет бесплатную онлайн-конференцию “JRush. DevOps Philosophy: Vision of the Future” для Java-разработчиков и всех, кто интересуется DevOps.
В программе:
✔ Donovan Brown (Azure CTO Incubations team в Microsoft) — «Best practices when adopting DevOps»
Узнайте о том, как лучше всего внедрить DevOps в процесс разработки.
✔ Дмитрий Чуйко (Performance engineer в BellSoft) — «How to make OpenJDK the DevOps' best friend?»
Погрузитесь в тонкости установки OpenJDK.
✔ Heidi Waterhouse (Transformation advocate в LaunchDarkly) —«Tinkertoys, Legacy Computing, and You: How we got here and where to go»
Превращаем клубок микросервисов в удобные для тестирования модули.
Вас ждет: совмещение лучших практик DevOps и Java-разработки, 2 часа практической информации, возможность задать вопросы спикерам 🔥
Подробности и бесплатная регистрация на сайте.
В программе:
✔ Donovan Brown (Azure CTO Incubations team в Microsoft) — «Best practices when adopting DevOps»
Узнайте о том, как лучше всего внедрить DevOps в процесс разработки.
✔ Дмитрий Чуйко (Performance engineer в BellSoft) — «How to make OpenJDK the DevOps' best friend?»
Погрузитесь в тонкости установки OpenJDK.
✔ Heidi Waterhouse (Transformation advocate в LaunchDarkly) —«Tinkertoys, Legacy Computing, and You: How we got here and where to go»
Превращаем клубок микросервисов в удобные для тестирования модули.
Вас ждет: совмещение лучших практик DevOps и Java-разработки, 2 часа практической информации, возможность задать вопросы спикерам 🔥
Подробности и бесплатная регистрация на сайте.
Буратино дали 3 яблока.
Два он отдал Мальвине.
Сколько яблок у него осталось?»
.
1. Неизвестно, сколько яблок было у Буратино до того, как ему дали 3 яблока.
2. Неизвестно два "чего" он отдал Мальвине.
3. Неизвестно, являются ли Буратино и Мальвина двумя разными сущностями, или одно из них это ссылка на другое.
4. Неизвестно, каков результат этого процесса (может, Мальвина не взяла).
5. Непонятно, в какой момент "осталось". После того как он попытался дать в первый раз?
6. (state) Неизвестно, являются яблоки частью состояния Буратино или самостоятельными объектами.
7. (волатильность) Не ясно, сколько времени прошло с момента нахождения яблок у Буратино до процесса "отдачи":
– может, яблоки полураспадаются сами по себе (сгнивают), или возвращаются к тем, кто их дал.
– может, их едят, пока они у Буратино, а он просто этого не знает.
8. (длина переменной) Не ясно, сколько яблок может удержать Буратино.
Может, всего 2... и если он 2 отдал, у него нет яблок.
9. Если процесс дачи яблок рекурсивный, мы все останемся без яблок.
Два он отдал Мальвине.
Сколько яблок у него осталось?»
.
1. Неизвестно, сколько яблок было у Буратино до того, как ему дали 3 яблока.
2. Неизвестно два "чего" он отдал Мальвине.
3. Неизвестно, являются ли Буратино и Мальвина двумя разными сущностями, или одно из них это ссылка на другое.
4. Неизвестно, каков результат этого процесса (может, Мальвина не взяла).
5. Непонятно, в какой момент "осталось". После того как он попытался дать в первый раз?
6. (state) Неизвестно, являются яблоки частью состояния Буратино или самостоятельными объектами.
7. (волатильность) Не ясно, сколько времени прошло с момента нахождения яблок у Буратино до процесса "отдачи":
– может, яблоки полураспадаются сами по себе (сгнивают), или возвращаются к тем, кто их дал.
– может, их едят, пока они у Буратино, а он просто этого не знает.
8. (длина переменной) Не ясно, сколько яблок может удержать Буратино.
Может, всего 2... и если он 2 отдал, у него нет яблок.
9. Если процесс дачи яблок рекурсивный, мы все останемся без яблок.