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

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

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

Система увлажнения воздуха для дома или квартиры

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

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

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

Как избежать 10 частых ошибок в настройке NGINX

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


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


  1. Недостаточное количество файловых дескрипторов;
  2. Директива error_log off;
  3. Отсутствие keepalive-соединения с вышестоящими серверами;
  4. Упущение механизмов наследования директив;
  5. Директива proxy_buffering;
  6. Неправильное использование директивы if;
  7. Чрезмерные проверки работоспособности;
  8. Незащищенный доступ к метрикам;
  9. Использование ip_hash, когда весь трафик поступает из одного и того же блока /24 CIDR;
  10. Игнорирование преимуществ вышестоящих групп.
Читать дальше →
Всего голосов 70: ↑70 и ↓0+70
Комментарии3

PostgreSQL Antipatterns: когда мешает внешний ключ

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

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

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

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

Чтобы найти хороших разработчиков, заставьте их читать чужой код

Время на прочтение4 мин
Количество просмотров39K
При найме разработчиков можно смотреть на различные навыки, но за годы работы я выяснил, что самое важное — простая способность кодить, и этот навык сильно опережает по важности все остальные. Я могу быстро обучить человека, чтобы он получил знания в определённой области, но никогда не видел, чтобы простая способность кодить исходила из чего-то иного, кроме как из личного стремления к упорной и глубокой практике. Благодаря этому я выяснил, что одни способы лучше подходят для выявления талантов, чем другие.
Читать дальше →
Всего голосов 99: ↑99 и ↓0+99
Комментарии67

Самый простой способ разместить IP-камеру на сайте в 2022 году

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

Ранее в статье "Самый простой (для знающих Linux) и дешевый способ разместить IP-камеру на сайте для небольшой аудитории" я уже делился с сообществом своим видением, как быстро и просто разместить видео с камеры на своем сайте. Минусов у того подхода, к сожалению, было много. Это и запуск исключительно под Linux, и отсутствие полноценной поддержки Safari и Яндекс.Браузера для MacOSX, и необходимость проделать дополнительную работу, чтобы привести скрипт в боевое состояние. Установить Apache, PHP, FFMpeg. Сгенерировать вручную ссылки (немного не актуально – я недавно выложил генератор ссылок для того скрипта). В общем, в новом году хочется чего-то совсем простого, что настраивается в пару кликов и работает почти везде. Плюс в комментариях к статье были справедливые упоминания о технологии HLS. Вот такую программу я и написал, чем с вами сегодня и поделюсь.

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

Стратегии выплаты технического долга

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

Технический долг: он есть у всех, и каждый достойный своего звания разработчик хочет его выплатить, но как же организовать этот процесс?

Реализуем севооборот


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

Эта метафора остаётся подходящей и для разработки ПО; кроме того, она содержит в себе намёки на возможные стратегии, которые можно использовать для выплаты технического долга.

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

В рамках этой статьи мы будем предполагать, что вы работаете в методологии agile-разработки, однако многие принципы при условии творческой переработки применимы и к другим методологиям.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+18
Комментарии1

Mask R-CNN от новичка до профессионала

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


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

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

Ищем свободное парковочное место с Python

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

Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи.

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

Поэтому я решил направить камеру в окно и использовать глубокое обучение, чтобы мой компьютер сообщал мне, когда освободится место:

image

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

Поэтому давайте немного развлечёмся и напишем точную систему уведомлений о свободной парковке с помощью Python и глубокого обучения
Читать дальше →
Всего голосов 110: ↑107 и ↓3+104
Комментарии53

Распознавание источников освещения на картах окружения

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

В этой статье представлена реализация на Python алгоритма распознавания источников освещения на картах окружения (LDR или HDR) при помощи равнопромежуточной проекции (equirectangular projection). Однако после внесения незначительных изменений её также можно использовать с простыми фоновыми изображениями или кубическими картами. Примеры возможного применения алгоритма: программы трассировки лучей, в которых требуется распознавать первичные источники освещения для испускания из них лучей; в растеризованных рендерерах он может применяться для отбрасывания теней, использующих карту окружения; кроме того, алгоритм также можно применять в программах устранения засветов, например в AR.

