Search
Write a publication
Pull to refresh
4
0
xRay @xRay

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

Send message

Гибридные сортировки

Reading time9 min
Views15K


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

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

Друпал-дайджест — 2019/декабрь

Reading time10 min
Views3.4K
Друпал-дайджест №33 за декабрь 2019 года: вышедшие версии, изменения внесённые в ядро разрабатываемых веток, статьи, модули, темы и статистика использования Drupal. Дайджест не включает статьи на английском языке, которые публикуются в Drupal Planet и The Weekly Drop.


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

PHP-Дайджест № 171 (1 – 13 января 2020)

Reading time4 min
Views16K

Свежая подборка со ссылками на новости и материалы. В выпуске: 4 свежих RFC из PHP Internals и интересные пул-реквесты в PHP 8, порция полезных инструментов, подкасты, стримы и многое другое.

Приятного чтения!


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

Как устроен Sporth — ЯП для музыкальных live-сессий

Reading time4 min
Views5.3K
Один из предыдущих материалов мы посвятили OpenMusic — инструменту для написания музыки на ООП. Мы также говорили о языках программирования, заточенных под создание аудиокомпозиций.

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

Разработка идеального pypi пакета с поддержкой разных версий python

Reading time15 min
Views22K

Это небольшой мануал/история о том, как создать "идеальный" pypi пакет для python, который каждый желающий сможет установить заветной командой:


pip install my-perfect-package

Ориентирована на новичков, но призываю и профессионалов высказать свое мнение, как можно улучшить "идеальный" пакет. Поэтому прошу под кат.

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

Vue для самых маленьких a.k.a небольшой блог по всем канонам

Reading time15 min
Views29K


Всем привет! В данной статье рассмотрим разработку фронта простенького блога на Vue с использованием всех прелестей Vue включая Vuex и Router. А также поговорим про структуру приложения и работу с контейнером и роутером.
Читать дальше →

Самодельные беспроводные оконные датчики: STM32L051 + RFM69 + Android

Reading time11 min
Views24K
Добрый день, уважаемые хабровчане! Несколько лет назад я купился на красочную рекламу zWave и установил себе оконные датчики, базирующиеся на этом протоколе. К домашнему серверу был подключен USB zWave-Stick, который играл роль контроллера, написан небольшой модуль на Java, который получал данные с этого контроллера, а также написано небольшое приложение для Андроида, которое красиво отображало состояние всех датчиков. Батарейки вставлены, датчики зарегистрированы на контроллере, все заработало. Но через пару месяцев наступило жесточайшее разочарование. Во первых, данные zWave датчики работают по принципу «послать сообщение и, не ожидая подтверждения, заснуть». В моем случае это привело к тому, что сигнал от наиболее дальних от контроллера датчиков просто не доходил до контроллера. Не помогла даже установки дополнительного zWave-повторителя. Во-вторых, они настолько быстро садили батарейку, что примерно через шесть месяцев работать переставали все датчики. Причина в том, что они каждый час просыпались, чтобы сообщить контроллеру свое состояние. Отключить или изменить этот параметр не получилось, так как штатное программное обеспечение это сделать категорически не позволяло. Помучавшись два года с этой сырой, ненадежной и недружественной технологией, я решил что с меня хватит. Но вместо того, чтобы все убрать и выкинуть, мне пришла идея оставить корпуса, но поменять в них электронику. Выбор пал на достаточно простой приемопередатчик RFM69 (433 MHz), на базе которого удалось сделать как плату для датчика, так и контроллер, подключаемый через USB к серверу. Новая система в эксплуатации уже 5 месяцев, надежность близка к 100% (но некоторые сбои таки были), батарейки садиться пока не думают. То есть уже сейчас видно, что все недостатки старой системы на базе zWave устранены, и я хочу поделиться техническими подробностями этой моей поделки, см. картинку.



Кому интересно, прошу под кат.
Читать дальше →

