Наблюдение за изменением уровня Wi-Fi сигнала от стационарно расположенных по дому IoT устройств позволяет сделать полностью программный (выделенное железо отсутствует) объёмный датчик движения в объёме квартиры, достаточно точно показывающий наличие активно перемещающихся людей.
User
Библиотека для работы с iOS-пермишенами, от идеи до релиза (часть 1)
• Каĸ унаследовать Swift-ĸласс не целиĸом, а лишь то в нём, что тебе нужно?
• Каĸ позволить юзеру твоей CocoaPods- или Carthage-библиотеĸи ĸомпилировать лишь те её части, что он действительно использует?
• Каĸ раздербанить ресурсы iOS, чтобы достать оттуда ĸонĸретные системные иĸонĸи и лоĸализованные строĸи?
• Каĸ поддержать completion blocks даже там, где это не предусмотрено дефолтным API системных разрешений?
Анатомия GNU/Linux
Какое-то время назад на Хабре была небольшая волна постов на тему «Почему я [не] выбрал Linux». Как порядочный фанатик я стриггерился, однако решил, что продуктивнее что-нибудь рассказать о своей любимой системе, чем ломать копии в комментариях.
У меня сложилось впечатление, что многие пользователи GNU/Linux слабо представляют, из чего сделана эта операционная система, поэтому утверждают, что она сляпана из попавшихся под руку кусков. В то же время, архитектура большинства дистрибутивов является устоявшейся и регламентируется рядом стандартов, включая стандарт графического окружения freedesktop.org и Linux Standard Base, расширяющий стандарты Unix. Мне при знакомстве с GNU/Linux несколько лет назад для погружения не хватало простой анатомической карты типичного дистрибутива, поэтому я попробую рассказать об этом сам.
Vulnhub. Прохождение Sunset: dawn
Автор: whitecr0wz
Так же как и в первом прохождении нам нужно определить IP-адрес нашей цели. Для этого используем команду
netdiscover
В моем случае IP-адресом будет 192.168.1.165.
Сканирование
Начнем наше сканирование с определения открытых портов
nmap -p- 192.168.1.165
Видим, что у нас открыты 80, 139, 445 и 3306 порты, вот их мы и будем сканировать
nmap -p80,139,445,3306 -sC -sV -oN dawn 192.168.1.165
Поиск точки входа
80 порт используется сайтом, пожалуй, начнем с него.
Vulnhub. Прохождение Sunset: 1
Одной из таких площадок как раз является Vulnhub. Правда, на этом ресурсе выкладывают только виртуальные машины, и там можно найти целые серии виртуальных машин. Сегодня мы поговорим о серии Sunset и рассмотрим первую ВМ (sunset: 1).
Подключаем новый Xiaomi Gateway 3 к Home Assistant без паяльника и смс
Новый хаб от Xiaomi с поддержкой технологий Zigbee 3, Bluetooth Mesh, HomeKit и его подключение к достаточно популярной системе умного дома — Home Assistant, интересует?
В нативный код из уютного мира Java: путешествие туда и обратно (часть 1)
Java и другие управляемые языки просты и удобны во многих случаях, но иногда их возможностей недостаточно — например, если нужна библиотека, написанная только на C или C++. Иногда хочется позвать пару методов из системного API, или попытаться улучшить производительность для модуля — и тогда прямой путь в нативный код.
Но тут возникают подводные камни: написать нативный метод и вызвать библиотеку может быть и легко, но JVM начинает крашиться в случайных местах, производительность падает, сборщик мусора перестает справляться с работой, а в репозитории царствуют бесконечные C-шные файлы с буквами JNI. Что же могло пойти не так?
Иван Углянский (dbg_nsk) из Huawei разбирается со всем по порядку: что необычного в интеропе между Java и нативным кодом, как оно работало раньше и что нужно делать для их нормальной совместной работы (и можно ли это вообще сделать). Иван рассказывает, как избежать просадок производительности, внезапных OOM и размышляет на тему будущего — в контексте проектов Panama и Sulong.
Мы подготовили текстовую версию доклада о работе с нативами в Java. В первой части:
- Зачем вообще работать с нативным кодом в Java.
- С какими ошибками и проблемами придётся столкнуться при работе с нативами.
Во второй части подробнее расскажем, какие есть варианты, что из них быстрее и лучше, и есть ли универсальная библиотека — всё с примерами кода и подсказками.
Далее — повествование от лица спикера.
Делаем станцию мониторинга загрязнённости воздуха в домашних условиях
В этой статье я расскажу о том, как собрать датчик загрязнённости воздуха в домашних условиях и зачем это нужно.
Кодинг без рук: что делать, если лишился своего основного рабочего инструмента
В этом году у меня в локтях обеих рук развился синдром кубитального канала — травма, вызванная повторяющимися нагрузками. В результате этого я практически не могу пользоваться мышью и клавиатурой: спустя несколько минут мои руки пронизывает обжигающая боль. Даже когда я пытаюсь ограничить пользование компьютером промежутками по 60 секунд, я непреднамеренно накручиваю себя, что ухудшает ситуацию.
Как можно понять, это достаточно серьёзная проблема: я разработчик ПО, и вся моя карьера зависит от возможности пользования клавиатурой!
После множества неудачных попыток решения проблемы при помощи физиотерапии, эргономических улучшений, фиксирующих устройств, диет и пищевых добавок, рецептурных лекарств, БАДов и множества других возможностей, я нашёл решение, позволяющее мне продолжать работу без риска дальнейшего повреждения нервов. Я могу работать, пользуясь почти исключительно микрофоном и трекером движений глаз.
В этой статье я расскажу о том, как выглядит мой рабочий процесс и как я оптимизировал его под свои нужды.
Распечатанный четвероногий робот под управлением Arduino
Я активно интересуюсь роботами, и недавно сделал двуногого робота под управлением Arduino. После этого я захотел сделать четвероногого робота, имитирующего таких животных, как собаки или кошки. В данной статье я расскажу про проектирование и сборку четвероногого робота.
Основной целью данного проекта было сделать систему достаточно надёжную для того, чтобы во время эксперимента с различными походками мне бы не приходилось волноваться о возможных отказах оборудования. Это позволило мне испытывать робота на пределе возможности, задавая ему сложные походки и разные движения. Дополнительная цель состояла в том, чтобы сделать относительно недорогой прототип, использующий готовые компоненты, и 3D-печать для быстрого прототипирования. Совместно две этих цели дают надёжную основу для проведения различных экспериментов и разработки более специализированных четвероногих роботов с более конкретными целями – навигация, обход препятствий, динамическая адаптация движения.
Идем по приборам
Много ли нужно, чтобы изменить пробег или залезть в память приборной панели?
Есть только один способ узнать — попробовать сделать это самому.
Wi-Fi для мамы
Постановка задачи
Сделать Wi-Fi в 2+ комнатной квартире, при этом чтобы скорость в любой локации была не ниже 90Мбит/с на любом современном мобильном устройстве (IEEE 802.11ac).
Предполагаем, что наша типовая квартира содержит типовой набор пользователей:
- Условный Просто пользователь (используем базовый ЯндексDNS)
- Условная Боящаяся интернета бабушка (ЯндексDNS, без мошеннических сайтов и вирусов)
- Условный Студент 5 курса, которому нужен Интернет без ограничений (выход в Интернет через VPN в Европу, DNS 8.8.8.8)
- Условный Школьник 7 класса, которому по административным причинам надо выключать Интернет в 21:00 час по будням и в 22:00 часа по выходным (используем ЯндексDNS «Семейный» и по расписанию выключаем/включаем SSID).
Радио моделирование
Начну с того, что как правило, если в квартире бетонные стены и количество комнат 2 и более, то одной точкой доступа Wi-Fi будет не обойтись, ведь 20 Мбит/с на диване у окна сегодня нас уже не устраивают, а это значит что минимальный уровень сигнала на клиенском устройстве долже быть не ниже -65дБ.
Вот пример:
Ставим одну точку доступа в прихожей, в 5 ГГц диапазоне зона покрытия до -65дБ выглядит так:
Поэтому надо добавить еще как минимум 2 точки доступа, получаем следующее:
Так уже лучше, с количеством и расположением точек доступа определились.
Интеграция нативной рекламы Admob в ListView
Разработчики мобильных приложений и Appodeal – три примера сотрудничества
Сегодня компания Appodeal представляет интервью с разработчиками, которые расскажут о своем опыте монетизации приложений. Соответственно, интервью разделено на три части, каждая из которых – это отдельный диалог. У всех – разные приложения, разное количество пользователей и различные доходы. Объединяет разработчиков одно – все они решили использовать наш сервис. Разговор поможет многим, особенно еще не вовлеченным в создание приложений, оглянуться по сторонам и посмотреть на чужой опыт.
Интервью построено в таком формате: «Q» – это вопросы основного интервьюера, а «I» – ответы собеседников. Надеемся, что этот материал пригодится нашим читателям в ежедневной работе.
Время материализоваться: конкурс по Material Design от Google
На сегодняшний день более 200 тысяч приложений в Google Play переработаны с учётом гайдлайнов по Material Design. Если и вы уже обновили свое приложение в Google Play до Material Design или же планируете это сделать в ближайщее время, то принимайте участие в конкурсе по Material Design, который стартовал на этой неделе и продлится до 15 ноября. Разыгрываем: размещение вашего приложения в разделе featuring магазина Google Play, билеты на ежегодную конференцию Google I/O и планшеты Nexus 9. Мы выберем по три лучших приложения в трёх категориях. Подробности в правилах конкурса.
19 советов по повседневной работе с Git
Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!
Содержание:
- Параметры для удобного просмотра лога
- Вывод актуальных изменений в файл
- Просмотр изменений в определённых строках файла
- Просмотр ещё не влитых в родительскую ветку изменений
- Извлечение файла из другой ветки
- Пара слов о ребейзе
- Сохранение структуры ветки после локального мержа
- Исправление последнего коммита вместо создания нового
- Три состояния в Git и переключение между ними
- Мягкая отмена коммитов
- Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
- Игнорирование пробелов
- Добавление определённых изменений из файла
- Поиск и удаление старых веток
- Откладывание изменений определённых файлов
- Хорошие примечания к коммиту
- Автодополнения команд Git
- Создание алиасов для часто используемых команд
- Быстрый поиск плохого коммита
Трудности и радости разработки первой игры на андроид
Хочу поделиться историей разработки моей первой андроид игры.
Предыстория
Начнем с того, что меня зовут Евгений, мне 26 лет. Всю свою сознательную жизнь я пытался сделать игру. В детстве это были самодельные настольные игры с кубиками; в юности попытки разобраться в бейсике и программах для создания игр на ZX Spectrum; в подростковом возрасте, до того как у меня появился персональный компьютер, я придумывал и рисовал лабиринты, в которых можно было собирать ключи, убивать врагов и т.д.
Vector Drawable API. Возможности применения
Видеонаблюдение загородом посредством 3G интернета
Условия:
- Камерами можно будет управлять через интернет
- Ограниченный бюджет
- В городе есть 3G интернет но в области нет.
- Сотовые операторы не дают «Белый и статический ip адрес».
- Другого интернета нет.
Что бы решить данную задачу я решил построить такую сеть.
Взять самый дешевый сервер VDS. Недорогой роутер TP-LINK MR 3420, 3G модем от beeline, ip камеру. И построить такую сеть как на схеме.
Суть идеи такова: На сервере поднимается openvpn сервер, на роутере поднимается openvpn клиент, далее объединяем локальную сеть с сетью openvpn. Затем пробрасываем необходимые порты на сервере.
Vim как не IDE
Information
- Rating
- Does not participate
- Registered
- Activity