Как стать автором
Обновить
0
0

Пользователь

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

Kivy. Сборка пакетов под Android и никакой магии

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

Во вчерашней статье Python в Mobile development, в которой речь шла о библиотеке KivyMD (коллекции виджетов в стиле Material Design для использования их в кроссплатформенном фреймворке Kivy), в комментариях меня попросили рассказать о процессе сборки пакета для платформы Android. Для многих этот процесс, к сожалению, был и остается чем-то из ряда магического шаманства и не подъёмным для новичков делом. Что ж, давайте разбираться, так ли на самом деле все сложно и действительно ли я маг и волшебник…
Читать дальше →
Всего голосов 18: ↑14 и ↓4+17
Комментарии113

Форматирование строк в Python

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

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

Эти методы как раз и называются - форматированием строк.

Читать далее
Всего голосов 19: ↑10 и ↓9+2
Комментарии12

Методы тестирования ПО на примере консольного приложения

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

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

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

Итак, тестирование черного ящика (Black Box). Данный метод также известен как тестирование, основанное на спецификации или тестирование поведения. Данная техника не предполагает доступа, как полного, так и частичного, к системе, т.е. она основывается исключительно на работе с внешним интерфейсом тестируемой программы. То есть мы просто изучаем спецификацию, пишем по ней тестовые сценарии, запускаем приложение и выполняем наши тесты.

Читать далее
Всего голосов 4: ↑3 и ↓1+4
Комментарии6

Разработка бессерверного защищённого тайника для передачи сообщений

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

Однажды я наткнулся на вот эту потрясающую статью (здесь я о ней порассуждал), которая навела меня на одну мысль. Как я подошёл бы к задаче разработки тайника для передачи сообщений? И, если уж мы об этом заговорили — подумаем о том, что нам нужно от подобной системы.

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

Читать далее
Всего голосов 16: ↑15 и ↓1+22
Комментарии14

Как расслабиться инженеру на работе при помощи Python?

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

Всем привет! Меня зовут Владимир Ганзюк

Работаю инженером НСИ и изучаю для себя C#, но не сталкиваясь с Python, наткнулся я как-то случайно на одну очень интересную библиотеку Pymorhp.

Pymorph – морфологический анализатор для русского языка, использует словари из OpenCorpora. Исходный код можно получить на github. Документация к библиотеке написана достаточно хорошо.

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Комментарии17

Слияние словарей в PyTorch: зачем нужно и подводные камни

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

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

Одним из способов решения этих проблем является разбивка датасета на куски, и обучение одной и той же нейросети параллельно на разных устройствах. Потом, очевидно, нужно каким-то образом слить обученные нейросети в одну. Обсудим в этой статье детальнее, зачем это вообще может быть нужно, и как это сделать более-менее правильно.
Сливаем клонов!
Всего голосов 34: ↑33 и ↓1+47
Комментарии19

Как я создал архиватор из задачки с техсобеса: сжатие файлов с помощью RLE

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

Привет, меня зовут Рома. Я работаю в KTS на позиции Python backend-разработчика. 

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

Читать далее
Всего голосов 70: ↑66 и ↓4+73
Комментарии9

Telegram вместо студии звукозаписи: как я создал бота для мобильных музыкантов

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

Привет! Я Виктор, проектный менеджер в Selectel. Последние 20 лет мое хобби — написание музыки. Выходит с переменным успехом (писать музыку, конечно), но это часть моей жизни. Сначала был Fruity Loops 3, потом Reaper, но душа всегда тянулась к «железу» и новым технологиям.

Под катом — история pet-проекта, который призван упростить жизнь мобильным музыкантам. Либо заставить технических специалистов сказать *meh* («До» малой октавы). Осторожно — внутри нейронки, музыкальное «железо» и плохой код на Python.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+51
Комментарии17

Использование алгоритма Бойера-Мура-Хорспула в Java с примером решения задачи с LeetCode

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