Rhasspy — опенсорсный и полностью офлайновый речевой тулкит. Распознавание русского языка. Никаких утечек в облако

Reading time3 min
Views39K

Фото из сравнения микрофонных массивов для DIY-устройств типа самодельной умной колонки

Системы вроде Amazon Echo передают в облако для хранения ваши конфиденциальные разговоры (даже записанные случайно). В некоторых случаях записи прослушиваются живыми операторами. Это не просто потеря конфиденциальности. Это как добровольно впустить в свою квартиру «товарища майора», который стоит рядом 24 часа в сутки, слушает и внимательно записывает, притворяясь услужливым ассистентом.

Вместо покупки коммерческой системы у корпораций типа Google, Amazon или «Яндекс», вы можете собрать аналогичную опенсорсную систему на базе Raspberry Pi 2-3 B/B+, персонального компьютера или ноутбука.

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

Вентиляция с рекуперацией в квартире. Без воздуховодов и СМС

Reading time7 min
Views116K
Написать этот пост меня подтолкнула недавняя статья о приточной вентиляции в квартире. Я было хотел оставить развёрнутый комментарий, но понял что правильнее будет написать статью, т.к. мой опыт использования комнатных рекуператоров в качестве основной системы вентиляции может быть интересен многим.


Это КДПВ блок рекуперации/регенерации. Надеюсь, ни у кого нет трипофобии?

Итак, всё началось с духоты. Точнее, с утепления квартиры слоем экструзионного пенополистирола по всему периметру (панельная 9-этажка родом из 80-х, с кучей сквозящих углов). В результате чего, квартира стала условно герметичной и вопрос свежего воздуха встал в полный рост.
Читать дальше →

Изучение слов сгруппированных тематически

Reading time5 min
Views10K


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


Хочу поделится подобранными мной для себя подходами и порекомендовать помогающую мне в изучении литературу и программное обеспечение (список в конце статьи).


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


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

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

Умный дом с Xiaomi на примере бани

Reading time12 min
Views80K
В интернете довольно много обзоров и видеороликов о построении умных домов. Бытует мнение, что все это достаточно дорого и хлопотно в организации, то есть, в целом, удел гиков. Но прогресс не стоит на месте. Устройства становятся более дешевыми, при этом более функциональными, а проектирование и монтаж – довольно простыми. Однако, в основном, обзоры фокусируются на 1-2 примерах использования, практически не покрывая нюансы и не создавая целостной картины. Поэтому в данной статье я хочу сделать обзор законченного проекта, продемонстрировать сценарии использования и встретившиеся подводные камни в построении умного дома с помощью устройств Xiaomi на примере бани. Описанные идеи с небольшими вариациями можно применить и при автоматизации квартиры.

image

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

Заменяем Google Assistant на нейросеть Порфирьевич и троллим Алису

Reading time4 min
Views52K

Вы уже видели, что вытворяет нейросеть Порфирьевич? Она дописывает текст к любой вашей фразе. И действительно забавные штуки получаются, потому что обучена она на книгах Достоевского, Толстого, Пушкина, Булгакова, Гоголя и Пелевина.

«Озвучить все это дело голосом Левитана — получился бы отличный заменитель гугловского ассистента к новогоднему застолью...» — подумал я. И решил не откладывать это мероприятие на посленовогогода (а то ведь сами понимаете).

Под катом — весь процесс создания опенсорсного голосового ассистента Порфирьевич на исключительно опенсорсном фреймворке Aimybox, и его запуск вместо штатного Google ассистента. Ну и заодно Алису потроллить можно.

ELFийские трюки в Go

Reading time6 min
Views11K


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


Предупреждение: ничему полезному эта мини-статья вас не научит.

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

Зачем ограничивать наследование с помощью final?

Reading time45 min
Views40K

