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

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

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

Будущее интерактивного дизайна в руках

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

Когда я смотрю фантастические фильмы или ролики о том, какие гаджеты и техника нас будет окружать через 10-20-30 лет, то чаще всего вижу разные прозрачные экраны, голограммы или проекции на руку, лоб или пупок. Чтобы всем этим управлять нужен всего-то один палец. Всё выглядит красиво и фантастично. Но что, если я скажу вам, что подобные концепции, возможно, ложные?

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

Буквально в руках
Всего голосов 22: ↑22 и ↓0+22
Комментарии31

Как я сделал Discord бота для игровой гильдии с помощью .NET Core

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

Всем привет! Недавно я написал Discord бота для World of Warcraft гильдии. Он регулярно забирает данные об игроках с серверов игры и пишет сообщения в Discord о том что к гильдии присоединился новый игрок или о том что гильдию покинул старый игрок. Между собой мы прозвали этого бота Батрак.

В этой статье я решил поделиться опытом и рассказать как сделать такой проект. По сути мы будем реализовывать микросервис на .NET Core: напишем логику, проведем интеграцию с api сторонних сервисов, покроем тестами, упакуем в Docker и разместим в Heroku. Кроме этого я покажу как реализовать continuous integration с помощью Github Actions.

От вас не потребуется никаких знаний об игре. Я написал материал так чтобы можно было абстрагироваться от игры и сделал заглушку для данных об игроках. Но если у вас есть учетная запись в Battle.net, то вы сможете получать реальные данные.

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

Боль разработчика: «Никогда не давайте пользователям бесплатный тариф»

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


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

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

И будет требовать от вас надёжного сервиса, новых функций и предъявлять претензии. Чем меньше платит пользователь — тем больше шуму он поднимает в социальных сетях и тем больше поддержки требует. Отрицательные отзывы идут именно от бесплатных юзеров, а не от платных (это вполне логично, если подумать).
Читать дальше →
Всего голосов 77: ↑71 и ↓6+84
Комментарии266

Защита авторских прав на ваши Pet-projects

Время на прочтение8 мин
Количество просмотров7.9K
Что делать, когда вы получили претензию, требование или иск по вашему проекту от работодателя или партнера с требованием передать все материалы? Как вы можете защитить свои проекты в этом случае или сильно заранее, для профилактики? Много ли разработчиков разбираются в этом? Количество разработок и результатов творческой деятельности неуклонно растет и возникает все больше спорных ситуаций по правам на эти проекты (произведения). Поэтому вопрос защиты прав на Pet-project (пет-проекты) становится практикой. К тому же она может быть не такой уж сложной.

Вадим Кирюхин, управляющий партнер, адвокат юридической фирмы «Кирюхин и Партнеры», член международной ассоциации адвокатов (International Bar Association) сегодня расскажет, что такое пет-проект с точки зрения российского законодательства и что вы можете сделать, если получили претензию от вашего работодателя с требованием передать все материалы по пет-проекту. Вы узнаете также, какие в настоящее время есть способы защиты ваших прав на пет-проекты, а в конце рассмотрим кейсы из судебной практики.


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

Всё, о чём должен знать разработчик Телеграм-ботов

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

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

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

Подробный гайд о том, как работать с ботами — под катом.

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

Интеграция: синхронное, асинхронное и реактивное взаимодействие, консистентность и транзакции

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

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

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

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

Как уменьшить количество обращений к DockerHub из инфраструктуры CI/CD при помощи кэширования образов Docker?

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


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

Читать дальше →
Всего голосов 12: ↑11 и ↓1+14
Комментарии0

Внедрение CI/CD: в чем основная задача пайплайна и как сделать лучше жизнь разработчиков

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


О своём опыте построения пайплайнов, правильных и неправильных подходах к CI/CD, здоровых профессиональных конфликтах и реализации GitOps в неидеальном мире рассказывают спикеры бесплатного мини-курса и комплексного курса Слёрма по CI/CD Тимофей Ларкин и Александр Швалов.

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

Cтримим и кaстим youtube и не только… через raspberry pi c Gotubecast и KODI TubeCast

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