Алгоритм Хорспула используется для нахождения подстроки в строке. Например, у нас есть строка «The game is over» и подстрока «over». Алгоритм Хорспула вернет значение первого вхождения подстроки «over» в строку «The game is over», а именно 12. 

Фактически, данный алгоритм является упрощенным алгоритмом Бойера-Мура, который, считается работает лучше, чем стандартный алгоритм на случайных текстах, но в худшем случае его скорость равна |needle| * |haystack| вместо 3 х |haystack|. 

Тем не менее, для восприятия, на мой взгляд, он гораздо проще.

Итак, погнали.

Условие задачи с leetcode: https://leetcode.com/problems/find-the-index-of-the-first-occurrence-in-a-string/description/

Как работает алгоритм?

Строка и подстрока совмещаются по первому символу, и начинаются сравниваться от последнего символа к первому.

Для примера возьмем строку: «aabcdadbc» и подстроку «adb»

Совмещаются строки следующим образом (слева направо):

Читать далее
Всего голосов 3: ↑3 и ↓0+6
Комментарии2

Простые приёмы, которые сделают ваш код нагляднее

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

Упорядоченный, опрятный, хорошо написанный для восприятия код помогает быстрее выявлять случайные ошибки, и позволяет глазам быстрее "парсить" код, что в целом ускоряет время выполнения задач. В этой статье я, Андрей Рик, fullstack-разработчик с 10+ лет опыта коммерческой разработки, рассказываю как и зачем писать опрятный код.

Читать статью
Всего голосов 21: ↑11 и ↓10+6
Комментарии66

Создание игр на Unity: с чего начать?

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

Создание игр на Unity: с чего начать?

Эта статья познакомит вас с основами разработки игр на Unity. Вы узнаете, как установить и настроить Unity, создать свой первый проект и реализовать простую игру. Мы рассмотрим основы работы с объектами, скриптами и физикой. В статье будет много наглядных примеров кода и пошаговых инструкций, что сделает процесс обучения простым и увлекательным. Эта статья идеально подходит для начинающих разработчиков, которые только начинают свой путь в мире Unity.

Читать подробнее
Всего голосов 8: ↑6 и ↓2+9
Комментарии9

Реверсинг приложений под Android. Ищем уязвимости

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0+12
Комментарии2

Чем заменить Docker Hub в России

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

Не так давно все наблюдали блокировку Docker Hub в РФ, которая длилась с 30 мая по 3 июня. Хотя сейчас Docker Hub вновь доступен, я успел разработать некоторую автоматизацию для переноса всех своих проектов и решил ими поделиться (пускай и очень поздно). В этом посте я расскажу как жить с блокировкой и как быстро перевести текущие проекты, использующие Docker Hub.

Читать далее →
Всего голосов 22: ↑11 и ↓11+4
Комментарии8

RLHF. История становления идеи — 2. Offline RL, Self-play, Reward Model

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

Продолжаем разбирать внутренние детали пайплайна RLHF (обучение с подкреплением на основе обратной связи от человека). Это крайне популярный и широко используемый способ повысить согласованность языковой модели. Разбираем части пайплайна RLHF с точки зрения исторической ретроспективы, чтобы понять, как сформировалась идея, которая сегодня лежит в основе самых популярных LLM.

Прошлый раз мы поговорили об LLM, предобучении на больших данных и KL‑контроле.

В этой части разбираемся с тем, какую обратную связь и как собирать, какую технику обучения использовать - Offline или Online RL, можно ли как то обойти ограничения Offline и Online RL и одновременно использовать преимущества обоих подходов, пробуем self-play и учимся имитировать человеческую обратную связь с помощью модели вознаграждений (Reward Model).

Читать далее
Всего голосов 4: ↑4 и ↓0+8
Комментарии0

Памятка начинающим переводчикам приложений под Android или как начать переводить приложения

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


Доброго времени суток, Geektimes.

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

Заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии21

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность