Search
Write a publication
Pull to refresh
4
0.9
Дмитрий Померанцев @pda0

User

Send message

4 метода тестирования Python-приложений с командной строкой (CLI)

Reading time17 min
Views5.9K

В этом уроке вы познакомитесь с четырьмя практическими приемами тестирования приложений командной строки Python:

- Отладка "Lo-Fi" с помощью print();
- Использование визуального отладчика Python;
- Юнит-тестирование с использованием pytest и mocks (имитационные объекты - моки);
- Интеграционное тестирование.

Читать далее

Как стать руководителем и не помереть

Level of difficultyEasy
Reading time10 min
Views21K

Всегда мечтал управлять процессами, работать с людьми. Казалось, что я «знаю как правильно», как изменять процессы или учить ребят, чтобы они работали лучше. Хотелось помогать ребятам жить в лучшем мире. Мечта сбылась. Но, как говорится, есть нюанс. 

Поговорим о том, что вас ждёт, когда вы станете руководителем.

Чтож начнем!

Как выбрать нужное сечение провода?

Level of difficultyMedium
Reading time9 min
Views34K
Картинка Freepik

Не знаю как у вас, а у меня есть одна проблема: каждый раз, когда дело доходит до приобретения проводов/кабелей на более-менее серьёзную нагрузку, у меня делаются страшные глаза, и я начинаю судорожно вспоминать, а какой конкретно кабель мне нужен на мою нагрузку и как его следует подбирать?

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

Простая нейронная сеть без библиотек и матриц. Эволюционный алгоритм

Level of difficultyMedium
Reading time15 min
Views12K

Руководство? Гайд? В общем вторая часть описания моего опыта в создании простой, а главное понятной любому новичку нейросети :)

В этот раз поговорим про эволюционный/генетический алгоритм и заставим нейросеть балансировать мячи.

Читать далее

Графическое программирование конечных автоматов для Arduino. Часть 1

Level of difficultyMedium
Reading time8 min
Views10K

Как только сложность программы выходит за пределы "Hello Word!", у начинающих ардуинщиков появляются проблемы. Самая тяжелая из них - удержать в голове структуру программного кода. Нельзя сказать, что у опытных программистов встраиваемых систем этой проблемы нет. Достаточно попытаться реанимировать собственный проект двухлетней давности, если он недостаточно документирован, то включиться в работу будет очень трудно.

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

Все это хорошо, но новичку просто лениво. Зачем что-то рисовать, если того же результата можно добиться несколькими строчками кода? Ответ: макрокоманды. Такие, например, как WAIT(Time,Counter), она позволяет с легкостью организовать временную задержку. И это будет вовсе не Delay(Time) от Arduino, которая остановит выполнение всего остального пользовательского кода. Нет. По предоставляемым возможностям ближайшей аналогией будет RTOS - операционная система реального времени. Если один автомат замер в ожидании отсчета времени, то остальные автоматы проекта будут продолжать работать.

Рассмотрим практическое использование графических конечных автоматов под Arduino на примере часов-метеостанции.

Читать далее

Революция в хранении программ: Манчестерский Малыш и RAM

Reading time17 min
Views3.6K

Первые компьютеры были ОЧЕНЬ громоздкими. Чтобы заставить их выполнять другую программу, требовалось физическое «перепрограммирование» в виде переключения контактов. С появлением Манчестерского Малыша (Manchester Baby) началась новая эпоха: теперь инструкции и данные хранились и выполнялись в электронной памяти. Именно такой подход применяется во всех современных компьютерах. 

Система хранения программ в Малыше была построена на базе трубки  Уильямса-Килберна, которую разработали в 1948 году Фредерик Уильямс, Том Килберн и Джефф Тутилл из Манчестерского университета. Трубка Уильямса-Килберна использовала электронный луч для хранения данных в точках на экране катодно-лучевой трубки, изменяя структуру заряда. Хотя заряды со временем утекали и требовали обновления, это был значительный шаг вперед в развитии электронной памяти произвольного доступа.

В этом посте вспомним, как случилась эта тихая революция. 

Читать далее

Вдохновлённые наукой: как геймдев использует научные концепции для создания реалистичных монстров

Level of difficultyMedium
Reading time19 min
Views3.5K


▎Твори и создавай


В конце XX и начале XXI века культурный мейнстрим обогатился новым феноменом. Им стали видеоигры. Очень скоро они выросли в нечто большее, чем развлечение для гиков и способ скоротать вечерок-другой.

Сами игры, соответственно, становились всё более красочными, реалистичными и богатыми на контент. Это привело к тому, что всё больше людей стало испытывать интерес к геймингу. Потенциальные геймеры были готовы платить деньги за возможность испытать новый опыт, что значительно ускорило развитие всей индустрии.
Читать дальше →

Стратегии плейбуков и lookups в Ansible

Reading time5 min
Views5.7K

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

Читать далее

Два типа мышления

Level of difficultyEasy
Reading time3 min
Views12K

Параметры: +DRY, -KISS, +architecture

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

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

Читать далее

Создание масштабируемой и высокодоступной системы Postgres с помощью Patroni 3.0 и Citus

Reading time16 min
Views19K

Citus — это расширение для PostgreSQL, которое обеспечивает масштабируемость PostgreSQL за счет прозрачного распределения и/или репликации таблиц на одном или нескольких узлах PostgreSQL. Citus можно использовать как на облачной платформе Azure, так и на собственных серверах, поскольку расширение базы данных Citus имеет полностью открытый исходный код.

Читать далее

Какого цвета Солнце на самом деле? Объясняет астрофизик

Reading time11 min
Views37K

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

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

В этом абсурдном утверждении - и будьте уверены, оно абсурдно - кроется крошечное ядро истины: Солнце содержит большее количество фотонов «зеленого света», чем фотонов любой другой длины волны (т.е. цвета). Но просто наличие пика длины волны в спектре света, или максимальная интенсивность на заданной частоте, или большее количество фотонов в определённом цветовом диапазоне - этого недостаточно, чтобы определить, какого цвета объект, даже такой объект, как Солнце, в действительности. Солнце, как вам говорят ваши глаза, действительно белая звезда, что может продемонстрировать простейший эксперимент.

Читать далее

Laravel Pint — отличный

Level of difficultyEasy
Reading time1 min
Views4.1K

Laravel Pint — это помощник, который подсвечивает предполагаемые ошибки в вашем PHP-коде. Инстурмент заточен специально для Framework Laravel и из коробки доступен в Laravel 10. Pint построен на основе PHP-CS-Fixer. С его помощью ваш код станет чистым и согласованным.

Читать далее

TestMace — мощная IDE для работы с API

Reading time9 min
Views14K

Всем привет! Сегодня мы хотим представить на суд IT-общественности наш продукт — IDE для работы с API TestMace. Возможно некоторые из вас уже знают о нас из предыдущих статей. Однако всеобъемлющего обзора инструмента не было, поэтому устраняем этот досадный недостаток.


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

Как правильно дифференцировать дискретные функции (Часть 1. Тестируем и улучшаем Numpy)

Level of difficultyEasy
Reading time6 min
Views6.1K

После того как я реально «подсел» на чтение Хабра, захотелось «освежить» что‑то из своего богатого математического прошлого. Воскресить, так сказать, старые наработки, зайдя, естественно, через дверь с табличкой Python. Предлагаемая публикация посвящена простейшим методам численного дифференцирования дискретных функций (они же решетчатые функции, они же табличные функции, они же функции, заданные набором данных и т. п.). Очень странно, что в библиотеках Python с такой простой темой не все так просто и безоблачно, есть кое‑какие вопросы и проблемы. SciPy, как оказалось, вообще не об этом, а в NumPy «тема не раскрыта». На простейших примерах рассмотрим то, что предлагает NumPy, что там не так и как можно сделать лучше.

Читать далее

От пиратства до «Корсаров» и дальше: история копирайта в российском геймдеве

Level of difficultyEasy
Reading time7 min
Views4K

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

Читать далее

QR-платежи простыми словами. Что такое «куаринг», и почему он вытесняет другие форматы оплаты

Reading time9 min
Views21K

Если вы, уважаемый российский Apple-юзер, не хотите переходить на Android, таскать с собой карточки или клеить стикеры на любимый гаджет, то выход один - платить через QR. А в некоторых странах именно через "куаринг" происходит большинство транзакций. Сегодня разберем, как работают QR-платежи, какие они бывают, что в них крутого, и почему их доля растет как на дрожжах.

Читать далее

Как сделать свой AnythingGPT, отвечающий на вопросы так, как вам это необходимо (Python, OpenAI Embeddings, ChatGPT API)

Level of difficultyMedium
Reading time17 min
Views19K

Всем привет! Недавно я на практике применил одно интересное решение, которое давно хотел попробовать, и теперь готов рассказать, как своими руками такое можно сделать для любой другой аналогичной задачи. Речь пойдет о создании своей кастомизированной версии ChatGPT, которая отвечает на вопросы, учитывая большую базу знаний, которая по длине не ограничивается размером промта (то есть вы бы не смогли просто добавить всю информацию перед каждым вопросом к ChatGPT). Для этого будем использовать контекстные эмбеддинги от OpenAI (для действительно качественного поиска релеватных вопросов из базы знаний) и сам СhatGPT API (для оборачивания ответов в натуральный человеческие ответы). При этом, также предполагается, что ассистент может отвечать не только на прямо указанные в Q&A вопросы, но и на такие вопросы, на которые смог бы отвечать человек, который ознакомился с Q&A. Кому интересно научиться делать простых ботов, отвечающих по большой базе знаний, добро пожаловать под кат.

Под кат

Сборка механической ортолинейной клавиатуры Planeta

Level of difficultyEasy
Reading time3 min
Views5.3K

Planeta — это эргономичная, портативная, моно‑сплит механическая клавиатура с разделением клавиш на две части для большего комфорта при печати.

В данной статье мы расскажем как правильно её собрать своими руками.

Читать далее

Как россиянину открыть счет в иностранном банке в 2024 году?

Reading time11 min
Views43K

В 2023 году по прежнему сохраняется спрос на открытие банковских карт за рубежом. После массовой волны в 2022 году требования от зарубежных банков стали ужесточаться, возможности перевода средств из/в РФ снижаться.

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

Читать далее

Локализация игр при помощи ChatGPT — недорого и качественно. Гайд

Level of difficultyEasy
Reading time5 min
Views14K

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

Однако, при помощи ChatGPT мы можем сильно улучшить его качество, сделав перевод действительно похожим на работу человека!

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

Читать далее

Information

Rating
2,650-th
Location
Химки, Москва и Московская обл., Россия
Date of birth
Registered
Activity