Как стать автором
Обновить
1
0
Артём @DOOMer

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

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

Склеиваем несколько фотографий в одну длинную с помощью компьютерного зрения

Время на прочтение4 мин
Количество просмотров26K
В предыдущих статьях был описан шеститочечный метод разворачивания этикеток и как мы тренировали нейронную сеть. В этой статье описано, как склеить фрагменты, сделанные из разных ракурсов, в одну длинную картинку.
Читать дальше →

8 продвинутых возможностей модуля logging в Python, которые вы не должны пропустить

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

Понимайте свою программу без ущерба для производительности


image


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


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

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

Сравнение разных django filter на примере демо базы PostgreSQL

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

Вместо предисловия


Началось всё с того, что мне предложили в рамках предмета "Основы веб-программирования" поучаствовать в проекте, вместо проделывания лабораторных работ и курсовой, поскольку я заявил о том, что хотел быть делать нечто отдалённое от общего курса (и так уже достаточно знаний было по связке DRF + Vue, хотелось чего-то нового). И вот в одном из своих PR на github я решил использовать полнотекстовый поиск (задание намекало на это) для фильтрации контента, что заставило меня обратиться к документации Django в поисках того, каким же образом лучше это дело реализовать. Думаю, вы знаете большую часть из тех методов, что были там предложены (contains, icontains, trigram_similar). Все они подходят для каких-то конкретных задач, но не слишком хороши в, именно, полнотекстовом поиске. Пролистав чуть ниже, я наткнулся на раздел, в котором говорилось о взаимодействии Django и Pgsql для реализации document-based поиска, что меня привлекло, поскольку в постгре встроен инструмент для реализации этого самого [полнотекстового] поиска. И я решил, что скорее всего, django просто предоставляет API к этому поиску, исходя из чего такое решение должно работать и точнее и быстрее, чем любые другие варианты. Преподаватель мне не слишком поверил, мы с ним поспорили, и он предложил провести исследование на эту тему. И вот я здесь.

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

Учебный проект на Python: интерфейс в 40 строк кода (часть 2)

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

Демонстрация проекта Python с пользовательским интерфейсом никогда не была такой простой. С помощью Streamlit Framework вы можете создавать браузерный пользовательский интерфейс, используя только код Python. В этой статье мы будем создавать пользовательский интерфейс для программы лабиринта, подробно описанной в предыдущей статье.

Streamlit


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

pip install streamlit

И запустите streamlit в скрипте Python:

streamlit run app.py

Варианты использования


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

Сайты для обучения программированию: Топ 100

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

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

Итак, сайты для обучения программированию онлайн, ТОП 100:
Читать дальше →

Деплой приложения на Laravel 7 на Ubuntu & Nginx

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

Laravel 7 Logo


Решил я тут своё портфолио сделать на Laravel 7. Чтобы главная страница была лендингом, а всю информацию на ней можно было менять с помощью админки. Не суть. Дело дошло до деплоя. Нашел пару хороших туториалов, как это сделать на полноценном сервере со всеми заморочками. В деплое я не очень силен, я вообще больше фронт, чем фулстек. И, если писать и тестить на PHP я еще могу, то до управления сервером и т.п. я еще не дорос. Но пришлось разбираться.


Сейчас пройдемся по всем шагам, начиная с запуска через SSH и заканчивая рабочим сайтом. Постараемся обойти все подводные камни.


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

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

7 полезных расширений для изучения английского в Google Chrome

Время на прочтение4 мин
Количество просмотров15K
Мы всегда говорим, что учить английский язык нужно комплексно. Даже когда работаешь с документацией или смотришь мемасики. Если вы много работаете за компьютером, то браузерные дополнения могут сильно помочь вам в изучении английского языка.

Не будем долго рассусоливать. Вот вам 7 наиболее полезных браузерных дополнений для прокачки английского в Google Chrome. Поехали.


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

Учебник по симулятору сети ns-3 теперь одним pdf-файлом

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


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

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

Функциональное программирование на Python для самых маленьких — Часть 1 — Lambda Функция

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

Я решил написать эту серию статей, ибо считаю, что никто не должен сталкиваться с той стеной непонимания, с которой столкнулся когда-то я.

Ведь большинство статей написаны таки образом что, для того чтобы понять что-то в Функциональном Программировании (далее ФП), тебе надо уже знать многое в ФП. Эту статью я старался написать максимально просто — настолько понятно, чтобы её суть мог уловить мой племянник, школьник, который сейчас делает свои первые шаги в Python.
Читать дальше →

volatile vs. volatile

Время на прочтение10 мин
Количество просмотров9.1K
Всем привет! Мы подготовили перевод данной статьи в преддверии старта курса «Разработчик C++»




Повесть о двух, казалось бы, похожих, но все же разных инструментах

Херб — автор бестселлеров и консультант по вопросам разработки программного обеспечения, а также архитектор ПО в Microsoft. Вы можете связаться с ним на www.gotw.ca.



Что означает ключевое слово volatile? Как его следует использовать? К всеобщему замешательству, существует два распространенных ответа, потому что в зависимости от языка, на котором вы пишете код, volatile относится к одной из двух различных техник программирования: lock-free программированию (без блокировок) и работе со «необычной» памятью. (См. Рисунок 1.)


Рисунок 1: повесть о двух технических требованиях.

Усугубляет путаницу и то, что эти два различных случая использования имеют частично совпадающие предпосылки и накладываемые ограничения, что заставляет их выглядеть более схожими, нежели они являются на самом деле. Давайте же четко определим и поймем их, и разберемся, как их правильно употреблять в C, C++, Java и C# — и всегда ли именно как volatile.
Читать дальше →

Производственный календарь своими руками в Postgresql

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

Здравствуйте, меня зовут Виктор и я разработчик в компании Gems Development. Я хочу рассказать, как мы реализовывали создание и заполнение производственного календаря в Postgresql.

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

После проведения анализа задачи мы пришли к выводу, что в календаре достаточно хранить выходные и праздничные дни, т.к именно они представляют сложность для расчетов и могут меняться в соответствии с производственным календарем в каждом году.
Читать дальше →

Восстанавливаем данные с ZOOM H6 Handy Recorder подручными средствами

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

Введение


Намедни попал в нашу лабораторию довольно любопытный заказ. Профессиональный диктофон ZOOM H6 Handy Recorder. Устройство и носитель в рабочем состоянии, проблема — носитель, на котором находились данные (карта памяти SDHC на 32 Гбайт) был отформатирован в фотоаппарате. Вопрос о том, каким образом флешка из диктофона попала в фотоаппарат, оставим для истории — нам ответ на него не интересен. Интересно восстановить записанные звуковые данные.

Форматирование разделов FAT32 — это всегда потеря файловых записей; процесс сопровождается их заменой «чистыми». С одной стороны, это удобно, так как в структурах FAT32 не остается никаких «рудиментов» файловых записей. С другой — это крайне губительно для данных, так как в случае фрагментации файлов и необходимости их восстановить, простое RAW-сканирование становится недостаточным, на выходе получаются поврежденные или неработающие файлы.
Читать дальше →

Питер Хинченс: Исходный код психопата. Глава 1. «Хищник»

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


«Цель этой книги — разобраться в разуме психопата и написать руководство для всех людей.»

(Прим. пер: программист и ИТ-активист, Питер Хинченс, когда узнал, что скоро умрет, написал три книги «про самое важное»: про сообщества(рус), про государство (англ) и про «психопатов» (англ). Предлагаю вам перевод книги, основанной на наблюдениях и выводах человека с программистским мышлением об очень странных и опасных людях)

Введение
Глава 1: Хищник
Глава 2: Охота
«Люди-хищники населяют наше общество»,
— Стефан Ферстаппен.

Пилот, которого ограбили


Кит беседует с человеком в углу комнаты. Я знаю Кита целую вечность, поэтому я хочу поздороваться. Он взволнован, нервный. Это не похоже на него. Он всегда был спокойным, уверенным в себе человеком, довольно тихим. У него есть самолет, маленькая Cessna. Он устраивает небольшие коммерческие туры, летает с туристами над Гранд-Каньоном. Когда он получает чаевые, он их откладывает. «Однажды я собираюсь купить себе ранчо», — говорит он мне. Кит, Алексис и их мечты о пенсии.

Я спрашиваю:«Эй, Кит, как дела?» Рядом с ним мужчина, он ничего не говорит. Темные кудри, затемненные очки. Хороший костюм, тяжелые золотые часы. Кит качает головой в гневе. «Хорошо! Все хорошо!» говорит он мне. «Теперь ты можешь оставить нас в покое? Пожалуйста?»
Читать дальше →

Древности: трудный выбор звуковой карты для DOS-игр

Время на прочтение8 мин
Количество просмотров18K
Звуковая карта — один из самых важных элементов ретрокомпьютера, а для многих это основная причина сборки такового. В отличие от офисного софта компьютерные игры не стареют: запускать их на аутентичном железе — это приятная и почетная задача. Хотя и не обязательная: есть же DosBox, в которой если не все, то многие игры работают без проблем. Выбрать правильную звуковую карту для моего 386-го компьютера было непросто: вариантов много, нюансов совместимости еще больше, а некоторые экземпляры потихоньку превращаются в с трудом добываемые раритеты. Вот какая из них лучше?


Но это сейчас выбор трудный, а в девяностых он был простой: какую звуковую карту удалось добыть, та и лучшая. В реальности мне тогда не удалось добыть никакую, и мой 386-й компьютер тех времен так и прожил всю жизнь, издавая звуки только жестким диском, PC-спикером и модемом. Зато первые пробы Doom с «саундбластером» у знакомых и друзей в 1994 году производили невероятное впечатление. К реалистичной (по тем временам) графике добавились не менее жизненные (тоже по тем временам) звуковые эффекты. Круто же!

Окей, в моем ретрокомпьютере точно будет установлена звуковая карта Sound Blaster компании Creative. Какая именно — тоже непростой вопрос, и итоговый выбор будет зависеть не только от предоставляемых картой возможностей, но и от наличия или отсутствия определенных багов, тоже аутентичных. Какие у меня есть варианты? И какие варианты существуют вообще? Причем тут гуси? В этом теоретическом посте я попробую на данные вопросы ответить, и заодно расскажу о древних технологиях извлечения звука из вашего IBM-совместимого ПК.

Договор на разработку сайта с точки зрения управления проектами (теория + образец)

Время на прочтение4 мин
Количество просмотров7.3K
Договор на разработку, формирующий правильное взаимодействие заказчика с исполнителем, закрывающий риски и регламентирующий все этапы работы — довольно непростая вещь. Мы строили свой 2 года, собирая обратную связь от клиентов с одной стороны и проектной команды с другой. Стратосфера — веб-интегратор, специализирующийся на е-коммерс, b2b и цифровой трансформации. Соответственно, вся статья дальше будет написана на примере именно веб-разработки.
Читать дальше →

Древности: Roland MT-32, альтернативный звук для DOS-игр

Время на прочтение13 мин
Количество просмотров24K
Не во всех играх под DOS есть настройки звука. Например, в Lemmings все просто работает. Или нет. Но там, где настройки все же имеются, они выглядят примерно так:


Когда я играл в «Принца Персии» в девяностые, моим единственным выбором была верхняя строчка, по причине отсутствия в компьютере нормальных звуковых устройств. В своем новом-старом 386-м компьютере я по умолчанию использую Sound Blaster, и вполне доволен результатом. Про другие опции в те времена я мало что знал, хотя в настройках разных игр они всплывали часто. Sound Blaster был достаточным апгрейдом: если он есть, то со звуком в твоем компьютере все в порядке.


А был ли вариант покруче? Здесь легко запутаться в определении этого самого «круче». В каких единицах должен выражаться прогресс? Сегодня я расскажу об уникальном во многих смыслах звуковом устройстве для IBM PC эпохи DOS — синтезаторе Roland MT-32. В конце восьмидесятых это был самый дорогой вариант реализации компьютерного звука. Тридцать с лишним лет спустя это недешевый коллекционный девайс, который превращает и так неплохой звук в некоторых DOS-играх в монументальный саундтрек.

Древности: второй подход к VHS, Hi-Fi Stereo и мыльное видео

Время на прочтение12 мин
Количество просмотров30K
2020 год. Качество видеоматериала последние лет пять настолько высокое, что кажется, будто круче уже и не надо. На подходе формат 8К, 32 миллиона пикселей в каждом кадре, уже можно купить подходящий монитор или ТВ, но маловато контента. Лет через пять я куплю новый смартфон, сделаю 8К-видео-селфи, и во всей красе рассмотрю пачку новых морщин, седые волосы и помятые текстуры лица.

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


Цвета в CSS

Время на прочтение11 мин
Количество просмотров58K
Цвета играют жизненно важную роль в формировании внешнего вида веб-страниц. С помощью CSS мы можем управлять основным цветом элементов и их фоновым цветом. Для этого, соответственно, используются свойства color и background. Когда, много лет назад, я изучал CSS, мне не удалось найти доходчивого руководства по использованию цветов в CSS. Поэтому я решил написать такое руководство сам. В этом материале я расскажу о типах цветов и о ключевых словах, используемых при работе с цветами. Мы поговорим о том, в каких ситуациях используются те или иные методики работы с цветами и рассмотрим примеры. Сразу скажу, что здесь я не буду касаться теории цвета.


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

Как получить 100% зрения и даже больше

Время на прочтение12 мин
Количество просмотров66K
Практика показывает, что далеко не каждый человек знает, что такое острота зрения. Например, если вы узнаете, что курица видит на 300%, то есть точно лучше каждого из нас, и глаза у нее видят по-разному — то вы удивитесь.

В древние времена остроту зрения проверяли по созвездию Большой Медведицы в ночном небе. Это созвездие напоминает «ковш с ручкой» и практически всегда видно на ночном небе. Так рядом со второй звездой от конца «ручки ковша» (Мицар) находится малозаметная небольшая звезда Алькор («забытая, незначительная»). Способность видеть эту малозаметную звезду считалась традиционным способом проверки зрения, условной нормой. То есть, система была бинарная – «вижу» и «не вижу».


Эра починки зрения началась несколько столетий назад, использовать для этого лазер стали всего пару десятилетий назад и совершили технологический скачок до эндоскопической коррекции зрения ReLEX SMILE, о ней писала здесь.

В мире с 1985 года выполнено более 60 миллионов процедур по лазерной коррекции зрения! И все эти люди счастливы, что получили 100% зрение, спросите вы? А теперь самое интересное – нет, не все счастливы. И уж точно не у всех 100%.

Что может быть причиной не 100% зрения, почему люди «щурятся», как оценивать показатели приборов, которые измеряют параметры глаза, в том числе после лазерной коррекции, можно ли им доверять, как избежать багов при тестировании, какие исследования, зачем и когда необходимы, чтобы прояснить картину?

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

Аллокаторы памяти

Время на прочтение20 мин
Количество просмотров106K
Всем привет! Не так давно, после очень плотного изучения аллокаторов и алгоритмов распределения памяти, а также в последующем применении их на практике мне в голову пришла идея написать статью, в которой будет максимально подробно рассказано о них. Считаю, что данная тема будет достаточно востребованной, так как в сети, особенно в русскоязычной части, на данный момент существует очень мало источников, посвященных этому вопросу.
Читать дальше →

Информация

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