Насколько сложно передавать youtube музыку или видео через телефон или другие портативные, мобильные устройства на вашу Raspberry pi? А если не портативные? А просто управлять медиа контентом через Windows или Linux PC? Оказывается что нет. Я хочу рассмотреть установку, и настройку нескольких приложений на вашу малинку с помощью которых мы можем это сделать.
Будем предполагать, что стриминг в данной ситуации это процесс передачи какого-либо медиа контента, который находится где-то на сайтах в интернете или допустим на локальном сервере с нашей медиа библиотекой для проигрывания оного на raspberry pi. А кастинг в свою очередь, от слова cast когда мы «перекидываем управление» медиа контентом какого-либо внешнего устройства на наш телевизор, а точнее на нашу raspberry pi, подключенную к телевизору или музыкальному центру. В данной ситуации через мобильный, запустив ваше youtube приложение мы перенаправляем вывод видео или музыки через нашу малинку на телевизор. Не забудьте подключить вашу raspberry pi к телевизору через HDMI.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии2

Specification By Example – BDD для прагматиков

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

На Хабре довольно много упоминаний о BDD. К сожалению, статьи, которые я читал, так и не дали мне ответа на вопрос «а зачем мне все это нужно?» Ответ пришел с неожиданной стороны. Когда я всерьез занялся вопросом автоматизации приемочного тестирования, мне под руку попалась книга Gojko Adzic (не уверен в транскрипции, поэтому не стал переводить имя автора) Specification By Example.
Читая ее, я не уставал удивляться: каждая новая глава описывала шишки, которые я набивал на своем личном опыте, и предлагала решения аналогичные или лучшие, чем те, к которым я приходил сам методом проб и ошибок.

Эта статья – первая в цикле «BDD для прагматиков». В ней описаны ключевые элементы наиболее эффективного, на мой взгляд, процесса разработки коммерческого ПО в современных условиях. Два продолжения будут посвящены работе со SpecFlow и автоматизации приемочного тестирования.
Часть первая - живая документация
Всего голосов 34: ↑31 и ↓3+28
Комментарии32

Введение в CQRS + Event Sourcing: Часть 1. Основы

Время на прочтение8 мин
Количество просмотров184K
В первый раз я услышал о CQRS, когда устроился на новую работу. В компании, в которой работаю и по сей день, мне сразу сказали что на проекте, над которым я буду работать используется CQRS, Event Sourcing, и MongoDB в качестве базы данных. Из этого всего я слышал только о MongoDB. Попытавшись вникнуть в CQRS, я не сразу понял все тонкости данного подхода, но почему-то мне понравилась идея разделения модели взаимодействия с данными на две — read и write. Возможно потому что она как-то перекликалась с парадигмой программирования “разделение обязанностей”, возможно потому что была очень в духе DDD.

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

Сразу хочу уточнить что я работал только со связкой CQRS + Event Sourcing, и никогда не пробовал просто CQRS, так как мне кажется что без Event Sourcing он теряет очень много бенефитов. В качестве CQRS фреймворка я буду использовать наш корпоративный Paralect.Domain. Он чем-то лучше других, чем то хуже. В любом случае советую вам ознакомиться и с остальными. Я здесь упомяну только несколько фреймворков для .NET. Наиболее популярные это NCQRS, Lokad CQRS, SimpleCQRS. Так же можете посмотреть на Event Store Джонатана Оливера с поддержкой огромного количества различных баз данных.

Начнем с CQRS


Что же такое CQRS?
CQRS расшифровывается как Command Query Responsibility Segregation (разделение ответственности на команды и запросы). Это паттерн проектирования, о котором я впервые услышал от Грега Янга (Greg Young). В его основе лежит простое понятие, что вы можете использовать разные модели для обновления и чтения информации. Однако это простое понятие ведет к серьёзным последствиям в проектировании информационных систем. (с) Мартин Фаулер
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии15

Реверс-инжиниринг протокола ngrok v2

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

Реверс-инжиниринг протокола Ngrok v2


ngrok — это сервис, позволяющий создавать туннели на локальный компьютер пользователя. Иными словами, резервируется публичный адрес, все обращения по которому пробрасываются на локальный порт.

К сожалению, с 2016 года поддержка open-source версии клиента (ngrok v1) прекращена, и чтобы воспользоваться сервисом, нужно запустить закрытую версию (ngrok v2), что во многих случаях неприемлемо. Данная статья описывает процесс изучения протокола, используемого официальным клиентом, и создания альтернативного открытого клиента.

Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии13

Прощай, чистый код

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


Был поздний вечер.

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

Код работал.

