скриптощейка
#career перевод статьи готов и я бы хотел опубликовать на telegra.ph как я это делал обычно, но что-то он видимо упал и я не знаю на какой ещё площадке можно было бы опубликовать так, чтобы это можно было сделать быстро и без всяких модераций + с поддержкой…
#career
Долгожданный перевод наконец готов и опубликован!
https://dtf.ru/u/712791-seva-lisichko/1611227-troystvennaya-priroda-zarplat-inzhenerov-programmistov-v-niderlandah-i-evrope
Если понравилось поставьте лайк (👍🏻) плиз, можно и тут и там))
Долгожданный перевод наконец готов и опубликован!
https://dtf.ru/u/712791-seva-lisichko/1611227-troystvennaya-priroda-zarplat-inzhenerov-programmistov-v-niderlandah-i-evrope
Если понравилось поставьте лайк (👍🏻) плиз, можно и тут и там))
DTF
Тройственная природа зарплат инженеров-программистов в Нидерландах и Европе — Сева Лисичко на DTF
UPD: большое количество HR подтвердили, что эта зарплатная модель подходит для всех глобальных рынков: от США, до Азии и Латинской Америки. Также рекомендую чекнуть TechPays.com чтобы посмотреть данные по рынкам.
👍9🍾1
#postgresql
я тут решил почитать книжку про постгрес, чтобы лучше понять что она вообще умеет и оказывается, в пг можно в транзакции сделать savepoint, к которому можно будет вернуться, если часть транзакции вызвала ошибку
я тут решил почитать книжку про постгрес, чтобы лучше понять что она вообще умеет и оказывается, в пг можно в транзакции сделать savepoint, к которому можно будет вернуться, если часть транзакции вызвала ошибку
👍6👎1
#sqlalchemy
Оказывается в склалхимии существуют гибридные аттрибуты https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html при помощи которых можно сделать работу с орм удобнее.
Я при помощи гибридных аттрибутов смог сделать удобнее работу с м2м отношениями в склалхимии:
Оказывается в склалхимии существуют гибридные аттрибуты https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html при помощи которых можно сделать работу с орм удобнее.
Я при помощи гибридных аттрибутов смог сделать удобнее работу с м2м отношениями в склалхимии:
subquery = (
select(Model.name)
.join(Model.children)
.where(Model.model_children.in_(predefined_children_list))
.scalar_subquery()
)
👍4
#debugging
https://superuser.com/questions/1009571/how-to-prevent-url-redirects-in-chrome
ппц полезный гайд если возникает проблема, когда надо дебажить страницы с редиректами
https://superuser.com/questions/1009571/how-to-prevent-url-redirects-in-chrome
ппц полезный гайд если возникает проблема, когда надо дебажить страницы с редиректами
Super User
How to prevent URL redirects in Chrome?
When I type in a URL and hit enter, for example abc.com, I don't expect to end up somewhere else. I expect an error page if there isn't a site with that URL. But instead I get redirected to another...
👍2
#python #videoprocessing
Если вам когда-нибудь захочется сделать бекенд, который сможет работать с видео стоит обратить внимание на несколько вещей:
Чтобы долго не копаться в поисках либы для работы с видео и стримингом есть пара тулзов на питоне:
https://github.com/abhiTronix/vidgear — либа, которая позволяет реально очень просто работать с различными видео, получать, записывать и передавать
https://ffmpeg.org/ — тул, для которого во многих языках есть биндинги, позволяет довольно удобно переводить видосы в различные кодировки и делать некоторую обработку видео
https://github.com/NorthShine/tthack-backend/blob/main/main.py — тут пример использования, я на хаке пытался сделать адаптацию видео для людей с цветовыми аномалиями зрения.
однако у всех у них есть приколы. vidgear не может по какой-то причине нормально записывать видосы в нужной кодировке и постоянно вылезают ворнинги, из-за чего мне пришлось видео записывать через opencv. У opencv есть большой прикол с кодировкой H.264, из-за лицензии на использование этой кодировки разработчики opencv решили не делать нативную поддержку для этой кодировки, поскольку это может сказаться на коммерческом использовании этого тула и чтобы эту проблему обойти в проекте пришлось использовать ffmpeg
Я в ближайшее время хочу webrtc потыкать, может чего интересного напишу снова
Если вам когда-нибудь захочется сделать бекенд, который сможет работать с видео стоит обратить внимание на несколько вещей:
Чтобы долго не копаться в поисках либы для работы с видео и стримингом есть пара тулзов на питоне:
https://github.com/abhiTronix/vidgear — либа, которая позволяет реально очень просто работать с различными видео, получать, записывать и передавать
https://ffmpeg.org/ — тул, для которого во многих языках есть биндинги, позволяет довольно удобно переводить видосы в различные кодировки и делать некоторую обработку видео
https://github.com/NorthShine/tthack-backend/blob/main/main.py — тут пример использования, я на хаке пытался сделать адаптацию видео для людей с цветовыми аномалиями зрения.
однако у всех у них есть приколы. vidgear не может по какой-то причине нормально записывать видосы в нужной кодировке и постоянно вылезают ворнинги, из-за чего мне пришлось видео записывать через opencv. У opencv есть большой прикол с кодировкой H.264, из-за лицензии на использование этой кодировки разработчики opencv решили не делать нативную поддержку для этой кодировки, поскольку это может сказаться на коммерческом использовании этого тула и чтобы эту проблему обойти в проекте пришлось использовать ffmpeg
Я в ближайшее время хочу webrtc потыкать, может чего интересного напишу снова
GitHub
GitHub - abhiTronix/vidgear: A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing…
A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features :fire: - abhiTronix/vidgear
👍5⚡1🥰1
#postgresql
если будете писать функции кастомные для пг на питоне очень внимательно посмотрите этот пример из доки. Это не просто пример придуманный из головы — тут показан один очень важный нюанс. Переменные входные не инжектятся в скоуп генерируемой функции, поэтому к аргументы внутри тела функции надо сначала обозначить как global
если будете писать функции кастомные для пг на питоне очень внимательно посмотрите этот пример из доки. Это не просто пример придуманный из головы — тут показан один очень важный нюанс. Переменные входные не инжектятся в скоуп генерируемой функции, поэтому к аргументы внутри тела функции надо сначала обозначить как global
🔥3👍1
#kafka
Если когда-нибудь будете работать с образом кафки confluentint/kafka, то чтобы узнать версию кафки есть очень полезная таблица на сайте конфлюента
бтв, чтобы узнать версию достаточно просто в контейнере прописать
kafka-broker-api-versions --version
https://docs.confluent.io/platform/current/installation/versions-interoperability.html
Если когда-нибудь будете работать с образом кафки confluentint/kafka, то чтобы узнать версию кафки есть очень полезная таблица на сайте конфлюента
бтв, чтобы узнать версию достаточно просто в контейнере прописать
kafka-broker-api-versions --version
https://docs.confluent.io/platform/current/installation/versions-interoperability.html
#kafka #configuration
я нашёл очень полезную штуку для генерации конфигов стартовых для кафки
https://developer.confluent.io/get-started/python/#kafka-setup
я нашёл очень полезную штуку для генерации конфигов стартовых для кафки
https://developer.confluent.io/get-started/python/#kafka-setup
Confluent
Apache Kafka and Python - Getting Started Tutorial
How to run a Kafka client application written in Python that produces to and consumes messages from a Kafka cluster, complete with step-by-step instructions and examples.
#kafka #kafka_streams
https://github.com/faust-streaming/faust
кажется я нашёл более верхнеуровневую либу для кафки, чтобы не надо было вручную работать с продьюсерами и консьюмерами
https://github.com/faust-streaming/faust
кажется я нашёл более верхнеуровневую либу для кафки, чтобы не надо было вручную работать с продьюсерами и консьюмерами
GitHub
GitHub - faust-streaming/faust: Python Stream Processing. A Faust fork
Python Stream Processing. A Faust fork. Contribute to faust-streaming/faust development by creating an account on GitHub.
#oracle
Если вам когда-нибудь доведётся разворачивать OracleDB то ниже ссылка на полезную штуку для того чтобы можно было это удобно развернуть. Мне это сейчас пригодилось чтобы развернуть ораклдб для тестов одной задачи по датаинжу.
Я разворачиваю банально через
Если на серве мало оперативы то скрипт может крашнуться с ошибкой killed. Потому что в образе пакетный менеджер неплохо так кушает памяти. Я сделал себе своп на 5ГБ и мне хватило
https://github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance/dockerfiles
Если вам когда-нибудь доведётся разворачивать OracleDB то ниже ссылка на полезную штуку для того чтобы можно было это удобно развернуть. Мне это сейчас пригодилось чтобы развернуть ораклдб для тестов одной задачи по датаинжу.
Я разворачиваю банально через
buildContainerImage.sh -v 23.2.0 -f
docker run названиеКонтейнера
Если на серве мало оперативы то скрипт может крашнуться с ошибкой killed. Потому что в образе пакетный менеджер неплохо так кушает памяти. Я сделал себе своп на 5ГБ и мне хватило
https://github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance/dockerfiles
GitHub
docker-images/OracleDatabase/SingleInstance/dockerfiles at main · oracle/docker-images
Official source of container configurations, images, and examples for Oracle products and projects - oracle/docker-images
#oracle
я довольно долго мучался как подключиться к Oracle базе данных, но в итоге через несколько часов попыток у меня получилось
Итак, чтобы банально подключиться надо сделать следующее:
создать себе отдельного пользователя с правами
create user C##юзернейм_тут identified by пароль_здесь;
на C## не обращайте внимания, это потребовалось для создания юзера
grant sysdba to C##юзернейм_тут container=all;
grant create session to C##юзернейм_тут container=all;
после чего можно спокойно подключаться по URL через команду:
sqlplus C##юзернейм_тут@host_ip/service_name
service_name можно узнать непосредственно на сервере с oracleDB через утилиту:
lsnrctl status
имя должно быть похоже на XXXXpdb1
Через питон всё несколько проще, достаточно просто поставить себе клиент от оракла cx_Oracle и прописать соединение
Мне помогли гайды:
https://logic.edchen.org/how-to-resolve-ora-65175-cannot-grant-sysdba-privilege-locally-in-the-root/
https://library.netapp.com/ecmdocs/ECMP12471543/html/GUID-287BC8BA-B8B6-4D67-804E-880B65D30B68.html
я довольно долго мучался как подключиться к Oracle базе данных, но в итоге через несколько часов попыток у меня получилось
Итак, чтобы банально подключиться надо сделать следующее:
создать себе отдельного пользователя с правами
create user C##юзернейм_тут identified by пароль_здесь;
на C## не обращайте внимания, это потребовалось для создания юзера
grant sysdba to C##юзернейм_тут container=all;
grant create session to C##юзернейм_тут container=all;
после чего можно спокойно подключаться по URL через команду:
sqlplus C##юзернейм_тут@host_ip/service_name
service_name можно узнать непосредственно на сервере с oracleDB через утилиту:
lsnrctl status
имя должно быть похоже на XXXXpdb1
Через питон всё несколько проще, достаточно просто поставить себе клиент от оракла cx_Oracle и прописать соединение
connection = cx_Oracle.connect(
user="C##юзернейм_тут", password="password", dsn="ip.ip.ip.ip/service_name"
)
Мне помогли гайды:
https://logic.edchen.org/how-to-resolve-ora-65175-cannot-grant-sysdba-privilege-locally-in-the-root/
https://library.netapp.com/ecmdocs/ECMP12471543/html/GUID-287BC8BA-B8B6-4D67-804E-880B65D30B68.html
Ed's Logic
How to Resolve ORA-65175: cannot grant SYSDBA privilege locally in the root - Ed's Logic
ORA-65175 means that you cannot grant SYSDBA to an user only in the root container, which means, you should grant it globally or in a PDB.
Forwarded from linkmeup
Про Malware-as-a-Service, в том или ином виде, знают практически все. Но обычно знания ограничиваются тем, что можно себе купить доступ до вебмордочки с большой красной кнопкой Load Virus.
Но если интересно послушать про внутрянку мира прогрессивных бизнесменов, кто на чём зарабатывает и что вообще происходит, то смело жать на ссылочку ниже.
https://www.youtube.com/watch?v=O9ZDSloDn7k
Но если интересно послушать про внутрянку мира прогрессивных бизнесменов, кто на чём зарабатывает и что вообще происходит, то смело жать на ссылочку ниже.
https://www.youtube.com/watch?v=O9ZDSloDn7k
YouTube
Вредонос по подписке: как работает Malware-as-a-Service в даркнете
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
#digitalocean #aws #compatibility
Нашёл тут таблицу совместимости DigitalOcean Spaces и AWS S3 при работе через boto3. boto3 изначально авсовский сдк для работы с облаком, но частично и для DO подходит, а на сколько частично в таблице расписано
https://docs.digitalocean.com/reference/api/spaces-api/
Нашёл тут таблицу совместимости DigitalOcean Spaces и AWS S3 при работе через boto3. boto3 изначально авсовский сдк для работы с облаком, но частично и для DO подходит, а на сколько частично в таблице расписано
https://docs.digitalocean.com/reference/api/spaces-api/
DigitalOcean
Spaces API Reference Documentation | DigitalOcean Documentation
Complete reference documentation for the Spaces RESTful XML API, interoperable with Amazon S3.
Forwarded from linkmeup
Вебинар для всех желающих. Хоть разработчиков, хоть сисадминов. 28 июня в 20:00 мск «Авторизация и аутентификация в микросервисной архитектуре». Случится сие счастье в преддверии старта онлайн-курса «Microservice Architecture» в OTUS.
Спикером выступит Сергей Кривонос, руководитель по развитию платформы API Management в АО ДОМ.РФ, эксперт с 8-летним опытом создания архитектуры систем и преподаватель курса OTUS.
На занятии:
- расскажут про различные паттерны аутентификации и авторизации,
- рассмотрят сессионную аутентификацию на основе кук и токенов (jwt),
- объяснят работу identity провайдеров.
Кнопки для регистрации здесь: https://otus.pw/Mczn/
Реклама. Информация о рекламодателе на сайте www.otus.ru
Спикером выступит Сергей Кривонос, руководитель по развитию платформы API Management в АО ДОМ.РФ, эксперт с 8-летним опытом создания архитектуры систем и преподаватель курса OTUS.
На занятии:
- расскажут про различные паттерны аутентификации и авторизации,
- рассмотрят сессионную аутентификацию на основе кук и токенов (jwt),
- объяснят работу identity провайдеров.
Кнопки для регистрации здесь: https://otus.pw/Mczn/
Реклама. Информация о рекламодателе на сайте www.otus.ru
#machine_learning
тут оказывается создали автоматизацию для создания и обучения моделей машинного обучения, мб кому интересно будет
https://medium.com/mindsdb/using-mindsdb-to-predict-the-risk-of-heart-disease-9c602d0b6ca8
тут оказывается создали автоматизацию для создания и обучения моделей машинного обучения, мб кому интересно будет
https://medium.com/mindsdb/using-mindsdb-to-predict-the-risk-of-heart-disease-9c602d0b6ca8
Medium
Using MindsDB to predict the risk of heart disease
A step by step guide of how to use MindsDB’s AutoML platform for databases to predict the risk of heart disease at the early stages
#career
я тут нашёл интересную статью про то когда стоит менять работу
https://apoorvagovind.substack.com/p/how-to-waste-your-career-one-comfortable
я тут нашёл интересную статью про то когда стоит менять работу
https://apoorvagovind.substack.com/p/how-to-waste-your-career-one-comfortable
Substack
How to waste your career, one comfortable year at a time
If you are an average 30 yr old engineer, let's say you want to retire reasonably by the time you are 60. A year wasted at a poor job or role is equivalent to you throwing away 3.3% of your career. The older you get, the steeper your loss is.
❤1
#kafka
У меня возник с кафкой такой баг:
ERROR Error while creating ephemeral at /brokers/ids/0, node already exists and owner
и судя по всему его можно решить если в server.properties не устанавливать broker.id, я перезагрузил кафку и вроде пока работает, надо проверить как дальше всё будет, надеюсь проблем не возникнет.
https://kafka.apache.org/documentation/#brokerconfigs_broker.id
У меня возник с кафкой такой баг:
ERROR Error while creating ephemeral at /brokers/ids/0, node already exists and owner
и судя по всему его можно решить если в server.properties не устанавливать broker.id, я перезагрузил кафку и вроде пока работает, надо проверить как дальше всё будет, надеюсь проблем не возникнет.
https://kafka.apache.org/documentation/#brokerconfigs_broker.id
kafka.apache.org
Documentation Redirect
Apache Kafka
🤯2
Книжка которая тебе показалась интересной
Где в этой книжке интересное начинается
Где в этой книжке интересное начинается
❤1😢1
#refactoring #testing
Я только что понял, что совершил большую ошибку. Друзья, старайтесь избегать вызова функции, которая работает с внешним сервисом из другой функции. Как например
либо вам придётся создавать к тестируемой функции ещё дополнительно какие-то данные, чтобы get_data_from_db возвращала вам нужные данные
чтобы такую ошибку не повторять вместо этого делайте так
Я только что понял, что совершил большую ошибку. Друзья, старайтесь избегать вызова функции, которая работает с внешним сервисом из другой функции. Как например
async def prepare_my_data_from_db():для того, чтобы такое затестировать вам придётся написать мок в тесте, который будет знать, что в функции prepare_my_data_from_db существует какая-то другая функция, что с точки зрения тестирования не совсем правильно на сколько я понял
data = await get_data_from_db()
return prepare_data(data)
либо вам придётся создавать к тестируемой функции ещё дополнительно какие-то данные, чтобы get_data_from_db возвращала вам нужные данные
чтобы такую ошибку не повторять вместо этого делайте так
my_data = await get_data_from_db()тогда если вы захотите протестировать это, вам не надо будет мокать get_data_from_db, а вы сможете напрямую передать тестовые данные в функцию
async def prepare_my_data(data):
return prepared_data
👍6🤨3