Forwarded from Человек и машина
Проработав без малого квартал в должности архитектора (а не инженера-архитектора, как раньше), я начал понимать своих коллег по цеху, со снисхождением и презрением относящих к этой работе.
Я продолжаю придерживаться тех же взглядов, что и всегда: архитектор, как отдельная должность - абсолютно бесполезная трата денег. Это роль, которую могут брать на себя один или более человек, совмещая ее с основной деятельностью (разработкой, управлением продуктом, you name it).
В своем предпоследнем посте я обращаю внимание на то, как меняется работа человека в момент, когда он тратит в почтовом клиенте больше времени, чем в терминале или редакторе кода. Я не шутил, когда говорил, что лишь огромный балласт из непрочитанных книг, Hackerrank и нехватка рук у инженерных групп помогают мне оставаться в форме. Я осознаю свои обязательства перед клиентом и не намерен его подводить из-за неправильного архитектурного решения.
Однако я вижу, что неприемлемо малое количество архитекторов поступает подобным образом. Более того, если (бес-)"полезность" разработчика видна практически сразу, то архитектору удается оставаться некомпетентным лодырем очень долгое время, и последствия этого выявляются вовсе нескоро.
Если вообще выявляются.
Я продолжаю придерживаться тех же взглядов, что и всегда: архитектор, как отдельная должность - абсолютно бесполезная трата денег. Это роль, которую могут брать на себя один или более человек, совмещая ее с основной деятельностью (разработкой, управлением продуктом, you name it).
В своем предпоследнем посте я обращаю внимание на то, как меняется работа человека в момент, когда он тратит в почтовом клиенте больше времени, чем в терминале или редакторе кода. Я не шутил, когда говорил, что лишь огромный балласт из непрочитанных книг, Hackerrank и нехватка рук у инженерных групп помогают мне оставаться в форме. Я осознаю свои обязательства перед клиентом и не намерен его подводить из-за неправильного архитектурного решения.
Однако я вижу, что неприемлемо малое количество архитекторов поступает подобным образом. Более того, если (бес-)"полезность" разработчика видна практически сразу, то архитектору удается оставаться некомпетентным лодырем очень долгое время, и последствия этого выявляются вовсе нескоро.
Если вообще выявляются.
Medium
My Tech career is shifting — and I am happy with that
What makes my current role different? I talk a lot.
📊 Наткнулся на Penrose - система автоматической генерации диаграм из математических нотаций.
Идея в том, чтобы рисовать не примитивы - круги, стрелки и т.д., а визуально представлять математическое выражение, что может быть полезно исследователям или студентам.
Изображение генерируется из выражений на специальном constraint-based языке, а затем оптимизируется (выравнивается, балансируется и т.д.) с помощью численных методов. Сложно объяснить, на видео гораздо понятнее.
После такого описания уже не удивляешься, что написано на Хаскеле плюс немножко Тайпскрипта.
#haskell #math
Идея в том, чтобы рисовать не примитивы - круги, стрелки и т.д., а визуально представлять математическое выражение, что может быть полезно исследователям или студентам.
Изображение генерируется из выражений на специальном constraint-based языке, а затем оптимизируется (выравнивается, балансируется и т.д.) с помощью численных методов. Сложно объяснить, на видео гораздо понятнее.
После такого описания уже не удивляешься, что написано на Хаскеле плюс немножко Тайпскрипта.
#haskell #math
penrose.cs.cmu.edu
Penrose: from mathematical notation to beautiful diagrams
Materials from our SIGGRAPH '20 paper.
🐹 Докладывают наши лучшие специалисты на go.
Пришел апдейт по дженерикам https://blog.golang.org/generics-next-step:
- на контракты забили
- говорят новый design draft сильно понятнее и проще
- выпустили тулзу, которая позволяет пописать на go с generic’ми прямо сейчас. Она просто транслирует код в обычный код без дженериков. В релизе все будет работать по другому.
- они (go team) все еще задаются вопросом нужны ли дженерики, в т.ч. есть шансы, что они могут так и не появиться
- самый ранний релиз, в котором могут появиться — go 1.17, август 2021
stay tuned 🍿
#golang
Пришел апдейт по дженерикам https://blog.golang.org/generics-next-step:
- на контракты забили
- говорят новый design draft сильно понятнее и проще
- выпустили тулзу, которая позволяет пописать на go с generic’ми прямо сейчас. Она просто транслирует код в обычный код без дженериков. В релизе все будет работать по другому.
- они (go team) все еще задаются вопросом нужны ли дженерики, в т.ч. есть шансы, что они могут так и не появиться
- самый ранний релиз, в котором могут появиться — go 1.17, август 2021
stay tuned 🍿
#golang
go.dev
The Next Step for Generics - The Go Programming Language
An updated generics design draft, and a translation tool for experimentation
💥В Python 3.10 может появиться паттерн-матчинг
https://www.python.org/dev/peps/pep-0622/
Мотивация: чаще всего builtin
#python
https://www.python.org/dev/peps/pep-0622/
Мотивация: чаще всего builtin
isinstance в Python используют в контексте if isinstance(a, A): ... elif isinstance(a, B): .... Решили эту конструкцию упростить и сделать более читабельной. Предлагается синтаксис для матчинга с литералами, константами и деструктуризацией объектов:match node:Если этот PEP примут, это будет первая фича, которая будет использовать возможности нового парсера python. Среди авторов Гвидо и Иван Левкивский.
case Node(children=[LParen(), RParen()]):
return True
case Node(children=[Leaf(value="("), Node(), Leaf(value=")")]):
return True
case _:
return False
#python
Python Enhancement Proposals (PEPs)
PEP 622 – Structural Pattern Matching | peps.python.org
This PEP proposes to add a pattern matching statement to Python, inspired by similar syntax found in Scala, Erlang, and other languages.
🐚 О, новость про Перл, анонсировали 7ю версию.
https://www.perl.com/article/announcing-perl-7/
#perl #perl #perl
Perl 7 is going to be Perl 5.32, mostlyИ ради чего столько лет мучений?
https://www.perl.com/article/announcing-perl-7/
#perl #perl #perl
Perl.com
Announcing Perl 7
Perl 5 with modern defaults
🏝 Автор Redis Сальваторе Санфилиппо уходит с поста главного мейнтейнера и контрибутора и передает проект своим коллегам, которые больше всего помогали ему.
http://antirez.com/news/133
Поскольку раньше процесса принятия решений о проекте, кроме мнения самого Сальваторе, не было, перед новыми мейнтейнерами и сообществом Редиса стоит задача придумать модель, как дальше все это развивать. Они об этом пишут тут
Сам Сальваторе планирует больше времени тратить на хобби, например записывать обучающие видосы на ютуб ¯\_(ツ)_/¯
#redis
http://antirez.com/news/133
Поскольку раньше процесса принятия решений о проекте, кроме мнения самого Сальваторе, не было, перед новыми мейнтейнерами и сообществом Редиса стоит задача придумать модель, как дальше все это развивать. Они об этом пишут тут
Сам Сальваторе планирует больше времени тратить на хобби, например записывать обучающие видосы на ютуб ¯\_(ツ)_/¯
#redis
Redis
New Governance for Redis | Redis
Redis open source project leaders Yossi Gottlieb and Oran Arga share the new community-driven governance structure for how Redis will be managed going forward.
📦 Вышел отчет-сравнение разных фронтендных сборщиков
https://bundlers.tooling.report/ от авторов web.dev
В обзор попали webpack, rollup, parcel и browserify. Параметров сравнения много: умение в код-сплиттинг, принимаемые форматы модулей, какие форматы модулей умеет продюсить, хеширование, как работает с не js-ресурсами.
В общем зачете побеждает rollup, но отрыв небольшой. Все инструменты делают все примерно одинаково. Вряд ли вы из этого отчета будете принимать решение о переходе на другой сборщик. Но посмотреть на подход к анализу все равно любопытно.
#javascript
https://bundlers.tooling.report/ от авторов web.dev
В обзор попали webpack, rollup, parcel и browserify. Параметров сравнения много: умение в код-сплиттинг, принимаемые форматы модулей, какие форматы модулей умеет продюсить, хеширование, как работает с не js-ресурсами.
В общем зачете побеждает rollup, но отрыв небольшой. Все инструменты делают все примерно одинаково. Вряд ли вы из этого отчета будете принимать решение о переходе на другой сборщик. Но посмотреть на подход к анализу все равно любопытно.
#javascript
tooling.report
Overview | Tooling.Report
A quick and easy way to figure out what the best tool for your next project is, if it’s worth your time to migrate from one tool to another and how to adopt a best practice into your existing code base. Brought to you by web.dev
🔷 WalmartLabs (тех.отдел крупнейшего американского ритейлера) начинают серию статей о своем пути в микросервисы.
Уже есть первая статья про построение DDD-микросервисов. Еще обещают написать про построение команд, их подходам к гибким сервисам, высоконагруженным сервисам, CI/CD и тестированию.
#microservices
Уже есть первая статья про построение DDD-микросервисов. Еще обещают написать про построение команд, их подходам к гибким сервисам, высоконагруженным сервисам, CI/CD и тестированию.
#microservices
Medium
Tech Modernization at scale — Blog Series
Platform refactoring initiatives go by various grandiose terms — Platform modernization, Tech refresh, Agile transformation, and DevOps…
📚Огромный список литературы по ML от DeepMind
https://storage.googleapis.com/deepmind-media/research/New_AtHomeWithAI%20resources.pdf
На любой вкус: курсы, видео-лекции, whitepapers; для новичков и продвинутых; ML, Reinforcement Learning, этика AI, безопасность, робототехника.
#ml
https://storage.googleapis.com/deepmind-media/research/New_AtHomeWithAI%20resources.pdf
На любой вкус: курсы, видео-лекции, whitepapers; для новичков и продвинутых; ML, Reinforcement Learning, этика AI, безопасность, робототехника.
#ml
🌉 Кажется, такие статьи пишут специально, чтобы их потом по полтора часа обсуждали в техно-подкастах. Очень флеймообразующий наброс: софт должен быть построен на века, поэтому не используйте библиотеки. Вот строители мостов не используют же библиотеки!
Автор даже аргументировать пытается и часть даже логична. Но вот это вот "там мосты, а у нас костыли"? В медицине, транспорте, других критичных местах действительно сильно меньше внешних зависимостей. Хорошо, что большинство разработчиков заняты вопросами попроще. Зачем себя мучать?
https://adlrocha.substack.com/p/adlrocha-software-should-be-designed
#programming
Автор даже аргументировать пытается и часть даже логична. Но вот это вот "там мосты, а у нас костыли"? В медицине, транспорте, других критичных местах действительно сильно меньше внешних зависимостей. Хорошо, что большинство разработчиков заняты вопросами попроще. Зачем себя мучать?
https://adlrocha.substack.com/p/adlrocha-software-should-be-designed
#programming
@adlrocha Weekly Newsletter
@adlrocha - Software should be designed to last
And why I am trying to minimize my dependence on external libraries (whenever possible).
🦄 Хотите небольшой привкус golang или даже deno в Python? Держите githubimport.
Добавляет хук к импорту, который позволяет прямо из интерпретатора импортировать код с гитхаба
Упоминают еще модуль httpimport, который умеет это же, но без каноничного синтаксиса импортов, зато с поддержкой Gitlab/BitBucket
#python
Добавляет хук к импорту, который позволяет прямо из интерпретатора импортировать код с гитхаба
>>> import githubimporthttps://gist.github.com/MineRobber9000/998fe8c5a183fa2649f937c9d2e0b8b0
>>> from MineRobber9000.test_modules import blah
>>> blah.foo()
"bar"
Упоминают еще модуль httpimport, который умеет это же, но без каноничного синтаксиса импортов, зато с поддержкой Gitlab/BitBucket
#python
Gist
Import Python modules from GitHub
Import Python modules from GitHub. GitHub Gist: instantly share code, notes, and snippets.
🎪 Куча забавных, а иногда и опасных, нюансов SQLite. Тут и приведение типа по-тихому, да и сами типы могут называться как угодно, и баг, который очевидно баг, но на него уже столько завязано, что исправлять уже поздно.
Не зря автор называет SQLIte джаваскриптом от баз данных
https://threadreaderapp.com/thread/1279522137754255360.html
#databases
Не зря автор называет SQLIte джаваскриптом от баз данных
https://threadreaderapp.com/thread/1279522137754255360.html
#databases
Threadreaderapp
Thread by @vdbv on Thread Reader App
@vdbv: Сегодня я случайно решил почитать документацию по SQLite. Я офигел и прозрел. Если вкратце, то SQLite — это такой джаваскрипт в мире баз данных. Тред с весёлыми запросами в консоли: 1. В SQLite, как и в любой...…
🔠 Релиз GPT-3 от OpenAI вызвал бурю восторгов. В Твиттере постили скринкасты реакт-приложений, которые генерились с помощью GPT-3 по текстовому описанию вроде "покажи приложение с двумя кнопками: добавить 3 доллара, убрать 5 долларов и покажи мой счет". И оно работает!
Но, разумеется, не все так просто. Тут хороший вдумчивый анализ потенциальных возможностей и рисков использования GPT-3. Реакт-разработчики могут выдыхать, они пока еще нужны.
https://minimaxir.com/2020/07/gpt3-expectations/
Но, разумеется, не все так просто. Тут хороший вдумчивый анализ потенциальных возможностей и рисков использования GPT-3. Реакт-разработчики могут выдыхать, они пока еще нужны.
https://minimaxir.com/2020/07/gpt3-expectations/
Minimaxir
Tempering Expectations for GPT-3 and OpenAI’s API
GPT-3 is indeed a large step forward for AI text-generation, but there are very many caveats with the popular demos and use cases.
🏝 JetBrains признали что текущая реализация автоматического управления памятью в Kotlin/Native не идеальна и взялись за разработку новой. Обещают решить проблему с object sharing между потоками и связанными с этим утечками. При этом мехенизм "заморозки" объектов останется
#kotlin
“as a safety mechanism for race-free data sharing”
https://blog.jetbrains.com/kotlin/2020/07/kotlin-native-memory-management-roadmap/#kotlin
The JetBrains Blog
Kotlin/Native Memory Management Roadmap | The Kotlin Blog
TL;DR: The current automatic memory management implementation in Kotlin/Native has limitations when it comes to concurrency and we are working on a replacement. Existing code will continue to work and
Forwarded from Вебня (Sergey Rubanov)
В блоге WebKit появилась огроменная и наикрутейшая статья о спекулятивных оптимизациях вообще и о таковых в движке JavaScriptCore. Если Вам интересны компиляторы, внутреннее устройство JavaScript движков, то Вы обязаны осилить это прекраснейшее чтиво, но учтите, это будет непросто!
https://webkit.org/blog/10308/speculation-in-javascriptcore/
https://webkit.org/blog/10308/speculation-in-javascriptcore/
WebKit
Speculation in JavaScriptCore
This post is all about speculative compilation, or just speculation for short, in the context of the JavaScriptCore virtual machine.
🏆 Золотой фонд выступлений evodevclub
Перезалил докарантинные доклады наших лучших специалистов:
- Сергей Сафонов про код ревью, как его проводить, как лучше подготовиться
- Александр Казанцев сделал обзорный доклад про Nest.js
#video
Перезалил докарантинные доклады наших лучших специалистов:
- Сергей Сафонов про код ревью, как его проводить, как лучше подготовиться
- Александр Казанцев сделал обзорный доклад про Nest.js
#video
YouTube
EvoDevClub: Code Review
Наш лучший специалист Сергей Сафонов делится опытом проведения Code review:
- Зачем это нужно? Как мы это делаем?
- Подходы к Code Review
- Подготовка к проверке хорошего кода
- Code Review Driven Development
- Git при Code Review
Презентация: https://d…
- Зачем это нужно? Как мы это делаем?
- Подходы к Code Review
- Подготовка к проверке хорошего кода
- Code Review Driven Development
- Git при Code Review
Презентация: https://d…
⚱️ За август Quay.io пару раз заметно полежала.
Разработчики написали постмортем, в котором описали как выявлять проблему, про приоритеты при падении сервиса и про (спойлер) "некритичный функционал, который мало кто использует".
https://www.openshift.com/blog/about-the-quay.io-outage-post-mortem (перевод)
#postmortem
Разработчики написали постмортем, в котором описали как выявлять проблему, про приоритеты при падении сервиса и про (спойлер) "некритичный функционал, который мало кто использует".
https://www.openshift.com/blog/about-the-quay.io-outage-post-mortem (перевод)
#postmortem
Redhat
About the Quay.io Outage: Post Mortem
A deep dive into how we found and fixed an issue on Quay.io
🎰 Через 10 минут на нашем ютуб канале будет доклад про Kotlin Multiplatform в одном из наших мобильных приложений
https://youtu.be/qn-OgYbRJFk
#kotlin #video
https://youtu.be/qn-OgYbRJFk
#kotlin #video
👨💻 Что-то затянулась пауза на нашем канале. Давайте возвращаться в строй.
JetBrains выкатили роадмап развития котлина. Собраны главные направления, по которым работает команда создателей.
Из интересного:
- Поддержка свежих JVM записей (records) и sealed classes
- Бутстрап компилятора
- Развитие Kotlin Mulitplatform Mobile
https://kotlinlang.org/roadmap.html
#kotlin
JetBrains выкатили роадмап развития котлина. Собраны главные направления, по которым работает команда создателей.
Из интересного:
- Поддержка свежих JVM записей (records) и sealed classes
- Бутстрап компилятора
- Развитие Kotlin Mulitplatform Mobile
https://kotlinlang.org/roadmap.html
#kotlin
💎 Неожиданно глубокая статься про жизнь с монолитом от Shopify. Огромное количество мыслей о развитии легаси кодовых баз, внедрении системных изменений, о подходах, тулзах.
А это, наверное, мой главный вывод в разработке за 10 лет:
Крайне рекомендую почитать
https://engineering.shopify.com/blogs/engineering/shopify-monolith
#architechture
А это, наверное, мой главный вывод в разработке за 10 лет:
In my experience, all large architecture changes end up in an incomplete state. Maybe that’s a pessimistic view, but my experience tells me that the temporary incomplete state will at least last longer than you expect. So choose an approach based on which intermediary state is most useful for your specific situation.Другими словами у самурая нет цели, только путь
Крайне рекомендую почитать
https://engineering.shopify.com/blogs/engineering/shopify-monolith
#architechture
🐍 Пару дней назад вышел релиз Python 3.9. Уже даже инфографика с нововведениями есть
https://docs.python.org/release/3.9.0/whatsnew/3.9.html
UPD: Все, кто нашли ошибку на картинке получают ачивку "Орлиный глаз 🦅". Вариант без ошибки можно найти в наших комментариях. Спасибо дорогим читателям!
#python
https://docs.python.org/release/3.9.0/whatsnew/3.9.html
UPD: Все, кто нашли ошибку на картинке получают ачивку "Орлиный глаз 🦅". Вариант без ошибки можно найти в наших комментариях. Спасибо дорогим читателям!
#python