SQL: вставка новых записей в БД или обновление существующих
Почти сразу при появлении SQL в работе появляется потребность обновлять базу. Однако вручную выслеживать, кто в большом наборе есть, а кого добавлять, — трата времени.
Запрос ниже добавляет новых сотрудников в перечень персонала. Если запись с таким именем уже существует, то эта инъекция обновит ее:db = # WITH new_employees AS (
SELECT *
FROM (
VALUES ('George', 'Sales', 'Manager', 1000),
('Jane', 'R&D', 'Developer', 1200)
) AS t(name, department, role, salary)
)
INSERT INTO employees (name, department, role, salary)
SELECT name,
department,
role,
salary
FROM new_employees ON CONFLICT (name) DO
UPDATE
SET department = EXCLUDED.department,
role = EXCLUDED.role,
salary = EXCLUDED.salary
RETURNING *;
#SQL
Подгрузка файлов на CDN c Python
CDN (Content Delivery Network) — распределённая система хранения данных, которая предоставляет собой набор серверов, отдающих файлы по принципу близости к пользователю.pip install cdnupload
cdnupload /website/static s3://static-bucket --key-map=statics.json
Документация библиотеки
#cdn
Скончался создатель VIM, Брам Муленаар
Семья разработчика сообщила, что Брам ушёл из жизни 3 августа. Он посвятил значительную часть своей жизни развитию и совершенствованию Vim и с гордостью глядел на достижения сообщества.
Vim — это редактор с открытым исходным кодом. За время своего существования он получил множество наград и по-прежнему остается одним из самых популярных текстовых редакторов.:wq!
#vim
Гринатом в поисках Middle/Senior Backend Python Developer в команду Атом Око
Чем занимается команда: автоматизирует внутренние процессы и делает продукты на внешний рынок, в том числе, высоконагруженные (детекция объектов на спутниковых снимках, импортозамещённый аналог OCR-сервиса, поисковые системы и многое другое).
Что предлагают:
— ресурсы, чтобы делать лучшие продукты на рынке;
— удалёнку;
— ДМС со стоматологией;
— профессиональную команду из фронтенд-, бэкенд-разработчиков, DS, аналитиков, дизайнеров, тестировщиков.
Ознакомиться с подробностями вакансии и откликнуться можно по ссылке ниже.
Откликнуться: https://tprg.ru/WakZ
#вакансия
Что полезного в свежей версии Python: необязательные элементы TypedDict
Существует такой интересный конструкт typing.TypedDict
.Он позволяет добавлять подсказки о типах данных словарю:class Point2D(TypedDict):
x: int
y: int
label: str
a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK
b: Point2D = {'z': 3, 'label': 'bad'} # Не пройдет проверку
Теперь TypedDict имеет необязательные элементы:class Movie(TypedDict):
title: str
year: NotRequired[int]
m1: Movie = {"title": "Black Panther", "year": 2018} # OK
m2: Movie = {"title": "Star Wars"} # OK (год необязателен)
m3: Movie = {"year": 2022} # Ошибка (не заполнено обязательное поле
)
Спасибо подписчику @Trizalio за годную подсказку.
Если вы знаете, о какой еще годной фиче из свежих релизов Python рассказать, поделитесь в комментариях. Интересные ответы мы превратим в посты с вашим упоминанием.
#лучшиепрактики
Как быстро найти отличия в длинных похожих строках
Чтобы сравнить две строчные последовательности (например, генов):seq1 = 'atgcttcggcaagactcaaaaaata'
seq2 = 'atscttcsscaagactaaaaaaata'
можно использовать комбинацию zip() и enumerate(). Первая сопоставит символы с одинаковыми индексами, а вторая – присвоит каждой паре символов порядковый номер (здесь всего 24):zip_seqs = zip(seq1, seq2)
enum_seqs = enumerate(zip_seqs)
Чтобы найти отличающиеся символы, достаточно сравнить символы попарно:for i, (a, b) in enum_seqs:
if a != b:
print(f'index: {i}')
... index: 2
... index: 7
... index: 8
... index: 16
#лучшиепрактики
Бенчмаркинг Python 3.10 vs. 3.11: на 64% быстрее?
Благодаря подписчику @Trizalio мы можем поделиться с вами прекрасной статьёй: сравнение производительности разных версий Python.
Автор статьи запускает разные версии ЯП в Docker и использует утилиту pyperformance
, чтобы вычислить время исполнения аналогичных скриптов.
#факты
Преуспеть в IT просто — получаешь оффер, отдаешь все задачи ChatGPT и фармишь шестизначные суммы. Так выглядит успех для тех, кто разбирается в нейронках.
Главное тут — изучить уникальные авторские гайды по ИИ. Вот как этот, например. Там ребята доступным языком объяснили, как начать, какую работу можно отдать нейронке и почему с этим справится даже новичок.
Зарегистрироваться на бесплатный курс и получить гайд можно по ссылке.
Реклама ООО «ТЕРРА ЭЙАЙ»
Преобразование русской речи в текст
В статье вы узнаете, как осуществить транскрибацию русской речи в текст при помощи Python и библиотеки vosk с использованием Deep Learning.
#texttospeech
Превратить кортеж в словарь одной строкой? Легко!
Допустим, у нас есть кортеж, где каждое значение – строка из двух символов:values = ('a1', 'b2', 'c3')
Если “навесить” функцию dict():print(dict(values))
то в результате мы получим словарь с разделёнными на «ключ – значение» парами:{'a': '1', 'b': '2', 'c': '3'}
#лучшиепрактики
Ребят, ищем пишущего IT-редактора блогов в Tproger
Условия: удалёнка, фултайм
Что делать:
— искать темы, которые понравятся клиентам и заинтересуют читателей;
— вникать в эти темы настолько, чтобы говорить с экспертами примерно на одном языке;
— проводить интервью и собирать фактуру;
— превращать фактуру в статью, которую захочется читать и репостить;
— дорабатывать статью вместе с экспертами и менеджерами клиента.
Требования:
— пишешь логично и ёмко, видишь стилистические и речевые ошибки в тексте.
— быстро находишь и проверяешь информацию (в том числе в англоязычных источниках).
— любишь общаться с экспертами и умеешь их разговорить.
— спокойно реагируешь на комментарии, но можешь отстоять свою позицию, если правка неуместна.
— тактично вносишь правки, чтобы автор не расстраивался, а был благодарен за помощь.
— знаешь, что такое ключевое слово, мета-описание и зачем нужен Wordstat.
Чтобы откликнуться, заполняйте анкету.
Рейтинг лучших программистов в мире 2023: полуфинал
В сегодняшнем раунде участвуют две пары:
— Бьёрн Страуструп, создатель С++;
— Билл Гейтс, сооснователь Microsoft.
— Андерс Гейлсберг, создатель Turbo Pascal, Delphi, C# и TypeScript;
— Линус Торвальдс, создатель Linux.
Ссылка на голосование
#баттлпрограммистов
Простейшее объяснение, зачем нужны Dunder-методы
Допустим, у нас есть класс Fruit с названием и ценой, плюс некие собственные методы. class Fruit:
def __init__(self, name, cost):
self.name = name
self.cost = cost
def method(self):
pass
Напрямую создавать экземпляры, передавая название и цену, не получится. НЯ ужно использовать магический метод __str__(): def __str__(self):
return f'{self.name}, €{self.cost}'
И теперь, если мы создадим экземпляр класса Fruit:banana = Fruit('Banana', 10.5)
то он «схватит» аргументы в нужном режиме: >>> print(banana)
... Banana, €10.5
#лучшиепрактики
Перенос строки
С помощью наклонной черты \ (backslash) можно разрывать длинный код на несколько строк:a_variable = True
b_variable = True
c_variable = False
if a_variable == True \
and b_variable == True \
and c_variable == False:
print('Like for more!")
#факты
Как бороться с прокрастинацией
Необычная англоязычная статья с talent500.co о работе с откладыванием задач у программистов. Помимо стандартных рекомендаций вроде планирования наперёд там вы найдёте ещё пару необычных техник от психоаналитиков.
#карьера
Свой API на Django
Полуторачасовая серия уроков, посвящённая созданию своего API (Application Programming Interface). Этот урок хорош тем, что объясняет не только логику вёрстки API, но и помогает развернуть проект на Django с нуля.
Ссылка на плейлист
#api #django
Гринатом в поисках Middle/Senior Backend Python Developer в команду Атомкор
Чем занимается команда: автоматизирует внутренние процессы и делает продукты на внешний рынок, в том числе, высоконагруженные (детекция объектов на спутниковых снимках, импортозамещённый аналог OCR-сервиса, поисковые системы и многое другое).
Что предлагают:
— ресурсы, чтобы делать лучшие продукты на рынке;
— удалёнку;
— ДМС со стоматологией;
— профессиональную команду из фронтенд-, бэкенд-разработчиков, DS, аналитиков, дизайнеров, тестировщиков.
Ознакомиться с подробностями вакансии и откликнуться можно по ссылке ниже.
Откликнуться: https://tprg.ru/WakZ
#вакансия
Большая книга примеров Python
Прекрасный гайд под авторством Марченко Антона – преподавателя МГУ. Книга знакомит с основной терминологией языка на доступных примерах. Это издание напоминает расшифровку документации и отличается упором на понятность. Помимо прекрасной подборки частоиспользуемых понятий, это ещё и способ подготовится к собеседованию на Junior Python Developer.
#обучение
Django: ваш первый проект
Перед тем, как приступить к созданию специфического функционала, необходимо выполнить несколько шагов и настроить ваш проект в рамках фреймворка.
В данном руководстве вы найдёте инструкцию по настройке проекта Django, которая будет полезна на первых этапах работы.
#django
Прекрасная утилита для написания регулярок
Если судить по названию, то ihateregex.io написал человек, сытый по горло непрозрачностью регулярных выражений. Так и появилась замечательная веб-утилита, которая иллюстрирует, что значит тот или иной компонент регулярки.
При просмотре скрина легче не особо становится, но вся прелесть инструмента раскрывается, когда вы пишете выражение с нуля. И, что важно, с такими паттернами прекрасно дружит библиотека re
, дополнительной подгонки не требуется.
#regex
Вы Python-разработчик и хотите делиться знаниями с другими?
Станьте автором курсов в Яндекс Практикуме — создавайте и улучшайте образовательный контент и влияйте на формирование индустрии.
Частичная занятость (2-3 часа в день)
Что делать?
Помимо теории нужно будет придумывать квизы, тесты, практические задания, дополняя это примерами из вашей профессиональной жизни.
Почему вам стоит стать автором курса?
— помощь тысячам людей получить востребованную IT-профессию;
— прокачка себя и подтверждение своей экспертности;
— дополнительный доход на удалёнке.
Откликайтесь по ссылкеhttps://practicum.yandex.ru/job/vacancy-118
#вакансия
Как выбрать тему для PyCharm
Рано или поздно большинство разработчиков приходят к осознанию — удобство IDE влияет на многое: скорость решения затыка, среднюю длительность беспрерывной работы, удобство настройки интерфейса. Так что сегодня мы рассказали в статье о темах для PyCharm, об их видах и процессе установки.
#pycharm
Обработка больших файлов в Python с использованием параллельных процессов
Чтобы ускорить процессинг крупных объектов, вы можете разделить задачу на несколько подпроцессов. Это позволяет программе сократить длину рантайма.
В статье вы узнаете, как сократить время обработки с помощью multiprocessing, joblib и tqdm.
#multiprocessing
Подборка актуальных вакансий
— Middle / Senior Backend-разработчик (Python) в Гринатом
Где: удалённо
Опыт: от 3 лет
— Программист-разработчик Python в Гринатом
Где: удалённо
Опыт: от 2 лет
— QA Automation (Python) в Иннотех
Где: удалённо
Опыт: от 3 лет
— Data Scientist в Открытие
Где: Москва, можно удалённо
Опыт: от 2 лет
— Team Lead Python-разработчик в Гринатом
Где: удалённо
Опыт: от 5 лет
— Data Engineer в Гринатом
Где: Москва
Опыт: от 3 лет
— Senior Python-разработчик в МТС
Где: Москва, можно удалённо
Опыт: от 4 лет
#вакансии #работа
Финал баттла программистов
Выберите тех, кого вы лично считаете лучшим программистом мира, но помните: не ориентируйтесь на их популярность, востребованность или устоявшиеся топы лучших программистов. В этом турнире важны только народная любовь и ваша субъективная оценка.
За первое и второе место будут бороться:
— Бьёрн Страуструп, создатель С++;
— Линус Торвальдс, создатель Linux.
За третье и четвёртое место будут бороться:
— Андерс Гейлсберг, создатель Turbo Pascal, Delphi, C# и TypeScript;
— Билл Гейтс, сооснователь Microsoft.
Ссылка на голосование
#баттлпрограммистов
Способ выделить уникальные элементы списка: фильтр Блума
Фильтр Блума позволяет быстро определить, не входит ли элемент в заданное множество. Операции вставки и проверки выполняются за постоянное время, независимо от размера множества. Библиотека bloom-filter как раз и помогает реализовать такую функциональность:# Инициируем экземпляр фильтра
bloom = BloomFilter(max_elements=10000, error_rate=0.1)
# Проверка на наличие "test-key"
assert "test-key" in bloom is False
#лучшиепрактики
Как применяется _ (нижнее подчёркивание)
1. Для читаемости больших чисел:num = 9_000_000
binaryNum = 0b0_101
hexNum = 0x5_4fa
2. Для удержания в памяти временного «бесхозного» объекта. Если в Jupyter Notebook в ячейке один произвести операцию сложения:4 + 5
то вызвать результат этого сложения в ячейке № 2 можно с помощью _:>>> _
... 9
#лучшиепрактики
Autopep: наводим порядок в коде
Интересный чистильщик кода autopep8 приведёт ваш файл.py к читаемому и корректному состоянию: pip install --upgrade autopep8
autopep8 --in-place filename.py
Помимо привычных возможностей, вроде корректировки отступов:
— конвертация многострочных комментариев из # в ''';
— разделяет код на строки согласно кастомной максимальной допустимой длине.
#факты
Интервью с Гвидо ван Россумом из Оксфорда
В своём англоязычном интервью создатель Python рассказал про:
— предпосылки создания языка (причем здесь язык C и shell-скрипты);
— сохранение мотивации;
— женщин в Python;
— предполагаемое будущее языка;
— крупные проблемы ЯП и другие интересные темы.
#факты