Обновить
785.52

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Перемещение подов к primary ноде patroni или как использовать taints, labels в k8s

Время на прочтение4 мин
Охват и читатели2.7K

Данная статья представляет собой решение проблемы с network latency между прикладом и бд. Поэтому скорее всего она будет интересна людям имеющие схожие симптомы. В материале описаны основные моменты kubernetes и пляски с бубном на python. Примеры кода приведены из реального приложения.

Читать далее

Шрифты в играх: как из 191 Мб сделать 12 Мб

Время на прочтение9 мин
Охват и читатели13K

Каждый, кто хоть раз играл в игры Playrix, замечал, что в них приходится много читать. Тексты окружают игрока повсюду: это разные элементы интерфейса, окна сезонов, баннеры, а также диалоговые окна, в которых разворачиваются целые сюжетные линии. Иногда нам кажется, что если собрать все наши игровые тексты, то можно выпустить ещё один том «Войны и мира». 

Работать с таким большим количеством текстов сложно — у каждого из 7 проектов в релизе был свой способ подготовки шрифтов. В какой-то момент мы поняли, что нам нужно объединить усилия и создать общий для всех подход, который будет поддерживать специальная техническая команда

Читать далее

API и ФССП: как это работает?

Время на прочтение9 мин
Охват и читатели35K

Я начал поиск информации о возможностях автоматизации получения данных с сайта...

Что из этого получилось...

Внедрение зависимостей проще простого – на Python

Время на прочтение10 мин
Охват и читатели35K

В качестве иллюстрации для этой статьи рассмотрим проект-пример. Предположим, вы пишете код приложения-чатбота. Вы хотите, чтобы некоторые классы можно было переиспользовать от бота к боту, чтобы не переделывать всякий раз всю работу заново.

Читать далее

Мой друг Netmiko. Часть 2: Три улучшения Python-скрипта

Время на прочтение5 мин
Охват и читатели9.6K

Продолжаю ковырять автоматизацию рутины на сети из Huawei коммутаторов. На этот раз изыскания, которые позволили сократить код в 3 раза, а именно: хосты и команды перенесены в отдельные файлы, пароль и имя пользователя больше не хранятся в открытом тексте. Есть демонстрация запуска скрипта. Детальное описание за кнопкой «Читать далее».

Читать далее

За два года стать разработчиком и устроиться в Tesla. Рассказываем историю Сергея

Время на прочтение7 мин
Охват и читатели25K

Тут должна быть крутая история успеха с неизменной рекламой каких-нибудь обучающих курсов. Что-то вроде «За два года Сергей выучился на питониста и уехал работать в Tesla в солнечной Калифорнии. Присоединяйся к нашей программе, и сможешь добиться того же!»

Но это не совсем наша заслуга — Сергей просто классный и много вкалывал, да и не с нашей программой учился, а на дружественных курсах Learn Python. Но это действительно вдохновляющая история и мы решили её опубликовать — может, кого-то это сподвигнет сменить профессию. А если учились и подустали — поверить в свои силы и пойти вджобывать. 

Рассказ поделим на несколько частей: как Сергей выучился на питониста, как устроился в Tesla, и как там вообще, у Илона Маска и на той стороне земного шара.

Читать далее

Анатомия асинхронных фреймворков в С++ и других языках

Время на прочтение20 мин
Охват и читатели50K
Привет! В этой статье я расскажу об устройстве асинхронных движков с корутинами и без них. Для начала сосредоточимся не на конкретном движке, а на том, почему во всех популярных языках программирования появились корутины и чем они так хороши. Это может быть интересно не только C++-разработчикам, но и всем, кто занимается разработкой сетевых приложений или интересуется архитектурой современных фреймворков.

Пройдёмся по разным архитектурам построения серверов — от самой простой синхронной к более интересным, посмотрим на типичную архитектуру корутинового движка, а после окунёмся в дебри C++ и взглянем на самое страшное на примере нашего фреймворка userver.

Пишем синхронный сервер


Представьте, что у вашего сервиса очень маленькая нагрузка — 100 rps, и вам дали задачу написать простой сервер, понятный каждому второму школьнику. У вас получится что-то наподобие следующего:

void naive_accept() {
  for (;;) {
    auto new_socket = accept(listener);

    std::thread thrd([socket = std::move(new_socket)] {
      auto data = socket.receive();
      process(data);
      socket.send(data);
    });

    thrd.detach();
  }
}
Читать дальше →

Удаление GIL из Python: заметки со встречи Python Core и Сэма Гросса

Время на прочтение14 мин
Охват и читатели15K

Во время ежегодного спринта разработчиков ядра Python мы встретились с Сэмом Гроссом, автором nogil — fork в Python 3.9, который удаляет GIL. В статье — итоги встречи.

Среди вопросов, на которые ответил Сэм:

— Какова вероятность того, что nogil в итоге окажется нежизнеспособным для включения в CPython?
— Как вы планируете синхронизировать свою работу с main? Есть ли какие-то советы по порядку коммитов?
— Включение nogil во время запуска — это долгосрочная опция, или только на переходное время?
— В финале предполагается исключительно nogil, без вариантов вернуть GIL обратно?
— Что вы думаете о параллельном запуске нескольких интерпретаторов Python с одним GIL для каждого?

И многие другие. Полный список приведен в начале статьи.

Посмотреть полное содержание встречи

Нейросети (на примере трансформеров) на фондовом рынке. Коды, «граали», финансовый результат

Время на прочтение13 мин
Охват и читатели12K

Пост в помощь тем кто интересуется практической пользой от применения нейросетей на фондовом рынке.

Читать далее

Преступность в США и России: сравнительный обзор

Время на прочтение11 мин
Охват и читатели174K

В предыдущем цикле статей я начал рассматривать открытые данные по преступности в США в разных контекстах (связь с расовой принадлежностью, преступления на почве нетерпимости, нападения на полицейских). Мне стало интересно сравнить преступность в США с ситуацией в нашей стране, благо эти данные тоже легко найти. Получилось познавательно. Интересно?

🎩🚬🔫 Да

Парсинг исторических данных с Google Scholar используя Python

Время на прочтение16 мин
Охват и читатели8.7K

Как спарсить исторические данные 2017-2021 годов с Google Scholar и сохранить их в CSV, SQLite используя Python и SerpApi.

Читать далее

Способы представления аудио в ML

Время на прочтение5 мин
Охват и читатели11K

В статье рассмотрены основные формы представления аудио для дальнейшего использования в различных сферах обработки данных.

Читать далее

Ещё одно решение игры Wordle на Python

Время на прочтение6 мин
Охват и читатели12K

В начале 2022 года мир захватила головоломка Wordle и почти сразу стали появляться варианты решения. На Хабре уже появилось описания двух вариантов решения, но они мне не понравились, поэтому я изобретаю свой собственный велосипед. Ссылки на предыдущие решатели:

1) https://habr.com/ru/company/skillfactory/blog/645653/ -- перевод решателя от Mickey Petersen, написано на идеальном Питоне, использует статистический анализ букв английского алфавита и вполне успешно справляется с задачей.

2) https://habr.com/ru/post/647391/ -- перевод решателя от Tom Lockwood, который решает англоязычную игру в 99,4% случаев. Автор исследовал внутренности игры и постарался максимально использовать полученную информацию о возможных загаданных словах и возможных вводимых словах, но по итогу всё сводится к статистическому анализу. Возможно, в будущем я воспользуюсь извлечённой из игры информацией для улучшения своего алгоритма.

Читать далее

Ближайшие события

Кто больше зарабатывает: специалист с образованием или с опытом?

Время на прочтение5 мин
Охват и читатели11K

К старту флагманского курса по Data Science делимся небольшим исследованием о зарплате на основе данных опроса Stack Overflow, а также очень кратко знакомим читателей с библиотекой построения байесовских моделей Bambi. За подробностями приглашаем под кат.

Читать далее

Питон против Безумного Макса, или как я посты на Хабре замораживал

Время на прочтение8 мин
Охват и читатели40K

Я помню тот старый Хабр. Логотип был похож на комок шерсти после отрыжки кота, я писал какие-то наивные статьи и мне казалось, что я очень крут (нет), а народ пилил годные технические полотна текста, и чтобы узнать инфу про чёрные точки на лице, нужно было посещать другие сайты. Это было прикольно.

Потом что-то пошло не так, начали появляться какие-то полутехнические статьи, и (далее моя интерпретация событий) чтобы сохранить Хабр, всех нетехнических писателей заманили в один корабль и отправили куда подальше на гиктаймс - подобно тому, как врач ампутирует руку пациенту, чтобы спасти жизнь. В данном случае, правда, врач подержал эту руку, посмотрел на неё, а потом пришил обратно. Что из этого вышло?

Что из этого вышло

Алгоритм Дейкстры. Разбор Задач

Время на прочтение7 мин
Охват и читатели95K


Поиск оптимального пути в графе. Такая задача встречается довольно часто и в повседневной жизни, и в мире технологий. Справиться с такими вызовами помогает подход, который должен быть в арсенале каждого программиста — алгоритм Дейкстры.

Если вы хотите найти ответить на вопросы, чем этот алгоритм лучше BFS (поиска в ширину), при каких условиях алгоритм применим, и какие теоретические и практические задачи можно с его помощью решать, читайте далее.

Читать дальше →

Нормализация SQL profiler трейса для группировки

Время на прочтение5 мин
Охват и читатели2.6K

Если вы разбираетесь "почему тормозит база" и у вас есть трейс, созданный MS SQL profiler, то что вы делаете первым делом? Правильно, сохраняете его в таблицу, чтобы поразбираться с ним с помощью родного SQL, а не в GUI.

Очень хотелось бы сделать group by TextData, но увы - так не получится из-за разных параметров у процедур и кверей. А выразительных способностей SQL не хватет, чтобы эффективно 'нормализовать' трейс.

Но ведь можно скрестить ежа и ужа, SQL и Python, и решить задачу в несколько строк! Полезные скрипты ниже.

Читать далее

3 особенности чисел в Python, о которых вы, возможно, не знали

Время на прочтение15 мин
Охват и читатели58K

Если вы писали код на Python, то весьма высока вероятность того, что вы, хотя бы в одной из своих программ, пользовались числами. Например, это могли быть целые числа для указания индекса значения в списке, или числа с плавающей точкой, представляющие суммы в некоей валюте.

Но числа в Python — это гораздо больше, чем, собственно, их числовые значения. Поговорим о трёх особенностях чисел в Python, с которыми вы, возможно, не знакомы.

Читать далее

Решаем Wordle с 3,64 попыток в 99,4% случаев

Время на прочтение3 мин
Охват и читатели9.8K

Недавно я играл в головоломку Wordle, параллельно думая, как бы её могла решать программа.

[Прим. пер.: Wordle — игра в отгадывание слов, напоминающая «быки и коровы». Правила достаточно ясны по скриншоту выше.]

Первым делом я извлёк списки слов с сайта Wordle. Любопытно, что существует «целевой» список из 2315 слов, которые могут быть ответами, но и дополнительный список из 10657 возможных догадок — вариантов, которые могут вводить пользователи, но которые никогда не будут ответом. Если вам нужны эти списки, то в репозитории ниже есть пара set в формате Python.

Первым делом я подумал, что для управления моей стратегией угадываний стоит использовать частотность букв английского языка. Однако потом я осознал, что есть способ получше: использовать частотность букв в целевом списке! Ведь это самое важное? Никаких мне etaoin shrdlu!
Читать дальше →

Инструменты для решения NER-задач для русского языка

Время на прочтение5 мин
Охват и читатели7.2K

Зачастую приходится работать с большими объемами документов, к примеру, исполнительными листами, заявлениями, договорами, из текстов которых нам необходимо извлечь весьма конкретную информацию: ФИО, даты рождения, наименования должности, паспортные данные, адрес, ИНН и наименование компаний, даты подписания документов и так далее. Всё это относится к задаче распознавания именованных сущностей (NER). Какие инструменты могут помочь нам в решении данной задачи для русского языка?

Пожалуй, первое что приходит в голову Data Scientist’у, когда речь идет о NLP или конкретно NER-задачах — это проекты DeepPavlov. Немного углубимся в данную тему, разберем все по порядку.

DeepPavlov — это фреймворк (open source), который помогает в разработке различных голосовых ботов, соответственно, решая различные NLP задачи.

На вход подается непредобработанный (регистры, знаки и т.д. сохранены) текст, а на выходе мы хотим увидеть, так называемые, спаны — фрагменты текста, с которыми уже можно работать (например, отнести к определенной категории).

Читать далее

Вклад авторов