Алгоритм состоит из следующих этапов:

  1. Снижение разрешения исходного изображения, например, до 1024.
  2. Преобразование изображения в яркость (luminance), при необходимости с размытием изображения.
  3. Применение метода квази-Монте-Карло.
  4. Преобразование из сферических координат в равнопромежуточные.
  5. Фильтрация сэмплов на основании яркости соседа.
  6. Сортировка сэмплов на основании их яркости.
  7. Фильтрация сэмплов на основании евклидовой метрики.
  8. Слияние сэмплов при помощи алгоритма Брезенхэма.
  9. Вычисление позиции кластера освещения на основании его яркости.

Существует множество алгоритмов снижения разрешения изображений. Билинейная фильтрация — самый быстрый или простой в реализации, к тому же он лучше всего подходит в большинстве случаев. Для преобразования яркости и в LDR-, и HDR-изображениях можно использовать стандартную формулу:

  lum = img[:, :, 0] * 0.2126 + img[:, :, 1] * 0.7152 + img[:, :, 2] * 0.0722

Дополнительно можно применить к изображению яркости небольшое размытие, например, в 1-2 пикселя для изображения разрешением 1024, для устранения всех высокочастотных деталей (в частности, вызванных снижением разрешения).
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии3

Книга «Микросервисы. Паттерны разработки и рефакторинга»

Время на прочтение8 мин
Количество просмотров60K
image Привет, Хаброжители! Если вам давно кажется, что вся разработка и развертывание в вашей компании донельзя замедлились — переходите на микросервисную архитектуру. Она обеспечивает непрерывную разработку, доставку и развертывание приложений любой сложности.

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

Предлагаем ознакомиться с отрывком «Управление транзакциями в микросервисной архитектуре»
Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии26

Китайцы создали сразу две альтернативы Flash, потому что не могут отказаться от технологии Adobe

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

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

В общем, китайцы нашли оригинальное решение — решили сделать свой Flash. И даже не одну технологию, а сразу две. Так, разработчики дистрибутива UOS создали альтернативу с названием ReFla, у которой, по их словам, все хорошо с безопасностью и стабильностью работы. А партнер Adobe в Китае выпустил оригинальный Flash Player, доработав его в плане безопасности.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии113

Настоящий металл: как сплавить команды в горниле совместной разработки

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

У нас было 2 проектных менеджера, 72 эксперта от производства, 33 высококлассных спеца из двух IT-команд, несколько десятков систем управления производством по всей стране, а еще, разработчики КРОК и Группы НЛМК прежде не работали вместе.

Звучит как организационный ад, и это недалеко от истины. Но мы справились и теперь хотим поделиться опытом работы в объединенной команде Группы НЛМК и КРОК в масштабном проекте по развитию информационных сервисов службы продаж.

Читать далее
Всего голосов 31: ↑26 и ↓5+25
Комментарии3

30+ лаконичных профессиональных рекомендаций для Android разработчика

Время на прочтение12 мин
Количество просмотров7.4K
Специально для студентов базового курса «Android-разработчик» подготовили перевод полезного материала.





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

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

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

Итак, не теряя больше времени, давайте начнем.
Читать дальше →
Всего голосов 12: ↑9 и ↓3+10
Комментарии5

Как мы в Спортмастере выбирали систему кеширования. Часть 1

Время на прочтение14 мин
Количество просмотров16K
Привет! Меня зовут Алексей Пьянков, я разработчик в компании Спортмастер. В этом посте я рассказал, как начиналась работа над сайтом Спортмастер в 2012 году, какие инициативы удалось «протолкнуть» и наоборот, какие грабли мы собрали.

Сегодня я хочу поделиться мыслями, которые следуют за другим сюжетом – выбор системы кеширования для java-бэкенда в админке сайта. Этот сюжет имеет особое значение для меня – хотя история разворачивалась всего 2 месяца, но эти 60 дней мы работали по 12-16 часов и без единого выходного. Никогда раньше не думал и не представлял, что можно так много работать.

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


Читать дальше →
Всего голосов 25: ↑24 и ↓1+29
Комментарии23

Яндекс открывает Testsuite

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


Сегодня мы открываем исходный код testsuite — фреймворка для тестирования HTTP-сервисов, который разработан и применяется в Яндекс.Такси. Исходники опубликованы на GitHub под лицензией MIT.

С помощью testsuite удобно тестировать HTTP-сервисы. Он предоставляет готовые механизмы, чтобы:

  • Взаимодействовать с сервисом через вызовы его HTTP API.
  • Перехватить и обработать HTTP-вызовы, которые сервис отправляет во внешние сервисы.
  • Проверить, какие вызовы во внешние сервисы сделаны и в каком порядке.
  • Взаимодействовать с базой данных сервиса, чтобы создать предусловие или проверить результат.
