Как стать автором
Обновить
-28
42 @Interretoread⁠-⁠only

The best software engineer in the Universe!

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

Создание .NET библиотеки от А до Я

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

Думаете о создании .NET библиотеки, но не знаете, в какую сторону двигаться? Уже разрабатываете нечто подобное, но хочется открыть для себя что-то новое? Ищете варианты расширить автоматизацию? Не знаете, что делать с пользователями?

Надеюсь, данная статья поможет ответить на эти и другие вопросы. На примере своей библиотеки с открытым исходным кодом – DryWetMIDI – рассмотрим различные аспекты создания подобных проектов. И хотя речь будет идти про .NET/C#, уверен, многое применимо и к другим популярным платформам и языкам программирования.

Читать далее

Python для биологов

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

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

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

Читать далее

Как опубликовать свой плагин в репозиторий WordPress.org

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

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

Читать далее

#2 Нейронные сети для начинающих. NumPy. MatplotLib. Операции с изображениями в OpenCV

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

Это вторая статья из серии введения в «Нейронные сети для начинающих». Здесь и далее мы постараемся разобраться с таким понятием — как обработка графических данных, визуализация данных, а также на практике решим пару простых задач. Предыдущая статья — #1 Нейронные сети для начинающих. Решение задачи классификации Ирисов Фишера
Маленький совет из будущего: «В данной статье будут затронуты некоторые понятия, о которых я писал раньше, так что для полного понимания темы, советую прочитать и предыдущую статью»
На самом деле, на хабре было множество публикаций по этой теме, но все они говорят о разных вещах. Давайте разберёмся и соберём всё в одну кучку, для полноценного понимания картины мира.
Читать дальше →

Российская биохимия наносит ответный удар: первая постфевральская разработка — SPF

Время на прочтение10 мин
Количество просмотров12K
Как вы, возможно, помните, у нас был серьёзный кризис в биохимии, связанный в первую очередь с поставками. А потом мы очень сильно расширили лабораторию, и вот прямо сейчас мы выпускаем сразу несколько новых средств. Одно из них — SPF-праймер — вызывает у меня прямо гордость-гордость, потому что мы сделали его куда круче, чем всё то, что было на рынке до этого.


Микроскопия отражающих частиц металлов в солнцезащитных кремах, фото уважаемого呂珮嘉

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

Эти проблемы решили, когда изобрели стики с лёгкими текстурами, но у них был другой недостаток — очень высокая цена. Мы же всё это помирили — и сейчас расскажу, как это стало возможным.
Читать дальше →

Устаревшие Python-библиотеки, с которыми пора попрощаться

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

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

Читать далее

Обработка изображений с помощью библиотеки Python Pillow

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

Данный туториал является переводом статьи, написанной Stephen Grupetta. Все изображения и коды скопированы без изменений. В конце вы найдете примечания относительно данной информации, а также ссылку на github с работающим кодом. Если код, приведенный автором не запускается, переходите в примечания и, возможно, сможете найти решение вашей ошибки.

Читать далее

Бескомпромиссный CI-конвейер для питонистов

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

Любому Python-проекту может пойти на пользу надёжный и стабильный конвейер непрерывной интеграции (Continuous Integration, CI). В рамках таких конвейеров выполняется сборка приложений, запуск тестов, проверка кода линтерами, контроль качества программ, анализ уязвимости приложений. Правда, построение CI-конвейеров занимает много времени, требует выполнения действий, которые, сами по себе, никакой пользы не приносят. Этот материал написан для тех Python-программистов, которым нужен полнофункциональный, настраиваемый CI-конвейер, основанный на GitHub Actions. Этот конвейер оснащён всеми мыслимыми инструментами, подключён ко всем необходимым сервисам, а подготовить его к работе можно всего за несколько минут.

Читать далее

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 1. Введение

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

Дабы исчерпать до дна тему сокетов в Python я решил изучить все возможные способы их использования в данном языке. Чтобы всех их можно было испытать и попробовать на зуб, были созданы 19 версий простого эхо-сервера: от примитивного использования класса socket до asyncio. Блокирующие и неблокирующие сокеты, процессы и потоки, select'ы и selector'ы, коллбеки и сопрограммы — все эти темы расположены в эволюционном порядке, чтобы один пример плавно перетекал в другой.

Отдельно разобрано появление асинхронности в Python. На примерах детально показано, как и зачем появились итераторы, из них — генераторы, сопрограммы. Ближе к концу построен учебный макет библиотеки asyncio с минимально необходимым кодом, чтобы любой (даже такой, как я) смог разобраться, как на самом деле устроена асинхронность, как там все внутри работает.

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

Читать далее

Итераторы в Python для самых маленьких

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

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

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

Читать далее

F-строки в Python мощнее, чем можно подумать

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

Форматированные строковые литералы, которые ещё называют f-строками (f-strings), появились довольно давно, в Python 3.6. Поэтому все знают о том, что это такое, и о том, как ими пользоваться. Правда, f-строки обладают кое-какими полезными возможностями, некоторыми особенностями, о которых кто-нибудь может и не знать. Разберёмся с некоторыми интересными возможностями f-строк, которые могут оказаться очень кстати в повседневной работе Python-программиста.

Читать далее

Как ускорить работу в командной оболочке Bash

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

Любому начинающему разработчику необходимо научиться пользоваться командной строкой. При этом для выполнения в ней команд требуется оболочка. В статье речь пойдёт об оболочке Bash, которая популярна в UNIX-подобных системах и в большинстве дистрибутивов Linux используется штатно.
Читать дальше →

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 6

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

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

Читать далее

Дети, родившиеся через 50 лет, доживут до своего 150-летия. Как это будет

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

Гильгамеш достает растение вечной жизни с морского дна

Поиск эликсира бессмертия — древнейшая сказка в мире. В прямом смысле. Самая старая письменная история, известная историкам, — «Эпос о Гильгамеше», впервые записанный шумерской клинописью на глиняных табличках около 4000 лет назад на территории современного Ирака. В нем царь Гильгамеш ищет растение, дарующее вечную жизнь. (И находит его, но хитрая змея крадет его прежде, чем он успевает им воспользоваться.)


У каждой цивилизации есть своя версия этой истории. Фонтан Молодости, Философский Камень. Человеческая жизнь коротка, старение и смерть приходят слишком рано, и люди во все времена думали о том, как можно их предотвратить.


Но теперь, впервые в истории человечества, мы начинаем реально понимать некоторые из глубинных процессов, провоцирующих старение. И, что еще более удивительно, у нас появляются знания о том, как можно их замедлить и, возможно, даже полностью отключить.

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

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 4

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

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

Выявить различные геометрические примитивы (прямые, окружности).

Превратить в цепочки точек и уже их отдельно анализировать.

Описать как граф и применять к нему алгоритмы на графах.

Продолжим изучать методы предобработки. Например, изображением можно сделать контрастным:

Читать далее

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 3

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

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

Сегодня продолжим тему обработки изображений. На прошлом уроке мы пытались при помощи размытия удалить из изображения такие дефекты, как гауссовский шум и царапины. С первым что-то более-менее получилось, а вот с царапинами ничего не вышло. Да, кстати, в комментах мне был задан вопрос: «Откуда берется гауссовкий шум?»

Отвечаю:

Гауссовский шум может возникнуть, например, от помех. Или, если у нас было плохое освещение, картинка получилась темная, и мы попытались как-то исправить это, например, увеличить контрастность. Шумы при этом тоже усилятся.

Ладно. Идем дальше. Как же нам быть с царапинами? А для их удаления можно воспользоваться медианным фильтром:

Читать далее

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 2

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

Продолжим изучение компьютерного зрения, которое мы начали на прошлом уроке. Напомню кратко, что там было:

• Этапы обработки и анализа изображений.

• Установка OpenCV.

• Простая программа на OpenCV – отображения картинки в окне.

• Изменение размеров картинки.

• Преобразование из цветного формата в черно-белый.

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

Читать далее

Уроки компьютерного зрения на Python + OpenCV с самых азов

Время на прочтение3 мин
Количество просмотров50K
Оглавление.

В этом цикле уроков я расскажу о том, как использовать библиотеку OpenCV в языке Python. Но для начала несколько слов о самом компьютерном зрении. Как компьютер вообще видит? Если подключить к нему видеокамеру, это еще не значит, что он будет видеть. Мы получим просто набор нулей и единиц. А человек видит что-то осмысленное. Как же из этих нулей и единиц извлечь что-то осмысленно? В этом и состоит задача компьютерного зрения.
Читать дальше →

Как я решил стать трейдером и проигрался, а потом отыгрался, потому, что я программист. Мой опыт

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


Таким я себя видел в своих мечтах. Freepik


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


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

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

Как я портировал DOS игру

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

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

Читать далее

Информация

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

Специализация

Десктоп разработчик, Фулстек разработчик
Старший
От 100 500 $
C#