еще один сервис по анализу EXPLAIN
https://explain.tensor.ru/about/#expanded
https://explain.tensor.ru/about/#expanded
Explain PostgreSQL
About
== Understanding a Kernel Oops!
https://www.opensourceforu.com/2011/01/understanding-a-kernel-oops/
https://www.opensourceforu.com/2011/01/understanding-a-kernel-oops/
Open Source For You
Understanding a Kernel Oops! - Open Source For You
This article explains the workings of a Linux kernel Oops, helps to create a simple version, and then debug it. It is mainly intended for beginners.
прикольная тула
https://sqlflow.gudusoft.com/#/
анализирует SQL запрос и строит удобную визуализацию взаимосвязей
https://sqlflow.gudusoft.com/#/
анализирует SQL запрос и строит удобную визуализацию взаимосвязей
Gudusoft
SQLFlow: Visualize column impact and data lineage to track columns across transformations by analyzing SQL query.
SQLFlow: Visualize column impact and data lineage to track columns across transformations by analyzing SQL query. supported databases: bigquery, couchbase, dax, db2, greenplum, hana, hive, impala, informix, mdx, mysql, netezza, openedge, oracle, postgresql…
== Простые highload паттерны на Go
https://habr.com/ru/post/682618/
- Refresh-ahead caching
Если по бизнес логике вашего приложения допустимо отдавать данные не первой свежести, то кешируйте их в приложении и отдавайте как есть. А сами данные обновляйте в фоне
- Do once, give it to everyone
Если много пользователей приходят одновременно в сервис за одной и той же информацией, зачем ее выполнять в лучшем случае дважды, а в худшем тысячи раз?
- Worker pool
на старте приложения инициализировать N воркеров, которые будут выполнять полезную работу, и сбрасывать состояние объектов воркера после завершения задачи
== Средние highload паттерны на Go
https://habr.com/ru/post/684904/
- Stateless horizontal scaling
Есть приложение, которое крутится в бою и вполне себе успешно выполняет свою работу. Постепенно трафик растет, пользователи становятся ненасытнее и все активнее пользуются приложением. И вот настигает пик, при котором CPU/RAM физически уже не хватает и требуется принять меры. Решение простое и очень эффективное - создать реплики приложения
- Sync to async
Есть приложение, в котором активно растет трафик и помимо основных, оно выполняет еще и вспомогательные функции, которые с ростом трафика начинают влиять на пользовательский опыт. Так почему не выполнять вспомогательные функции асинхронно?
- SQL to NoSQL
Есть приложение, в котором есть одно хранилище под все и, как правило, это какая-нибудь реляционная база данных. Уезжать из него очень не хочется, но пользовательский трафик растет с такой скоростью, что поддержание одного такого хранилища обходится дорого. - заюзать витрину nosql
https://habr.com/ru/post/682618/
- Refresh-ahead caching
Если по бизнес логике вашего приложения допустимо отдавать данные не первой свежести, то кешируйте их в приложении и отдавайте как есть. А сами данные обновляйте в фоне
- Do once, give it to everyone
Если много пользователей приходят одновременно в сервис за одной и той же информацией, зачем ее выполнять в лучшем случае дважды, а в худшем тысячи раз?
- Worker pool
на старте приложения инициализировать N воркеров, которые будут выполнять полезную работу, и сбрасывать состояние объектов воркера после завершения задачи
== Средние highload паттерны на Go
https://habr.com/ru/post/684904/
- Stateless horizontal scaling
Есть приложение, которое крутится в бою и вполне себе успешно выполняет свою работу. Постепенно трафик растет, пользователи становятся ненасытнее и все активнее пользуются приложением. И вот настигает пик, при котором CPU/RAM физически уже не хватает и требуется принять меры. Решение простое и очень эффективное - создать реплики приложения
- Sync to async
Есть приложение, в котором активно растет трафик и помимо основных, оно выполняет еще и вспомогательные функции, которые с ростом трафика начинают влиять на пользовательский опыт. Так почему не выполнять вспомогательные функции асинхронно?
- SQL to NoSQL
Есть приложение, в котором есть одно хранилище под все и, как правило, это какая-нибудь реляционная база данных. Уезжать из него очень не хочется, но пользовательский трафик растет с такой скоростью, что поддержание одного такого хранилища обходится дорого. - заюзать витрину nosql
Хабр
Простые highload паттерны на Go
Привет, Хабр! Меня зовут Агаджанян Давид, хочу поделиться некоторыми инженерами рекомендациями, которые часто на моем опыте помогали держать highload нагрузку не прибегая к хардкору. Примеры будут на...
== The dangers of assert in Python
https://snyk.io/blog/the-dangers-of-assert-in-python/
елси коротко - то не юзайте отлов ассертов в коде. это не сэйф. ассерты только для того чтобы майпай спокойно спал и в тестах помогает и в дебаг режиме для реализации Дефенсив-Программинг
https://snyk.io/blog/the-dangers-of-assert-in-python/
елси коротко - то не юзайте отлов ассертов в коде. это не сэйф. ассерты только для того чтобы майпай спокойно спал и в тестах помогает и в дебаг режиме для реализации Дефенсив-Программинг
Snyk
The dangers of assert in Python | Snyk
This article explores how to use asserts safely and what causes them to be unsafe. By the end of this article, you’ll know how to use assert most optimally without inadvertently opening yourself up to security issues.
Forwarded from S0ER
По обсуждению в предыдущем посте понял, что надо пояснить важную вещь: возможно ли из сеньера подняться в архитекторы?
Ответ - да.
Но надо понимать несколько важных вещей:
1. Я под "архитектором" в первую очередь понимаю "архитектора решения", есть еще "архитектор предприятия", "Архитектор ПО" и т.д. Самый близкий к программисту "Архитектор ПО".
2. Любой программист может влиять на свое развитие и только он определяет где работать, над какими проектами, на чем фокусироваться. Если программист хочет быть архитектором, то и фокусироваться надо на архитектуре, если тимлидом, то на управлении, если просто хочет писать код, то соответственно качать скилы разработчика;
3. Если вы решили, что код вам не интересен, а хочется в архитектуру, то вам все равно придется изучать программирование и расти как программист, потому что вам нужно будет найти работу где есть архитектор и архитектурные процессы. Сразу на архитектора "по курсам" не получится или это будет условный "архитектор ПО", которые так же пишет код как и все. но просто вот так называется.
4. Для архитектора важно качать не только программирование, но и знание инфраструктурных решений, понимать работу девопсов, уметь собирать требования и анализировать. В целом хорошо уметь в "абстракции". Архитектор должен уметь выражать мысли в понятиях отличных от кода. Соответственно надо смотреть не только на свою область, но и понимать как работают ваши коллеги. Не погружаясь глубоко, но в то же время понимая что и для чего использует ваша компания.
5. Если вы уже сеньер, в вашй компании есть архитектор решения и есть архитектурные процессы, то надо подключаться к ним. В каждом конкретном случае это может быть разные действия. У меня, например, входом послужило участие в "архитектурном комитете", я там изначально просто консультировал по техническим вопросам. А потом начал готовить требования, визировать решения по архитектуре в технической части.
6. Самое главное понимать, куда вы движетесь. Если вы просто ходите на работу, делаете задачи которые вам поручают, и просто стараетесь хорошо выполнять свою работу. То вряд-ли это приведет к тому, что вам начнут предлагать должности из тругих секций (неважно, тимлид или архитектор или еще что-то).
Ответ - да.
Но надо понимать несколько важных вещей:
1. Я под "архитектором" в первую очередь понимаю "архитектора решения", есть еще "архитектор предприятия", "Архитектор ПО" и т.д. Самый близкий к программисту "Архитектор ПО".
2. Любой программист может влиять на свое развитие и только он определяет где работать, над какими проектами, на чем фокусироваться. Если программист хочет быть архитектором, то и фокусироваться надо на архитектуре, если тимлидом, то на управлении, если просто хочет писать код, то соответственно качать скилы разработчика;
3. Если вы решили, что код вам не интересен, а хочется в архитектуру, то вам все равно придется изучать программирование и расти как программист, потому что вам нужно будет найти работу где есть архитектор и архитектурные процессы. Сразу на архитектора "по курсам" не получится или это будет условный "архитектор ПО", которые так же пишет код как и все. но просто вот так называется.
4. Для архитектора важно качать не только программирование, но и знание инфраструктурных решений, понимать работу девопсов, уметь собирать требования и анализировать. В целом хорошо уметь в "абстракции". Архитектор должен уметь выражать мысли в понятиях отличных от кода. Соответственно надо смотреть не только на свою область, но и понимать как работают ваши коллеги. Не погружаясь глубоко, но в то же время понимая что и для чего использует ваша компания.
5. Если вы уже сеньер, в вашй компании есть архитектор решения и есть архитектурные процессы, то надо подключаться к ним. В каждом конкретном случае это может быть разные действия. У меня, например, входом послужило участие в "архитектурном комитете", я там изначально просто консультировал по техническим вопросам. А потом начал готовить требования, визировать решения по архитектуре в технической части.
6. Самое главное понимать, куда вы движетесь. Если вы просто ходите на работу, делаете задачи которые вам поручают, и просто стараетесь хорошо выполнять свою работу. То вряд-ли это приведет к тому, что вам начнут предлагать должности из тругих секций (неважно, тимлид или архитектор или еще что-то).
Forwarded from Senior Python Developer
Получаем информацию о системе своего компьютера с помощью Python
Получение системной информации для вашей системы может быть легко выполнено используемой операционной системой, скажем, Ubuntu. Но не будет ли забавно получить эту системную информацию с помощью скрипта Python?
Установка модуля -
Получение системной информации для вашей системы может быть легко выполнено используемой операционной системой, скажем, Ubuntu. Но не будет ли забавно получить эту системную информацию с помощью скрипта Python?
Установка модуля -
pip install platform
Подробнее можно почитать здесь.Forwarded from Python Learning
Скачиваем HTML-код страницы с помощью Python
С помощью следующего фрагмента кода мы можем с легкостью получить HTML-код страницы в интеренете.
С помощью следующего фрагмента кода мы можем с легкостью получить HTML-код страницы в интеренете.
Forwarded from data будни (Саша Михайлов)
Английский в вакууме не котируется
Когда искал первую работу, думал что могу просить больше просто за тот факт, что знаю английский. Типа как при покупке техники в магазине: набираешь разных опций и за каждую общая цена увеличивается на сколько-то.
Поработав какое-то время, понял, что за всё время никто меня так и не попросил поговорить по английски или прочитать что-то. Так это не работает.
Просто так складывается, что всё самое новое и интересное в отрасли сначала публикуется на английском. Если интересна отрасль, то идешь и изучаешь.
То есть я думал, что связь прямая:
английский → больше зарплата
А на самом деле она косвенная:
английский → изучаешь новое в первоисточниках → применяешь на практике → прокачиваешь навыки → больше зарплата
Тут важен именно последняя связка: больше навык → больше зп. Наверное, можно и без английского, но кажется это будет сложнее.
Когда искал первую работу, думал что могу просить больше просто за тот факт, что знаю английский. Типа как при покупке техники в магазине: набираешь разных опций и за каждую общая цена увеличивается на сколько-то.
Поработав какое-то время, понял, что за всё время никто меня так и не попросил поговорить по английски или прочитать что-то. Так это не работает.
Просто так складывается, что всё самое новое и интересное в отрасли сначала публикуется на английском. Если интересна отрасль, то идешь и изучаешь.
То есть я думал, что связь прямая:
английский → больше зарплата
А на самом деле она косвенная:
английский → изучаешь новое в первоисточниках → применяешь на практике → прокачиваешь навыки → больше зарплата
Тут важен именно последняя связка: больше навык → больше зп. Наверное, можно и без английского, но кажется это будет сложнее.
Forwarded from Machine learning Interview
Объясните дилемму смещения-дисперсии (bias-variance tradeoff) и приведите примеры алгоритмов с высоким и низким смещением. (Тема: Алгоритмы)
Ответ
Смещение (bias) – это ошибка, внесенная в вашу модель из-за чрезмерного упрощения алгоритма машинного обучения, которое может привести к недообучению. В процессе обучения модели делаются упрощенные предположения, чтобы сделать целевую функцию более простой для понимания. Алгоритмы машинного обучения с низким смещением включают деревья решений, KNN и SVM. Высоким смещением, в частности, отличаются линейная и логистическая регрессия.
Дисперсия (variance) – это ошибка, внесенная в вашу модель сложным алгоритмом машинного обучения, при котором модель усваивает также и шум из тренировочного набора данных, что приводит к плохой точности на тестовом наборе данных. Это может привести к высокой чувствительности и переобучению.
Обычно, по мере усложения модели вы увидите снижение ошибки вследствие уменьшения смещения модели. Однако, это происходит только до определенной точки – и если вы будете усложнять свою модель дальше, в конце концов вы ее переобучите.
@machinelearning_interview
Ответ
Смещение (bias) – это ошибка, внесенная в вашу модель из-за чрезмерного упрощения алгоритма машинного обучения, которое может привести к недообучению. В процессе обучения модели делаются упрощенные предположения, чтобы сделать целевую функцию более простой для понимания. Алгоритмы машинного обучения с низким смещением включают деревья решений, KNN и SVM. Высоким смещением, в частности, отличаются линейная и логистическая регрессия.
Дисперсия (variance) – это ошибка, внесенная в вашу модель сложным алгоритмом машинного обучения, при котором модель усваивает также и шум из тренировочного набора данных, что приводит к плохой точности на тестовом наборе данных. Это может привести к высокой чувствительности и переобучению.
Обычно, по мере усложения модели вы увидите снижение ошибки вследствие уменьшения смещения модели. Однако, это происходит только до определенной точки – и если вы будете усложнять свою модель дальше, в конце концов вы ее переобучите.
@machinelearning_interview
Forwarded from Machine learning Interview
Ответ
P-значение используется для проверки значимости результатов после статистического теста гипотезы. P-значения помогают анализирующему делать выводы и всегда находятся в диапазоне между 0 и 1.
- P-значение, превышающее 0.05, обозначает недостаточные доказательства против нулевой гипотезы – а это значит, что нулевая гипотеза не может быть отвергнута.
- P-значение, меньшее 0.05, обозначает сильные доказательства против нулевой гипотезы – это значит, что нулевая гипотеза может быть отвергнута.
- P-значение, равное 0.05, находится на границе, то есть мы не можем сделать уверенного вывода о том, можно ли отвергнуть нулевую гипотезу.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Machine learning Interview
Как бы вы справились с разными формами сезонности
Ответ
В реальных данных временных рядов (например, количества плюшевых мишек, закупаемых на фабрике игрушек) часто встречаются различные виды сезонности, которые могут пересекаться друг с другом. Годичная сезонность, вроде пика перед Рождеством и летнего спада, может сочетаться с месячной, недельной или даже дневной сезонностью. Это делает временной ряд нестационарным, поскольку среднее значение переменной различно для разных периодов времени.
Лучший способ удаления сезонности из данных – это дифференцирование временного ряда. Это процесс получения разности между датой x и x минус период сезонности, которым может быть год, месяц, или что-нибудь другое. При этом первый период сырых данных теряется, поскольку из них нечего вычитать.
@machinelearning_interview
Ответ
В реальных данных временных рядов (например, количества плюшевых мишек, закупаемых на фабрике игрушек) часто встречаются различные виды сезонности, которые могут пересекаться друг с другом. Годичная сезонность, вроде пика перед Рождеством и летнего спада, может сочетаться с месячной, недельной или даже дневной сезонностью. Это делает временной ряд нестационарным, поскольку среднее значение переменной различно для разных периодов времени.
Лучший способ удаления сезонности из данных – это дифференцирование временного ряда. Это процесс получения разности между датой x и x минус период сезонности, которым может быть год, месяц, или что-нибудь другое. При этом первый период сырых данных теряется, поскольку из них нечего вычитать.
@machinelearning_interview
Forwarded from GitHub Community
typesense – опенсорсный аналог elasticsearch и подобных search-движков, с годным колличеством функционала
Другими словами это быстрая поисковая система с более продуманной системой поиска
⤷ Ссылка на проект
GitHub | #Interesting #Cpp
Другими словами это быстрая поисковая система с более продуманной системой поиска
⤷ Ссылка на проект
GitHub | #Interesting #Cpp