Как стать автором
Обновить
38
0
Евгений @Eugene_Rymarev

Программист Python

Отправить сообщение

Пишем на Python как на Rust

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров31K

Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очень динамично, без подсказок типов, повсюду передавая и возвращая словари и время от времени возвращаясь к интерфейсам со «строковой типизацией». Однако, испытав на себе строгость системы типов Rust и заметив все проблемы, которые она предотвращает, я внезапно стал сильно беспокоиться всякий раз, когда возвращался к Python и не получал тех же гарантий.

Читать далее

Ядро планеты Python. Интерактивный учебник

Время на прочтение67 мин
Количество просмотров39K

Добрый день! Меня зовут Михаил Емельянов, недавно я опубликовал на «Хабре» небольшую статью с примерным путеводителем начинающего Python-разработчика. Пользуясь этим материалом как своего рода оглавлением книги, я написал первые четыре главы мини-учебника «Ядро планеты Python», где постарался коротко, но достаточно ёмко раскрыть специфику, удобство, красоту и силу этого прекрасного языка.


Оригинал учебника лежит на GitHub, вы вольны сколько угодно дополнять и переделывать его. Самое главное — учебник написан на Jupiter Notebook, а это значит, что вы можете интерактивно редактировать код, мгновенно добавляя новые сущности или проясняя непонятные моменты.


Core of the planet Python

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

Как устроено индексирование баз данных

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров110K

Индексирование баз данных — это техника, повышающая скорость и эффективность запросов к базе данных. Она создаёт отдельную структуру данных, сопоставляющую значения в одном или нескольких столбцах таблицы с соответствующими местоположениями на физическом накопителе, что позволяет базе данных быстро находить строки по конкретному запросу без необходимости сканирования всей таблицы. Применяются разные типы индексов, однако они занимают пространство и должны обновляться при изменении данных. Важно тщательно продумывать стратегию индексирования базы данных и регулярно её оптимизировать.
Читать дальше →

Какой ты нафиг программист?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров26K

Скажу честно, изучая программирование, я влюбился в Python. Тогда у него ещё не было такой ошеломляющей популярности, и после курса С/С++/Java было ощущение, что меня вынули из чана с кипящей смолой, облили пантенолом и дали попить вкусной минералки. Я уже был неплохим инженером, но меня, как любого адекватного человека, манили деньги в разработке — и я учился, учился, учился… Пока учился, написал кучу скриптов для рабочих серверов, научился сам работать с SQL-запросами в биллинге, делал выборки для аналитиков, не мучая службу АСУ. Я даже ушёл в не очень кровавый энтерпрайз посмотреть на разработку, погрузился, но отступил в связанное с основным профилем тестирование. Потому что однажды честно сказал себе: «Какой ты нафиг программист?» Скажу и некоторым остальным ;-)

Читать далее

Байки погромиста. Если кто-то скажет, что программирование — это скучно

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров55K

Вообще я, как правило, нормально программирую. Иногда даже такое заворачиваю, что сам тащусь весь день.

Но если б я писал, какой я красавчик, то никому не было бы интересно. Поэтому сегодня — очередная партия программистских историй от меня любимого, с косяками, багами и болью. Иногда это происходило по запарке, или когда я торопился, или после нудной работы, когда мозг уже плавился, а иногда просто я тупил, потому что я человек. В общем, такие вот типичные будни кодера. Наслаждайтесь!

Ну что он там опять натворил?

Можно ли растить мышцы одной тренировкой в неделю?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров14K

В фитно-сфере никто не задается таким вопросом и не отвечает на него. Наоборот, все озадачены, чем бы еще обвешать людей, чтобы они тренировались всегда. В зал как на работу. Так ведь лучше!?

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

Я сейчас занимаюсь на пианино и верховой ездой. Для меня это как спорт для многих. На пару раз в неделю. Если на нынешнем этапе с меня начали спрашивать преданность, покаяние и отдачу как от дела жизни, я бы плюнул на все. Так же, как многие плюют на фитнес.

Я сыграл мелодию из любимого фильма юности, удержался в седле на галопе — все, мне по кайфу. Сраный гиперболизм только попортит всю малину. Если максимализм органично встраивается в ваш лайфстайл, это хорошо. Вы нашли свое дело.

Если занятия спортом конкурируют со работой, обучением, детьми, то занятия идут лесом, не выдерживая конкуренции.

