Оказывается, скоро выйдет второе издание одной из лучших книг по Python, из тех, которые мне попадались - это книга Л. Рамальо "Python. К вершинам мастерства". У меня на полке стоит первое издание, поэтому второе покупать не планирую? но если нужна какая-то книжка уже не для изучения Python, а для более глубокого погружения, то я обычно советую ее (и книги Лутца, конечно).
На сайте издательства ( https://dmkpress.com/catalog/computer/programming/python/978-5-97060-885-2/ ) можно полистать оглавление и первую главу. Интересно, что в начале каждой главы есть раздел о том, что нового появилось в этом издании. Раньше я в книжках такого changelog-а не встречал.
#книги #python #программирование
На сайте издательства ( https://dmkpress.com/catalog/computer/programming/python/978-5-97060-885-2/ ) можно полистать оглавление и первую главу. Интересно, что в начале каждой главы есть раздел о том, что нового появилось в этом издании. Раньше я в книжках такого changelog-а не встречал.
#книги #python #программирование
👍11
Создание асинхронных приложений - это сложная тема в любом языке программирования, а в Python все еще усложняется наличием GIL (Global Interpreter Lock), который во многих случаях не позволяет использовать многоядерность процессоров. Но, как говорится, есть нюансы.
Недавно вышедшая на русском языке книга Мэттью Фаулера "Asyncio и конкурентное программирование на Python" эти самые нюансы раскрывает. В этой книге рассказывается и об асинхронном программировании, и о многопоточном, и о многопроцессном, и даже о том, как их скрещивать между собой (например, когда имеет смысл запускать асинхронный код в отдельном потоке). И вообще зачем нужны потоки в Python, если его интерпретатор по сути однопоточный (не все так однозначно).
Написал обзор этой книги себе в блог - https://jenyay.net/blog/2023/03/12/kniga-mehttyu-faulera-asyncio-i-konkurentnoe-programmirovanie-na-python/
Обзоры других книг можете найти на странице https://jenyay.net/Books/HomePage
#python #книги #asyncio #программирование
Недавно вышедшая на русском языке книга Мэттью Фаулера "Asyncio и конкурентное программирование на Python" эти самые нюансы раскрывает. В этой книге рассказывается и об асинхронном программировании, и о многопоточном, и о многопроцессном, и даже о том, как их скрещивать между собой (например, когда имеет смысл запускать асинхронный код в отдельном потоке). И вообще зачем нужны потоки в Python, если его интерпретатор по сути однопоточный (не все так однозначно).
Написал обзор этой книги себе в блог - https://jenyay.net/blog/2023/03/12/kniga-mehttyu-faulera-asyncio-i-konkurentnoe-programmirovanie-na-python/
Обзоры других книг можете найти на странице https://jenyay.net/Books/HomePage
#python #книги #asyncio #программирование
👍4
Очень неспешно продолжаю обновлять свои старые статьи про Matplotlib. Сегодня исправил статью Как обрабатывать события мыши и клавиатуры на графиках Matplotlib. Эта статья будет полезна, если вы захотите добавить немного интерактива для ваших графиков. Например, последний пример статье показывает, как можно добавлять на график метки с координатами (в системе координат осей), куда кликнул пользователь.
Дело близится к финалу, осталось поправить (читай, переписать) три статьи.
Полный список статей про Matplotlib можно найти на этой странице сайта.
#python #matplotlib #программирование
Дело близится к финалу, осталось поправить (читай, переписать) три статьи.
Полный список статей про Matplotlib можно найти на этой странице сайта.
#python #matplotlib #программирование
👍3❤1
Из серии "Чего не будет в Python". Недавно отклонили PEP 582, в котором речь шла о том, чтобы в исходниках каждого проекта на Python предусмотреть специальную папку
Некоторые пакетные менеджеры, например новый PDM, уже даже заявили поддержку этой возможности (собственно, благодаря нему я и узнал об этом PEP).
#python #программирование
__pypackages__
, куда можно было бы устанавливать пакеты, а не устанавливать их на уровне системы, пользователя и не создавать виртуальное окружение. Одно из обоснований этого предложения заключалось в том, чтобы было проще осваиваться новичкам, не надо было бы их сразу грузить виртуальными окружениями и всем, что с этим связано. По сути предлагалось эту директорию добавлять в начало списка sys.path, чтобы интерпретатор Python при импорте пакетов в первую очередь искал их в __pypackages__
.Некоторые пакетные менеджеры, например новый PDM, уже даже заявили поддержку этой возможности (собственно, благодаря нему я и узнал об этом PEP).
#python #программирование
Python Enhancement Proposals (PEPs)
PEP 582 – Python local packages directory | peps.python.org
This PEP proposes extending the existing mechanism for setting up sys.path to include a new __pypackages__ directory, in addition to the existing locations. The new directory will be added at the start of sys.path, after the current working directory an...
Наконец-то дочитал книгу "Внутри CPython" Энтони Шоу и написал обзор о ней. Оба эти процесса у меня затянулись.
Если говорить коротко, то эта книга в первую очередь написана для тех, кто хочет разобраться в исходниках интерпретатора Python и влиться в ряды его разработчиков. Это такой беглый обзор по исходникам, чтобы можно было понять, где что лежит. Не уверен, что книга понадобится обычному разработчику на Python, но если хочется почитать чего-то экзотического, то вполне можно.
А более развернуто написал у себя в блоге - https://jenyay.net/blog/2023/04/29/pro-knigu-ehntoni-shou-vnutri-cpython/
#python #программирование #книги
Если говорить коротко, то эта книга в первую очередь написана для тех, кто хочет разобраться в исходниках интерпретатора Python и влиться в ряды его разработчиков. Это такой беглый обзор по исходникам, чтобы можно было понять, где что лежит. Не уверен, что книга понадобится обычному разработчику на Python, но если хочется почитать чего-то экзотического, то вполне можно.
А более развернуто написал у себя в блоге - https://jenyay.net/blog/2023/04/29/pro-knigu-ehntoni-shou-vnutri-cpython/
#python #программирование #книги
👍4🔥2
Продолжаю обновлять старые статьи про библиотеку Matplotlib для построения графиков на Python.
В этот раз практически полностью переписал статью про то, как работать с календарными данными, откладываемыми по оси - https://jenyay.net/Matplotlib/Date
С момента написания первоначальной версии статьи прошло 10 лет (ужас какой!) и принципы работы с календарными данными в Matplotlib кардинально изменились (в лучшую сторону). Старые примеры там вообще уже не работали, и не только потому, что были рассчитаны на Python 2.x, но еще потому, что из Matplotlib одни используемые функции исчезли, а другие стали считаться устаревшими. Кроме того, внешний вид графиков в новых версиях Matplotlib намного симпатичнее.
#программирование #pyhon #matplotlib
В этот раз практически полностью переписал статью про то, как работать с календарными данными, откладываемыми по оси - https://jenyay.net/Matplotlib/Date
С момента написания первоначальной версии статьи прошло 10 лет (ужас какой!) и принципы работы с календарными данными в Matplotlib кардинально изменились (в лучшую сторону). Старые примеры там вообще уже не работали, и не только потому, что были рассчитаны на Python 2.x, но еще потому, что из Matplotlib одни используемые функции исчезли, а другие стали считаться устаревшими. Кроме того, внешний вид графиков в новых версиях Matplotlib намного симпатичнее.
#программирование #pyhon #matplotlib
👍8
Переписал еще одну древнюю статью про использование библиотеки Matplotlib - "Применение объектно-ориентированного стиля" (https://jenyay.net/Matplotlib/Objects ).
В ней рассказывается о том, какие есть способы ее использования, начиная с устаревшего модуля pylab, использование функций из модуля matplotlib.pyplot и использование более низкоуровневых объектов Figure, Axes, Line2D, Legend и др.
И кажется, это последняя статья, которую нужно было обновить. Теперь можно писать новые, и у меня уже есть наброски для будущих статей на эту тему.
#программирование #python #matplotlib
В ней рассказывается о том, какие есть способы ее использования, начиная с устаревшего модуля pylab, использование функций из модуля matplotlib.pyplot и использование более низкоуровневых объектов Figure, Axes, Line2D, Legend и др.
И кажется, это последняя статья, которую нужно было обновить. Теперь можно писать новые, и у меня уже есть наброски для будущих статей на эту тему.
#программирование #python #matplotlib
👍4🔥3
✏️ Переписал еще одну статью про Matplotlib.
Изначально я собирался написать новую статью о способах переключения между окнами Matplotlib для того, чтобы рисовать графики в разных окнах не последовательно в порядке создания окон, а в произвольном порядке. В процессе написания я заметил, что о чем-то похожем я уже писал (и более того, в этом году я эту статью уже обновлял). Но это была статья лишь об одном из методов для выбора окон. В результате получился текст, в котором старая статья в немного измененной форме превратилась в один из разделов.
Новую версию по сути переписанной заново статьи вы можете прочитать по ссылке — Как рисовать графики в разных окнах.
Все статьи про рисование графиков в Python с помощью библиотеки Matplotlib можно увидеть по ссылке — Использование библиотеки Matplotlib.
#программирование #python #matplotlib
Изначально я собирался написать новую статью о способах переключения между окнами Matplotlib для того, чтобы рисовать графики в разных окнах не последовательно в порядке создания окон, а в произвольном порядке. В процессе написания я заметил, что о чем-то похожем я уже писал (и более того, в этом году я эту статью уже обновлял). Но это была статья лишь об одном из методов для выбора окон. В результате получился текст, в котором старая статья в немного измененной форме превратилась в один из разделов.
Новую версию по сути переписанной заново статьи вы можете прочитать по ссылке — Как рисовать графики в разных окнах.
Все статьи про рисование графиков в Python с помощью библиотеки Matplotlib можно увидеть по ссылке — Использование библиотеки Matplotlib.
#программирование #python #matplotlib
👍5🔥1
Начинаю читать вот эту книжку. Как только ее осилю, напишу что-нибудь про нее в блог.
PS. Давно не писал про книжки, потому что в последнее время переключился на чтение художественной литературы, а теперь переключаюсь обратно на нон-фикшн и всякое программерское.
#книги #python #программирование
PS. Давно не писал про книжки, потому что в последнее время переключился на чтение художественной литературы, а теперь переключаюсь обратно на нон-фикшн и всякое программерское.
#книги #python #программирование
👍5
Недавно прочитал книгу "Сверхбыстрый Python", которая посвящена вопросам оптимизации скриптов при обработке больших данных на Python. В ней автор приводит множество путей ускорения программ, когда скорость работы интерпретатора уже не устраивает, но все переписывать на Rust еще не хочется.
Более подробно о книге с разбором каждой главы написал в блоге - https://jenyay.net/blog/2024/03/02/kniga-tiago-antao-sverkhbystryjj-python/.
#книги #программирование #python
Более подробно о книге с разбором каждой главы написал в блоге - https://jenyay.net/blog/2024/03/02/kniga-tiago-antao-sverkhbystryjj-python/.
#книги #программирование #python
👍8
Примерно раз в полгода-год я перебираю установленные плагины для Vim (а точнее, теперь уже Neovim) и вытираю с них пыль. Вот и в этом году пришло время уборки.
До сих пор для установки плагинов я использовал не то что древний, но уже поживший свое vim-plug, а в этот раз решил попробовать новомодный Lazy. И знаете, мне понравилось. Во-первых, его установка сильно проще, а это значит, что при переносе конфига на другой комп придется делать меньше телодвижений, а на самом деле вообще ничего не пришлось делать кроме переноса папки nvim с настройками. Во-вторых, изменения в списке плагинов подхватываются на лету при изменении файла настроек в редакторе. Ну и, в-третьих, это позволило еще больше сократить количество кода на vimscript в пользу lua.
Заодно вместо плагина Vista для отображения дерева текущего исходника установил плагин outline, который работает через сервер LSP, хотя это под Виндой заметно медленнее. И, наконец-то, удалось найти плагин для адекватного автозакрытия скобок - nvim-autopairs.
А вообще примерно месяц назад я решил в очередной раз попробовать перейти с Neovim на VS Code (просто для разнообразия), но похоже, эта попытка в очередной раз провалилась. Единственное, где VS Code действительно удобнее - это работа с ноутбуками из JupyterLab. Причем я не говорю, что в остальном VS Code плох, просто настроенный Neovim в основном не хуже. По крайней мере для написания кода на Python.
#vim #инструменты #программирование
До сих пор для установки плагинов я использовал не то что древний, но уже поживший свое vim-plug, а в этот раз решил попробовать новомодный Lazy. И знаете, мне понравилось. Во-первых, его установка сильно проще, а это значит, что при переносе конфига на другой комп придется делать меньше телодвижений, а на самом деле вообще ничего не пришлось делать кроме переноса папки nvim с настройками. Во-вторых, изменения в списке плагинов подхватываются на лету при изменении файла настроек в редакторе. Ну и, в-третьих, это позволило еще больше сократить количество кода на vimscript в пользу lua.
Заодно вместо плагина Vista для отображения дерева текущего исходника установил плагин outline, который работает через сервер LSP, хотя это под Виндой заметно медленнее. И, наконец-то, удалось найти плагин для адекватного автозакрытия скобок - nvim-autopairs.
А вообще примерно месяц назад я решил в очередной раз попробовать перейти с Neovim на VS Code (просто для разнообразия), но похоже, эта попытка в очередной раз провалилась. Единственное, где VS Code действительно удобнее - это работа с ноутбуками из JupyterLab. Причем я не говорю, что в остальном VS Code плох, просто настроенный Neovim в основном не хуже. По крайней мере для написания кода на Python.
#vim #инструменты #программирование
👍7
Интересно, почему в последнее время возрос интерес к методу роя частиц для оптимизации функции? Я когда-то давно про этот метод писал статью (если что, вот она - https://jenyay.net/Programming/ParticleSwarm), и мне неожиданно стали приходить про нее комментарии. Пишут, в том числе, по поводу того, что код на Python не работает. Естественно, он не работает, он еще писался во времена Python 2. Похоже, надо статью обновить, а исходники залить на github.
#программирование #алгоритмы #оптимизация
#программирование #алгоритмы #оптимизация
jenyay.net
Алгоритм роя частиц. Описание и реализации на языках Python и C# | jenyay.net
В статье описывается алгоритм глобальной минимизации - метод роя частиц. Приводятся реализации его на языках Python и C# под .NET
👍10
Прочитал недавно книгу Алекса Сюя "System Design. Подготовка к сложному интервью", которая посвящена проектированию бэкенда для разных высоконагруженных систем. Все описываемое проектирование происходит на уровне микросервисов, баз данных, систем обмен сообщений и т.д.
Если коротко, то написано интересно, но достаточно поверхностно. Автор пишет в формате, как будто все происходит на интервью при приеме на работу, и там особо нет времени углубляться в частности.
Более подробно про книгу написал у себя в блоге - https://jenyay.net/blog/2024/07/10/kniga-aleksa-syuya-system-design/
#книги #программирование #highload #архитектура
Если коротко, то написано интересно, но достаточно поверхностно. Автор пишет в формате, как будто все происходит на интервью при приеме на работу, и там особо нет времени углубляться в частности.
Более подробно про книгу написал у себя в блоге - https://jenyay.net/blog/2024/07/10/kniga-aleksa-syuya-system-design/
#книги #программирование #highload #архитектура
👍7
#python. В последнее время стал с интересом наблюдать за проектом uv ( https://github.com/astral-sh/uv ). Разработчики этой программки поставили перед собой амбициозную цель не только сделать очередную утилиту для управления виртуальными окружениями, но и покусились на святое - на pip. Пока uv умеет не очень много, но его уже можно использовать вместо pip для установки и удаления пакетов, создания виртуальных окружений, а еще установки разных версий Python (на сегодня с помощью uv можно установить CPython 3.7 - 3.12).
Главное преимущество uv перед pip - это скорость работы. Когда я с помощью uv для проверки решил установить не самые маленькие библиотеки numpy, scipy, matplotlib и requests, то прям сильно впечатлился результатом. Вот, например, что написал сам uv в процессе выполнения команды "
Такая скорость будет полезна в первую очередь для использования на серверах CI/CD, где пакеты могут устанавливаться часто и в большом количестве. Разработчики говорят, что такого быстродействия они добились за счет того, что uv написан на Rust, а не на Python, как pip.
В общем, интересная штука, надо будет ее попробовать применить на деле. Сейчас uv еще активно разрабатывается, так что релизы выходят по несколько раз в неделю, иногда даже бывает 2-3 релиза в день.
#программирование
Главное преимущество uv перед pip - это скорость работы. Когда я с помощью uv для проверки решил установить не самые маленькие библиотеки numpy, scipy, matplotlib и requests, то прям сильно впечатлился результатом. Вот, например, что написал сам uv в процессе выполнения команды "
uv pip install numpy requests scipy matplotlib
":Resolved 17 packages in 829ms
Prepared 9 packages in 1.87s
Installed 17 packages in 53ms
Такая скорость будет полезна в первую очередь для использования на серверах CI/CD, где пакеты могут устанавливаться часто и в большом количестве. Разработчики говорят, что такого быстродействия они добились за счет того, что uv написан на Rust, а не на Python, как pip.
В общем, интересная штука, надо будет ее попробовать применить на деле. Сейчас uv еще активно разрабатывается, так что релизы выходят по несколько раз в неделю, иногда даже бывает 2-3 релиза в день.
#программирование
GitHub
GitHub - astral-sh/uv: An extremely fast Python package and project manager, written in Rust.
An extremely fast Python package and project manager, written in Rust. - astral-sh/uv
❤1👍1
Несколько дней назад вышла новая версия библиотеки для создания пользовательского интерфейса на Python - wxPython 4.2.2. Именно на основе этой библиотеки в OutWiker создается GUI. С момента предыдущей версии wxPython прошло больше года. На главной странице официального сайта почему-то еще нет новости о релизе, поэтому пока не знаю, что там поменялось, но как минимум теперь эта библиотека должна собираться для Python 3.12, а то с прошлой версией были проблемы. Еще я надеюсь, что в эту версию попало исправление, которое фиксило один неприятный баг с некоторыми юникодными символами. Из-за этого бага для сборки OutWiker под Windows я использовал пропатченную версию wxPython.
Еще новая версия wxPython символична тем, что незадолго до релиза основной разработчик Robin Dunn отошел от дел и передал права на проект другим наиболее активным разработчикам. Хочется надеяться, что релизы теперь будут выходить почаще.
#python #wxpython #программирование
Еще новая версия wxPython символична тем, что незадолго до релиза основной разработчик Robin Dunn отошел от дел и передал права на проект другим наиболее активным разработчикам. Хочется надеяться, что релизы теперь будут выходить почаще.
#python #wxpython #программирование
👍3🔥2
Недавно узнал о такой идеологии построения софта, как local-first-приложения. Это концепция, которая по задумке авторов должна объединить в себе лучшие черты старомодных оффлайн-приложений и современных веб-сервисов. Если очень коротко, то согласно этой идеологии вся работа над данными должна вестись на компьютере пользователя, пользователь должен владеть всеми данными, которые он создает, а сервер должен использоваться только для синхронизации между устройствами и организации совместной работы. И вот тут начинаются проблемы...
Чуть более подробно и со ссылками на разные статьи про local-first-приложения написал у себя в блоге - https://jenyay.net/blog/2024/11/13/local-first-prilozheniya/
#программирование #архитектура
Чуть более подробно и со ссылками на разные статьи про local-first-приложения написал у себя в блоге - https://jenyay.net/blog/2024/11/13/local-first-prilozheniya/
#программирование #архитектура
Jenyay's blog
Local-first-приложения
Local-first приложения, которые должны объединить лучшие черты оффлайн-приложений и веб-сервисов.
👍8
В книге про Python, которую пишу, уже появилось упоминание Python 3.14. Дело в том, что в будущей версии, которая выйдет только во второй половине 2025 года (обычно в октябре), в класс Path из модуля pathlib наконец-то добавили методы copy() и copy_into() для копирования файлов и папок. Не мог не упомянуть этого радостного факта и не написать пару примеров с их использованием (они уже даже работают!).
Для установки Python 3.14, который сейчас находится еще в состоянии глубокой альфы, использовал pyenv.
#книга_про_python #python #программирование
Для установки Python 3.14, который сейчас находится еще в состоянии глубокой альфы, использовал pyenv.
#книга_про_python #python #программирование
👍8🔥1🎉1
Понадобилось мне для OutWiker сделать новый контрол для выбора цвета. Это должен быть выпадающий список (в простонародье - ComboBox), который вместо текста отображал бы прямоугольники разных цветов. Я очень не люблю делать свои контролы, но в какую сторону копать было понятно. Решил эту задачу переложить на братьев наших меньших (а в перспективе - больших), то есть на искусственный интеллект, и попросить его сгенерировать код.
Начал с Copilot. Результат меня прям очень впечатлил. Первоначальный запрос был такой:
Код получился почти сразу рабочий, в течение нескольких запросов поправили некоторые косяки и даже улучшили внешний вид. Через полчаса в первом приближении я получил то, что хотел и потом буду исходники допиливать напильником. После этого даже не особо надеясь, что ИИ поймет, что мне надо, написал ему еще одну хотелку:
Удивительно, но он сделал именно то, что я имел в виду. В процессе общения поправили некоторые мелочи, и оно заработало.
После этого мне стало интересно сравнить результат с другими нейронками. Начал с Яндекс GPT 4. Результат получился унылый. Работающего контрола от него я так и не добился. В выпадающем списке цветные прямоугольники он не смог нарисовать (хотя честно пытался, но все время что-то было не то).
Попробовал после этого нейронку от Сбера - GigaChat. С ним пришлось помучиться подольше, чем с Copilot, - приходилось часто указывать конкретные строки, где ИИ был не прав, и что там должно быть. Но в итоге контрол начал делать то, что от него требуется, хотя некоторые оформительские моменты придется за ним все-таки править руками. А на дополнительной хотелке нейронка ушла в бесконечный цикл и начала писать без передыху по три одинаковые строчки, которые к делу вообще не относятся. В другой раз по этому же запросу у нее перепутались код и комментарии к нему. Ну ладно, с бонусом она не справилась, но в целом тоже молодец.
Еще я на днях локально себе поставил опенсорсную нейронку Llama 3 (запускал через ollama). Код, который она генерила, тоже с ходу не заработал. Но еще у меня и комп для нее слабоват. Сначала ИИ отвечал относительно шустро, но если надо было исправить ошибку, то он начинал думать минут 10, и результат совсем не впечатлял. В общем, у меня не хватило терпения заставить эту нейронку написать рабочий код.
PS. Если кому интересно, то вот код, который в итоге получился у Copilot - https://paste.ofcode.org/FeqUr5LEeFdN7ugPLZyd3u . Для получения этого кода понадобилось 7 запросов.
Код, который получился у GigaChat - https://paste.ofcode.org/34C9mNhGke5cp967q53zgXQ . Сколько понадобилось запросов для получения этого кода не знаю, потому что история не сохранилась.
Для запуска этих исходников нужна библиотека wxPython.
#python #ии #программирование #wxpython
Начал с Copilot. Результат меня прям очень впечатлил. Первоначальный запрос был такой:
"Напиши код компонента на Python с использованием библиотеки wxPython, который использует wx.adv.OwnerDrawnComboBox, чтобы выбирать цвет с помощью выпадающего списка. Каждый элемент выпадающего списка должен отображаться в виде прямоугольника своего цвета. Напиши код приложения, который этот компонент использует."
Код получился почти сразу рабочий, в течение нескольких запросов поправили некоторые косяки и даже улучшили внешний вид. Через полчаса в первом приближении я получил то, что хотел и потом буду исходники допиливать напильником. После этого даже не особо надеясь, что ИИ поймет, что мне надо, написал ему еще одну хотелку:
"Пусть теперь нулевой элемент будет обозначать "цвет по умолчанию" и выводиться текстом, а последний элемент списка - "Выбрать цвет" и тоже выводиться текстом."
Удивительно, но он сделал именно то, что я имел в виду. В процессе общения поправили некоторые мелочи, и оно заработало.
После этого мне стало интересно сравнить результат с другими нейронками. Начал с Яндекс GPT 4. Результат получился унылый. Работающего контрола от него я так и не добился. В выпадающем списке цветные прямоугольники он не смог нарисовать (хотя честно пытался, но все время что-то было не то).
Попробовал после этого нейронку от Сбера - GigaChat. С ним пришлось помучиться подольше, чем с Copilot, - приходилось часто указывать конкретные строки, где ИИ был не прав, и что там должно быть. Но в итоге контрол начал делать то, что от него требуется, хотя некоторые оформительские моменты придется за ним все-таки править руками. А на дополнительной хотелке нейронка ушла в бесконечный цикл и начала писать без передыху по три одинаковые строчки, которые к делу вообще не относятся. В другой раз по этому же запросу у нее перепутались код и комментарии к нему. Ну ладно, с бонусом она не справилась, но в целом тоже молодец.
Еще я на днях локально себе поставил опенсорсную нейронку Llama 3 (запускал через ollama). Код, который она генерила, тоже с ходу не заработал. Но еще у меня и комп для нее слабоват. Сначала ИИ отвечал относительно шустро, но если надо было исправить ошибку, то он начинал думать минут 10, и результат совсем не впечатлял. В общем, у меня не хватило терпения заставить эту нейронку написать рабочий код.
PS. Если кому интересно, то вот код, который в итоге получился у Copilot - https://paste.ofcode.org/FeqUr5LEeFdN7ugPLZyd3u . Для получения этого кода понадобилось 7 запросов.
Код, который получился у GigaChat - https://paste.ofcode.org/34C9mNhGke5cp967q53zgXQ . Сколько понадобилось запросов для получения этого кода не знаю, потому что история не сохранилась.
Для запуска этих исходников нужна библиотека wxPython.
#python #ии #программирование #wxpython
🔥5👍3
В Python были u-строки (не актуальные с выходом Python 3), сейчас есть r-строки, b-строки и f-строки. И, возможно, теперь еще будут t-строки. PEP 750 еще не приняли, но идея интересная. Это очередные шаблонные строки, которые можно использовать более безопасно, чем f-строки, благодаря проверке того, какие значения параметров туда пытаются подставить.
#python #программирование
#python #программирование
Python Enhancement Proposals (PEPs)
PEP 750 – Template Strings | peps.python.org
This PEP introduces template strings for custom string processing.
👍7
Вчера ходил на очередной Moscow Python Meetup, который проходил на этот раз в офисе МТС около метро Технопарк. Традиционно, в рамках митапа было три доклада.
Первый доклад был про то, как делали систему анализа документов, находящихся в открытом доступе в корпоративной сети. Надо было быстро анализировать миллионы документов и помечать их метками, говорящие о том, что это за документ (договор, служебная записка, художественная книжка), кто и какие компании в документе упоминаются.
Второй доклад был про архитектуру распределенной системы и про то, как реализовывали паттерн "Сага", предназначенный для обеспечения надежных сложных транзакций, которые на любом внутреннем шаге могут сломаться, например, из-за ненадежной сети, или их могут отменить.
И третий доклад, который мне понравился больше всего, был про то, как разрабатывали ботов (в докладе их называли роботами), которые программируются для взаимодействия с десктопными приложениями. Это нужно, чтобы автоматизировать такие действия как нажатия кнопок, заполнение полей и т.п. При этом софт, с которым взаимодействуют роботы, сильно отличаются по принципам построения интерфейса, и где-то можно было находить нужный элемент управления по его дескриптору, а где-то нужная кнопка распознавалась по внешнему виду, сравнивая со скриншотом.
#moscowpython #python #программирование
Первый доклад был про то, как делали систему анализа документов, находящихся в открытом доступе в корпоративной сети. Надо было быстро анализировать миллионы документов и помечать их метками, говорящие о том, что это за документ (договор, служебная записка, художественная книжка), кто и какие компании в документе упоминаются.
Второй доклад был про архитектуру распределенной системы и про то, как реализовывали паттерн "Сага", предназначенный для обеспечения надежных сложных транзакций, которые на любом внутреннем шаге могут сломаться, например, из-за ненадежной сети, или их могут отменить.
И третий доклад, который мне понравился больше всего, был про то, как разрабатывали ботов (в докладе их называли роботами), которые программируются для взаимодействия с десктопными приложениями. Это нужно, чтобы автоматизировать такие действия как нажатия кнопок, заполнение полей и т.п. При этом софт, с которым взаимодействуют роботы, сильно отличаются по принципам построения интерфейса, и где-то можно было находить нужный элемент управления по его дескриптору, а где-то нужная кнопка распознавалась по внешнему виду, сравнивая со скриншотом.
#moscowpython #python #программирование
👍10