Читать дальше →
Всего голосов 45: ↑36 и ↓9+43
Комментарии28

Распознавание объектов на android с помощью TensorFlow: от подготовки данных до запуска на устройстве

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

Обучение нейросети распознаванию образов — долгий и ресурсоемкий процесс. Особенно когда под рукой есть только недорогой ноут, а не компьютер с мощной видеокартой. В этом случае на помощь придёт Google Colaboratory, которая предлагает совершенно бесплатно воспользоваться GPU уровня Tesla K80 (подробнее).


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


Подготовка данных


В качестве примера попробуем обучить нейросеть распознавать белые игральные кости на черном фоне. Соответственно, для начала, надо создать набор данных, достаточный для обучения (пока остановимся на ~100 фото).


Всего голосов 18: ↑18 и ↓0+18
Комментарии3

Конференция DEFCON 27. Инструмент для взлома беспроводных сетей WiFi Kraken

Время на прочтение8 мин
Количество просмотров13K
Даррен Китчен: Добрый день, мы находимся в кулуарах конференции DefCon у павильона хакерской группы Hack 5, и я хочу представить одного из самых любимых мною хакеров, DarkMatter, с его новой разработкой под названием WiFi Kraken.



В последний раз, когда мы встретились, у тебя за спиной был огромный рюкзак с «Кактусом», увенчанным ананасом, и вообще это были сумасшедшие времена!

Примечание переводчика: Майк расположил на своем устройстве Cactus настоящий ананас – намек на WiFi Pineapple, хакерское устройство для перехвата беспроводной связи, см. фото с конференции BlackHat-2017.

Майк Спайсер: да, абсолютно сумасшедшие времена! Итак, этот проект проходит под хэштегом WiFi Kraken и представляет собой новое поколение технологий в области мониторинга беспроводных сетей. Когда я создавал WiFi Cactus, то приобрел много навыков и решил воплотить полученные знания в жизнь, использовав их для достижения практических целей в новом проекте. Сегодня я представляю вам Kraken!
Всего голосов 17: ↑16 и ↓1+19
Комментарии0

ESP32 и файловая система SPIFFS

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


SPIFFS – (Serial Peripheral Interface Flash File System) файловая система флеш-памяти, подключаемой по последовательному периферийному интерфейсу. Простыми словами: есть микроконтроллер ESP32 (рисунок 1), у него есть встроенная перезаписываемая энергонезависимая NOR-память, в которой хранятся: настройки (Preferences), загрузчик (Bootloader), микропрограмма (скомпилированный скетч), файловая система (SPIFFS) и ещё что-нибудь, типа обновления "по воздуху" (OTA).

Читать дальше →
Всего голосов 8: ↑6 и ↓2+7
Комментарии10

Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

Время на прочтение26 мин
Количество просмотров343K
Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже множество? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера опыт (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас распирает от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.

Что мы будем рассматривать в данной статье?

В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят
В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.
В Части 6 — послесловие
Читать дальше →
Всего голосов 108: ↑107 и ↓1+106
Комментарии36

Домашний ЧПУ-фрезер как альтернатива 3D принтеру, часть первая — выбор станка

Время на прочтение5 мин
Количество просмотров291K
Последнее время на хабре все чаще появляются топики, посвященные 3D-печати вообще и домашним 3D-принтерам в частности. И почти в каждом в комментариях вспыхивает холивар между романтиками, в жизни не видевшими 3D отпечатков, и практиками, единожды потрогавшими и разочаровавшимися. При этом вторые почему-то не приводят адекватных альтернативных технологий, комментарии носят либо чисто критический характер, либо предлагают заведомо более дорогие альтернативы. Тем не менее, достойная альтернатива есть — домашний фрезерный станок с ЧПУ.

Звучит удивительно, да? Как-то само слово станок в народе ассоциируется с производством, с отдельными помещениями и специально обученным персоналом. В действительности, существует большой класс ЧПУ-станков, рассчитанных на настольное использование в офисе и на малых производствах, а при желании — и дома. При этом цена маленьких ЧПУ-фрезеров приближается (чтобы не сказать равна) к реальной цене 3D-принтеров.

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

И вот — решил поделиться опытом с сообществом. Я осознаю сам, и прошу принимать во внимание читателей, что я — самоучка без базового инженерного образования, все нижеизложенное основано исключительно на личном опыте.
Читать дальше →
Всего голосов 104: ↑98 и ↓6+92
Комментарии188
1
23 ...

Информация

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