Ибо нехватка времени — основная причина, по которой люди не занимаются спортом (по крайней мере так говорят 50% опрошенных).

Читать далее

Почему мужикам нужно качать орех?

Время на прочтение3 мин
Количество просмотров63K

Если ты неприлично много сидишь, а после рабочего дня мечтаешь о том, чтобы отсоединить от себя свою поясницу и оставить ее на полке, пока не перестанет ныть, тогда тебе сюда.

Читать далее

5 полезных библиотек Python (с примерами)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров30K

Python остается топ 1 среди языков программирования по версии многих журналов и сайтов. Популярность языка и его большое сообщество привело к тому, что сейчас для Python существует огромное число библиотек. К сожалению, большая часть этих библиотек была создана энтузиастами и больше не поддерживается. Давайте посмотрим на 5 хороших развивающихся библиотек, которые могут помочь при решении практических задач.

Ознакомиться

Что не так с ChatGPT?

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров49K

ChatGPT (и примкнувший к нему New Bing) сейчас у всех на слуху. Пользовательская база первого перевалила за 100 млн за пару месяцев. В сети о нём циркулирует широчайший спектр мнений: от полного восторга надвигающейся технологической сингулярности, до панических предсказаний скорого порабощения человечества роботами. А многие занимают и жестко скептическую позицию. Вновь активизировались неолуддиты, их мишенью стали Copilot (побратим ChatGPT), и семейства AI тулзов для генерации графики (Stable Diffusion, Midjourney).

Я получил доступ к ChatGPT в первую неделю его запуска ("повезло" с наличием иностранного мобильного номера), и с тех пор пользуюсь им, если и не каждый день, то уж 4-5 раз в неделю точно. В данной статье хочу высказать свои личные наблюдения, подкрепленные мнениями из сети.

Про достоинства ChatGPT сказано уже очень многое, поэтому предлагаю более пристально посмотреть на обратную сторону монеты.

Посмотреть пристально

Просим бота написать бота

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров23K

В этой статье, хочу поделиться интересным опытом работы с ChatGPT, в рамках которого был написан телеграм-бот на языке Python, использующий API OpenAI для получения ответов на запросы.

Началось все с того, что я захотел зарегистрировать себе аккаунт на OpenAI и понять, кто такой этот ваш ChatGPT. Немного танцев с бубном, и желаемая цель была достигнута. Бот понравился, но возникали некоторые неудобства из-за доступа по VPN. Тогда у меня появилась идея создать телеграм-бота, который будет отправлять запросы в API OpenAI и возвращать ответы.

Я потратил следующий час на чтение документации по API OpenAI, но моя лень оказалась более находчивой, и я решил дать ChatGPT задание написать бота самостоятельно.

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

Читать далее

Бинарники из Python-файлов: Nuitka-компилятор, обзор и небольшое исследование

Время на прочтение8 мин
Количество просмотров28K


Здравствуйте, дорогие хабровчане. Сегодняшняя статья — результат моего небольшого исследования. Я хочу показать, как компилировать бинарные модули расширения (.so) из python-файлов, чем они будут отличаться и как с ними работать. Делать это мы будем при помощи компилятора Nuitka. Он наиболее известен тем, что с его помощью можно создавать исполняемые файлы (.exe) для Windows. Однако, кроме того, он позволяет создавать и бинарные модули python. Всех, кому это интересно, прошу под кат.

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

Главное — это идея: 10 отличных проектов промышленного дизайна 2022 года

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров15K
Как доработать игровой контроллер для людей с инвалидностью? Как сделать отвертку так, чтобы у нее появилось «плечо» для увеличения усилия? Как продумать пуговицы так, чтобы ими могли пользоваться даже слепые, при этом еще и различая цвета одежды? Это и многое другое в дайджесте независимых дизайн-проектов, которые я собирал целый год.

image

Я пишу про промышленный дизайн более 7 лет. По просьбе компании Timeweb я собрал 8 наиболее интересных, на мой взгляд, идей 2022 года и (поскольку я слоупок и пишу об этом только сейчас) добавил пару отличных проектов из января. Открывайте, будет интересно!
Читать дальше →

Как сократить time2market с помощью coding kata?

Уровень сложностиСредний
Время на прочтение31 мин
Количество просмотров2.8K

Однажды в мое поле зрения попал проект заказной разработки, который команда безуспешно пыталась сдать в течение двух лет. Полностью сдано было около 5% проекта, однако дальнейшая сдача заканчивалась неудачами то на стадии приемки функционала заказчиком, то на стадии внутреннего тестирования, то разработчики срывали сроки при внесении изменений в код.

За время проекта два раза поменяли команду и заказчика.

Аудит процесса производства с точки зрения time2market показал, что: долго вносятся изменения в код, долго выполняется ручное тестирование и часто после тестирования код возвращается на доработку

Первопричиной низкого time2market являлось то, что команда не владела практикой coding kata, о которой я подробно расскажу в данной статье на примере задачи "Позолоченная роза".

После применения приемов, описанных в этой статье, оставшиеся 95% проекта команда реализовала и сдала за 6 месяцев вместо прогнозируемых 48 лет, что эквивалентно сокращению time2market в 96 раз.

Читать далее

Я только спросить: разводим ChatGPT на откровенность по методу Илона Маска

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров45K

О том, что чат-бот ChatGPT от OpenAI настроен жёстко фильтровать контент во избежание "срыва толерантности", доносится из каждого утюга.

Бот пускается в получасовое резонёрство, чтобы только не произнести страшное N-слово, а о том, чтобы произнести F-слово, не может быть и речи. Ценой могут быть падение метеорита, цунами, ядерный армагеддон. Робот с упорством идиота продолжает предлагать поискать "этические компромиссы" и "достигнуть договорённости", чтобы избежать отношенческих обострений.

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

Читать далее

Как получить доступ к chatGPT в России

Время на прочтение4 мин
Количество просмотров1.5M

Всем привет! Перед началом статьи сразу скажу:

САМЫЙ ВАЖНЫЙ ДИСКЛЕЙМЕР: естественно, покупая смс на чужой номер вы полностью компрометируете безопасность своего аккаунта. Мало ли кто его потом еще купит для получения доступа. Поэтому, помните, что представленный в данной статье способ получения доступа - это только на "поиграться". Не стоит вводить туда свои реальные почты и использовать это в работе, так как полученный доступ может быть в любой момент взломан/прикрыт.

Но да ладно, приступим. Здесь без всякого объяснения того что такое ChatGPT - кому надо тот знает. В этой статье я хочу поделиться путем который вас за 30Р может к этому боту привести. Вдаваться в детали бота я не хочу, это чисто статья для ребят которые хотят без лишних запар пройти путь человека который доступ к боту уже получил :)

Как и многих вокруг, меня удивила новая технология от Open AI. Попытался зайти и зарегистрироваться через гугл, но...

Читать далее

5 лайфхаков Python, которые сделают ваш код более читабельным и элегантным

Время на прочтение3 мин
Количество просмотров31K

Привет, Хабр! В этой статье я продемонстрирую 5 трюков Python на понятных для новичков примерах, которые помогут вам писать более элегантный Python код в вашей повседневной работе.

Читать далее

Как работает yield

Время на прочтение6 мин
Количество просмотров707K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ

TorrServer: как смотреть торренты онлайн

Время на прочтение3 мин
Количество просмотров351K

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

Что нужно при домашнем просмотре фильмов и как это происходит у меня...

Читать далее

6 устаревших команд Linux и инструменты, которые пришли им на замену

Время на прочтение7 мин
Количество просмотров44K

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

"Все новое — лучше, чем старое" — девиз, который не всегда применим для утилит в Linux. Но все же исключения есть.

В статье под катом разработчик Хосе Висенте Нуньес* рассказывает о нескольких устаревших инструментах, которые вы, возможно, все еще используете. А также о том, чем их можно заменить. Автор объясняет, почему вам следует переключиться на эти улучшенные альтернативы, которые обеспечивают ту же — а в некоторых случаях даже большую — функциональность. Список составлен в произвольном порядке.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее

CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

Время на прочтение6 мин
Количество просмотров55K

Многие из вас каждый день работают в терминале, так давайте улучшим это времяпровождение вместе. Существует множество полезных инструментов CLI, которые могут сделать вашу жизнь в командной строке проще, быстрее и в целом веселее.

В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привык полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :)

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Software Developer, Backend Developer
Middle
Python
Docker
Linux
Git
PostgreSQL
Database
Software development
MySQL
SQL