Но в нём было много повторяющихся однотипных конструкций. Каждая фигура (вроде того же прямоугольника или овала) обладала различным набором маркеров. Перемещение этих маркеров в разных направлениях по-разному влияло на позицию и размер фигуры. А если пользователь, двигая маркеры, удерживал нажатой клавишу Shift, нам, кроме того, надо было сохранять пропорции фигуры при изменении её размера. В общем — в коде было много вычислений.
Читать дальше →
Всего голосов 109: ↑88 и ↓21+98
Комментарии151

.NET Core + Docker на Raspberry Pi. А это законно?

Время на прочтение8 мин
Количество просмотров26K
Открытая платформа .NET Core работает практически на всем: Windows, Mac и десятке Linux-систем. Но еще есть SDK и Runtime. Раньше .NET Core SDK не поддерживался на чипах ARMv7/ARMv8, на которых работает Raspberry Pi. Но все изменилось. Подробнее о способах запуска под катом!

Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии15

Начало работы с OpenCV и его применение в C#

Время на прочтение3 мин
Количество просмотров131K
Хочу немного рассказать про технологию OpenCV и её применение на языке программирования C#.

OpenCV (англ. Open Source Computer Vision Library, библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Реализована на C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков. Может свободно использоваться в академических и коммерческих целях — распространяется в условиях лицензии BSD.

На эту библиотеку я натолкнулся буквально недавно. На сайте toster.ru я задал вопрос про необычные темы для дипломных работ и в одном из ответов получил ссылки на результат работы с этой библиотекой. Вот некоторые из них:

www.youtube.com/watch?v=h9kPI7_vhAU
www.youtube.com/watch?v=256bg5_vNvg
www.youtube.com/watch?v=PUhwGTSNGhI
Читать дальше →
Всего голосов 20: ↑12 и ↓8+4
Комментарии8

Краткое руководство: связываем ASP.NET Core Web API + Angular 5

Время на прочтение8 мин
Количество просмотров46K
История о том, как подружить два отдельных проекта ASP.NET Core Web API и Angular 5, и заставить их работать, как одно целое.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии19

Котики против нейросети. Или выбираем и запускаем нейросеть для распознавания объектов на Raspberry Zero

Время на прочтение5 мин
Количество просмотров19K
Добрый день всем.

Крохотный компьютер Raspberry — замечательная вещь. Я использовал Raspberry Zero W в паре проектов в течение последнего полугода. Подкупила простота протипирования и откатки различных идей. А теперь вот факультативно заинтересовал вопрос, потянет ли сей девайс полноценную сверточную сетку? [Спойлер — потянет, но есть забавые нюансы]. Кому интересна тема — добро пожаловать под кат. Осторожно, будет много котиков!

image
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии39

Чем загрузить VPS: своё «облако» Nextcloud

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

На дворе 2017 год: правительство шпионит и блокирует сайты, большие корпорации отдают ваши личные данные правительству или продают на сторону. У вас уже есть подписка на VPN, но в России такие сервисы теперь вне закона. Вы арендовали VPS заграницей и ходите в сеть через него, но мощности работают вхолостую.

Установим Nextcloud! Он заменит синхронизацию контактов, календаря, списка задач и файлохранилища/обменника на вашем смартфоне, а на ПК сойдёт за Dropbox. И независимости добавим, и сервер нагрузим.

Дальше длинная, но не сложная инструкция про аренду сервера, установку и настройку Nextcloud на сервере и на ПК/смартфонах, включая синхронизацию контактов и календаря.
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии123

Вечный фотоархив для дома

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

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


image


Теория


Ресурс работы SSD накопителя теоретически не ограничен, если не превышать количество циклов перезаписи в ячейку.


Задача


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


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

Читать дальше →
Всего голосов 39: ↑24 и ↓15+9
Комментарии95

Лимиты Telegram bot API и работа с ними на Go

Время на прочтение5 мин
Количество просмотров65K
Довольно часто на Хабре появляются статьи о написании бота для Telegram, которые в своем роде, если откинуть уникальность идеи, являются самым обычным туториалом на тему «как получить сообщение от Telegram, обработать его и отправить ответ пользователю». Однако ни в одной из статей, прочтенных мной (конечно же, не берусь утверждать, что прочел их все, но тем не менее) я не встретил упоминания о лимитах отправки сообщений пользователям и как с ними работать. Кого заинтересовал, прошу под кат.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии13
1
23 ...

Информация

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