Вы наверняка слышали это знаменитое высказывание от GoF: «Предпочитайте композицию наследованию класса». И дальше, как правило, шли длинные размышления на тему того, как статически определяемое наследование не настолько гибко по сравнению с динамической композицией.


Гибкость – это конечно полезная черта дизайна. Однако при выборе архитектуры нас интересуют в первую очередь сопровождаемость, тестируемость, читабельность кода, повторное использование модулей. Так вот с этими критериями хорошего дизайна у наследования тоже проблемы. «И что же теперь, не использовать наследование вообще?» – спросите Вы.


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


Проблема хрупкого базового класса


Проблема хрупкого базового класса

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

На моей визитке работает Linux

Reading time6 min
Views110K
Перевод статьи из блога инженера Джорджа Хиллиарда


Кликабельно

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

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

Я подумал: «Эти процессоры настолько дешёвые, что их практически можно раздавать даром». И через некоторое время ко мне пришла идея сделать голую карточку для Linux в форм-факторе визитной карточки.
Читать дальше →

Самостоятельный хостинг сторонних ресурсов: хороший, плохой, злой

Reading time7 min
Views4.7K
В последние годы всё больше платформ для оптимизации фронтенд-проектов предлагают возможности по самостоятельному хостингу или проксированию сторонних ресурсов. Akamai позволяет задавать специфические параметры для самостоятельно создаваемых URL. У Cloudflare есть технология Edge Workers. Fasterzine может переписывать URL на страницах так, чтобы они указывали бы на сторонние ресурсы, находящиеся на основном домене сайта.



Если известно, что сторонние сервисы, используемые в вашем проекте, изменяются не слишком часто, и то, что процесс их доставки клиентам может быть улучшен, то вы, наверняка, задумываетесь о проксировании подобных сервисов. При таком подходе вы вполне можете «приблизить» эти ресурсы к пользователям и обрести более полный контроль над их кэшированием на клиентской стороне. Это, кроме того, позволяет защитить пользователей от неприятностей, вызванных «падением» стороннего сервиса или деградацией его производительности.
Читать дальше →

Тихая разведка. Метод выявления потенциальных уязвимостей WEB

Reading time4 min
Views6.3K

Примечание


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

Введение


Как вы уже знаете, существует множество сайтов-посредников, которые работают с компаниями для повышения эффективности программы Bug Bounty, в том числе:

  • hackerone.com
  • bugcrowd.com
  • intigriti.com
  • yeswehack.com
  • openbugbounty.org
  • synack.com (privat)

Как это работает ?


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

Что нам нужно для этого?


VPS, желательно Debian (могут использоваться и другие) + хорошее интернет-соединение ( я беру у alexhost.com, VPS 1.5 GB RAM, 1 Core, 10GB SSD всего за 11 евро в год. )

  • sublist3r
  • httprobe
  • webscreenshot
  • header response
  • relative-url-extractor
  • jsfiles extractor
Читать дальше →

Пишем блог на микросервисах – часть 1 «Общее описание»

Reading time4 min
Views18K
В этой статье хочу поделится нашими c SergeyMaslov наработками решения типовых задач с использованием микросервисной архитектуры на примере задачи «создание блога» (в надежде, что читатель представляет как устроен блог и это не должно вызывать вопросов по функциональности:)
Читать дальше →

Пишем блог на микросервисах – часть 4 сервис «Post»

Reading time7 min
Views3.9K
Эта статья является продолжением истории написания demo-блога на микросервисах (предыдущие части можно почитать здесь: Часть 1 «Общее описание архитектуры», Часть 2 «API Gateway», Часть 3 «Сервис User»). В этой статье речь пойдет о реализации микросервиса Post (статьи).
Читать дальше →

Пишем блог на микросервисах – часть 3 «User»

Reading time6 min
Views5.3K
Во второй части нашего цикла статей «Пишем блог на микросервисах» мы описали «API Gateway».

Здесь мы опишем реализацию микросервиса User.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity