Pull to refresh
2
0
Send message

Многопроцессный доступ к Intel Neural Computer Stick через REST

Reading time4 min
Views2.4K

Проблема однозадачности


В прошлой серии я поставил на танк Intel Neural Computer Stick 2 и перекинул на него все нейросетевые вычисления, отказавшись от Tensorflow и OpenCV-DNN.

Была проблема, с которой я столкнулся уже тогда — невозможность работать с NCS из нескольких процессов одновременно. Тогда это было не критично, а сейчас пришло время разобраться.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments0

Унификация правил валидации на примере Asp core + VueJS

Reading time15 min
Views4.3K


В статье описывается простой способ унификации правил валидации пользовательского ввода клиент-серверного приложеия. На примере простого проекта, я покажу как это можно сделать, с использованием Asp net core и Vue js.


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

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments0

Глупая причина, по которой не работает ваше хитрое приложение машинного зрения: ориентация в EXIF

Reading time5 min
Views20K
Я много писал о проектах компьютерного зрения и машинного обучения, таких как системы распознавания объектов и проекты распознавания лиц. У меня также есть опенсорсная библиотека распознавания лиц на Python, которая как-то вошла в топ-10 самых популярных библиотек машинного обучения на Github. Всё это привело к тому, что новички в Python и машинном зрении задают мне много вопросов.



По опыту, есть одна конкретная техническая проблема, которая чаще всего ставит людей в тупик. Нет, это не сложный теоретический вопрос или проблема с дорогими GPU. Дело в том, что почти все загружают в память изображения повёрнутыми, даже не подозревая об этом. А компьютеры не очень хорошо обнаруживают объекты или распознают лица в повёрнутых изображениях.
Читать дальше →
Total votes 97: ↑97 and ↓0+97
Comments18

Скучный технологический стек интернет-компании из одного человека

Reading time8 min
Views25K

Поисковая выдача на ListenNotes.com

Listen Notes — это поисковая система и база данных подкастов. Технология на самом деле очень скучная. Никакого ИИ, глубокого обучения или блокчейна. «Если вы должны объявлять о внедрении ИИ, то вы не используете Настоящий ИИ» :)

После прочтения этой статьи вы сможете повторить мой проект или легко сделать нечто подобное. Не придётся нанимать много разработчиков. Помните, когда Instagram привлёк $57,5 млн и отошёл к Facebook за $1 млрд, у них было всего 13 сотрудников — и это не только разработчики. Покупка Instagram произошла в начале 2012-го. Сейчас 2019 год, и сегодня как никогда просто создать что-то значимое с крошечной инженерной командой — даже из одного человека.
Total votes 71: ↑69 and ↓2+67
Comments54

Использование DiagnosticSource в .NET Core: практика

Reading time14 min
Views12K

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


В настоящее время DiagnosticSource уже используется в AspNetCore, EntityFrameworkCore, HttpClient и SqlClient — каждый из них отправляет собственные события, которые могут быть перехвачены и обработаны.


В этой статье я хочу рассмотреть несколько примеров того, как можно на практике использовать DiagnosticSource в приложениях ASP.NET Core.


  • CorrelationID и пробрасывание заголовков между сервисами
  • Сбор метрик и трассировок
  • Логирование

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

Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments11

Here be dragons: Управление памятью в Windows как оно есть [3/3]

Reading time5 min
Views147K

Каталог:
Один
Два
Три

μTorrent


Это, пожалуй, самая забавная часть. При очевидно высоких навыках программирования, авторы либо не читали, либо не поняли вот этот документ. Вот что происходит с дефолтными настройками:
Читать дальше →
Total votes 323: ↑300 and ↓23+277
Comments171

Профессиональное выгорание: слово экспертам

Reading time5 min
Views33K
После статьи о профессиональном выгорании поступило много вопросов в личку и в комментарии про то, где больше почитать про матчасть, чем отличаются одни школы психотерапии от других и как выбрать специалиста.

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

1. Дмитрий Ковпак, кандидат мед.наук, президент российской Ассоциации когнитивно-поведенческой психотерапии (КПТ), доцент кафедры психологии и педагогики СЗГМУ им. И.И. Мечникова.

