Pull to refresh
47
7
Арсений Сапелкин @Magn

Инженер-программист

Send message

Без холивара «переписать все на Go»: проблема переносимости в Python и ее решение

Level of difficultyMedium
Reading time19 min
Views15K

На скриптовых языках удобно разрабатывать… И на этом удобство заканчивается. Вне машины разработчика начинаются проблемы. Особенно если вы пишете какой-то прикладной тулинг — cli-утилиты, вспомогательные приложения в вашем SDK и прочее. Вы даже не можете рассчитывать на то, что у пользователя будет pip, чтобы он смог поставить все ваши зависимости, вам все нужно организовать самостоятельно.

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

Если вам покажется, что в чем-то я ошибаюсь, добро пожаловать в комментарии. Буду рад услышать любые альтернативные точки зрения. Кроме, как я уже отметил в заголовке, рекомендации переписать все на Go/Rust/You name it :) Этот холивар мы уже проходили.

Читать далее
Total votes 70: ↑70 and ↓0+78
Comments34

Функциональное программирование в Python: ежедневные рецепты

Level of difficultyMedium
Reading time21 min
Views15K
Как говорится, спроси пять программистов, что такое функциональное программирование, получишь шесть разных ответов. В целом это программирование через функции в их математическом понимании, то есть когда функция принимает что-то на вход и что-то возвращает на выходе, не меняя глобального состояния.

В своей команде — команде разработки инструментов для разработчиков под KasperskyOS — мы создаем разные интересные консольные утилиты, эмулятор, обеспечиваем интеграцию с IDE и так далее. И для этого мы используем разные языки — C++, C, TypeScript; но больше всего пишем на Python.



В этой статье, которая написана по следам моего выступления на конференции PiterPy, я обращаюсь к практикующим разработчикам — расскажу о том, какие функциональные приемы можно использовать в этом языке. Сконцентрируюсь на практике — на тех примерах, которые можно использовать уже буквально сейчас, не переписывая свой проект.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments3

Кажется, вы больше не должны давать тестовые задания кандидатам на дом

Level of difficultyEasy
Reading time24 min
Views32K

В 2023 году, в эпоху взрывного роста нейросетей, вся IT-отрасль продолжает давать кандидатам в стажёры (и не только) домашние тестовые задания. Компании тратят время на то, чтобы придумать эти задания, студенты тратят время на то, чтобы их сделать, потом компании снова тратят время на проверку… В этой небольшой заметке я продемонстрирую, что все задачи последних лет решаются за несколько минут при использовании нейронки, доступ к которой может получить каждый.




Я возьму тестовые задания на Python, C++, Go и C#  и буду использовать только открытые источники, убрав названия компаний и прямые ссылки, чтобы исключить любые подозрения в предвзятости.


А в качестве нейронки использую ChatGPT Plus (GPT 4). Она всё еще очень глупа, много выдумывает и постоянно смешно ошибается, но как раз для таких задач годится хорошо.


И да, вместо дисклеймера. Если вы хоть немного успели «посотрудничать» с ChatGPT, то статья может показаться вам глубоко капитанскоочевидной (она такая и есть, безусловно). Но если вы вместо хайпа по нейронкам предпочитаете работать, то у вас нет времени на такие развлечения. Так что, возможно, несколько минут, которые вы сейчас потратите на прочтение, сэкономят вам много часов инвестиций в «ненастоящих стажеров» и «ненастоящих джунов». И соответственно, помогут не наделать ошибок при найме.

Читать дальше →
Total votes 35: ↑26 and ↓9+21
Comments195

Хороший, плохой, злой и… свободный? Сравниваем глуповатые, но усердные AI-плагины для разработки

Level of difficultyMedium
Reading time22 min
Views20K

Привет, Хабр! Меня зовут Арсений, я — тимлид в команде разработки инструментов разработчика KasperskyOS. Работа нашей команды заключается в том, чтобы делать жизнь разработчика ПО под нашу собственную микроядерную OS удобной, так что любые технологии, упрощающие жизнь разработчика, не оставляют нас равнодушными. Вместе со всеми мы следим за хайпом вокруг нейросетей и решили сделать небольшой обзор AI-плагинов автодополнения кода, которые каждый из нас может использовать уже сейчас.


image


В этой заметке попробуем сравнить следующие AI плагины VSCode:


  • Copilot v1.84.61 — самый нашумевший робот
  • Tabnine v3.6.45 — самый старый из трех и самый дорогой
  • Codeium v1.2.11 — самый свежий и самый малоизвестный
  • FauxPilot — Open source, self-hosted аналог Copilot, использующий модели от CodeGen; посмотрим, что может противопоставить коммерческим продуктам OSS-проект, развернутый на моем запечном сервере.

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

Читать дальше →
Total votes 43: ↑42 and ↓1+47
Comments12

CUDA и удалённый GPU

Reading time7 min
Views20K

CUDA всем хороша, пока под рукой есть видеокарта от Nvidia. Но что делать, когда на любимом ноутбуке нет Nvidia видеокарты? Или нужно вести разработку в виртуальной машине?


Я постараюсь рассмотреть в этой статье такое решение, как фреймворк rCUDA (Remote CUDA), который поможет, когда Nvidia видеокарта есть, но установлена не в той машине, на которой предполагается запуск CUDA приложений. Тем, кому это интересно, добро пожаловать под кат.


TLDR

rCUDA (Remote CUDA) — фреймворк, реализующий CUDA API, позволяющий использовать удалённую видеокарту. Находится в работоспособной бета-версии, доступен только под Linux. Основная цель rCUDA — полная совместимость с CUDA API, вам не нужно никак модифицировать свой код, достаточно задать специальные переменные среды.

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments7

Information

Rating
646-th
Works in
Registered
Activity