2. Алексей Демьяненко, психотерапевт, заведующий Городским Психотерапевтическим Центром Санкт-Петербурга, руководитель регионального отделения Российской Психотерапевтической Ассоциации.

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

4. Мария Берлин, организационный психолог, тренер, корпоративный психолог ЗАО РТК МТС(2015-2016), преподаватель института «Иматон», автор программы подготовки специалистов «Работа с эмоциональным выгоранием – комплексный подход».

В итоге у нас накопилось пять мастер-классов (видео под катом). Видео изначально были доступны только нашим студентам. Но раз тема оказалась актуальной для Хабра, решили все это выложить — пользуйтесь на здоровье.
Total votes 29: ↑24 and ↓5+19
Comments8

Windows и case-sensitive filesystem

Reading time4 min
Views24K
Давным-давно, на заре своего рождения Windows использовала файловую систему FAT. Потом ей на смену Microsoft и IBM разработали NTFS. В те давние времена возникло два противоположных подхода к файловой системе. В Linux используется case-sensitive файловая система, а в Microsoft — case-insensitive.

Суть в том, что в case-sensitive файловой системе считается, что имена, написанные в разных регистрах (например, FILE.txt и file.txt) — это разные имена. А для Windows между ними нет разницы.



Несмотря на нечувствительность Windows к регистру букв, разработчики NTFS подошли к делу ответственно, и бережно сохраняют регистр имен каталогов и файлов. Возможно, они не теряли надежды на сближение с противоборствующим лагерем.
Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments109

Как я начал любить Vue

Reading time15 min
Views61K

Вступление



Данный пост — это логическое продолжение моего поста/статьи — Как я перестал любить Angular / How I stopped loving Angular.
Рекомендуется к ознакомлению перед прочтением.


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

Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments56

Библиотека быстрого поиска путей на графе

Reading time8 min
Views35K

Привет, Друзья!


Я написал библиотеку поисков путей на произвольных графах, и хотел бы поделиться ей с вами.


Пример использования на огромном графе:



Поиграться с демо можно здесь


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


Описание разных вариантов A* уже не раз встречалось на хабре. Мне очень понравилось вот это, потому повторяться в этой статье я не буду. Под катом расскажу подробнее почему библиотека работает быстро и о том, как было сделано демо.

Читать дальше →
Total votes 114: ↑112 and ↓2+110
Comments53

Спорт, как хобби для здоровья, с точки зрения инженера

Reading time14 min
Views77K
image
Картинка из гугла для привлечения внимания.

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

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

Для тех, кому лень читать: наш выбор — качалочка и плавание. Бег, игры и велик — по желанию.
Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments238

Kubernetes на голом железе за 10 минут

Reading time8 min
Views165K


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


По ходу этой статьи мы установим Kubernetes 1.6 на реальную (не виртуальную) машину под управлением Ubuntu 16.04 примерно за 10 минут. В результате у вас появится возможность начать изучать взаимодействие с Kubernetes посредством его CLI kubectl.
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments32

Заблуждения Clean Architecture

Reading time15 min
Views410K
Превращаем круги в блоки

­­ 


На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

Читать дальше →
Total votes 58: ↑56 and ↓2+54
Comments203

Шаблоны проектирования с человеческим лицом

Reading time32 min
Views487K

image


Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.


Как сказано в Википедии:


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

image Будьте осторожны


  • Шаблоны проектирования — не «серебряная пуля».
  • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
  • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.

Читать дальше →
Total votes 148: ↑134 and ↓14+120
Comments98

Самые полезные приёмы работы в командной строке Linux

Reading time5 min
Views156K
Каждый, кто пользуется командной строкой Linux, встречался со списками полезных советов. Каждый знает, что повседневные дела вполне можно выполнять эффективнее, да только вот одно лишь это знание, не подкреплённое практикой, никому не приносит пользы.

Как выглядят типичные трудовые будни системного администратора, который сидит на Linux? Если абстрагироваться от всего, кроме набираемых на клавиатуре команд, то окажется, что команды эти постоянно повторяются. Всё выходит на уровень автоматизма. И, если даже в работе есть что улучшать, привычка противится новому. Как результат, немало времени уходит на то, чтобы делать так, как привычнее, а не так, как быстрее, и, после небольшого периода привыкания – удобнее. Помнить об этом, сознательно вводить в собственную практику новые полезные мелочи – значит профессионально расти и развиваться, значит – экономить время, которое можно много на что потратить.

image

Перед вами – небольшой список полезных приёмов работы с командной строкой Linux. С некоторыми из них вы, возможно, уже знакомы, но успели их позабыть. А кое-что вполне может оказаться приятной находкой даже для знатоков. Хочется надеяться, что некоторые из них будут вам полезны и превратятся из «списка» в живые команды, которыми вы будете пользоваться каждый день.
Читать дальше →
Total votes 146: ↑130 and ↓16+114
Comments149

Использование Tarantool в .NET-проекте на Windows

Reading time21 min
Views23K

В последнее время на Хабре появляется достаточно много статей про Tarantool — базу данных и сервер приложений, который используется в Mail.Ru Group, Avito, Yota на разных высоконагруженных проектах. И вот, когда в маленьком стартапе, который я иногда консультирую, возникла необходимость разделения прекрасного, но, к сожалению, монолитного приложения на микросервисы, я подумал: а чем мы хуже других компаний? — и решил посмотреть в сторону Tarantool. Однако, в отличие от большинства компаний, где используется Tarantool, в нашем случае разработка проекта ведётся в Visual Studio на Windows. Предполагается, что даже с переходом на микросервисную архитектуру большинство микросервисов будет написано на языке C#. А Tarantool… Стоит зайти на официальный сайт — и сразу понимаешь: Tarantool даже установить на Windows проблематично, так как на эту операционную систему он не портирован. Как я боролся с такими сложностями, для какого именно микросервиса выбрал Tarantool и как вы можете использовать Tarantool в своих .NET-проектах, я расскажу в данной статье. А пока спойлер — практически все трудности преодолимы, и мой опыт можно без сомнений назвать положительным. Например, на то, чтобы скачать и запустить Tarantool, а потом сделать к нему запрос из кода на языке C#, у меня ушло менее десяти минут. И я покажу вам, как это сделать!


image


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

Читать дальше →
Total votes 70: ↑69 and ↓1+68
Comments31

8 инструментов для создания личного или делового чат бота

Reading time4 min
Views69K


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

  • WhatsApp
  • Facebook Messenger
  • WeChat
  • Skype
  • LINE
  • Slack
  • QQ Mobile
  • и множество других…

Я думаю, вы со мной согласны. А если нет, то взгляните на данные Statista об использовании приложений для обмена сообщениями на мобильных устройствах.

Станьте частью нового мира и воспользуйтесь чат ботом. Обслуживание, поддержка и восприятие ваших клиентов полностью изменятся.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments8

Шпаргалка по Flexbox (CSS3 Flexible Box)

Reading time1 min
Views359K
Мне не нова магия Flexbox, но я не часто ее использую, и поэтому после паузы в использовании мне приходится открывать вот этот пост на CSS-Tricks чтобы освежить память.

Я решила создать краткую визуальную шпаргалку по Flexbox для тех случаев освежения памяти после паузы в будущем. Думаю, что у меня получилась шпаргалка, основанная на… шпаргалках.


Читать дальше →
Total votes 78: ↑75 and ↓3+72
Comments25

Домашний хостинг сайтов с динамическим IP

Reading time6 min
Views147K
У меня (как и у многих web-разработчиков) имеется с десяток сайтов которые необходимо где-то размещать (хостить).

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

В то-же время в наличии имеется:

  • Домашний сервер на Ubuntu
  • Быстрый ethernet-интернет от МТС

Но не имеется ключевого — статического IP. Если бы он был, то все было-бы намного проще и данную статью я бы точно не писал. А выдавать статический IP мой МТС абсолютно не желает (если только я не подключусь как бизнес-клиент).

Разумеется есть всем известные Dynamic DNS сервисы вроде noip.com, но они успешно решают лишь задачу удаленного доступа к нашему серверу (по SSH или FTP), но для хостинга совершенно нам не подходят, поскольку в настройках домена на DNS-сервере нам нужно обязательно прописать A-запись с реальным IP-адресом (а не ссылку на наш виртуальный домен).
Читать дальше →
Total votes 57: ↑44 and ↓13+31
Comments92
1

Information

Rating
Does not participate
Registered
Activity